[英]How do I interpret this C# stack trace? Error on line zero
我在日志(C#ASP.NET應用程序)的堆棧頂部遇到“以下內容,未將對象引用設置為對象的實例”錯誤:
@Web.UI.UserBrochurePage.Page_Load(Object,EventArgs)+25 Line: 0
@System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr,Object,Object,EventArgs)+0 Line: 0
@System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object,EventArgs)+26 Line: 0
@System.Web.UI.Control.OnLoad(EventArgs)+38 Line: 0
@System.Web.UI.Control.LoadRecursive()+35 Line: 0
@System.Web.UI.Page.ProcessRequestMain(Boolean,Boolean)+1160 Line: 0
我不明白的事情:
這是處於發布模式的生產系統,但是我通常仍然可以從堆棧跟蹤對象中獲取行號。 不幸的是,在這種情況下,錯誤不會在我們的調試系統上重現,因此我一直竭盡所能。
任何意見,將不勝感激。
謝謝湯姆
我認為您在stacktrace中的每個調用都看到“第0行”,因為您的代碼是在Release模式而不是Debug模式下編譯的。 在調試模式下,您的代碼將被編譯為包含調試符號文件(.pdb)。 當此文件可用時,您的異常堆棧跟蹤將准確表示行號。
無論如何,只有Page_Load的行號才有意義,因為其余的是框架程序集的內部調用。
每個stacktrace條目之后的+ xx數字顯然是“ 本機代碼的字節偏移 ”。 我確實承認,最初看來是執行時間,以滴答或毫秒為單位。
有關了解偏移量的信息,請參見此問題 。 我懷疑您真的應該只使用調試信息來構建生產二進制文件,這比檢查IL確定偏移量表示哪一行要容易得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.