pierrotlefou
pierrotlefou

Reputation: 40761

view the return value of method invocation

How could I view the value of [fetchedResultsController sectionIndexTitles] in the debugger without change the code?

 return [fetchedResultsController sectionIndexTitles];

Currently, I use to trick of add an tempory variable s and then use "print the descriptions of 's'" command. But this method requires me change the code so it is not convenient.

NSArray *s= [fetchedResultsController sectionIndexTitles];
return s;

Similar, it would be very helpful to be able to see the value of [a method1] in following statement:

[b [a method1]]

Upvotes: 3

Views: 1870

Answers (3)

AmitW
AmitW

Reputation: 818

The return value is visible in Xcode debugger, immediately after returning from a function call (i.e. immediately after hitting the the "step out" button). See below screenshot for example:

enter image description here

Upvotes: 1

pierrotlefou
pierrotlefou

Reputation: 40761

I found the trick:

After the breakpoint is hit, Simply type following command in the LLDB would do the job:

po [self.fetchedResultsController sectionIndexTitles]

Where po is an abbreviation for expression -o -- used to print the object description of the value resulting from the expression.

Upvotes: 4

zrzka
zrzka

Reputation: 21249

Do use breakpoints ... Add breakpoint to your return line, right click on breakpoint, edit breakpoint and now you have two options ...

Add Action Debugger Command ...

expr (void)NSLog( @"%@", [fetchedResultsController sectionIndexTitles] );

... or Log Message Action in a similar way and turn on Automatically continue after evaluating.

What it does?

Every time you hit your line with breakpoint, your application is paused, breakpoint actions are processed and as you did turn on Automatically continue after evaluating, your program continues when these breakpoint actions are processed. This is the way how to log, inspect, ..., without modifying your code.

Upvotes: 6

Related Questions