Parsing iOS watchdog 0x8badfood hang reports
During beta testing of [Loopy Pro](https://loopypro.com), a tester had the misfortune to come across a hang-on-launch bug of the “exhausted real (wall clock) time allowance” kind that I couldn’t reproduce at all.
Annoyingly, when that happens, iOS often produces an unusable “ips” crash log which doesn’t at all resemble the normal, symbolicate-able kind – it’s pretty much just bunch of JSON with very little helpful content.
I got desperate, and wrote a parser to convert that JSON log into the normal kind, which can be symbolicated by the tool provided by Apple (which lives at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash, by the way).
It’s just a quick-and-dirty PHP script, but it does the job, and I was finally able to see what was happening during the hang.
Read More