1

我正在将plCrashReporter集成到我的一个应用程序中以添加崩溃报告功能。本质上,如果我检测到崩溃,我会将崩溃报告收集为 NSData...

NSData *crashData;
NSError *error;
crashData = [crashReporter loadPendingCrashReportDataAndReturnError: &error];

crashData 现在包含整个报告。我可以将此 crashData 推送到 PLCrashReport 结构中并读出它的参数,但我宁愿将整个 blob 发送到我的服务器并在那里查看。当数据到达我时,它看起来像很多这样的:

706c6372 61736801 0a110801 1205342e 322e3118 02209184 82e80412
1b0a1263 6f6d2e73 6d756c65 2e545061 696e4465 76120531 2e362e32
1adb0208 00120618 d4a5f59d 03120618 bda5f59d 03120418 b5b96c12
0618df95 b09d0312 0618938b 9f9a0312 0618f9bb f68d0312 0618cdbc
f68d0312

我没有任何运气从中得到任何有意义的东西。我试过使用plcrashutil,但没有任何运气......

./plcrashutil convert --format=iphone example.plcrash 无法解码崩溃日志:无法解码无效的崩溃日志标头

我也尝试使用 Google 的 protobuf,但无法让它运行。

我确实有一个 dSYM 文件,但我什至还没有尝试象征这一点。

我正在运行 Mac OS X 10.6.5。

任何建议将不胜感激。谢谢!

4

1 回答 1

2

解决了这个问题!该报告以十六进制形式发送,但将其转换为二进制可以让您通过 plcrashutil 很好地运行它。这是我的HexToBinary.cpp实现。

于 2010-12-11T00:32:44.520 回答