使用 IntelliTrace 日志 (.iTrace) 文件调试应用程序
您可以直接从 IntelliTrace 日志文件 (.iTrace) 开始 IntelliTrace 调试会话。 此文件包含您的应用程序运行时,IntelliTrace 记录下的异常、Web 请求、线程、测试步骤、模块和其他系统信息。
监视工作中的 IntelliTrace:
要求
来自以下源之一的 .iTrace 文件:
Visual Studio 旗舰版中的 IntelliTrace 会话。 请参见 使用 IntelliTrace 记录代码执行以便在 Visual Studio 中进行调试。
Microsoft 测试管理器中的测试会话。 这会将 .iTrace 文件附加到 Team Foundation Server 工作项。 请参见 如何:收集 IntelliTrace 数据以帮助调试难题。
用于在 Visual Studio 外运行的应用程序的独立回收器。 请参见 使用独立收集器收集 Visual Studio 外部的 IntelliTrace 数据。
Visual Studio 2012.1:由包含 IntelliTrace 分析管理包的 System Center 2012 Service Pack 1 (SP1) - Operations Manager 监控的应用程序。 请参见 How to Configure Integration with IntelliTrace in System Center 2012。
开发计算机或其他计算机上具有 Visual Studio 旗舰版可打开 .iTrace 文件
备注
要使用 IntelliTrace 进行调试和逐句执行代码,必须拥有匹配的源文件和符号文件。确保符号文件是在 Visual Studio 符号路径中。否则,Visual Studio 无法解析源位置并显示消息“未找到符号”。请参见 查找符号 (.pdb)、源和二进制文件。
您希望做什么?
打开 IntelliTrace 日志文件
阅读 IntelliTrace 日志文件
从 IntelliTrace 日志文件开始调试
打开 IntelliTrace 日志文件
在搭载 Visual Studio 旗舰版的计算机上,打开 .iTrace 文件。
双击 Visual Studio 外的 .iTrace 文件或从 Visual Studio 内打开文件。
- 或 -
如果 .iTrace 文件附加到 Team Foundation Server 工作项,请执行该工作项中的以下步骤:
在**“所有链接”**下,找到 .iTrace 文件。 打开它。
- 或 -
在**“重现步骤”下,选择“IntelliTrace”**链接。
提示
如果在调试期间已关闭 .iTrace 文件,也可轻松将其重新打开。转至“调试”菜单,选择“IntelliTrace”、“显示日志摘要”。还可以在 IntelliTrace 窗口中选择“显示日志摘要”。只有在使用 IntelliTrace 进行调试时,此才可用。
阅读 IntelliTrace 日志文件
.iTrace 文件的下述小节部分内容只有当您从特定源(如测试管理器或带独立回收器的 SharePoint 2010 应用程序)收集数据时才会出现。
节 |
包含 |
集合源 (Visual Studio 旗舰版、测试管理器、独立回收器) |
---|---|---|
分析 |
仅限于 SharePoint 2010 应用程序。 在本部分,您可以检查 IntelliTrace 和 SharePoint 事件,如调试器事件、ULS 事件、异常以及回收器记录的其他数据。 |
Visual Studio 2012.1 的独立回收器 |
线程列表 |
在集合期间运行的线程 |
所有源 |
Web 请求 |
已提交至 IIS 应用程序池的 Web 请求。 此数据类似于 IIS W3C 日志文件中的收集的数据。 |
独立回收器:仅 IIS 承载 Web 应用程序 |
异常数据 |
集合期间由应用程序引发的异常,包括每个异常的完全调用堆栈 |
所有源 |
测试数据 |
从测试会话中测试步骤及其结果 |
测试管理器 |
系统信息 |
主机系统的设置和规范 |
所有源 |
模块 |
在集合期间加载的模块 |
所有源 |
从 IntelliTrace 日志文件开始调试
在大多数部分中,您可以查看事件或其他项,选择项目,然后选择**“启动调试”**。 这将在事件发生的位置和时间点启动 IntelliTrace 调试会话。
提示
要对数据进行排序,请选择列标题。要筛选数据,请使用搜索框。纯文本可以在所有列之间搜索除时间列。在“Web 请求”部分,还可以筛选搜索到特定列。
分析
对于 SharePoint 2010 应用程序,仅当您在 Visual Studio 2012.1 中使用回收器来记录数据时才显示本部分。 请参见 使用独立收集器收集 Visual Studio 外部的 IntelliTrace 数据。
在本部分,您可以执行以下任务:
使用 SharePoint 关联 ID 查找其匹配的 Web 请求和事件。 您可以选择一个事件,然后在该事件发生的位置和时间点开始调试。
检查回收器找到的所有未处理异常。 您可以选择一个异常,然后在该异常发生的位置和时间点开始调试。
备注
如果看到该信息“未找到符号”,Visual Studio 无法解析源位置。确保应用程序的符号 (.pdb) 文件是在 Visual Studio 符号路径中。请参见 查找符号 (.pdb)、源和二进制文件。
从 SharePoint 相关 ID 开始调试
从源复制 SharePoint 相关 ID。
例如:
在 .iTrace 文件中,在**“分析”**下,可以输入 SharePoint 相关 ID。 这可让您找到匹配的请求并查看其记录事件。
在**“请求事件”**下,检查事件。 从顶部开始,事件按发生顺序出现。
选择事件,查看其详细信息。
选择**“启动调试”**,在事件发生点开始调试。
您可以同时查看以下类型的 IntelliTrace 事件和 SharePoint 事件:
用户配置文件事件
这些事件在 SharePoint 加载用户配置文件以及用户配置文件属性被读取或更改时发生。
统一日志记录 (ULS) 事件
独立回收器记录 SharePoint ULS 事件的子集和以下字段:
IntelliTrace 字段
SharePoint ULS 字段
Id
EventID
级别
级别
类别 ID
类别 ID
类别
类别
区域
产品
Output
消息
相关 ID
相关 ID
从未处理异常开始调试
选择异常的 SharePoint 相关 ID。 异常按类型和调用堆栈分组。
(可选)展开**“调用堆栈”**以查看调用堆栈是否存在异常组。
选择**“调试异常”**,在异常发生的位置和发生之时开始调试。
有关演练,请参见 演练:使用 IntelliTrace 调试 SharePoint 应用程序。 对于回收器记录的数据种类,请参见 使用 IntelliTrace 记录代码执行以便在 Visual Studio 中进行调试。
线程列表
本部分显示目标进程中运行的记录线程。 您可以从选定线程的第一个有效 IntelliTrace 事件开始调试。
从特定线程开始调试
在**“线程列表”**下,选择线程。
在**“线程列表”的底部,选择“启动调试”**。 也可以双击线程。
从应用程序开始处开始调试,双击**“主线程”**。 请参见 使用 IntelliTrace 记录代码执行以便在 Visual Studio 中进行调试。
用户创建的线程数据可能比服务器创建的线程更加有用,并且能管理 IIS 托管的 Web 应用程序。
列 |
显示 |
---|---|
ID |
线程 ID 号 |
名称 |
线程名。 未命名的线程显示为“<未命名>”。 |
开始时间 |
创建线程的时间 |
结束时间 |
完成线程的时间 |
Web 请求
本部分显示提交至 IIS 应用程序池的 Web 记录请求。 您可以选择 Web 请求来检查为该请求记录的事件。 然后,您可以从特定事件开始调试。
默认情况下,Web 请求将按照其到达服务器的顺序由上到下地显示。
要查看特定 Web 请求的记录事件
在**“Web 请求”**下,选择 web 请求。
在**“Web 请求”的底部,选择“请求详细信息”**。 还可以双击 web 请求。
选定的 Web 请求的**“请求详细信息”**页将打开,并显示该请求记录的 IntelliTrace 事件。 从顶部开始,事件按发生顺序出现。 通过从类别列表中选择或通过使用搜索框来筛选事件。 请参见 使用 IntelliTrace 记录代码执行以便在 Visual Studio 中进行调试。
提示
在预览选项卡中打开“请求详细信息”页。当选择其他 Web 请求时,此选项将替换为新的“请求详细信息”页。若要保留预览选项,请在选项卡上选择“提升”。下一个 web 请求将在新的预览选项卡中打开。
从特定事件开始调试
在**“请求事件”**下,选择一个事件。
在**“请求事件”的底部,选择“启动调试”**。 也可以双击事件。
提示
如果 .iTrace 文件包含函数调用信息,则可以逐句通过代码从事件位置开始。您还可以查看参数和返回值。
若要收集调用信息:
-
在 Visual Studio 旗舰版中,配置 IntelliTrace 以收集调用信息。请参见 使用 IntelliTrace 记录代码执行以便在 Visual Studio 中进行调试。
-
对于 IntelliTrace 独立回收器,使用“collection_plan.ASP.NET.trace.xml”集合计划或自定义集合计划。请参见 使用独立收集器收集 Visual Studio 外部的 IntelliTrace 数据。
如果看到该信息“未找到符号”,Visual Studio 无法解析源位置。确保 Web 应用程序的符号 (.pdb) 文件是在 Visual Studio 符号路径中。请参见 查找符号 (.pdb)、源和二进制文件。
-
列 |
显示 |
---|---|
方法 |
HTTP 方法与请求一起提交 |
目标 URL |
目标 URL 与请求一起提交 |
所用时间(毫秒) |
服务器接收请求与结果保持到服务器的时间(以毫秒为单位) |
状态 |
在结果中返回 HTTP 状态代码 |
会话 ID |
会话 ID 使用 IIS 来区分用户。 “会话 ID”值仅用于区分会话用户和会话用户与 SessionID 的 ASP.NET 概念无关之间的递增的整数。 因此,web 请求使相同的“会话 Id”属于同一个用户会话。 |
客户端 IP |
通过已提交请求的 IIS 记录 IP 地址 |
用户代理 |
用户代理字符串的值与 HTTP 请求一起提交 |
开始时间 |
服务器接收请求的时间 |
结束时间 |
服务器响应客户端的时间 |
若要从用户角度查看数据,请筛选和分组 web 请求。 例如:
若查找失败,则由**“状态”**筛选请求。
通过**“目标 URL”或“会话 ID”**查看趋势或用户行为,组失败。
还可以筛选搜索到特定列。 键入没有空格、冒号和搜索值的列名。
例如,若要查找用于特定会话 ID 的 GET 方法的 Web 请求,键入:
Method:GET;SessionId:2
您可以使用每列一个筛选器。 若要查看您可以筛选那些列,请查看**“Web 请求”**搜索框的工具提示。
异常数据
在本部分,您可以检查由应用程序引发的记录异常。 默认情况下,顶部将显示最近的异常,因为异常通过**“事件时间”**按降序进行排序。
从特定异常开始调试
在**“异常数据”**下,选择一个异常。
在**“异常数据”的底部,选择“启动调试”**。 也可以双击异常。
引发异常时将启动调试。
提示
查找具有相同“类型”和“线程 ID”的多个异常并按顺序显示。这通常是由一个异常引发、捕获、然后再次引发。
若要查看是否是这样,请选择这些异常并查找调用堆栈。检查是否增加或减少调用堆栈。如果较短的堆栈与开始较长的调用堆栈相同,并且,“线程 ID”相同,则有可能重新引发相同的异常。使用最长的调用堆栈的异常可能最接近问题的根源。
列 |
显示 |
---|---|
类型 |
异常的 .NET 类型 |
消息 |
通过异常提供的消息 |
线程 ID |
引发异常的线程的 ID |
HResult |
异常中指定的错误代码。 此值在异常中设置是否可用。 |
事件时间 |
当引发异常时记录时间戳 |
调用堆栈 |
异常的调用堆栈。 若要查看调用堆栈,请选择该列表中的异常。 调用堆栈出现在以下异常列表。 |
测试数据
此部分使您可以在测试 app 的同时,检查测试管理器收集的数据。
从特定测试步骤开始调试
展开**“测试步骤网格”**。 选择测试步骤。
在**“测试步骤网格”的底部,选择“启动调试”**。 也可以双击测试步骤。
在选中测试步骤后,这将启动从第一个有效的 IntelliTrace 事件调试。
当存在测试数据时,IntelliTrace 将尝试解决用于执行测试运行的关联的 Team Foundation Server 生成。 如果找到生成,则自动解决应用程序的关联符号。
字段 |
显示 |
---|---|
测试会话 |
记录测试会话。 通常,只有一个。 如果使用手动探索测试创建测试数据,则此列表为空。 |
测试用例 |
从所选测试会话中测试用例。 如果使用手动探索测试创建测试数据,则此列表为空。 |
测试步骤网格 |
使用通过或失败的测试结果记录测试步骤 |
系统信息
本部分展示了有关承载 app 的系统的详细信息,例如,硬件、操作系统、环境和特定于进程信息。
模块
本部分展示了目标进程加载的模块。 按加载的顺序显示模块。
列 |
显示 |
---|---|
模块名 |
模块文件名 |
模块路径 |
加载模块的磁盘位置 |
模块 ID |
模块的唯一标识符是特定于版本的并分配给匹配的符号 (PDB) 文件。 请参见 [OBSOLETE] 如何:指定符号位置和加载行为。 |
在何处可以获取更多信息?
使用独立收集器收集 Visual Studio 外部的 IntelliTrace 数据
使用 IntelliTrace 记录代码执行以便在 Visual Studio 中进行调试
通过使用 IntelliTrace 记录代码执行来调试应用程序
博客
Visual Studio ALM + Team Foundation Server
论坛
Visual Studio 2010 2010 Videos(Visual Studio 2010 视频)
指南
使用 Visual Studio 2012 持续传送的测试–第 6 章:测试工具箱