【问题标题】:Can not debug in VSCode with gdb无法在 VSCode 中使用 gdb 进行调试
【发布时间】:2019-10-25 19:43:57
【问题描述】:

我在 Windows 上使用 vscode 和 gdb(mingw) 进行 cpp 调试。但总有一天它不起作用,直到现在。

我之前的工作流程是:编码 -> 设置断点 -> 构建 -> 开始调试 -> 逐步调试,但是现在当我开始调试时,它卡住了。

点击Debug->start debug后,preLaunchTask正常触发。生成一个 .exe 文件,如果从 vscode 外部运行,它可以正常工作。然后启动程序开始并打开一个终端,顶部显示一个浮动条,并且终端中正在运行一个命令。

但是项目没有运行,也没有在我的断点处阻塞,当然也没有给出我的输出。我得到的是一个终端,它的命令从不输出任何东西,也从不接收任何输入,除了 ctrl-c,

ying@DESKTOP-5GV0Q9R MINGW64 /d/project/leetcode (master)$ 
env c:\\Users\\ying\\.vscode\\extensions\\ms-vscode.cpptools-0.23.1\\debugAdapters\\bin\\WindowsDebugLauncher.exe 
--stdin=Microsoft-MIEngine-In-hm3amha1.us3 
--stdout=Microsoft-MIEngine-Out-vlas2vht.meb 
--stderr=Mi crosoft-MIEngine-Error-c1e3oyr5.kel 
--pid=Microsoft-MIEngine-Pid-ij4mrymv.zxl 
--dbgExe=C:\\mingw-w64\\x86_64\\mingw64\\bin\\gdb.exe 
--interpreter=mi


一个带有三个灰色按钮的浮动栏,有东西永远从左到右飞,

当我尝试使用 ctrl-c 停止程序时,VSCode 会给出如下警告:

Undefined command "". Try "help".

我想也许 .exe 没有传递给 gdb,但不知道如何知道到底发生了什么。

我正在使用:

  • windows10 1903 18362.145
  • vscode 1.35.0(今天更新,但发生在几周前)
  • gdb8.1 (mingw-w64 x86_64-posix-seh-rev0)

这是我的 launch.json。大部分来自https://code.visualstudio.com/docs/cpp/config-mingw#_configure-debug-settings

"configurations": [
    {
      "name": "g++.exe build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\mingw-w64\\x86_64\\mingw64\\bin\\gdb.exe",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "g++.exe build active file"
    }
  ]

尝试将 externalConsolefalse 转换为 true 无法解决此问题,并且控制台未按我的意愿显示。 我在cout 行中使用默认的helloworld.cpp 和断点。这不可能是代码的错。但是对于我所有的代码,调试的行为都是一样的。

请告诉我案件的原因和/或解决方案,或者我可以自己找到的地方。任何帮助将不胜感激。

【问题讨论】:

    标签: debugging visual-studio-code gdb


    【解决方案1】:

    我遇到了和你一样的问题,同样的输出和同样的性能。我碰巧在那个控制台中输入了“帮助”,输出是乱码。所以我意识到我的系统编码有问题,因为我之前只是更改了一些设置。在我重新调整这些设置后,现在 vscode 调试对我有用。

    从你的ID看来你是中国人,所以我猜你可以看下面的图片。如果你问,我可以为你翻译。 setting

    【讨论】:

    • 对我来说真的很有帮助。非常感谢。我真的厌倦了像 leetcode 这样的带有调试功能的在线裁判系统。我曾经认为更新到 windows 1903 会导致问题,但没有得到任何证据。顺便说一句,你的图像被 GFW 屏蔽了。在某些情况下,您可能需要其他地方来保存您的图像:)
    • 嗯。我可以从 GFW 内部或外部访问我的图像,很奇怪……无论如何,很高兴听到这个消息。你可能会发现 vscode 的 Leetcode 扩展很有用:)
    猜你喜欢
    • 2020-09-25
    • 2015-06-13
    • 2018-06-18
    • 2014-07-19
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 2023-03-06
    相关资源
    最近更新 更多