如何使用VSCode将命令行参数传递给调试器?

时间:2019-07-02 11:22:11

标签: debugging visual-studio-code gdb

我在Linux上使用VSCode,并且在尝试启动VSCode调试器时提出了以下启动配置,该调试器反过来将依赖于{{1 }}:

gdb

}

在这里,我想使用{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": ["a", "b", "c", "d", "e"], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "make project" }] 属性将5个参数传递给正在调试的进程,即:“ a”,“ b”,“ c”,“ d”,“ e”

但是,当我运行调试器时,args的值正确设置为6,但是argc存储的值本身不存在。

enter image description here

2 个答案:

答案 0 :(得分:0)

第一个参数始终是可执行文件。这是预期的行为。

答案 1 :(得分:0)

这是因为argv的类型为char **。调试器不知道它是指向单个元素还是数组。

在VS中,您可以使用格式说明符。 使用gdb,您应该能够在“观看”视图中使用类似的内容:

(char*[6])argv

https://github.com/Microsoft/vscode-cpptools/issues/688#issuecomment-685956825