如何从PLCrashReporter获取完整的崩溃日志

4

我从PLCrashReporter中解码plcrash日志,但有些信息不完整:

Incident Identifier: TODO
CrashReporter Key:   TODO
...
Exception Type:  SIGBUS
Exception Codes: BUS_ADRERR at 0x1

但我从Organizer得到的崩溃日志是:

Incident Identifier: 79A8A9E4-9FD2-4A53-B43F-DC32C47AA073
CrashReporter Key:   a767dd53c828e7977d7770d6d5c3c4238a2b525e
...
Exception Type:  EXC_CRASH (SIGSEGV)
Exception Codes: 0x00000000, 0x00000000

我该如何获取正确的故障ID和CrashReporter密钥(我确实需要这个)?谢谢。

顺便提一下,PLCrashReporter的日志未显示崩溃堆栈的线程名称。


2
你应该在 PLCrashReporter 网站上发布这个问题(或者先查看现有的问题)。您不需要 Incident Id 或 CrashReport Key。我可以直接解析PLCrashReporter崩溃日志,没有任何问题。 - rmaddy
有人对这个问题有答案吗?我观察到的问题是,Xcode似乎使用这些字段来唯一标识报告。因此,如果您尝试符号化两个报告,两者都带有TODO,它不会将它们识别为不同的报告,并且似乎只会忽略第二个。 - AAV
我修改了源代码来解决问题,但我不确定我的工作是否做得好,一些崩溃堆栈似乎不正确。 - Alex Lee
1个回答

1

Swift 代码:

let crash = PLCrashReportTextFormatter.stringValueForCrashReport(report, withTextFormat: PLCrashReportTextFormatiOS)
print("Report: \(crash)")

Objective C 代码:

NSString *crash = [PLCrashReportTextFormatter stringValueForCrashReport:report withTextFormat:PLCrashReportTextFormatiOS];
NSLog(@"Report: %@", crash);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接