リモート開発環境3 [VSCode SSH・ビルド・デバッグ設定]
目的
VSCode から SSH起動中の Linux にアクセスし, リモートデバッグできる環境を構築
動作環境
ホストOS側 : インターネット接続できる Windows 11
ゲストOS側: Debian 12.6
VMクライアント: VirtualBox 6.1
VSCode 1.100.2
手順
- VirtualBox で Linux を立ち上げ, SSH Server を起動しておく. (そこまでの環境はリモート開発環境1 [VirtualBox ネットワークの設定] 参照 )
2. VSCode で Remote Development アドインをインストールし, SSH config を設定
設定後, ログイン(+マーク)でログインしようとすると, 下記のようにパスワードが聞かれる。
パスワード認証が通ると, VSCode Server が初期化が開始される。ただし, 初回の場合, VSCode と通信するための Server がリモート側にインストールされる。
3. リモートデバッグのためには更に 各言語の開発環境が必要なので, インストールする。
確かに, ビルド・デバッグそのものは, リモート側の コンパイラ・デバッガ を利用する(参照: GCCの導入)のだが,
リモートデバッグにおいて VSCode 画面に表示される 言語の色分けやインテリセンス情報のために, ホストのVSCode 側にも 各言語の開発環境(今回は C/C++ )が必要。
ローカル(VSCode) で C/C++ 拡張が入ってる状態で、リモートに接続しなおすとリモートデバッグ用のC/C++アドオンがリモートへ自動的に導入される。
もし自動で導入されない場合は、ローカルの C/C++ 欄に「Debianにインストールする」という項目が出ているなら、それをクリックしてリモートへインストールする。
インストールできたかはリモート接続時、アドオン画面から確認できる。
4. リモートビルド・デバッグのための設定ファイルを作成するが, まずは空ファイルを作成する。
するとリモート側の .vscode フォルダ上に, task.json, launch.json が作成されていることがわかる。
5. ビルドのための task.json を作成する。
task.json には, VSCode で用意されている テンプレを流用してもいいが, 今回空ファイルを作って最小構成で記述する。
JSON 記法で色々とやるより, ビルコマンドの実際は bash( .sh) に記述し, task.json では カレントディレクトリ(cwd) とそれ(sh) を呼び出すだけにとどめたほうがシンプルだ。
label は任意。cwd は “command” を実行するときのカレントディレクトリ。
上画像の左部にあるリモートのディレクトリツリーと対比させると, わかるとおもう.
6. デバッグのための launch.json を記述する。
デバッグのたびに毎回ビルドをしたいならば, 上画像にある preLaunchTask に実行したい(task.json中の)ラベルを書けばよい。
task.json も launch.json も、そのファイルの中に 複数の定義ができる。