当我尝试在一个非常简单的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
答案 0 :(得分:0)
@trojanfoe已经指出,仪器是在MAC上实现它的方法。就个人而言,虽然我已成功使用两者。您可以使用抑制文件来隐藏noise
,只需要小心隐藏的内容。
将此添加到valgrind命令以在运行时生成它们。
--gen-suppressions=all
然后将这些添加到填充中并按如下方式使用...
--suppressions=./mysuppressions.supp
你可以在这里找到更多。
https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto
不要停止使用valgrind,因为它在mac上有一些瑕疵。这是一个很棒的工具。
答案 1 :(得分:-1)
Instruments是在OSX下使用的分析器,包含在Xcode中。