4

谁能给我任何简单的语法来运行 OSX 的leaks工具来检测编译的 C 程序中的内存泄漏?我在 10.8,所以我遇到了严重的兼容性问题valgrind

我读过的关于 XCode 的泄漏/仪器的大部分内容都涉及在 XCode 环境中——这不是我想为我的 C 程序做的事情。

有没有办法可以从命令行对已编译的 C 程序运行泄漏?如果没有,在等待更新版本的 valgrind 时,我是否可以使用其他可靠的替代方案,或者我是否必须使用 Linux 发行版设置 VM?

4

2 回答 2

5

通过将其添加到命令行的开头来使用该iprofiler工具(manpage ):

iprofiler -leaks -d $HOME/tmp

$HOME/tmp您希望在哪里写入结果)。

然后,您可以使用Instruments打开生成的.dtps包以检查泄漏(或执行的其他 4 个检查中的任何一个)。iprofiler

如果您使用的是clang-O3 ,则同时使用and进行编译-g(因为clang不支持-pg)。

于 2013-05-11T20:03:25.677 回答
0

这似乎有效(macOS Catlina 10.15.6):

cd /usr/local/lib
ln -s $(xcode-select -p)/usr/lib/libLeaksAtExit.dylib
leaks --atExit -- ./a.out

完成后最好删除符号链接。

参考:

于 2020-08-24T09:17:19.633 回答