gdb 的 vscode 调试器未按照配置运行

问题描述 投票:0回答:2

我正在尝试将命令行参数传递给 vscode 中的 gdb。这是我的 launch.js 配置。

{
"configurations": [
{
    "name": "(gdb) Launch",
    "type": "cppdbg",
    "request": "launch",
    "program": "${workspaceFolder}/main",
    "args": ["1"],
    "stopAtEntry": false,
    "cwd": "${fileDirname}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        },
        {
            "description": "Set Disassembly Flavor to Intel",
            "text": "-gdb-set disassembly-flavor intel",
            "ignoreFailures": true
        }
    ]
}
]

}

这是文件和文件夹结构。

这是简单的健全性检查代码

#include<stdio.h>


int main(int argc, char* argv[])
{
   printf("argc == %d\n", argc);
   return 0;
}

它的输出是

argc == 1

我无法捕捉争论。请帮忙。

c visual-studio-code debugging gdb cgdb
2个回答
0
投票

似乎当点击vscode中提供的右上角的按钮时,它没有按照launch.json配置中提供的配置运行。要运行它,请转到右侧工具栏并单击调试按钮。然后选择 (gdb) lauch.json 选项并运行它。然后你的代码将按照 launch.json 运行。


0
投票

在 vscode/vscodium 中将参数传递给 gdb 的最简单方法是使用具有如下启动配置的本机调试扩展

    {
        "type": "gdb",
        "request": "launch",
        "name": "Debug with gdb",
        "target": "./programname",
        "arguments": "some_program_argument",
        "cwd": "${workspaceFolder}/bin",
        "valuesFormatting": "parseText"
    }

仅供比较,lldb 对应的配置是

    {
        "type": "lldb",
        "request": "launch",
        "name": "Debug with lldb)",
        "program": "./programname",
        "args": ["some_program_argument"],
        "cwd": "${workspaceFolder}/bin"
    }

由于某种原因,gdb 与 lldb 的语法不同,前者需要

target
/
arguments
,后者需要
program
/
args

© www.soinside.com 2019 - 2024. All rights reserved.