3

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

4

7 回答 7

9

Visual Studio 中有一个内置工具,称为debugger

您在代码中设置断点并单步执行。

.NET 框架还在System.Diagnostics命名空间中提供跟踪类。

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

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

于 2010-01-28T12:02:01.720 回答
4

还有 JetBrains dotTrace非常棒。

于 2010-01-28T12:04:02.670 回答
1

您能否在您的代码中将调试信息(例如,“现在采用方法 1”)写入日志文件?

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

于 2010-01-28T12:01:12.830 回答
1

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

于 2010-01-28T12:01:48.913 回答
0

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

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

于 2010-01-28T12:08:47.463 回答
0

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

于 2010-01-28T12:43:36.323 回答
0

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

如果您使用的是 Window2008,那么 ETW 跟踪可以提供调用堆栈。有来自 IIS、FileSystem、Registry、Threading 和一切可能的 ETW 跟踪。这是一篇关于此的 MSDN文章,为了获得托管调用堆栈,我有几篇文章

于 2010-04-07T00:47:47.807 回答