GC 中最繁杂的 mark 部分已经谈完了。剩下的东西很简单。今天一次可以写完。sweep 分两个步骤,一个是清理字符串,另一个是清理其它对象。看代码,lgc.c 573 行:case GCSsweepstring: { lu_mem old = g->totalbytes; s...
分类:
其他好文 时间:
2014-07-27 09:58:12
阅读次数:
383
今天来看一下 mark 过程是怎样实现的。所有的 GC 流程,都从 singlestep 函数开始。singlestep 就是一个最简单的状态机。GC 状态简单的从一个状态切换到下一个状态,循环不止。状态标识放在 global state 的 gcstate 域中。这一点前面谈过。开始的两个状态和 ...
分类:
其他好文 时间:
2014-07-27 09:57:32
阅读次数:
302
普及下常识:GC 是 garbage collector 资源回收器;初期的 Lua GC 采取的是 stop the world 的实现。一旦产生 gc 就需要期待全部 gc 流程走完。lua 自己是个很精简的体系,但不代表处理的数据量也必然很小。从 Lua 5.1 入手下手,GC 的实现改成分步...
分类:
其他好文 时间:
2014-07-27 09:54:52
阅读次数:
262
(1)lua 和 C++之间的交互的基本知识:lua 和 C++ 之间的数据交互通过堆栈进行,栈中的数据通过索引值进行定位,(栈就像是一个容器一样,放进去的东西都要有标号)其中栈顶是-1,栈底是1,也就是第 1 个入栈的在栈底;也可以这么说:正数表示相对于栈底的位置(位移),负数表示相对于栈顶的位置...
分类:
其他好文 时间:
2014-07-27 09:53:53
阅读次数:
436
Lua提供高级的require函数来加载运行库。粗略的说require和dofile完成同样的功能但有两点不同:1.require会搜索目录加载文件2.require会判断是否文件已经加载避免重复加载同一文件。由于上述特征,require在Lua中是加载库的更好的函数。require使用的路径和普通...
分类:
其他好文 时间:
2014-07-26 17:10:21
阅读次数:
350
元表概念:引言:Lua中的每个值都有一套预定义的操作集合,如数字相加等。但无法将两个table相加,此时可通过元表修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。访问机制:一般的元方法都只针对Lua的核心,也就是一个虚拟机。它会检测一个操作中的值是否有元表,这些元表是否定义了关于次...
分类:
其他好文 时间:
2014-07-26 14:48:31
阅读次数:
176
模式匹配函数在string库中功能最强大的函数是:string.find(字符串查找)string.gsub(全局字符串替换)string.gfind(全局字符串查找)string.gmatch(返回查找到字符串的迭代器)这些函数都是基于模式匹配的。与其他脚本语言不同的是,Lua并不使用POSIX规...
分类:
其他好文 时间:
2014-07-26 14:27:12
阅读次数:
352
ZjDroid是基于Xposed Framewrok的动态逆向分析模块,逆向分析者可以通过ZjDroid完成以下工作:
1、DEX文件的内存dump
2、基于Dalvik关键指针的内存BackSmali,有效破解各种流行加固方案
3、敏感API的动态监控
4、指定内存区域数据dump
5、获取应用加载DEX信息。
6、获取指定DEX文件加载类信息。
7、dump Dalvik java堆信息。
8、在目标进程动态运行lua脚本。...
分类:
移动开发 时间:
2014-07-26 02:24:16
阅读次数:
297
问题场景:我们的游戏在支付时,由于第三方支付比较费时,可能在支付的过程中,我们lua写的cocos2dx项目会断网,我们的游戏有自动重连的机制。我就想,如果断线好了以后,支付完成了,那在断网之前传入的回调函数是否能被成功执行到呢?就在网上发现了这篇文章http://dualface.github.i...
分类:
其他好文 时间:
2014-07-25 18:53:32
阅读次数:
437
Lua中的“尾调用”就是一种类似于goto的函数调用,当一个函数调用是另一个函数的最后一个动作时,该调用才算是一条“尾调用”。【一个函数在调用完另一个函数之后,是否就无其他事情需要...
分类:
其他好文 时间:
2014-07-25 00:03:04
阅读次数:
236