如何读取此堆栈跟踪?谁能解释我如何理解这一点,以修复错误。
"Frame Image Function Offset
0 coredll.dll xxx_RaiseException 19
1 mscoree3_7.dll 436488
2 mscoree3_7.dll 386545
3 mscoree3_7.dll 540936
4 TransitionStub 0
5 GeoCaching.Main.btnGoToPin_Click 312
6 System.Windows.Controls.Primitives.ButtonBase.OnClick 132
7 System.Windows.Controls.Button.OnClick 120
8 System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp 228
9 System.Windows.Controls.Control.OnMouseLeftButtonUp 100
10 MS.Internal.JoltHelper.FireEvent 896
11 mscoree3_7.dll 429164
12 mscoree3_7.dll 430528
13 mscoree3_7.dll 610803
14 mscoree3_7.dll 374593
15 0
16 agcore.dll CCoreServices::CLR_FireEvent 385
17 npctrl.dll CControlBase::ScriptCallback 435
18 npctrl.dll CXcpDispatcher::OnScriptCallback 547
19 npctrl.dll CXcpDispatcher::OnReentrancyProtectedWindowMessage 479"发布于 2012-04-10 15:36:40
您无法从堆栈跟踪中获得太多信息。您可以读取Image名称和Function名称,前者是方法所在的程序集的名称,后者是方法的名称。
看起来在GeoCaching.Main.btnGoToPin_Click或TransitionStub方法中出现了异常,但是堆栈跟踪本身并不能告诉您是哪种类型的异常,或者在异常对象中放入了什么信息。
如果您已经使用调试信息编译了应用程序,您将在堆栈跟踪中获得更多信息,比如每个方法中的行号。
发布于 2012-04-10 15:37:04
从提供的信息可以看出,你在btnGoToPin_Click内部得到了一个异常。
要查看该错误的真正来源,请在该事件处理程序中添加一个try/catch,您很可能会找出错误。
祝好运
发布于 2012-04-10 15:44:41
如前所述,错误是在btnGoToPin_Click 中的某个地方,但应用程序是在发布模式下编译的,这就是为什么你没有完整的堆栈跟踪。
在发布模式下编译应用程序时,编译器会进行几次优化。第一个可能适用于您的情况的方法是将对小方法的调用替换为此方法的主体。这被称为“内联优化”。
因此,您的错误可能在btnGoToPin_Click中调用的另一个方法中,但由于内联而对堆栈跟踪不可见。
如果你想了解更多关于内联的信息,这里有一个nice article
https://stackoverflow.com/questions/10084789
复制相似问题