Objective C – getting line number or full stack trace from debugger error?

When the debugger stops, go to the “Debug Navigator” and make sure the slider on the bottom is all the way to the right.

Scan your eye down from the point at which the exception is thrown and you should eventually come to your own code. Click on the appropriate method/function name and the code will be opened in the editor.

enter image description here

enter image description here

If you don’t see any of your own methods in the stack trace, the exception may have been passed through a performSelector-style call in which case the stack trace is gone. If this is the case, you may get better information by adding an “On Throw” exception break point. First switch to the “Breakpoint navigator”:

enter image description here

Then click on the plus and choose “Add Exception breakpoint…”

enter image description here

Create an “On Throw” break point:

enter image description here

This will stop the debugger at the exact point the exception is thrown, and you get a better stack trace. It’s a good idea to have an exception break point like this enabled all the time, although you will occasionally get internal exceptions from Apple code (e.g. when using QLPreviewController, MPMoviePlayerController).

Leave a Comment