2015-12-17 48 views
3

我已經發布了一個使用Xamarin和Xamarin Insights的應用程序。當應用程序崩潰時,洞察現在已成功通知我,但我只能得到非常模糊的堆棧跟蹤,沒有行號,這使得往往無法追查錯誤。Xamarin洞察行號

有什麼辦法可以設置發佈版本,以便崩潰將包含堆棧跟蹤,包括行號?

謝謝 大衛

回答

1

編號:Why don't I have line numbers in my stack trace?

爲什麼不讓我在我的堆棧跟蹤行號?

在.NET中,您需要在您的dll旁邊有正確的調試信息(PDB文件)。目前在iOS上,無法打包它們,但我們正在制定解決方案來上傳它們,類似於dSYM如何發送給我們。在其他平臺上,您可以捆綁.pdb文件以獲取行號。在使用異步時,還有一些已知的獲取行號的問題。我們會在我們取得進展的同時更新FAQ。

儘管沒有像使用行號的正確堆棧跟蹤那樣有用,但您可以使用以下片段通過爲Insights.Report製作一個簡單包裝來自行收集一些行號和文件名信息。它使用內置的.NET Callerattributes來告訴你報告被調用的地方。

public static void Report (Exception exp, 
         ReportSeverity severity= ReportSeverity.Error,   [CallerMemberName] string memberName = "",    [CallerFilePath] string sourceFilePath = "",   [CallerLineNumber] int sourceLineNumber = 0) 
{ Insights.Report (exp, new Dictionary<string,object> {  {"Method",memberName},  
    {"File Name",sourceFilePath},  
    {"Line Number",sourceLineNumber}, 
    }, severity); 
} 
+0

我也發現了,但是它是如何工作的?我在哪裏以及如何上傳/打包這些pdb文件?我理解小代碼片段的方式是,這隻適用於捕獲的異常,但如果拋出未捕獲的異常則不適用 - 是否正確? – dsky

+0

在Android上,您可以將它們捆綁到您的'.apk' – SushiHangover

+0

這些pdb文件的位置?我查看了整個輸出結果,但找不到任何結果。他們叫什麼?有多重? – dsky