我非常喜欢Valgrind,并且已经广泛使用它来捕获我的代码中的错误。然而,现在我遇到了一个只在特定情况下出现的bug,需要我的程序malloc/use超过32Gb的RAM(实际上是约37Gb),而Valgrind有一个硬编码限制,说它不会让你分配超过32Gb的内存。我在网上找到了一些帖子,其中人们列出了各种修改Valgrind的代码的方法,可以扩展这个限制,但要么它们似乎不起作用,要么它们似乎修改了不同版本的Valgrind(未指定版本)。我也不太喜欢在Valgrind内部进行操作,所以我开始寻找其他选择。
Clang/AddressSanitizer看起来是一个不错的选择,但不幸的是,在我的代码中我大量使用嵌套函数。因此,我的问题是 - 有没有人知道一个替代Valgrind的方法(在64位Linux上),它没有Valgrind的32Gb内存分配限制?
欢迎提出想法 最好的祝福 Zam