1

我写了一段 C 代码,它一个接一个地动态分配一些结构。当任何分配失败时,必须释放一些先前分配的分配。虽然我能够在每次分配成功时成功地对应用程序进行memcheck,但我无法弄清楚如何使用valgrind 的 memcheck来检查任何分配失败时的场景。

当尝试在外部施加内存限制以使分配失败时,例如使用ulimit或虚拟机,该限制也会施加到valgrind,结果会失败。使用qemu之类的工具会使可执行文件的内存行为对valgrind不可见,并且只分析工具的行为。

当尝试使用rlimit结构将其强加到代码中时,当程序单独执行并且分配按预期失败时,它被成功强加,当由 valgrind 运行时,它被忽略并且无论其值如何分配都会成功。

理想的情况是valgrind允许内存限制,但似乎不存在这样的选项。关于如何针对这种内存有限的场景进行内存检查的任何建议

4

0 回答 0