views:

60

answers:

3

How do you use the debugger in XCode to see if a variable is nil?

+2  A: 

Just open up the GDB Console and type po myvar or insert a breakpoint after you set your variable and move your cursor over the target variable.

Henrik P. Hessel
It doesn't say anything. If I type something in gdb it doesn't do anything.
awakeFromNib
Are you stopped at a breakpoint whilst running the app? It's probably easier to just type `p myvar`, the output would look like this if myvar is an NSMutableArray and set to nil, `$1 = (NSMutableArray *) 0x0`.
Greg Sexton
As Greg mentioned you have to stop at a breakpoint to use both methods
Henrik P. Hessel
Yeah, I'm at a breakpoint. The other method doesn't work either.
awakeFromNib
+1  A: 

If the pointer's address is 0x000000 it's nil.

Hovering over the variable in the debugger should show a tooltip, this will show you the type of the variable, the name and a value. If it is a pointer to an object the value will be the address that it points to. This will be 0x0 if it is nil.

Greg Sexton
A: 

This is really angering me, too. Hovering over a variable doesn't do anything. Adding it to the expressions window always shows "out of scope", as does trying to use "po" in the gdb window. What is going on? I'm literally stopped on the same line as the variable I want to assign something to. Do you really have to be at a breakpoint? What if I have stepped a bit after a breakpoint?

This is driving me nuts. Please help.

Jeff

gonzobrains