2010-01-28 89 views

回答

1

您可以在您的代码中将调试信息(例如“now at method 1”)写入日志文件吗?

您可能会找到像log4netPostSharp这样的工具很有帮助。

1

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

8

在visual studio中有一个内置工具,名为debugger

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

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

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

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

+0

Fredrik,有选项提供迹线开关写出信息,无论发布/调试版本和远程调试选项。 – Ian 2010-01-28 12:09:17

+0

@Ian:我的评论并不完全正确,所以我删除了它并且提高了intead(当我实际阅读完整的答案时) – 2010-01-28 12:10:12

+0

+1提到了内置的跟踪日志支持;我经常发现引入外部日志记录库是过分的。 – 2010-01-28 12:13:13

4

还有JetBrains dotTrace这是优秀的。

0

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

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

0

Visual Studio拥有很棒的调试工具,但是如果这太糟糕了,那么您可以从静态代码分析工具开始,它有助于分析代码分支。

0

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

如果您使用的是Window2008,那么ETW跟踪可以给出调用堆栈。有从IIS,文件系统,注册表,线程和一切可能的ETW跟踪。这里是一个MSDN article在这个,并获得托管的电话栈我有几个posts