-
Notifications
You must be signed in to change notification settings - Fork 356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[求助] LuaPanda不能停在红点断点 硬断点可以生效 #184
Comments
@stuartwang 问题似乎解决了,还真是coroutine hook没挂上的问题,是我们内部框架的改动,导致连接调试器的位置之前有些地方创建了可复用的协程(用完之后会被缓存在pool中),后面再用到协程时用的是这些在没挂上hook时创建的可复用协程,导致hook不上。保证debugger最先require就好了。非常感谢! 不过,我尝试在硬断点的位置查看 另外我还有个疑问:debugger源码中设置coroutine hook的位置会判断是否有 |
按照最初的设计想法,formatted 就是规范化后的路径,只是 lastRunFunction["source"] 恰好有这个数据,就拿过来用了,理论上二者应该是能匹配上的。我觉得之前出现二者不匹配的问题还是和协程有关,调试器关于协程的处理可能测试还不够充分,导致以某些特定场景下的异常。
指的是如下代码中的
这里我们的理解是一致的,hookLib.lua_set_hookstate 是调用了luac接口进行hook的,理论上可以hook包括协程在内的所有函数。如果没有停止,有以下可能性
目前想到的就是这些,有问题欢迎交流 |
Describe the bug
之前我用LuaHelper插件 + LuaPanda 3.2.0 在项目中进行调试,持续使用了1年左右,都十分正常(我在配置launch.json时
useCHook
为false
所以跟VSCode的升级可能没关系)。最近发现在编辑器里插入的红点断点总是不生效,参照FAQ尝试用硬断点然后执行LuaPanda.testBreakpoint
发现输出如图所示:并且硬断点有时会停在我们框架内扩展的可复用coroutine的逻辑附近而不是调用
LuaPanda.BP()
的位置。之后尝试改用最新的LuaPanda插件 + LuaPanda3.3.1,但是红点断点仍然不生效,但在不生效位置加硬断点之后,
LuaPanda.testBreakpoint
输出变成下图的样子:Desktop (please complete the following information):
Additional context
其实我推测可能与项目框架内对coroutine的修改有关,但是我一时实在是看不出来,故想请教一下开发者,3.2.0版本testBreakpoint中formatted 路径正常(但还是停不到断点上),而LuaPanda3.3.1 formatted显示为coroutine,可能导致这种情况的原因是什么?
十分感谢!
The text was updated successfully, but these errors were encountered: