当我尝试在一个非常简单的 hello_world.c 程序上运行 valgrind 时,我遇到了很多错误(大多数是相同函数的重复)。我问我的教授,他指出这些函数属于C++。这是 valgrind 不完全支持 mac os 的问题吗?如果是的话,有人可以建议 mac os 上 valgrind 的替代品吗?
==3766== by 0x7FFF5FC0853B: dyld::loadPhase5(char const*, char const*,
dyld::LoadContext const&, std::__1::vector<char const*,
std::__1::allocator<char const*> >*) (in /usr/lib/dyld)
==3766== by 0x7FFF5FC0853B: dyld::loadPhase5(char const*, char const*,
dyld::LoadContext const&, std::__1::vector<char const*,
std::__1::allocator<char const*> >*) (in /usr/lib/dyld)
==3766== HEAP SUMMARY:
==3766== in use at exit: 706,517 bytes in 906 blocks
==3766== total heap usage: 1,541 allocs, 635 frees, 1,282,197 bytes
allocated
==3766==
==3766== LEAK SUMMARY:
==3766== definitely lost: 5,713 bytes in 29 blocks
==3766== indirectly lost: 5,512 bytes in 24 blocks
==3766== possibly lost: 5,848 bytes in 127 blocks
==3766== still reachable: 43,570 bytes in 363 blocks
==3766== suppressed: 645,874 bytes in 363 blocks
==3766== Rerun with --leak-check=full to see details of leaked memory
最佳答案
@trojanfoe 已经指出 Instruments 是在 MAC 上执行此操作的方法。就我个人而言,我已经成功地使用了两者。您可以使用抑制文件来隐藏噪音
,只是要小心隐藏的内容。
将其添加到您的 valgrind 命令中以在运行时生成它们。
--gen-suppressions=all
然后将它们添加到填充中并按如下方式使用它......
--suppressions=./mysuppressions.supp
您可以在此处了解更多信息。
https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto
不要停止使用 valgrind,因为它在 Mac 上有一些缺陷。这是一个很棒的工具。
关于c - 在 mac os 10.11 上运行 valgrind 会产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655025/