iPhone crash log information
Posted by dom on Sat Jun 30 22:17:17 +0200 2007Apparently when an app on the iPhone crashes, the phone notices after 30 seconds, writes out a crashlog and continues to work. On next connect with iTunes it wants to post the crashlog.
The contents of these crashlogs are interesting, as Frasier Spears already noted and found out.
So far I have found 2 crashlogs on the net. One at Daring Fireball and one at Martin Gordon – I think there will be more soon.
Here are the “Headers” of the two logs found up to now:
Process: MobileMail [67] Path: /Applications/MobileMail.app/MobileMail Version: N/A (N/A) Code Type: 0000000C (Native) Effective UID: 0 Parent Process: SpringBoard [15] Date/Time: 2007-06-29 20:42:06.479 -0400 OS Version: OS X 1.0 (1A543a) Report Version: 6 Exception Type: 00000020 Exception Codes: 0x8badf00d Crashed Thread: Unknown.hr
Process: Preferences [73] Path: /Applications/Preferences.app/Preferences Version: N/A (N/A) Code Type: 0000000C (Native) Effective UID: 0 Parent Process: SpringBoard [15] Date/Time: 2007-06-29 20:27:24.929 -0400 OS Version: OS X 1.0 (1A543a) Report Version: 6 Exception Type: 00000020 Exception Codes: 0x8badf00d Crashed Thread: Unknown
Both crash logs look almost identical, both don’t know which thread crashed and both have the funny exception code of “badfood”.
Let us compare this to a standard Mac OS X Tiger crash log:Host Name: dom Date/Time: 2007-02-08 15:48:36.933 +0100 OS Version: 10.4.8 (Build 8N1037) Report Version: 4 Command: SubEthaEdit Path: /Appications/SubEthaEdit.app/Contents/MacOS/SubEthaEdit Parent: WindowServer [96] Version: 2.6 (2043M) PID: 414 Thread: 0 Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_INVALID_ADDRESS (0x0001) at 0x73617283
So we can see there is no explicit PID mentioned on the iPhone, instead it is displayed in brackets behind the Process information (which seams consistent with the way it always was displayed for the parent process. The Report Version has bumped from 4 to 6. Also the OS Version scheme is different, although similar. It is not 10.something but OS X 1.0 – the running build number (1A543a) seems to be a similar scheme than the build number on tiger (Build 8N1037). The Parent Process for the Apps is the “SpringBoard” which seems to replace the “WindowServer” on Tiger. The Version of the current App seems N/A always – the Path to the binary seems to have lost a “Contents” which was quite superfluous anyway and is a old relic from next times that I never understood. Maybe they thought they would put metadata in the space between the .app folder and the Contents Folder… The “Effective UID” field is new, but filled with 0 doesn’t tell us much. Also new is the “Code Type” field – in which (native) would suggest that there may be other values which are not native…
Since we have no symbols I skip the thread part. After the thread part however, interestingly enough, there is no thread state in the logs, so no deducing of the CPU because of the displayed contents of the registers. The only text we get is:Unknown thread crashed with unknown flavor: 4, state_count: 1Moving on – The binary images list has a different format on the iPhone:
0x301c7000 - 0x301d4fff AddressBook UUID (7D1B2DA0EC1D4A1382D5FE0B91851ACA) /System/Library/Frameworks/AddressBook.framework/AddressBookagainst
0x94726000 - 0x9486cfff com.apple.AddressBook.framework 4.0.4 (485.1) /System/Library/Frameworks/AddressBook.framework/Versions/A/AddressBook
So instead of version numbers we now have UUIDs, the reverse DNS name syntax seems to have gone, and the complicated linked structure of the framework bundles also seems to have gone.
I want to close with the list of library/framework names which don’t appear on Tiger:AddressBookUI UUID (0E6FBEAA0D9C411FB1F0794F35D2CFBA) /System/Library/Frameworks/AddressBookUI.framework/AddressBookUI AppSupport UUID (4D84C1C39C7C4DB9981FEBF8E48FF450) /System/Library/Frameworks/AppSupport.framework/AppSupport BluetoothManager UUID (E00ECB53D4B5426A818DA8D77CD1B09C) /System/Library/Frameworks/BluetoothManager.framework/BluetoothManager Calendar UUID (5D3EB213B2A94C4C97C194283493122C) /System/Library/Frameworks/Calendar.framework/Calendar Celestial UUID (15045615F83249D49720253EBDF9132A) /System/Library/Frameworks/Celestial.framework/Celestial CoreSurface UUID (7280076DC074497CB145741A15FCE472) /System/Library/Frameworks/CoreSurface.framework/CoreSurface CoreTelephony UUID (7B909435DABA409098995CC24EE26587) /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony GraphicsServices UUID (1C4876C189F34562ACF6B7D44770FF97) /System/Library/Frameworks/GraphicsServices.framework/GraphicsServices IAP UUID (C298EEA4A51040D1959591C364206B54) /System/Library/Frameworks/IAP.framework/IAP IOMobileFramebuffer UUID (AE80733EB6514BB88A6287971C7E09C9) /System/Library/Frameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer ITSync UUID (B02A31E7730A46BCA6B336F097D542C4) /System/Library/Frameworks/ITSync.framework/ITSync LayerKit UUID (B9468BD4F4F041C3ADA50B830305E7A2) /System/Library/Frameworks/LayerKit.framework/LayerKit MBX2D UUID (1583F2C2C78B4058BD8C1DF338738C05) /System/Library/Frameworks/MBX2D.framework/MBX2D MBXConnect UUID (B5E73A95A84E4706A922D56674D4809D) /System/Library/Frameworks/MBXConnect.framework/MBXConnect MeCCA UUID (5031D4A8F03B4605A6233D351EF790E0) /System/Library/Frameworks/MeCCA.framework/MeCCA MessageUI UUID (ED6F6EA00B1346BEB98F00733C936922) /System/Library/Frameworks/MessageUI.framework/MessageUI MobileBluetooth UUID (5F13101DF17B442D8DE5CD0BDB50D7AB) /System/Library/Frameworks/MobileBluetooth.framework/MobileBluetooth MobileMail UUID (8859A31CE4874DF1AE2A9A92B1B717A5) /Applications/MobileMail.app/MobileMail MobileMailSettings UUID (C7B98C13676647FA9A1A6D9DE36897E2) /System/Library/PreferenceBundles/MobileMailSettings.bundle/MobileMailSettings MobileMusicPlayer UUID (C3D3AC1CC6384FDDB34D1D2D0A7E90F0) /System/Library/Frameworks/MobileMusicPlayer.framework/MobileMusicPlayer MusicLibrary UUID (B9815425F5D742CD9B9FFF948A4E590D) /System/Library/Frameworks/MusicLibrary.framework/MusicLibrary OpenGLES UUID (3405A88B732E4DF3A127E182483D9E69) /System/Library/Frameworks/OpenGLES.framework/OpenGLES Preferences UUID (26FA104E4D88438285B988DDADDE39D6) /System/Library/Frameworks/Preferences.framework/Preferences Preferences UUID (8E1045DED5F040138101BCE1C4C06AEC) /Applications/Preferences.app/Preferences TelephonyUI UUID (15006830A8B94F7590AC10CBB664D0E7) /System/Library/Frameworks/TelephonyUI.framework/TelephonyUI UIKit UUID (8A129F9979114365B637E144A3C67868) /System/Library/Frameworks/UIKit.framework/UIKit URLify UUID (54B6437BCD3A452F9CC7493CB9E010FF) /System/Library/Frameworks/URLify.framework/URLify liblockdown.dylib UUID (30A0EB0C05724FA487617B860E360B88) /usr/lib/liblockdown.dylib
That’s all for now :)
Update: Engadget identifies the processor used as an 620MHz ARM1176JZF which seems to contain the ARM Jazelle for embedded java execution. So the Code Type counterpart might be Java Byte Code.



Finally, J2ME could arrive to the Mac! :-) I could get rid of Parrallels & Debian! Yipiiiiieeeeh!
Well, it’s just a dream….
It’s not just “bad food,” it’s “ate bad food”
@yes: Of course. How could I have overlooked that? Thanks!
Maybe it’s too early in the morning for me and I’m missing something obvious, but…
Process: MobileMail [67] Parent Process: SpringBoard [15]and…
Process: Preferences [73] Parent Process: SpringBoard [15]Aren’t 15, 67 and 73 PIDs? (If not, what are they?)
@Sören: Yeah, that seem to be the PIDs. I’ll meant no explicit mentioning of the PID, as in the old crash log format. I will change that. Thanks!