我需要一个工具,它可以帮助我找到内存泄漏在一个C程序中以valgrind类似的方式。它应该知道程序何时覆盖它不应该存储的内容(例如,通过错误地计算数组索引)。我了解到,泄漏实用工具以及图形仪器应用程序。Valgrind喜欢的工具在Mac OS 10.7(狮子)
但是我认为它可以找到分配给新的(或malloc)的内存,这个新的内存没有被释放,并且不再被访问。我还了解到valgrind应该在旧版本(10.5和10.6)上工作,但我使用狮子(10.7)。
我需要一个工具,它可以帮助我找到内存泄漏在一个C程序中以valgrind类似的方式。它应该知道程序何时覆盖它不应该存储的内容(例如,通过错误地计算数组索引)。我了解到,泄漏实用工具以及图形仪器应用程序。Valgrind喜欢的工具在Mac OS 10.7(狮子)
但是我认为它可以找到分配给新的(或malloc)的内存,这个新的内存没有被释放,并且不再被访问。我还了解到valgrind应该在旧版本(10.5和10.6)上工作,但我使用狮子(10.7)。
我会使用XCode开发人员工具MallocDebug。你应该这样用的XCode安装在你的/开发人员文件夹
或者,也可以在GDB运行应用程序,并通过运行
% gdb <program name>
(gdb) set env MallocStackLoggingNoCompact 1
(gdb) run
然后使用原生的malloc记录,可以使用/usr/bin/leaks
和/usr/bin/malloc_history
发现明显的泄漏
正如上面所写,它不能与狮子(10.7)一起工作。 – Nils
@Mat:Lion不支持Lion(10.7),因为OP指出,他们自6月起就开始使用它,但看起来并不那么容易:https://bugs.kde.org/show_bug.cgi?id = 275168 – Matthieu
从你的链接@Matthieu,似乎人们已经得到它的工作。 –