如何在Visual Studio 2017诊断工具窗口切换至QTAgent.exe进程?
解决VS2017诊断工具窗口切换到QTAgent.exe的方法
我之前调试x64单元测试时也碰到过一模一样的问题——诊断工具死死盯着testhost.exe,完全看不到QTAgent.exe的数据。下面是亲测有效的几个解决办法,按顺序试试:
方法1:利用诊断工具的进程下拉菜单
当调试会话处于运行状态时,仔细看诊断工具窗口的右上角,应该有个不起眼的下拉菜单(默认显示当前进程名,比如testhost.exe (PID: xxxxx))。点击这个下拉框,就能看到所有被调试器附加的进程,直接选择QTAgent.exe即可切换,诊断工具会自动加载该进程的诊断数据。
如果这个下拉框没显示,可能是你的VS2017版本没开启这个功能,试试方法2。
方法2:修改单元测试项目的调试配置
- 右键你的单元测试项目 → 选择属性 → 切换到调试选项卡。
- 在“启动操作”区域,选择启动外部程序,然后找到x64环境下的QTAgent64.exe路径(通常是:
)C:\Program Files (x86)\Microsoft Visual Studio\2017\[你的版本,比如Enterprise]\Common7\IDE\QTAgent64.exe - 在“命令行参数”中添加测试运行的必要参数,比如:
(如果有自定义测试设置文件,可追加/testcontainer:"[你的测试项目dll路径]"/runconfig:"[你的测试设置文件路径]"参数) - 保存配置后启动调试(F5),此时诊断工具会默认绑定到QTAgent64.exe,你就能看到需要的数据了。
方法3:手动附加调试并切换进程
- 先启动单元测试(不需要调试,直接在测试Explorer中右键选择运行)。
- 等QTAgent.exe和testhost.exe都启动后,在VS的调试菜单中选择附加到进程。
- 在进程列表里找到
QTAgent.exe,勾选它并点击附加。 - 回到诊断工具窗口,点击右上角的进程下拉框(现在应该会显示),选择
QTAgent.exe就能查看其诊断数据。
另外要注意:确保你的VS2017安装了最新更新补丁,有些早期版本的诊断工具存在多进程切换的bug,更新后就能解决。
内容的提问来源于stack exchange,提问作者Tobias




