INFRA

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

環境

利用するデバッグツール

  • GDBを使います。

参考

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

Terminal window
$ 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"
}
]
}