vscode附着调试

我有一个程序,是别的程序调用启动的,所以需要等它的进程启动后,再附着上去调试。

编写Launch.json:

bash 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/cmakeBuild/build/bin/abc",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/cmakeBuild/build/bin",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "preLaunchTask": "",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "envFile": "${workspaceFolder}/.env"
        },
        {
            "name":"(gdb) Attach",
            "type": "cppdbg",
            "request": "attach"
            "processId":"${command:pickProcess}",
            "program": "${workspaceRoot}/cmakeBuild/build/bin/abc",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

调试时,选(gdb) Attach,等要调试的进程启动了,按F5,会跳出选择进程的窗口,选择要附加的进程, 附加后,就可以调试了,以前设置的断点,也会被捕捉中断。

有时候,我们要调试的是在进程启动时的代码,等我们附着上后,设置的断点已经运行过去了。这时候可以在进程启动的地方,加延时,方便附着。

cpp 复制代码
int loop = 0;
while(loop <20)
{
    sleep(1);
    ++loop;
}

这个要加在初始化代码后面,不要影响初始化。会sleep 20秒,附着上后,暂停,修改loop大于20,就退出循环了,往后走了。vscode里,有时候loop会修改不了,就等它自己超过20退出吧。

相关推荐
菜哥万岁万岁万万岁10 小时前
Visual Studio 2022 社区版下载
ide·visual studio
iCxhust11 小时前
8088单板机VScode集成开发环境使用方法
ide·笔记·vscode·编辑器·微机原理·8088单板机
如何原谅奋力过但无声13 小时前
现代化Python工具:uv、Ruff、Pyright、Rich(只讲重点版)
vscode·python·uv
来日方长。。。。long14 小时前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes
流浪打工人15 小时前
Unity3D编辑器初始化场景物体
编辑器
Molesidy15 小时前
【VSCode】基于win10系统老版本和VSCode最新版本下出现的VSCode内置的终端窗口不能运行的问题的解决方案
ide·vscode·编辑器
维度攻城狮16 小时前
PyCharm 使用 DevContainer 开发:打造一致、隔离、高效的开发环境
ide·python·pycharm·devcontainer
James50617 小时前
VSCode+CodeX扩展,无法启动
ide·vscode·codex
沫璃染墨2 天前
《Qt从零入门系列(二):Qt开发环境搭建——从Qt Creator到SDK配置》
c++·ide·qt
weixin_469273812 天前
.md文件是什么?.md如何打开?
前端·编辑器