当你报告 Visual Studio 问题时,Microsoft 产品团队可能会要求 ETL 跟踪或微型转储来收集其他信息用于故障排除。 使用以下步骤收集 ETL 跟踪或创建用于所有调用堆栈的小型转储。
使用 PerfView 收集 ETL 跟踪
PerfView 是一个基于 Windows 事件跟踪创建 ETL(事件跟踪日志)文件的工具,可用于排查 Visual Studio 存在的某些问题类型。 有时,当你报告问题时,产品团队可能会要求你运行 PerfView 来收集其他信息。
安装 PerfView
从 GitHub下载 PerfView。
运行 PerfView
以管理员身份在 Windows 资源管理器中右键单击“PerfView.exe”,然后选择“以管理员身份运行”。
在“收集”菜单上,选择“收集”。
勾选“压缩”、“合并”和“线程时间”。
打开“高级选项”菜单,并在“其他提供程序”文本字段中添加该值
25c93eda-40a3-596d-950d-998ab963f367。将“循环 MB”增加到 1000。
如果要多次收集,请更改 Current Dir ,将 ETL 跟踪保存到指定的文件夹和数据文件。
要开始录制数据,请选择“开始收集”按钮。
要停止录制数据,请选择“停止收集” 按钮。 PrefView.etl.zip 文件保存在指定的目录中。
PerfView 只能存储适合其缓冲区的最新数据。 因此,尝试在 Visual Studio 开始冻结或减慢之后尽快停止收集。 遇到问题后收集不要超过 30 秒。
使用所有调用堆栈为 Visual Studio 进程创建小型转储
在某些情况下,Microsoft 可能要求获取运行中的 Visual Studio 进程的微型转储,其中包含所有调用堆栈的信息。 若要收集此信息,请执行以下步骤:
创建小型转储文件
启动 Visual Studio 的新实例。
从主菜单中,选择“调试”“附加到进程”>。
选择“选择”,然后选中相关的“托管”和“本机”复选框,然后选择“确定”。
从正在运行的进程列表中选择要附加到的另一个 Visual Studio 实例,然后选择 附加。
从主菜单中,选择“调试”“全部中断”>。
从主菜单中,选择“调试”>“将转储另存为”。
从小型转储中获取调用堆栈
- 在 Visual Studio 中打开转储文件。
- 打开 “工具>选项 ”窗格,然后展开“ 所有设置>调试>符号>搜索位置 ”部分。 在 “符号文件”(.pdb)位置下,确认选中 Microsoft 符号服务器 复选框。
- 打开 “工具>选项 ”对话框,然后展开 “调试>符号 ”部分。 在 “符号文件” (.pdb) 搜索位置下,确认选中 “Microsoft 符号服务器” 复选框。
打开“命令”窗口(“视图”“其他窗口”“命令窗口”)>>。
键入“~*k”。 该窗口显示所有线程的调用堆栈。
从命令窗口复制所有文本并保存到文本文件。
将 txt 文件作为附件添加到缺陷报告中。