当你的编写的是一个多进程的程序的时候,调试起来可能会比较困难,因为 Visual Studio 默认只会把你当前设置的启动项目的启动调试。
本文将介绍几种用 Visual Studio 调试多进程程序的方法,然后给出每种方法的适用条件和优劣。
本文内容
Visual Studio 多启动项目(推荐)
在 Visual Studio 的解决方案上点击右键,属性。在公共属性节点中选择启动项目。
在这里,你可以给多个项目都设置成启动项目,就像下图这样:
当然,这些项目都必须要是能够启动的才行(不一定是可执行程序)。
此方案的好处是 Visual Studio 原生支持。但此方案的使用必须满足两个前提:
- 要调试的多个进程必须是不同的项目编译出来的;
- 这些项目之间的启动顺序不能有明显的依赖关系(所以你可能需要修改你的代码使得这两个进程之间可以互相唤起)。
Microsoft Child Process Debugging Power Tool 插件(推荐)
安装和配置插件
请先安装 Microsoft Child Process Debugging Power Tool 插件。
安装插件后启动 Visual Studio,可以在 Debug -> Other Debugging Targets 中找到 Child Process Debugging Settings。
然后你可以按照下图的设置开启此项目的子进程调试:
配置项目启动选项
但是,子进程要能够调试,你还必须开启混合模式调试。
在旧格式的项目中开启混合模式
旧格式指的是 Visual Studio 2015 及以前版本的 Visual Studio 使用的项目格式。目前 Visual Studio 2017 和 2019 对这种格式的支持还是很完善的。
在项目上右键 -> 属性 -> Debug,这时你可以在底部的调试引擎中发现 Enable native code debugging
选项,开启它你就开启了本机代码调试,于是也就可以使用混合模式调试程序。
在新格式的项目中开启混合模式
如果你在你项目属性的 Debug 标签下没有找到上面那个选项,那么有可能你的项目格式是新格式的。
这个时候,你需要在 lauchsettings.json 文件中设置。这个文件在你项目的 Properties 文件夹下。
如果你没有找到这个文件,那么随便在上图那个框框中写点什么(比如在启动参数一栏中写 吕毅是逗比),然后保存。我们就能得到一个 lauchsettings.json 文件。
打开它,然后删掉刚刚的逗比行为,添加 "nativeDebugging": true
。这时,你的 lauchsettings.json 文件影响像下面这样:
{
"profiles"