文件名超过60个字符时断点将被忽略。

我的 Lua 源文件名称长度大于 60 个字符(包含必要的非绝对路径) 当调试器正在运行时,LuaDebugger.cs 将执行断点检查:

breakpoint = GetBreakpoint(src, line);

GetBreakpoint 调用 GetFile(),但它始终返回 null,因为

String.Compare(fileName, file.FileName, StringComparison.OrdinalIgnoreCase)

失败

当 filename = luaDebug.shortsrc 时 (shortsrc 由 [System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValTStr, SizeConst = 60 /*LUA_IDSIZE*/)] 定义)

如果我使用 filename = luaDebug.source.toString().Substring(1),它就能运行,但我不想更改 luainterface-debugger 源代码。

原文链接 https://stackoverflow.com/questions/10330299

点赞
stackoverflow用户312586
stackoverflow用户312586

如果您不想修改源代码,那么您的选择非常有限,因为源代码本身就是导致问题的原因(我想这可能是LUA_IDSIZE常量的原因)。

在不修改代码的情况下,您的选择非常有限。它们都涉及到放弃60个字符以上的路径。

2012-04-26 09:46:45