blackstar

V1

2022/07/08阅读:17主题:默认主题

玩转 Visual Studio 之非惯用进程调试技巧

背景:

  • 项目中使用的开源组件,神马的只能使用 MinGWCygwinWindows 上编译,怎么调试让人头疼?
  • 项目运行多个进程组件,出现问题该怎么调试?
  • 项目中进程 Main 启动进程 A 翻车,但是使用 CMD 启动进程 A 就特么一切正常,这又该怎么调试?

接下来就是见证 宇宙第一IDE - Visual Studio 奇迹的时候,向大家介绍一些不常见的进程调试技巧


环境准备

工欲善其事必先利其器
                    -《论语·卫灵公》

Visual Studio 安装

先进的工具总能起到事半功倍的效果,所以我考虑使用 Visual Studio 2022 版本进行演示。大家在保证不影响调试的情况下 下载其他版本的 Visual Studio。所以,本文不再对 Visual Studio 的安装和使用做详细赘述,仅以链接的方式提供,供大家参考:

MinGW编译项目

本次选择 Nginx 作为MinGW的演示项目。所以,不再对 如何使用MinGW编译Nginx 做详细赘述。

多进程项目

为了配合本次演示,还需要额外创建3个项目作为后续调试演示。有关项目实现细节,不做赘述。


调试任一可执行程序

打开调试的可执行程序

  1. 选择 打开项目或解决方案(P)

  2. 选择待调试的可执行程序

  3. Visual Studio 自动创建 sln 工程

设置调试符文件

  1. 打开 工具 -> 选项

  2. 定位 调试 -> 符合,添加符号文件路径

调试可执行程序

  1. 鼠标右键 属性

  2. 添加调试参数 -c nginx.conf,或修改其他属性值

  3. 鼠标右键 调试 -> 进入并单步执行新实例

  4. Visual Studio IDE 自动定位到入口函数


调试多进程

设置多进程调试配置

  1. 鼠标右键工程 属性 -> 通用属性 -> 启动项目

  2. 点击 多启动项目(M) ,选择要启动的进程

多进程调试

调试的工程项目设置断点,点击启动。后续的调试方式同单进程调试


调试父子进程

插件安装

  1. 打开 扩展(X) -> 扩展管理(M)

  2. 搜索插件并下载安装

  3. 扩展管理 已安装 列表中显示插件

调试项目结构

使用 QT 编写父进程程序,启动 nginx 子进程

设置子进程调试配置

  1. 打开 调试 -> 其他调试目标 -> Child Process Debugging Settings

  2. 点击 Enable child process debugging 开关,并添加需要调试的子进程名称

父子进程调试

  1. 设置启动子进程代码断点

  2. 设置子进程代码断点

  3. 启动父进程,执行到启动子进程断点

  4. 继续单步调试,进入到子进程的断点

大家是不是学会呢?赶紧试试吧!!!

参考文献

分类:

工具介绍

标签:

工具介绍

作者介绍

blackstar
V1

一个常年混迹于摸鱼网站的码农