如何在C#中跟踪代码执行

时间:2010-01-28 11:58:02

标签: c# asp.net trace execution

如何跟踪C#应用程序的代码执行?有没有可用的工具?我的生产网站有问题。

7 个答案:

答案 0 :(得分:8)

视觉工作室中有一个名为debugger的内置工具。

您可以在代码中设置断点并逐步完成。

.NET框架还在tracing命名空间中提供了System.Diagnostics个类。

对于没有代码支持跟踪的正在运行的应用程序,您可以使用分析器(例如redgate ANTZ分析器或JetBrains dotTrace),但这会影响性能。

如果您有内存转储(来自崩溃或manually induced one),您可以使用windbg来分析转储。这将包括跟踪信息。

答案 1 :(得分:4)

还有JetBrains dotTrace非常棒。

答案 2 :(得分:1)

您可以在代码中将调试信息(例如,“现在在方法1中”)写入日志文件吗?

您可能会发现log4netPostSharp等工具很有帮助。

答案 3 :(得分:1)

您可以使用一些外部日志库(例如Log4Net),甚至可以使用Visual Studio执行远程调试和单步执行代码。

答案 4 :(得分:0)

在Visual Studio 2005+中按F11而不是F5来运行应用程序。

或者您可以插入断点(单击要断开的行的左侧,以便VS显示红点)。

答案 5 :(得分:0)

Visual Studio有很好的调试工具,但是如果这个工具太不合适那么你可以从静态代码分析工具开始,这有助于分析代码分支。

答案 6 :(得分:0)

追踪生产问题最好的选择是ETW追踪。特别是在ASP.NET中,有内置的提供程序可以帮助识别Perf问题。

如果您使用的是Window2008,那么ETW跟踪可以提供调用堆栈。从IIS,文件系统,注册表,线程和一切可能的ETW跟踪。这是一个关于此问题的MSDN article,为了获得托管调用堆栈,我很少posts