2010-12-09 2 views
1

Я интегрирую plCrashReporter в одно из моих приложений, чтобы добавить функцию отчетности о сбоях. По существу, если я обнаруживаю аварии я собираю отчет о аварии, как NSData ...Декодирование данных protobuf от plCrashReporter

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 конвертировать --format = iphone example.plcrash Не удалось расшифровать журнал сбоев: Не удалось расшифровать заголовок журнала недействителен аварии

Я также пытался использовать protobuf Google, но не смог его запустить.

У меня есть файл dSYM, но я даже не пытаюсь это символизировать.

Я бегу Mac OS X 10.6.5.

Любой совет будет очень признателен. Благодаря!

ответ

2

Получил это разобрал! Отчет отправляется через шестнадцатеричный код, но преобразование его в двоичный файл позволяет вам приятно запускать его через plcrashutil. Вот моя реализация HexToBinary.cpp.

 Смежные вопросы

  • Нет связанных вопросов^_^