2010-12-09 27 views
1

我正在將plCrashReporter整合到我的一個應用程序中以添加崩潰報告功能。實質上,如果我檢測到崩潰,我收集崩潰報告爲NSData ...從plCrashReporter解碼protobuf數據

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,但無法讓它運行。

我確實有一個dSYM文件,但我甚至沒有試圖用這個符號來說明。

我正在運行Mac OS X 10.6.5。

任何意見將大大,非常感謝。謝謝!

回答

2

Got this top out!報告通過十六進制發送,但將其轉換爲二進制文件可以讓您通過plcrashutil很好地運行它。這是我的HexToBinary.cpp實現。