【问题标题】:Cygwin GDB and VSCodeCygwin GDB 和 VSCode
【发布时间】:2021-02-23 02:19:54
【问题描述】:

尝试通过 Cygwin 的 GDB (9.2) 版本在 VS Code 中调试可执行文件。

可执行文件来自 Free Pascal,Win32-x86。它具有与 GDB 兼容的 DWARF 调试符号。 Cygwin下的Standalone GDB可以打开exe运行,没问题。我可以通过 GDB 使用 Cygwin/DDD 来处理它,即使 DDD 相当有问题。

我正在尝试从 Visual Studio Code 中做同样的事情。 launch.json 如下:

{
        "name": "(gdb) Launch",
        "type": "cppdbg",
        "request": "launch",
        "program": "E:\\Path\\MyProgram.exe",
        "args": ["-x"],
        "stopAtEntry": false,
        "cwd": "E:\\Path",
        "environment": [],
        "MIMode": "gdb",
        "miDebuggerPath": "c:\\cygwin64\\bin\\gdb.exe",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ]
    }

当我尝试启动时,终端窗口中的命令行如下:

c:\Users\Seva\.vscode\extensions\ms-vscode.cpptools-1.2.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-w2bqan2m.tt2' '--stdout=Microsoft-MIEngine-Out-nagviahg.1gf' '--stderr=Microsoft-MIEngine-Error-udor1kbz.iot' '--pid=Microsoft-MIEngine-Pid-lhapkzkd.orq' '--dbgExe=c:\cygwin64\bin\gdb.exe' '--interpreter=mi'

但是左窗格上的进度条一直保持不变,就好像调试服务器无法启动或无法正确连接一样。程序本身应该很快地运行和终止;这显然不会发生。

我错过了什么?

后期编辑:PATH 技巧有所帮助,但看起来调试符号加载和解析是在 VSCode 中完成的,而不是由 GDB 完成的。 PDB 符号(对于依赖的 DLL)被加载,DWARF 符号没有。嗯,值得一试。

【问题讨论】:

  • 是 VSCODE 使用的 PATH 中的 `c:\cygwin64\bin` 吗?

标签: visual-studio-code gdb cygwin


【解决方案1】:

最新版本的 Cygwin GDB 要求 bin 目录位于 PATH 中

(通常是 c:\cygwin64\bin )

https://sourceware.org/pipermail/cygwin/2021-February/247749.html
https://sourceware.org/pipermail/cygwin/2021-February/247711.html

【讨论】:

    【解决方案2】:

    就我而言,从 gdb 10.2-1 降级到 9.2-1 解决了这个问题。没有其他东西对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多