如果来自Microsoft代码的异常被抛出,我该如何找出最初引起异常的原因?

4
我在一个DockPanel的不同面板上有两个包含DataGridView的控件。如果其中一个处于编辑模式并切换到另一个面板,我会从DataGridViewEndEdit()方法中抛出一个NullReferenceException异常。堆栈跟踪没有深入到更深层次,异常也没有包含更多信息。
我已经查看了反射器中的该方法,但我没有看到任何明显的空值。我怀疑问题实际上在我的代码中,但异常是从Microsoft的代码中重新抛出的,这会重置堆栈跟踪。如何找出最初导致异常的原因?
3个回答

5
如果您怀疑MS代码中存在错误,您可以从符号服务器下载调试符号,加载它们并在调试时跟踪它?像这样。请注意,这些符号受到各种许可证的约束。如果您参与“mono”贡献等工作,则可能会受到影响。

1
你有查看 InnerException 属性吗?

1
按照以下步骤设置 MS 符号服务器源代码服务器1。将调试器设置为在引发 NullReferenceException 时中断。然后,您将获得用于调试的完整源代码,或者至少获得完整的堆栈跟踪信息。

1注意,所列的 QFE 已包含在 SP1 中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接