如何解决如何获取代码或堆栈跟踪?
| 我试图找出一些代码的执行路径(即它命中了哪些方法以及以什么顺序执行)。是否有工具或通过Visual Studio或web.config表示程序正在执行的功能顺序的工具? 现在,我将调试点放置在某些区域,并希望它能击中正确的区域,但是在某些情况下,这是一个漫长而缓慢的繁琐过程。解决方法
如果您想弄清楚什么代码正在调用特定方法,则可以尝试System.Diagnostics.StackFrame:
var s = new System.Diagnostics.StackFrame();
Console.WriteLine(s.ToString());
StackFrame将为您提供当前线程的堆栈跟踪。
请参阅MSDN:http://msdn.microsoft.com/zh-cn/library/system.diagnostics.stackframe.aspx
如果您正在寻找更多细节,那么探查器可能是您更好的选择。我已经使用了JetBrains的dotTrace,它确实提供了很多细节。
编辑:
ASP.NET还提供了跟踪功能。如果将以下内容添加到web.config中:
<system.web>
<trace enabled=\"true\" />
...
</system.web>
然后在页面指令中添加“ 2”:
<%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"MyPage.aspx.cs\" Trace=\"true\" %>
那么当您查看页面时,您会在页面底部附加一堆跟踪输出。
希望能有所帮助。
,某些.NET分析工具可以提供这种分析(通常称为“调用图分析”)。我知道的一个是ANTS分析器。
但是,如果您要查找每个执行的方法的详细跟踪以及传递了哪些参数-您可能会发现使用任何工具都很难做到。如果这是您的实际需要,则可能需要使用诸如PostSHARP之类的工具来在每个方法调用上编织跟踪逻辑(可以使用MethodBoundaryAspect来完成)。
,教程:
使用ASP.NET进行丰富的自定义错误处理
ASP.NET Web应用程序的异常处理建议
处理程序和库
log4net
埃尔玛
,好吧,我经常使用的一种方法是在函数中添加printf
或OutputDebugString
(假设您有源代码)。通过使用一些条件定义,可以使这些调试信息仅显示在调试版本中。
,运行时流(由我开发)显示.NET程序正在经历的功能顺序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。