VS2019调试虚拟机的程序

文章描述了如何使用VisualStudio2019进行远程调试。首先,将远程调试器的x64版本文件复制到虚拟机中,接着在虚拟机上运行msvsmon.exe。随后,在虚拟机启动要调试的程序,最后在VS2019中通过‘附加到进程’功能连接并开始调试。

1. 首先C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Remote Debugger\x64目录下的文件拷贝到虚拟机

2. 在虚拟机中运行msvsmon.exe

 

 3.在虚拟机中运行要调试的程序

4. VS2019点击调试->附件到进程

然后就可以调试了

 

<think>我们正在解决的是在虚拟机中使用VSCode和GDB调试程序,需要设置`miDebuggerPath`的问题。用户已经明确提到了参考站内引用[1],其中提到了在CMakeLists中设置编译类型为Debug以及安装gdb,但用户的核心问题是如何在VSCode中配置`miDebuggerPath`。根据之前的回答,我们已经详细介绍了在VSCode中设置`miDebuggerPath`的步骤,包括如何编辑`launch.json`文件,如何定位gdb的路径,以及配置示例和常见问题。现在用户是在虚拟机中操作,所以步骤基本相同,但需要注意虚拟机中的路径可能有所不同,特别是如果虚拟机是Linux系统(因为通常虚拟机中运行Linux,而Windows主机使用VSCode连接虚拟机进行开发的情况也很常见,但用户没有明确说明,所以我们假设虚拟机是Linux系统,且VSCode安装在虚拟机内或者通过远程SSH连接)。因此,我们按照以下步骤来回答:1.确认虚拟机中已经安装了gdb(按照引用[1]中的方法安装)。2.在虚拟机中打开VSCode(或者通过远程SSH连接虚拟机并在VSCode中打开项目)。3.配置`launch.json`,设置`miDebuggerPath`为虚拟机中gdb的路径(通常为`/usr/bin/gdb`,但最好通过`whichgdb`确认)。4.提供配置示例,特别是针对Linux虚拟机。同时,考虑到用户可能是在虚拟机中通过VSCode远程开发,我们也可以提及远程开发的情况(但用户没有明确,所以主要按本地虚拟机VSCode配置)。另外,用户之前的问题中已经包含了详细的配置步骤,所以我们可以精简步骤,重点放在虚拟机环境下的注意事项。步骤:1.**在虚拟机中安装GDB**(如果尚未安装):在终端中执行:```bashsudoapt-getupdatesudoapt-getinstallgdb```2.**确认GDB安装路径**:执行:```bashwhichgdb```通常输出为`/usr/bin/gdb`,记住这个路径。3.**在VSCode中配置`launch.json`**:-打开项目,进入调试视图(左侧活动栏的虫子图标或`Ctrl+Shift+D`)。-如果没有`launch.json`,则点击“创建一个launch.json文件”,选择“C++(GDB/LLDB)”。-在生成的`launch.json`中,找到`configurations`数组里的配置项,添加或修改`miDebuggerPath`属性,值为上一步得到的路径(例如`/usr/bin/gdb`)。4.**配置示例(Linux虚拟机)**:```json{"version":"0.2.0","configurations":[{"name":"(gdb)启动","type":"cppdbg","request":"launch","program":"${workspaceFolder}/your_program",//替换为你的可执行文件路径"args":[],"stopAtEntry":false,"cwd":"${workspaceFolder}","environment":[],"externalConsole":false,"MIMode":"gdb","miDebuggerPath":"/usr/bin/gdb",//这里使用确认的gdb路径"setupCommands":[{"description":"启用整齐打印","text":"-enable-pretty-printing","ignoreFailures":true}]}]}```5.**验证调试**:-在代码中设置断点。-按F5启动调试,观察是否在断点处停止。6.**常见问题**:-如果提示权限问题,可能需要给gdb执行权限(通常安装后已有)或者给可执行文件添加调试权限(例如通过`chmod+xyour_program`)。-如果路径中包含空格或特殊字符,使用双引号包裹(但Linux路径通常很少包含空格,所以一般不需要)。-如果使用CMake构建,确保编译类型为Debug(如引用[1]所述,在CMakeLists.txt中设置`set(CMAKE_BUILD_TYPEDebug)`)。最后,生成相关问题。注意:用户提到“参考站内引用”,但引用[1]是关于CMake设置和安装gdb的,我们已经在回答中涵盖。因此,我们按照上述思路回答。</think>以下是在虚拟机中配置 `miDebuggerPath` 并使用 VSCode + GDB 调试程序的完整指南: --- ### 一、虚拟机环境准备 1. **安装 GDB** ```bash sudo apt-get update sudo apt-get install gdb build-essential ``` 2. **验证 GDB 安装路径** ```bash which gdb # 通常输出 /usr/bin/gdb ``` 3. **确保编译为 Debug 模式** 在 CMakeLists.txt 中添加: ```cmake set(CMAKE_BUILD_TYPE Debug) # 关键配置[^1] ``` --- ### 二、VSCode 配置步骤 1. **安装必要扩展** - C/C++ 扩展 (ms-vscode.cpptools) - CMake Tools 扩展 (ms-vscode.cmake-tools) 2. **配置 launch.json** ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) 虚拟机调试", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/your_app", // 替换为你的可执行文件路径 "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", // 虚拟机中的GDB路径 "setupCommands": [ { "description": "启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } ``` --- ### 三、调试流程演示 1. **构建 Debug 程序** ```bash mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Debug .. make ``` 2. **在 VSCode 中**: - 打开源文件设置断点 - 按 `F5` 启动调试 - 使用调试控制台操作: ``` -exec next # 单步跳过 -exec print x # 查看变量值 ``` --- ### 四、虚拟机特殊配置 1. **共享文件夹路径问题** ```json "program": "/path/to/vm_shared_folder/build/your_app" ``` 2. **权限问题解决** ```bash sudo chmod +x /usr/bin/gdb # 确保GDB有执行权限 ``` 3. **远程开发配置(可选)** 如果 VSCode 运行在主机上: ```json "miDebuggerPath": "/ssh/remote/usr/bin/gdb" // 使用Remote-SSH扩展 ``` --- ### 五、验证与排错 1. **检查 GDB 版本** ```bash gdb --version # 确保 >= 7.11 ``` 2. **测试配置文件** ```json "stopAtEntry": true // 验证是否在main()首行暂停 ``` 3. **常见错误解决** - `"miDebuggerPath not found"` → 确认虚拟机中的实际路径 - 符号表缺失 → 确保编译时添加 `-g` 标志 - 权限拒绝 → 执行 `sudo chmod a+x /usr/bin/gdb` --- ### 六、完整工作流示例 ```mermaid graph TD A[在虚拟机安装GDB] --> B[设置CMake Debug编译] B --> C[配置launch.json] C --> D[设置miDebuggerPath] D --> E[构建可执行文件] E --> F[VSCode中设置断点] F --> G[按F5启动调试] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值