无法使用gdb

时间:2019-06-11 11:34:34

标签: debugging visual-studio-code gdb

我在Windows上的cpp调试中使用了vscode和gdb(mingw)。但是直到一天,它都无法正常工作。

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

单击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和一个断点。不可能是代码的错。但是对于我所有的代码,调试的行为都相同。

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

1 个答案:

答案 0 :(得分:0)

我遇到了与您完全相同的问题,具有相同的输出和相同的性能。我碰巧在该控制台中键入“ help”,并且输出是乱码。所以我意识到我的系统编码有问题,因为我之前只是更改了一些设置。现在,在我重新调整了这些设置之后,vscode调试对我有用。

根据您的身份证,您似乎是中国人,所以我想你可以看下面的图片。无论如何,我可以为您翻译。 setting