在valgrind下,luaL_newstate无法成功创建新状态?

我正在尝试在64位Linux下调试基于luajit的应用程序中的一些问题。

该脚本通过FFI回调到大量库中,我正在尝试解决一些内存损坏问题。Valgrind通常是我处理这个问题的工具,但是我发现在Valgrind下运行时,luaL_newstate会失败。

经过一番探索,我发现标准的luajit也不能加载。我认为这可能更是一个valgrind而不是luajit的问题。是否有一种方法可以给valgrind更多的内存?

点赞
用户258523
用户258523

如果您使用的是从版本3.9.0开始到版本3.11.0之间的valgrind版本,那么可能会出现问题。

这些版本在x86_64上使用luajit时似乎存在问题。

请参阅Mike Pall的这封电子邮件

[请注意,Valgrind 3.9.0选择阻止 MAP_32BIT,这会使 Linux/x64 上的 LuaJIT 出现问题:

https://bugs.kde.org/show_bug.cgi?id=324181

旧版的Valgrind仍然可用。无论如何,在x64上强制使用内置分配器,对于调试LuaJIT并不是特别有用。但这与您的问题无关。]

2015-11-25 02:03:31