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退出吧。

相关推荐
Fighting_19976 分钟前
vscode docker debug python
ide·vscode·docker
Tankoldbang6 小时前
vscode debug
ide·vscode·编辑器
这家伙是个好家伙8 小时前
GitHub Copilot Issue in Visual Studio Code “Status Ready (disabled)“
vscode·github·copilot·issue
甄同学9 小时前
【Jupyter Notebook】安装与使用
ide·python·jupyter
Kent_J_Truman10 小时前
Vim笔记
笔记·编辑器·vim
技shu支持10 小时前
PyCharm与Anaconda超详细安装配置教程
ide·python·pycharm·conda
技shu支持10 小时前
PyCharm社区版和专业版并存
ide·python·pycharm
黒井深11 小时前
Visual Studio(vs)下载安装C/C++运行环境配置和基本使用注意事项
c语言·c++·ide·visual studio
有邪11 小时前
一文讲懂IDEA的编码格式file encoding
java·ide·intellij-idea
Java大佬~12 小时前
Vscode整合PHP Server 和debug
ide·vscode·php