使用 IntelliTrace 进行调试

此主题仅适用于 Visual Studio 2010 旗舰版。

在 Microsoft Visual Studio 2010 旗舰版中,可以使用 IntelliTrace 进行调试,与传统调试器相比,它可以提供应用程序的增强的图片。 传统的调试器会向您显示应用程序当前时间的状态以及有关过去发生的事件的有限信息。 您必须根据应用程序当前时间的状态推断过去发生的事件,或重新启动应用程序以重新创建过去的事件。 利用 IntelliTrace,您可以实际看到过去发生的事件以及发生这些事件所在的上下文, 从而可以减少调试应用程序所需的重新启动的次数,并降低重新运行应用程序时错误无法重现的可能性。

IntelliTrace 将扩展并增强您已习惯的 Visual Studio 实时调试体验。 您仍可以使用所有熟悉的 Visual Studio 调试器功能。 IntelliTrace 以不可见的方式在后台运行,并记录调试信息。 如果希望回顾应用程序过去的状态,可以进入 IntelliTrace 模式。 在此模式下,可以导航到记录了感兴趣的事件的不同时间点。

此外,还可以加载和调试 IntelliTrace 或测试管理器创建的 IntelliTrace 文件(扩展名为 .iTrace),利用这些 IntelliTrace 文件,您可以使用 IntelliTrace 的所有功能执行崩溃后调试。

如果使用默认设置,IntelliTrace 对应用程序性能的影响将为最小。 因此,默认情况下,IntelliTrace 处于打开状态。 即使您不打算在开始调试会话时使用 IntelliTrace,系统也会自动收集 IntelliTrace 信息,并在您需要时提供。

加快调试代码

IntelliTrace 可通过缩短调试周期来节省时间。 举例来说,假设您正在调试一个在初始化期间读取某注册表值的应用程序,但该注册表项不存在。 该问题当时带来的影响可能并不显著,但在较长一段时间后运行应用程序时,问题就会凸显出来。 这时,您必须确定未读取注册表值的原因。 通常的方法是重新启动应用程序,并在注册表访问附近设置一个断点。 重新运行应用程序需要花一些时间。 利用 IntelliTrace,可以避免许多诸如此类的重新启动操作。 您可以使用 IntelliTrace 开始进行调试(而不是重新运行应用程序),从而使您能够回顾所有注册表访问,选择感兴趣的注册表访问,并检查发生该注册表访问时应用程序的状态。 在调试诸如异常或文件访问错误等其他问题时,也可以像这样节省时间。 有关更多信息,请参见使用 IntelliTrace 加快代码调试

调试非可重现错误

利用 IntelliTrace,可以调试在其他情况下不可重现的错误和崩溃。 可以调试由 IntelliTrace 或测试管理器创建的日志文件。 测试人员可以将日志文件从测试管理器直接链接到可以分配给开发人员的 Team Foundation Server 工作项或 Bug。 IntelliTrace 和测试管理器通过这种方式集成到团队工作流中。

调试 IntelliTrace 文件时,其流程与调试转储文件类似。 但是,IntelliTrace 文件提供的信息比传统转储文件提供的信息多得多。 转储文件提供某个时刻(通常是正好发生崩溃时)应用程序状态的快照。 利用 IntelliTrace,不仅可以回顾历史记录以了解该应用程序的状态,还可以回顾应用程序早期运行阶段发生的事件。 这样一来,从日志文件进行调试比从转储文件进行调试更为快速方便。

有关更多信息,请参见使用 IntelliTrace 调试非可重现错误

支持的应用程序和调试方案

IntelliTrace 支持调试使用 .NET 版本 2.0、3.0、3.5 或 4 的 Visual Basic 和 C# 应用程序。 您可以调试大多数应用程序,包括使用 ASP.NET、Windows 窗体、WPF、Windows 工作流和 WCF 创建的应用程序。 IntelliTrace 不支持调试 C++、脚本或其他语言。 实验证明,它支持调试 F# 应用程序。

利用 IntelliTrace,可以调试从 Visual Studio 启动的应用程序以及由 IntelliTrace 或测试管理器创建的 IntelliTrace 文件。 您不能对从 Visual Studio 以外启动的应用程序以及使用**“附加到”**命令调试的应用程序使用 IntelliTrace。 IntelliTrace 不支持远程调试在其他计算机上运行的应用程序。

IntelliTrace 支持通过测试管理器创建的跟踪调试日志文件对 SharePoint 应用程序和 64 位应用程序进行崩溃后调试。 它不支持调试从 Visual Studio 启动的 SharePoint 应用程序或 64 位应用程序。

IntelliTrace 不支持调试 Silverlight、Xbox 或 Windows Mobile 应用程序。

收集级别

当 IntelliTrace 处于启用状态时,将在每个调试会话期间自动收集信息。 利用此 IntelliTrace 信息,可以在需要时从实时调试转换为使用 IntelliTrace 进行调试。 所收集信息的类型取决于在 Visual Studio 级别设置的选项。 这些收集选项适用于所有项目和解决方案。 在调试会话和 Visual Studio 会话之间将始终保留这些选项。

默认情况下,IntelliTrace 仅收集所选 IntelliTrace 事件的信息。 如之前所述,收集此默认信息对应用程序性能的影响将为最小。

为了运用更多调试功能,除了收集 IntelliTrace 事件外,还可以选择收集调用记录及调用的参数和返回值。 此额外调试功能会降低性能。 有关诊断事件和收集选项的更多信息,请参见收集 IntelliTrace 信息

请参见

概念

执行常规开发任务

其他资源

IntelliTrace 扩展性的 API 参考