c# - 我如何解释此 C# 堆栈跟踪?零行错误

标签 c# asp.net exception stack-trace

我在日志(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 

不明白的地方:

  1. 每个错误都在第零行
  2. 最有趣的错误(在我的代码中排名第一)后面有一个“+25”。我一直不明白这些是什么意思,虽然我假设它们是行中的字符偏移量……如果是这样的话,它不会指向任何有意义的东西(参数声明的中间)。

这是一个处于 Release模式的生产系统,但我通常仍然可以从堆栈跟踪对象中获取行号。不幸的是,在这种情况下,错误不会在我们的调试系统上重现,所以我只能尽力而为。

如有任何建议,我们将不胜感激。

谢谢, 汤姆

最佳答案

我认为您在堆栈跟踪中看到每个调用的“第 0 行”,因为您的代码是在 Release模式而不是 Debug模式下编译的。在 Debug模式下,您的代码将被编译为包含调试符号文件 (.pdb)。当此文件可用时,您的异常堆栈跟踪将准确地表示行号。

在任何情况下,只有您的 Page_Load 的行号是重要的,因为其余的都是框架程序集的内部调用。

每个堆栈跟踪条目后的 +xx 数字显然是“byte offset into native code”。我承认,最初在我看来,这是以滴答或毫秒为单位的执行时间。

关于c# - 我如何解释此 C# 堆栈跟踪?零行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/771272/

相关文章:

java - 套接字问题 c# 客户端到 java 服务器

c# - 属性大括号的换行符选项(C# VS 2005)

java - Spring Boot 中多个项目中的错误处理程序

c++ - 手动加载 DLL 中的异常处理

c# - 如何将 gridview 绑定(bind)到数组

c# - 使用 winforms 和 C# 在 ResumeLayout() 上静默崩溃 Win7 64bit

C# ExecuteNonQuery 不更新数据库

c# - 从代码调用时的SQL存储过程参数

asp.net - 对这个操作使用线程本地存储安全吗?

c# - 回发后如何检查表单