首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何像我的例子一样从c#中读取堆栈跟踪?

如何像我的例子一样从c#中读取堆栈跟踪?
EN

Stack Overflow用户
提问于 2012-04-10 15:28:09
回答 3查看 1.1K关注 0票数 0

如何读取此堆栈跟踪?谁能解释我如何理解这一点,以修复错误。

代码语言:javascript
复制
"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"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-10 15:36:40

您无法从堆栈跟踪中获得太多信息。您可以读取Image名称和Function名称,前者是方法所在的程序集的名称,后者是方法的名称。

看起来在GeoCaching.Main.btnGoToPin_ClickTransitionStub方法中出现了异常,但是堆栈跟踪本身并不能告诉您是哪种类型的异常,或者在异常对象中放入了什么信息。

如果您已经使用调试信息编译了应用程序,您将在堆栈跟踪中获得更多信息,比如每个方法中的行号。

票数 1
EN

Stack Overflow用户

发布于 2012-04-10 15:37:04

从提供的信息可以看出,你在btnGoToPin_Click内部得到了一个异常。

要查看该错误的真正来源,请在该事件处理程序中添加一个try/catch,您很可能会找出错误。

祝好运

票数 0
EN

Stack Overflow用户

发布于 2012-04-10 15:44:41

如前所述,错误是在btnGoToPin_Click 中的某个地方,但应用程序是在发布模式下编译的,这就是为什么你没有完整的堆栈跟踪。

在发布模式下编译应用程序时,编译器会进行几次优化。第一个可能适用于您的情况的方法是将对小方法的调用替换为此方法的主体。这被称为“内联优化”。

因此,您的错误可能在btnGoToPin_Click中调用的另一个方法中,但由于内联而对堆栈跟踪不可见。

如果你想了解更多关于内联的信息,这里有一个nice article

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10084789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档