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

标签 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

最佳答案

@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/

相关文章:

ruby-on-rails - Postgres 服务器错误 -> PGError : could not connect to server

macos - 关于“应用程序”框,是否已将代理(UIElement)设置为"is"?

valgrind - 出现第一个错误时退出 valgrind

c - gcc有可能无法编译代码吗?

c - 计算一个数组但将值写入另一个数组时出现问题

xcode - 我的 MainMenu.xib 拒绝进入 bundle ,并且我的应用程序崩溃并显示 : "Unable to load nib file: MainMenu, exiting"

linux - 是否有工具可以检查两个 callgrind/valgrind 配置文件的差异?

c++ - 使 valgrind 能够在 C++ 需要时读取用户输入

c - 如何在 C 中实现 ctime 以存储到字符缓冲区中?

c - 使用 %of 代替时分配给变量的值