fesily

Results 15 comments of fesily

关闭autoupdate有一个痛点,如果遇到长时间cpu运行的情况,例如死循环,没法停下来查看循环位置. 还有一个地方,调试器加入之后,时序问题基本不可复现.量子力学,观测了就不能复现. ## 关于代码维护问题 本质上这个改动是一个第三方库的形式. 1.在Register表里添加一个表,映射中断指令的原始指令是什么 2.在添加三个接口sethalt,clearhalt,gethalts ### 内部修改 1.指令枚举添加一条新的指令HALT 2.VM解释指令这里加一条HALT指令代码块 3.dumpfunction的时候dump真实的指令集 4.luaG_checkopenop 添加HALT指令 这些都是小改动, 除非后期上游大改整个VM的执行模式,我想这个可能性微乎其微,20年了也没见改. 而且大改也是下一代lua5.5的事情 目前我测试了所有版本,没什么问题. ### lua-debug的维护 断点管理直接调用接口:sethalt,clearhalt,gethalts ### 关于修改虚拟机行为 有修改代码的问题,但是行为我觉得应该是无感知的. 类似于CPU的中断指令,指令重启而已,执行的指令没有任何差别. 无非是在这个被中断的指令的地方调用一次lua_hook回调,lua VM虚拟机hook行为本来就是这样执行的 ### 最后 当然这个是我个人的想法,你有兴趣的话,我可以提pr

没有这个patch的走现在原有的断点模式 ```lua if debug.sethalt then breaker = createHaltBreaker() breakerType = 'halt' else breaker = createPureBreaker() breakerType = 'pure' end ```

试了内置的lua51和lua54,都是crash

时序问题,我这边是带lldb运行必crash.不带lldb没事。

可能跟调试器断开这个事件有关系,因为我这边的有个比较大的程序一旦断开lua调试器就crash了,而且是在没有lldb调试的情况下。

Windows我试了的确不能复现,应该是mac的问题

难道是M1的apple特有的问题,那我来想办法修一下

👌🏻,稍微有一点美中不足的地方,能不能改进一下,runtime.special设定不能识别表中的函数.比如说`io.exit`这种

我尝试了所有的内置库,除了skynet,其他任何文件名带有`.`的都不认 ```lua ---ok require "skynet.debug" --skynet.debug.lua require "ngx“ --ngx.lua --error require "cc.data" --cc.data.lua require "table.clear" --table.clear.lua ```

\一直在提示第三方库,自动检测已经关闭 ```json "Lua.workspace.checkThirdParty": false ```