Open waterslang opened 3 years ago
luamake -mode debug
非常感谢,这样就编译出来的。 找到dump点了。只是还没有头绪。 我使用的是 lua5.1的版本,脚本那边是一个return语句后出错的。具体原因分析,我还在熟悉lua源码,你也可以参照一下。 这里的出错时的栈。
可能是你的lua和官方版本比有修改,用你改过的lua和remotedebug一起重新编一个。
break_update(hL, hL->base_ci + ar->i_ci, ar->event); 这句里面 ar->i_ci 的偏移值是0. 嗯,我用的lua是 lua-coco的版本。 使用我的lua是用我的lua文件替换项目的lua51目录么? 我先试一试。 比较奇怪的是,有些情况是可以正常运行的,做了一些修改后,就会dump。 dump原因是这一句里的 func,是个未初始化的空值。
重新编译只能解决你修改了某些struct定义的问题,如果你改得更多,可能某些remotedebug里的代码也得跟着改。当然也可能是remotedebug有bug,毕竟我不用lua51,而lua51和lua54的差别还是很大的。
我排查一下,如果有结论,在回来知会。非常感谢你的帮助。
我也是崩在这里,一模一样的原因。
除非我们刚好用的同一个魔改lua,否则就是前面ci算错了。
我先说个暗号,lua_StdCallCFunction
我在使用自己定制的一个lua, 配合使用tcp监听的方式,用remotedebug模式调试。发现进行某些操作之后,使用debugger,会报一个segmentdefault。 目前根据堆栈是由luaD_callhook之后,回调到remotedebug.so 抛出的。 因此我想自己编译一个debug版本调试。 目前我已经编译出luamake,并且可以使用luamake编译lua-debug项目,但是对luamake的配置方式不清楚。 我主要修改了 scripts/gcc.lua的配置。我看里面的规则里面已经有了 -g, 并且,我把 optimize都修改为 '', 但是编译出来的 remotedebug.so 还是没有带调试信息。 请问要如何修改配置? 或者我使用的编译方式哪个步骤不对吗?