在mac os 10.11上运行valgrind会产生错误

时间:2016-04-15 19:05:00

标签: c macos valgrind

当我尝试在一个非常简单的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

2 个答案:

答案 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中。