There’s a far more convenient way to trace with log messages in Xcode, and that’s using Breakpoint Actions.
On the line of code where you’d be tempted to add a printf or NSLog, set a breakpoint, then control-click it and choose “Edit Breakpoint”. In the blue bubble that appears, click the + button on the right to open the Breakpoint Actions:
alt text http://idisk.mac.com/cdespinosa/Public/Breakpoint%20Actions.png
Enter your log text there. Any expression that can be printed in the Debugger can be used when delimited by @ signs.
For debugging Objective-C it’s generally more useful to choose “Debugger Command” from the popup and enter ‘po [[object method] method]’ to print the description string of an Objective-C object or the result of a method call.
Make sure to click the “Continue” checkbox at the top right so execution continues after the log.
Advantages of this over NSLog and printf:
- It’s on the fly. You don’t have to
recompile and restart to add or edit
log messages. This saves you a lot of
- You can selectively enable and
disable them. If you learn enough
from one, but its spew is
interfering, just uncheck its Enabled
- All the output is generated on your
Mac, never on the iPhone, so you
don’t have to download and parse
through logs after the fact.
- The chance of shipping console spew
in your application is significantly
Also check out the Speak button; it’s great for debugging full-screen apps where you can’t see the debug log.