VagrantのUbuntu18.04にVSCodeでリモート接続してgdbデバッグ実行をする
今までは、C/C++のブレークポイントデバッグは、vimでgdbを扱っていたのですが、VSCodeのRemote Developmentのgdbの操作が思ったより直観的で簡単だったので紹介。
特に競技プログラミングをされる方で変数の中身を見たり、いじったりしながらデバッグしたい方には向くかなと思います。
まず、N予備校などのLinux環境構築(N予備校にログインが必要)に準拠しながらVagrant+VirtualBoxでUbuntu18.04の環境を構築。
Ubuntuのコンソール内でC/C++開発デバッグに関するツールを一通りインストールしておく。
sudo apt install g++
sudo apt install build-essential
sudo apt install gdb
VSCodeでRemote Development拡張をインストール。
インストール後、左下の緑色のボタンを押して、
Remote-SSH: Open Configuration File...
から C:\Users\username\.ssh\config
を選択し
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host ubuntu64_18
HostName 127.0.0.1
Port 2222
User vagrant
IdentityFile C:\Users\username\vagrant\ubuntu64_18\.vagrant\machines\default\virtualbox\private_key
のように記述。 username
は自分のユーザー名に変更のこと。保存して、緑のボタンから
Remote-SSH: Connect to Host
より、 ubuntu64_18
を選択し、 Open Folder よりC++ファイルがあるフォルダを開く。C++ファイルを開くとC++の拡張のインストールを勧められるのでインストール。
あとはデバッグタグからRUNボタンを選ぶと、tasks.json と launch.json の設定を求められるので、テンプレートに合わせて、 g++ アクティブファイルのビルドとデバッグ
を設定する。といってもテンプレートのまま変更するところはなし。
tasks.json
:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}
launch.json
:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - アクティブ ファイルのビルドとデバッグ",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "gdb の再フォーマットを有効にする",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++ build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
あとはデバッグタブのRunボタンを押すだけ、これでブレークポイントが発動して実行ポイントを進めたりできる。ブレークポイントはC++ファイルの行表示の左側をクリックすると追加できる。
もちろん、右下のターミナルのところから、標準入力をしたり、標準出力を見たりもできるので競技プログラミングなどもやりやすい。ちなみに変数エリアでは、変数の中身も書き換えることが可能なので迅速なデバッグもできる。あと、地味にF5キーを押すとビルドとデバッグ実行まで一気にやってくれるのでそれが便利です。
VSCode のRemote Developmentを使ったgdbデバッグがとても簡単で分かりやすいという紹介でした。
以上。
Author And Source
この問題について(VagrantのUbuntu18.04にVSCodeでリモート接続してgdbデバッグ実行をする), 我々は、より多くの情報をここで見つけました https://qiita.com/sifue/items/c0e1b7649ae0b319b913著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .