Mac下C/C++在vscode debug 配置(踩坑)

2,705 阅读1分钟

使用 Mac,开始写算法题,在 mac 上找不到什么比较好的 debug 工具, lldb 虽然可以直接 debug,但是还是没有 vscode 香。

本来开始按照官方教程 来做,但是使用无法从外界读取到输入,如果在程序里指定好值可以 debug,但是无法从控制台或者是文件输入读取到值。

这是 Mac Catalina 下好像才会出现的问题,在其他平台好像没出现。

搜了很多资料,最后在这个 issue 下发现了遇到相同问题的人,最终解决,问题的关键就在于使用 CodeLLDB 插件代替 vscode 自带的 lldb插件。

这里只记录解决问题的关键, c/c++ 的debug看官方教程。

  1. 下载 CodeLLDB 插件并且启用
  2. 设定好 launch.jsontask.json 来进行构建和debug启动。

配置如下,可以直接用:

tasks.json

{
  "version": "2.0.0",
  "tasks": [
      {
          "label": "Build with Clang",//这个任务的名字在launch.json最后一项配置
          "type": "shell",
          "command": "clang++",
          "args": [
              "-std=c++17",
              "-stdlib=libc++",
              "${fileBasenameNoExtension}.cpp",
              "-o",
              "a.out",
              "--debug"
          ],
          "group": {
              "kind": "build",
              "isDefault": true
          }
      }
  ]
}

launch.json

{
  "version": "0.2.0",
  "configurations": [
      {
          "type": "lldb",
          "request": "launch",
          "name": "Debug",
          "program": "${workspaceFolder}/a.out",
          "args": [],
          "cwd": "${workspaceFolder}",
          "preLaunchTask": "Build with Clang"
      }
  ]
}

对于编译后的名称这些东西自己都可以改。

然后我们来看看从控制台读取输入:

改成文件输入也是没有问题的。