LuaSpy
LuaSpy用于显示Bolt引擎中Lua虚拟机和运行时的全局对象,类似VBA中的“对象浏览器”。
Lua脚本语言在基于Bolt引擎开发中也扮演了重要的角色,为了方便大家对Lua虚拟机和运行时总体状态的认识和监视,我们开发了专门的辅助工具LuaSpy。
LuaSpy在设计上可以用来查看下列内容:
l 进程的所有的lua环境(LUAENV)(需要Reflink)和lua运行时(LUARUNTIME)
l 注册到lua环境的全局api、全局object和全局class
有几个注意事项:
1. 自定义control和自定义animation,由于架构原因,自定义的方法暂时无法展示
2. 自定义control和自定义animation,由于存在于更上层(Bolt层面),并且引擎基于按需加载机制,而LuaSpy只是查看当前的lua运行时和虚拟机,所以在第一次实例化之前不会在列表里面展示,可以通过“刷新对象”按钮来刷新当前的进程状态。
3. 目前只展示默认env内部的对象,目前来说绝大部分都是只操作该env
4. 注册到lua里面的C函数,由于是参数类型和个数都是动态的,所以无法推算预期的参数列表,目前只显示函数名和所在模块
软件界面如下:
目前可以展示的部分包括:
1. 全局API
2. 全局Object
l 系统object 也即是Bolt和luaruntime内置的一些全局对象,比如TimerManager,XARManager等
l 扩展object 用户自己添加进来的全局object
3. 全局class
l 系统class 主要是Bolt、luaruntime和扩展库xgp、xaf内置的一些class
l 扩展class 包括了自定义control、自定义animation以及用户自己扩展的一些class
这里需要注意一点,每个全局object都有一个对应的全局class,这个class在全局object对应的object下面和全局class列表里面均有展示。