如何在〜/ .gdbinit中设置这些断点?

时间:2009-08-06 09:18:32

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

这是一个放在〜/ .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

1 个答案:

答案 0 :(得分:2)

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

究竟是什么问题呢?

我使用非常相似的东西并且它工作正常,但由于其中大部分都是相当干扰的行为更改,我将其放在一个单独的文件(〜/ .gdbmem)中,然后根据需要提供它。

我的〜/ .gdbinit几乎完全局限于宏定义,否则会改变调试会话。因此,默认行为对调试的影响最小,我可以从2个额外的文件中找到一个充满gdb config goop的文件,以自动将一些相对侵入性的附加配置应用于环境。