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

Windows环境下VS Code用gdb调试C程序时如何传入命令行参数获取argc、argv

Windows下VS Code搭配gdb调试传递命令行参数的解决方法

你当前的launch.json中args字段的写法本身是符合规范的,参数不生效可按以下步骤排查解决:

  • 必须保存修改后的launch.json:修改配置后按下Ctrl+S保存文件,否则VS Code调试时会读取旧的未修改的配置,导致参数不生效。
  • 确认调试时的活跃文件是test.c:你的配置中使用了${file}、${fileBasenameNoExtension}这类关联当前活跃编辑器文件的变量,如果当前打开的是launch.json或者其他无关文件,调试时会编译、调试其他文件的可执行程序,自然看不到为test.c配置的参数。
  • 可选:固定调试目标文件避免活跃文件影响
    如果你不想每次调试都要切换到test.c标签,可以修改配置固定目标程序路径:
    1. 修改launch.json的program字段为"${workspaceFolder}\\test.exe"
    2. 修改tasks.json中args数组的-o后面的路径为"${workspaceFolder}\\test.exe"
  • 如果以上操作后仍不生效,删除生成的test.exe文件,重启VS Code后重新启动调试即可清除扩展缓存的旧配置。

修改后完整的可正常传递参数的launch.json示例如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc.exe - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": ["foo", "bar", "baz"],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: gcc.exe build active file"
        }
    ]
}

内容的提问来源于stack exchange,提问作者M.E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:54:10