以下是放置在 ~/.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

最佳答案

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

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

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

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

关于objective-c - 如何在 ~/.gdbinit 中设置这些断点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1237830/

10-15 11:50