【问题标题】:Debugging C# production application with/without pdb file使用/不使用 pdb 文件调试 C# 生产应用程序
【发布时间】:2012-01-06 04:26:32
【问题描述】:

我构建了一个正在处理错误并返回以下错误消息的应用程序:

System.NullReferenceException:  
Object reference not set to an instance of an object. 
  at MyApp.Submit_Click(Object sender,EventArgs e)

我没有得到任何堆栈跟踪,也没有看到异常未正确抛出的问题。

我有几个关于如何获取这些信息的问题:

  1. 我正在记录exception.ToString(),它通常会在我的代码中提供异常、内部异常和堆栈跟踪。我需要 .pdb 文件来获取堆栈跟踪,还是 .pdb 只会添加行号?
  2. 我有一个带有关联 dll 的 .pdb 文件正在生产中,但我相信该 pdb 文件来自旧版本。这是否会导致捕获调试信息出现问题,并且比根本没有 .pdb 文件更糟糕?

感谢您的帮助!

【问题讨论】:

  • 在 MyApp.Submit_Click() 中发布代码。既然知道方法,为什么不直接设置断点调试进去呢?

标签: c# stack-trace pdb


【解决方案1】:

不,您不需要 pdb 来查看堆栈跟踪,但您需要它来获取行号。而且,如果您的版本不同步,您最终可能会报告错误的行号。

您的错误消息确实向您显示了堆栈跟踪,只是没有太多,因为它是一个按钮单击:

at MyApp.Submit_Click(Object sender,EventArgs e)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 2023-04-03
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多