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

调试带/不带pdb文件的C#生产应用程序,c#,stack-trace,pdb,C#,Stack Trace,Pdb,我构建了一个处理错误并返回以下错误消息的应用程序: System.NullReferenceException: Object reference not set to an instance of an object. at MyApp.Submit_Click(Object sender,EventArgs e) 我没有得到任何堆栈跟踪,也没有发现异常未正确抛出的问题 关于如何获取这些信息,我有几个问题: 我正在录制exception.ToString(),它通常会在我的代码中显

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

System.NullReferenceException:  
Object reference not set to an instance of an object. 
  at MyApp.Submit_Click(Object sender,EventArgs e)
我没有得到任何堆栈跟踪,也没有发现异常未正确抛出的问题

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

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

  • 谢谢你的帮助

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

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

    at MyApp.Submit_Click(Object sender,EventArgs e)
    

    在MyApp中发布代码。提交\单击()。既然您知道这个方法,为什么不能设置一个断点并调试到其中呢?