从 IntelliTrace 日志 (.iTrace) 文件开始调试时,请转到应用程序执行中的特定点。 此文件可以包含运行应用时 IntelliTrace 记录的性能事件、异常、线程、测试步骤、模块和其他系统信息。
请确保你已具备:
对应用程序代码的源文件和符号 (.pdb) 文件进行匹配。 否则,Visual Studio 无法解析源位置并显示消息“找不到符号”。请参阅 指定符号(.pdb)和源文件 ,并在 部署后诊断问题。
Visual Studio Enterprise(但不是专业版或社区版)在你的开发计算机或其他计算机上打开 .iTrace 文件
以下源之一的 .iTrace 文件:
来源 看 Visual Studio Enterprise 中的 IntelliTrace 会话(但不是专业版或社区版) IntelliTrace 功能 Microsoft 监视代理可以单独使用或与 System Center 2012 R2 Operations Manager 一起使用,以部署和运行 ASP.NET Web 应用程序以及 SharePoint 应用程序。 - 诊断部署后的问题
- System Center 2012 R2 Operations Manager 的新增功能
您希望做什么?
打开 IntelliTrace 日志
在具有 Visual Studio Enterprise 的计算机上,打开 .iTrace 文件。
双击 Visual Studio 外部的 .iTrace 文件,或从 Visual Studio 内部打开该文件。
- 或 -
如果 .iTrace 文件被附加到 Team Foundation Server 工作项,请按照工作项中的以下步骤操作:
在 “所有链接”下,找到 .iTrace 文件。 打开。
- 或 -
在 “重现步骤” 下,选择 IntelliTrace 链接。
小窍门
如果在调试期间关闭了 IntelliTrace 文件,则可以轻松重新打开它。 转到 “调试 ”菜单,选择 “IntelliTrace”, “显示日志摘要”。 还可以在 IntelliTrace 窗口中选择“显示日志摘要”。 仅在使用 IntelliTrace 进行调试时才可用。
了解 IntelliTrace 日志
仅当从特定源(例如 SharePoint 应用程序)收集数据时,才会显示 .iTrace 文件中的以下部分。
| 节 | Contains | 集合源 |
|---|---|---|
| 性能冲突 | 超过配置阈值的函数调用的性能事件 | Microsoft 监视代理,无论是独立收集器还是与 System Center 2012 R2 Operations Manager 一起用于托管在 IIS 上的 ASP.NET Web 应用程序。 |
| 异常数据 | 异常,包括每个异常的完整调用堆栈 | 所有源 |
| 分析 | 仅适用于 SharePoint 2010 和 SharePoint 2013 应用程序。 诊断 IntelliTrace 和 SharePoint 事件,例如调试器事件、ULS 事件、未经处理的异常和其他Microsoft监视代理记录的数据。 | Microsoft 监视代理,无论是作为独立收集器使用,还是与 System Center 2012 R2 Operations Manager 一起使用 |
| 系统信息 | 主机系统的设置和规范 | 所有源 |
| 线程列表 | 集合期间运行的线程 | 所有源 |
| 模块 | 加载在目标进程中的模块,按其加载的顺序排列。 | 所有源 |
| Web 请求 | 生产 IIS Web 应用程序和 SharePoint 2010 和 SharePoint 2013 的 Web 请求数据 | Microsoft监控代理和独立收集器 |
下面是一些提示,可帮助你查找每个部分中的信息:
选择要对数据进行排序的列标题。
使用搜索框筛选数据。 纯文本搜索适用于所有列,但时间列除外。 您还可以通过每个列使用一个筛选器,将搜索限制在特定列。 键入没有空格、冒号(:)和搜索值的列名称。 使用分号(;)来添加另一列和搜索值。
例如,若要在 “说明 ”列中查找“慢”一词的性能事件,请键入:
Description:slow
从 IntelliTrace 日志开始调试
性能冲突
查看为应用记录的性能事件。 可以隐藏不经常发生的这些事件。
从性能事件入手进行调试
在 “性能冲突”下,查看记录的性能事件、其总执行时间和其他事件信息。 然后深入探讨在特定性能事件期间调用的方法。
您也只需双击该事件。
在事件页上,查看这些调用的执行时间。 在执行树中查找缓慢调用。
如果有多个调用,包括嵌套调用或其他调用,那么最慢的调用会显示在它们各自的部分中。
展开该调用以查看在该时间点记录的任何嵌套调用和参数值。
(键盘:若要显示或隐藏嵌套调用,请分别按 向右键 或 向左键 。若要显示和隐藏嵌套调用的参数值,请按 空格 键。
从调用开始调试。
也可以双击呼叫或按 Enter 键。
如果方法位于应用程序代码中,Visual Studio 将转到该方法。
现在,您可以查看其他记录的值、调用堆栈、单步执行代码,或使用 IntelliTrace 窗口在此性能事件期间被调用的其他方法之间进行时光倒流或前进操作。
异常数据
查看抛出并记录在您的应用程序中的异常。 可以对具有相同类型和调用堆栈的异常进行分组,以便只看到最新的异常。
从异常开始调试
在 “异常数据”下,查看记录的异常事件、其类型、消息以及异常发生的时间。 若要深入了解代码,请从一组异常中的最新事件开始调试。
只需双击该事件即可。 如果未对事件进行分组,请选择 “调试此事件”。
如果异常发生在应用程序代码中,Visual Studio 会转到发生异常的位置。
现在,可以查看其他记录的值、调用堆栈,或使用 IntelliTrace 窗口在时间轴上在其他记录的事件、相关代码以及在这些时间点记录的值之间向后或向前移动。
列 显示[内容] 类型 异常的 .NET 类型 已分组异常的最新消息或未分组异常的消息 异常提供的消息 分组异常计数 异常被抛出的次数 未分组异常的线程 ID 引发异常的线程的 ID 最新事件时间 或 事件时间 引发异常时记录的时间戳 调用堆栈 调用异常堆栈。
若要查看调用堆栈,请在列表中选择异常。 调用堆栈显示在异常列表下方。
分析
使用 SharePoint 相关 ID 诊断 SharePoint 2010 和 SharePoint 2013 应用程序的问题,或查看Microsoft监视代理发现的任何未经处理的异常。
使用 SharePoint 关联 ID 查找其匹配的 Web 请求和事件。 选择一个事件,然后在事件发生的位置和时间开始调试。
如果Microsoft监视代理发现未经处理的异常,请选择异常,然后在发生异常时开始调试。
开始使用 SharePoint 相关 ID 进行调试
从其源复制 SharePoint 关联 ID。
例如:
打开 .iTrace 文件,然后转到 Analysis 并输入 SharePoint 相关 ID 以查看匹配的 Web 请求和记录的事件。
在 “请求事件”下,检查事件。 从顶部开始,事件按事件发生的顺序显示。
选择事件以查看其详细信息。
选择 “开始调试 ”以在事件发生时开始调试。
可以看到这些类型的 SharePoint 事件以及 IntelliTrace 事件:
用户档案事件
当 SharePoint 加载用户配置文件和读取或更改用户配置文件属性时,会发生这些事件。
统一日志记录系统 (ULS) 事件
Microsoft Monitoring Agent 记录 SharePoint ULS 事件的子集和以下字段:
IntelliTrace 字段 SharePoint ULS 字段 ID EventID 级别 级别 类别 ID 类别 ID 类别 类别 面积 产品 输出 Message 相关 ID 相关 ID
从未经处理的异常开始调试
为异常选择 SharePoint 关联 ID。 异常按类型和调用堆栈进行分组。
(可选)展开 “调用堆栈 ”以查看一组异常的调用堆栈。
选择 “调试异常 ”以在发生异常时开始调试。
有关演练,请参阅 演练:使用 IntelliTrace 调试 SharePoint 应用程序。 有关代理记录的数据类型,请参阅 IntelliTrace 功能。
线程列表
检查在目标进程中运行的记录线程。 可以从所选线程中的第一个有效的 IntelliTrace 事件开始调试。
从特定线程开始调试
在 “线程列表”下,选择一个线程。
在 “线程列表”底部,选择“ 开始调试”。 还可以双击线程。
若要开始从应用开始调试,请双击 主线程。 请参阅 IntelliTrace 功能。
用户创建的线程数据可能比服务器为 IIS 托管的 Web 应用创建和管理的线程更有用。
| 列 | 显示[内容] |
|---|---|
| ID | 线程 ID 号 |
| 名称 | 线程名称。 未命名的线程显示为“<无名称>”。 |
| 开始时间 | 创建线程的时间 |
| 结束时间 | 线程完成的时间 |
从特定测试步骤开始调试
展开 测试步骤网格。 选择测试步骤。
在 测试步骤网格的底部,选择 “开始调试”。 还可以双击测试步骤。
这会在所选测试步骤后从第一个有效的 IntelliTrace 事件开始调试。
如果存在测试数据,IntelliTrace 会尝试识别与测试运行相关联的 Team Foundation Server 构建版本。 如果找到构建,将自动解析应用的关联的符号。
| 领域 | 显示[内容] |
|---|---|
| 测试会话 | 记录的测试会话。 通常,只有一个。 如果使用手动探索测试创建测试数据,则此列表为空。 |
| 测试用例 | 所选测试会话中的测试用例。 如果使用手动探索测试创建测试数据,则此列表为空。 |
| 测试步骤网格 | 使用通过或失败的测试结果记录的测试步骤 |
系统信息
本部分介绍托管应用的系统的详细信息,例如硬件、作系统、环境和进程特定的信息。
模块
本部分介绍目标进程加载的模块。 模块按加载的顺序显示。
| 列 | 显示[内容] |
|---|---|
| 模块名称 | 模块文件名 |
| 模块路径 | 加载模块的磁盘位置 |
| 模块 ID | 特定于版本并参与匹配符号 (PDB) 文件的模块的唯一标识符。 请参阅 查找符号 (.pdb) 文件和源文件。 |