使用/不使用pdb文件调试C#生产应用程序

本文关键字:调试 应用程序 文件 pdb 使用 | 更新日期: 2023-09-27 18:19:39

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

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. 我有一个生产中的.pdb文件和相关的dll,但我相信这个pdb文件来自旧版本。这会不会导致捕获调试信息的问题,并且比根本没有.pdb文件更糟糕

谢谢你的帮助!

使用/不使用pdb文件调试C#生产应用程序

不,您不需要pdb来查看堆栈跟踪,但您需要它来获取行号。而且,如果你有一个不同步的版本,你可能会报告不正确的行号。

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

at MyApp.Submit_Click(Object sender,EventArgs e)