iosexceptioncrashsymbolicatecrashsymbolicate

iOS: Symbolicating crashlogs with exception reasons


Soo, with TestFlight's end it has become even more pressing to be able to fully understand iOS crashlogs.

There are numerous questions here at SO about this topic but in my experience none of the solutions provided enough insight into the crash itself. There still seems to be quite a confusion about this in the iOS world.

For the sake of completion here are the methods and steps I found and took.

(Disclamer: I had access to everyting: the .app file, the .dSYM and .crash files)

1| symbolicatecrash - command line utility

2| atos - command line utility

3| gdb


Now either I'm dumb, stupid, or both but for me, the problem with all these methods is that they inconsistent.

In my experience, symbolicating with symbolicatecrash will give us the method names for all the stack trace, but no line numbers and little to no info about the exception thrown.

Atos is a bit more descriptive, but still no exception description and you have to manually do this for all the lines you want symbolicated.

Also, atos sometimes points to method calls that are not in output of symbolicatecrash...

When I uploaded a build to TestFlight along with the .dSYM they could give me precise method names, line numbers and exception description that I just cannot find in these symbolications.


Is the exception description even in the crashlog?

Do we have to implement an unhandled exception handler within the app and send the reports "home" (ie to a web server?) to have access to what exception was thrown, where?


Solution

    1. symbolicatecrash - command line utility

      You are calling the script wrong, it should be:

      symbolicatecrash “FILENAME.crash" "NAME_OF_MY_APP.app.dSYM"

    2. atos - command line utility

      This call is also wrong:

      atos -arch armv7 -l LOAD_ADDRESS_OF_THE_APP -o NAME_OF_MY_APP.app.dSYM 0x000ad031

      Where LOAD_ADDRESS_OF_THE_APP is the first address shown in the Binary Images section for your app. See also: iOS crash reports: atos not working as expected

    Now regarding the additional questions/remarks:

    Some additional information: