在xcode(iphone dev)中使用gdb info malloc命令

时间:2010-10-03 20:57:30

标签: iphone xcode gdb

我在xcode中使用gdb调试iphone应用程序。

据说,我应该可以使用以下命令:

info malloc <0xaddress>

http://www.friday.com/bbum/2010/01/10/using-malloc-to-debug-memory-misuse-in-cocoa/  和strange GDB error unable to trace

我有env vars MallocStackLoggingNoCompact = 1和NSZombieEnabled = YES设置(通过xcode中的可执行文件)。

然而,我得到了这个:

2010-10-03 21:29:01.366 memleaktest[10881:307] *** -[one release]: message sent to deallocated instance 0x1646b0
(gdb) info malloc 0x1646b0
Undefined info command: "malloc 0x1646b0".  Try "help info".

运行此命令我缺少什么? (xcode 3.2.4和iphone SDK 4.1)

3 个答案:

答案 0 :(得分:3)

事实证明,你只能在模拟器中调试malloc,而不是在设备上调试。

答案 1 :(得分:1)

  1. 在Xcode中转到Run - &gt;启用Guard Malloc
  2. 将环境变量MallocStackLoggingNoCompact设置为YES(就像您已经做过的那样)
  3. 要确保正在写入日志,请在调试器控制台中看到以下消息:

    malloc: stack logs being written into /tmp/stack-logs.xxxx.MyApp.xxxxxx.index
    

    现在你应该能够:

    (gdb) info malloc 0x1646b0
    

答案 2 :(得分:0)

遇到同样棘手的问题,找到任何可行的方法?这种崩溃只发生在设备而非模拟器中。