我在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
存储的值本身不存在。
答案 0 :(得分:0)
第一个参数始终是可执行文件。这是预期的行为。
答案 1 :(得分:0)
这是因为argv的类型为char **。调试器不知道它是指向单个元素还是数组。
在VS中,您可以使用格式说明符。 使用gdb,您应该能够在“观看”视图中使用类似的内容:
(char*[6])argv
https://github.com/Microsoft/vscode-cpptools/issues/688#issuecomment-685956825