从plCrashReporter解码protobuf数据

时间:2010-12-09 12:35:01

标签: ios4 crash-reports

我正在将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。

非常感谢任何建议。谢谢!

1 个答案:

答案 0 :(得分:2)

把这个整理好了!报告以十六进制形式发送,但是将其转换为二进制文件允许您通过plcrashutil很好地运行它。这是我的HexToBinary.cpp实施。