You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode远程调试Linux环境C/C++二进制文件故障排查

解决VSCode远程调试Linux C/C++二进制连接失败问题

检查gdbserver命令正确性

你当前执行的gdbserver --attach :9999缺少目标进程ID,正确的attach命令格式是:

gdbserver --attach :9999 <目标进程PID>

如果是要启动程序并调试(而非attach到已运行进程),改用:

gdbserver :9999 /home/my/develop/bin/tsblock

修正launch.json配置

1. 调整request类型

当前request设为launch,但你是连接已启动的gdbserver,需改为attach:

"request": "attach"

2. 替换变量为绝对路径

避免${workspaceRoot}解析异常,直接写二进制文件的绝对路径:

"program": "/home/my/develop/bin/tsblock"

3. 添加miDebuggerPath配置

指定Linux端gdb的绝对路径(根据实际安装路径调整,通常为/usr/bin/gdb):

"miDebuggerPath": "/usr/bin/gdb"

修正后的完整launch.json示例

{
    "version": "0.2.0",
    "configurations": [   
        {
            "name": "tsblock",
            "type": "cppdbg",
            "request": "attach",
            "program": "/home/my/develop/bin/tsblock",
            "miDebuggerServerAddress": "localhost:9999",
            "args": [],
            "stopAtEntry": false,
            "cwd": "/home/my/develop/bin",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "/usr/bin/gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

验证环境依赖

  • 确认Linux端gdb版本与VSCode C/C++扩展兼容(gdb 8.0及以上版本基本适配)
  • 卸载Windows端VSCode的C/C++扩展后,重新安装最新稳定版

排查网络与权限

  • 执行telnet localhost 9999测试Linux端9999端口的本地连通性,确认未被防火墙拦截
  • 确保执行gdbserver的用户有足够权限attach到目标进程(必要时添加sudo前缀)

内容的提问来源于stack exchange,提问作者Smallrengar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 09:10:05