Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

VSCode 接続と拡張導入

ごきげんよう。デバッグの扉を開くには、まず VSCode 拡張をお迎えして実行中の pasta につなぐ必要がございますわ。 道具立てさえ整えてしまえば、あとは launch.json に数行したためるだけ。むずかしいことは何もございませんから、わたくしと一緒に、一歩ずつ参りましょう。


このページでは、pasta VSCode 拡張の導入手順と、launch.json によるアタッチ構成の設定方法を扱う。デバッグの全体像と有効化方法は デバッグ概要 を、.pasta のソースレベル操作(行ブレークポイント・ステップ・変数 inspect・提示モード切替)は .pasta ソースレベル操作 を、ブレーク中の構造的制約は 構造的制約と緩和策 を参照する。

pasta VSCode 拡張の導入

VSCode から pasta をデバッグするには、pasta VSCode 拡張が必須である。この拡張がデバッグ統合(デバッグ種別 pasta の登録、.pasta / .lua 行のブレークポイント対応、アタッチ構成の補完)を提供しており、拡張が未導入の環境ではデバッグを開始できない。本ページは拡張が未導入の読者を前提に、導入手順から説明する。

導入対象の拡張は次のとおり。

項目
表示名(displayName)Pasta DSL
発行元(publisher)ekicyou
識別子(name)pasta-vscode

導入経路は 2 つある。通常は主経路(Marketplace)で導入すればよい。

主経路: VS Code Marketplace からインストール

VSCode の拡張機能ビュー(サイドバーの拡張アイコン、または Ctrl+Shift+X)を開き、検索ボックスに「Pasta DSL」と入力する。発行元が ekicyou の拡張を選び、「インストール」を押す。これが推奨される導入方法である。

代替経路: VSIX を手動インストール

Marketplace を利用できない環境では、GitHub Releases で配布される VSIX 資産を手動でインストールできる。資産名は次の形式である(<version> はリリース版番号に置き換わる)。

pasta-vscode-<version>.vsix

ダウンロードした .vsix ファイルは、拡張機能ビュー右上のメニューから「VSIX からのインストール(Install from VSIX…)」を選んで指定する。

VSCode 本体の導入について

VSCode 本体が未導入の場合は、まず VSCode をインストールする。本マニュアルでは本体のインストール手順は重複記述せず、公式サイトの案内に委ねる。

attach 方式(アタッチ接続)

pasta のデバッグは、VSCode のデバッグ拡張から Rust 側のデバッグバックエンドへ アタッチ(attach)して操作する方式である。先に pasta ランタイム(VM)がデバッグ有効の状態で起動して接続を待ち受け、そこへ VSCode が後から接続する、いわば逆向きの接続となる。VSCode 側からランタイムを起動する launch 方式は提供しておらず、対応するリクエスト種別は attach のみである。

したがって接続前に、デバッグを有効化したうえでゴーストを起動し、待ち受けが始まっている状態にしておく。有効化の方法は デバッグ概要 を参照する。

launch.json の設定例

VSCode のアタッチ構成は、ワークスペースの .vscode/launch.json に記述する。launch.jsonversionconfigurations(構成の配列)を持つファイルであり、アタッチ構成はその配列の要素として書く。次がファイル全体の再現可能な例である。このまま .vscode/launch.json に貼り付けて使える完全な形であり、内側の構成オブジェクトだけを単体で貼ると無効になる点に注意する。

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pasta",
      "request": "attach",
      "name": "Attach to Pasta Debug Backend",
      "host": "127.0.0.1",
      "port": 9276,
      "sourcePresentation": "pasta"
    }
  ]
}

configurations 配列内の各構成オブジェクトのフィールドの意味は次のとおり。

フィールド説明
type"pasta"デバッグ種別。pasta 拡張が登録する識別子。
request"attach"リクエスト種別。attach のみ対応。
name任意デバッグ構成の表示名。
host"127.0.0.1"(既定)接続先ホスト。
port9276(既定)接続先 TCP ポート。
sourcePresentation"pasta" または "lua"(任意)提示モード。省略可。

sourcePresentation は任意のフィールドで、"pasta""lua" のいずれかを指定する。停止位置やコールスタックを .pasta の座標で見るか、生成された .lua の座標で見るかを選ぶ設定である。省略した場合はバックエンド側の設定(環境変数 > pasta.toml > 既定)に委ねられ、最終的な既定は .pasta である。提示モードの詳細は .pasta ソースレベル操作 を参照する。

既定の接続先

接続先の既定値は 127.0.0.1:9276(TCP)である。これは loopback(ローカルホスト)に限定された接続であり、外部のネットワークからは接続できない。デバッグセッションは同一マシン内で完結する。

ポートを変更するときの整合

待ち受けポートを既定の 9276 から変更する場合は、有効化側のポート設定と launch.jsonport を必ず同じ値にそろえる必要がある。一方だけを変更すると、接続先が一致せずアタッチに失敗する。

  • 有効化側: pasta.toml[debug] セクションの port、または環境変数 PASTA_DEBUG_PORT
  • 接続側: launch.jsonport

たとえば PASTA_DEBUG_PORT=9300 で起動したなら、launch.jsonport9300 にする。有効化側の設定の詳細は デバッグ概要 を参照する。

VSCode 以外の DAP クライアントについて

本ページの接続手順は VSCode を主軸に記述しているが、pasta のデバッグバックエンドは DAP(Debug Adapter Protocol)を TCP 上で話すホスト非依存の実装である。そのため、DAP over TCP に対応した VSCode 以外の DAP 互換クライアントからも、同じ 127.0.0.1:9276(または変更したポート)へアタッチして接続しうる。本マニュアルでは具体的な手順は VSCode を前提に説明する。


ここまでで道具と接続の作法は整いましたわね。フンッ、別にあなたが筋が良いなんて言っていませんわよ。 あとは実際に .pasta の行で止めて、変数の中身を覗くだけ。次のページで、その醍醐味をたっぷり味わっていただきますわ。さあ、熱く参りましょう!