我正在尝试使用64位Linux下基于luajit的应用程序调试一些问题。
脚本通过FFI回调到许多库,我试图找出一些内存损坏问题。 Valgrind通常是我选择的工具,但是我发现在Valgrind下运行时luaL_newstate失败了。
经过一番探索,我发现标准的luajit也无法加载。我认为这可能比valgrind更像是一个问题而不是luajit。有没有办法给valgrind更多的记忆?
答案 0 :(得分:3)
如果您使用的是从版本3.9.0开始的版本的valgrind,并且最多(但不包括)版本3.11.0可能是问题。
这些版本似乎已被打破"在x86_64上使用luajit。
请参阅Mike Pall的this email:
[请注意,Valgrind 3.9.0已选择阻止MAP_32BIT,其中 在Linux / x64上打破LuaJIT:
https://bugs.kde.org/show_bug.cgi?id=324181
旧版本的Valgrind仍然有效。它不是那么有用 无论如何,在x64上调试LuaJIT,由于强制使用了 内置分配器。但这些都与你的问题无关。]