Во-первых, вы должны понимать, что существует четыре типа сбоев, и отчет журнала зависит от типа сбоев:
- Сторожевой тайм-аут
- Пользовательская сила / выход
- Недостаточное завершение памяти
- Bugs
Отчет журнала делится на следующие разделы:
Информация о процессе , где
CrashReporter Key: Unique anonymous device id
Process: Name[id]
Version: CFBundleVersion(CFBundleShortVersionString)
Incident Identifier: 242C320A-763C-407E-BD40-443E3E9B611C
CrashReporter Key: 307097bc0924dac79e5352eb10692943c0ef05ad
Process: AsianDelight [4894]
Path: /var/mobile/Applications/7A8FF881-A033-45B9-8F728478217821E9/AsianDelight.app/AsianDelight
Identifier: AsianDelight
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Основная информация
Date/Time: 2010-01-20 16:32:49.285 +0700
OS Version: iPhone OS 3.1.2 (7D11)
Report Version: 104
Исключение В этом случае нет никакой проницательной информации о сбое, но,
в других случаях вы можете найти причину исключения здесь.
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000
Crashed Thread: 0
Backtrace (список активных кадров) потока, в котором произошел сбой, Thread 0 в этом случае.
В очереди
7 AsianDelight 0x00004b3a -[FlowCoverView numTiles] (FlowCoverView.m:250)
7
это номер кадра
AsianDelight
- имя двоичного файла
0x00004b3a
- адрес функции
[FlowCoverView numTiles] (FlowCoverView.m:250)
файл и номер строки. Иногда это может быть что-то вроде 0x10009c000 + 137220
это адрес базы и смещение. Посредством символизации это может быть сопоставлено с исходным кодом.
Чтобы сделать символику, просто перетащите журнал сбоя в окно Xcode Organizer в разделе журнала устройства. Обратите внимание, что Xcode должен иметь доступ к двоичному файлу и .dsYM. Часто Xcode не может символизировать отчет о сбое, если это так, проверьте эту ссылку , которая объясняет, как это сделать вручную.
Thread 0 Crashed:
0 libobjc.A.dylib 0x00007532 realizeClass + 18
1 libobjc.A.dylib 0x00007578 realizeClass + 88
2 libobjc.A.dylib 0x00007578 realizeClass + 88
3 libobjc.A.dylib 0x00007e76 prepareForMethodLookup + 26
4 libobjc.A.dylib 0x0000523e lookUpMethod + 34
5 libobjc.A.dylib 0x00002a0a _class_lookupMethodAndLoadCache + 6
6 libobjc.A.dylib 0x00002740 objc_msgSend_uncached + 20
7 AsianDelight 0x00004b3a -[FlowCoverView numTiles] (FlowCoverView.m:250)
8 AsianDelight 0x000048ea -[FlowCoverViewupdateAnimationAtTime:] (FlowCoverView.m:487)
Состояние потока показывает значения и регистры, когда произошел сбой
Thread 0 crashed with ARM Thread State:
r0: 0x0012cd00 r1: 0xffffffff r2: 0x80000000 r3: 0x00000002
r4: 0x00000000 r5: 0x0012cd00 r6: 0x38680878 r7: 0x2ffff3e4
r8: 0x00145798 r9: 0x001fc098 r10: 0x00000000 r11: 0x2ffff628
ip: 0x00000004 sp: 0x2ffff3cc lr: 0x3240357f pc: 0x32403532
Двоичные файлы загружены, когда произошел сбой
Binary Images:
0x1000 - 0x7fff +AsianDelight armv6 <df65e87046878ce496d0b1ac952247a1> /var/mobile/Applications/7A8FF881-A033-45B9-8F72-8478217821E9/AsianDelight.app/AsianDelight
0x6a000 - 0x6bfff dns.so armv7 <35ac487c38e38ed5810d5ed0d5c67546>/usr/lib/info/dns.so
0x3541000 -
Этот ответ основан на
сессия WWDC 2010 317 Понимание отчетов о сбоях на iPhone OS Мадхуванти Вайдья и Билла Диркса, которые я нашел благодаря Пьеру .
Вот PDF с сессии:
http://adcdownload.apple.com//wwdc_2010/wwdc_2010_video_assets__pdfs/317__understanding_crash_reports_on_iphone_os.pdf