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

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

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

我没有得到任何堆栈跟踪,并且没有看到没有正确抛出异常的问题.

关于如何捕获此信息,我有几个问题:

>我正在记录exception.ToString(),它通常在我的代码中给出异常,内部异常和stacktrace.我需要.pdb文件来获取堆栈跟踪,还是.pdb仅获得添加行号?
>我在生产中带有关联的dll的.pdb文件,但我相信pdb文件来自较早的版本.这可能会导致捕获调试信息时出现问题,并且比根本没有.pdb文件更糟吗?

谢谢您的帮助!

解决方法:

不,您不需要pdb来查看堆栈跟踪,但是将需要它来获取行号.并且,如果您使用的版本不同步,则最终可能会报告不正确的行号.

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

at MyApp.Submit_Click(Object sender,EventArgs e)
上一篇:python的pep8编码规范和代码调试(pdb,ipdb,debug)


下一篇:Oracle 12.2新特性: PDB级闪回数据库(Flashback PDB)