2011-08-26 81 views
1

我試圖掛接一個實時崩潰報告服務,如airbrake,bugsenseTestFlight'sSDK,但我想知道使用LLVM編譯器編譯您的MonoTouch項目時崩潰生成的崩潰報告是否有用。使用LLVM編譯時,調試符號是否有用?

當你正在配置iPhone版本時,如果你進入proj settings> iPhone Build> Advanced選項卡,它會顯示「實驗性,與調試模式不兼容」。這就是爲什麼我從崩潰報告中質疑堆棧跟蹤的原因。

回答

0

有幾點考慮這裏:

一)使調試您構建:

  • 告訴編譯器發出調試符號(例如的.mdb文件),其中包括很多信息(變量名稱,範圍,行號......);
  • 爲您的應用程序添加額外的調試代碼(例如,將設備上的應用程序連接到Mac上的調試器);
  • 告訴編譯器(例如AOT)禁用某些優化(這會使調試更加困難);

這會導致更大,更慢的應用程序中包含大量您不希望人們訪問的數據(例如,如果擔心逆向工程)。對於發佈它是一個沒有贏得大家的情況。使用LLVM編譯器將不會調試模式下工作

B)。這通常不是問題,因爲在調試時,您可能希望構建過程儘可能快(並且LLVM構建起來較慢)。一個有問題的案例是如果你的bug只在LLVM版本上顯示。

c)託管堆棧跟蹤的可用性不需要調試符號。它們是從.dll和.exe文件中提供的元數據構建而成的。但是,當調試符號可用時,堆棧跟蹤將包括每個堆棧幀的行號和文件名。 d)我從來沒有使用過你提到過的工具,但我相信它們是有用的:-)你可能想問一下關於它們的具體問題(關於MonoTouch)。否則,我認爲值得測試,看看細節的級別是否有所不同(如果額外的細節對你有幫助)。國際海事組織我懷疑它會給你帶來比實際「運輸」「調試」版本「成本」更多的成本。

  • 首先在您的應用程序中創建一個「崩潰我」功能;
  • 然後比較來自非LLVM「發佈」和「調試」構建的報告結果;
  • 下一步比較非LLVM「版本」和LLVM「版本」版本;

這是很好的來發表您以上的經驗:在這裏,MonoTouch的郵件列表和/或博客條目:-)

+0

是的,我希望有人能告訴我,讓我不會有自己測試一下。猜猜我運氣不好。 –

相關問題