views:

622

answers:

1

Here is a list of break points to put in ~/.gdbinit that are really helpful in debugging memory problems:

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
+3  A: 

The title of this indicates that you are asking how to set these in ~/.gdbinit but the first line of your detailed question indicates that you have the above in ~/.gdbinit?

What, exactly, is the problem, then?

I use something pretty similar and it works fine, but since much of this is fairly intrusive behavioral changes, I put it in a separate file (~/.gdbmem) and then source it as needed.

My ~/.gdbinit is limited almost entirely to macro definitions that don't otherwise change the debugging session. Thus, the default behavior is minimal impact on debugging and I can source one of 2 additional files full of gdb config goop to automatically apply some relatively intrusive additional configuration to the environment.

bbum
i don't know what is this ~/.gdbinit? where should i look for this in xcode???
Rahul Vyas
It isn't in Xcode; .gdbinit is a file you can drop in your home directory that gdb will parse when gdb launches, either from the command line or from within Xcode.
bbum
could you please make it more clear...how do i create .gdbinit file and how do parse this from xcode
Rahul Vyas
You create a new file called .gdbinit - put it in your home directory.Now every time gdb starts it will execute the commands in this file.
Kendall Helmstetter Gelner