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