環境
- windows10 Pro
- コンパイラなどは、MinGW-w64をインストールしています。下記を参考にインストールしています。
利用するデバッグツール
- 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" } ] }
externalConsole
をtrue
にすると、デバッグ中に標準入力を受け付けることも可能です!
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" } ] }