谁能给我任何简单的语法来运行 OSX 的leaks
工具来检测编译的 C 程序中的内存泄漏?我在 10.8,所以我遇到了严重的兼容性问题valgrind
。
我读过的关于 XCode 的泄漏/仪器的大部分内容都涉及在 XCode 环境中——这不是我想为我的 C 程序做的事情。
有没有办法可以从命令行对已编译的 C 程序运行泄漏?如果没有,在等待更新版本的 valgrind 时,我是否可以使用其他可靠的替代方案,或者我是否必须使用 Linux 发行版设置 VM?
通过将其添加到命令行的开头来使用该iprofiler
工具(manpage ):
iprofiler -leaks -d $HOME/tmp
($HOME/tmp
您希望在哪里写入结果)。
然后,您可以使用Instruments打开生成的.dtps
包以检查泄漏(或执行的其他 4 个检查中的任何一个)。iprofiler
如果您使用的是clang-O3
,则同时使用and进行编译-g
(因为clang不支持-pg
)。
这似乎有效(macOS Catlina 10.15.6):
cd /usr/local/lib
ln -s $(xcode-select -p)/usr/lib/libLeaksAtExit.dylib
leaks --atExit -- ./a.out
完成后最好删除符号链接。
参考: