edo1z blog

プログラミングなどに関するブログです

VSCodeでC++のデバッグする

環境

利用するデバッグツール

  • GDBを使います。

参考

-g3オプションつけるとデバッグ中でもマクロ使えたりしていいらしい。

$ g++ -g3 -O0 hoge.cpp -o hoge

VSCodeの設定

vscodeでGDBを使うデバッグは下記でできた。コンパイルからやってくれるし便利。

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ debug",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": true,
      "MIMode": "gdb",
      "miDebuggerPath": "E:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gdb.exe",
      "setupCommands": [
        {
          "description": "gdb の再フォーマットを有効にする",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "g++ build"
    }
  ]
}
  • externalConsoletrueにすると、デバッグ中に標準入力を受け付けることも可能です!

tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "g++ build",
      "command": "E:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe",
      "args": [
        "-g3",
        "-O0",
        "${file}",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe"
      ],
      "options": {
        "cwd": "E:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin"
      },
      "problemMatcher": [
        "$gcc"
      ],
      "group": "build"
    }
  ]
}