【问题标题】:How do I set these break points in ~/.gdbinit?如何在 ~/.gdbinit 中设置这些断点?
【发布时间】:2009-08-06 09:18:32
【问题描述】:

以下是在 ~/.gdbinit 中放置的断点列表,它们对调试内存问题非常有帮助:

fb -[NSException raise]
fb -[NSAssertionHandler handleFailureInFunction:file:lineNumber:description:]
fb -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]

#define NSZombies
# this will give you help messages.  Set to NO to turn them off.
set env MallocHelp=YES
# might also be set in launch arguments.
set env NSZombieEnabled=YES
set env NSDeallocateZombies=NO
set env MallocCheckHeapEach=100000
set env MallocCheckHeapStart=100000
set env MallocScribble=YES
set env MallocGuardEdges=YES
set env MallocCheckHeapAbort=1

set env CFZombie 5

fb -[_NSZombie init]
fb -[_NSZombie retainCount]
fb -[_NSZombie retain]
fb -[_NSZombie release]
fb -[_NSZombie autorelease]
fb -[_NSZombie methodSignatureForSelector:]
fb -[_NSZombie respondsToSelector:]
fb -[_NSZombie forwardInvocation:]
fb -[_NSZombie class]
fb -[_NSZombie dealloc]

fb szone_error

【问题讨论】:

  • 这些可能确实有帮助,但是其中有一个问题吗? SO 不是发布有用提示的 wiki — 那些属于 cocoadev.com,至少对于 Objective-C 和 Cocoa 而言。
  • @Quinn:可以,但根据常见问题解答,它应该作为一个问题发布,然后您可以自己回答;)

标签: objective-c iphone xcode memory-management gdb


【解决方案1】:

这个标题表明你在问如何在 ~/.gdbinit 中设置这些,但你详细问题的第一行表明你在 ~/.gdbinit 中有上述内容?

那么,究竟是什么问题呢?

我使用了非常相似的东西,而且效果很好,但由于其中大部分是相当侵入性的行为更改,我将它放在一个单独的文件 (~/.gdbmem) 中,然后根据需要获取它。

我的 ~/.gdbinit 几乎完全限于不会改变调试会话的宏定义。因此,默认行为对调试的影响最小,我可以获取两个充满 gdb config goop 的附加文件之一,以自动将一些相对侵入性的附加配置应用于环境。

【讨论】:

  • Xcode 中没有; .gdbinit 是一个文件,你可以放在你的主目录中,当 gdb 启动时,gdb 将解析它,无论是从命令行还是从 Xcode 中。
  • 能否请你说得更清楚...我如何创建 .gdbinit 文件以及如何从 xcode 解析它
  • 您创建一个名为 .gdbinit 的新文件 - 将它放在您的主目录中。现在每次 gdb 启动它都会执行这个文件中的命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-26
相关资源
最近更新 更多