Visual Studio Codeからのデバッグ

ブロックチェーン・アプリケーション・ビルダーには、TypeScriptプロジェクトとGoプロジェクトの両方に対するVisual Studio Codeからの行単位のデバッグ・サポートが含まれています。

Microsoft Windowsでは、コマンド・プロンプトをPowerShellではなくデフォルトの端末として使用するようにVisual Studio Codeを構成します。Visual Studio Codeの端末メニューで、「デフォルト・プロファイルの選択」をクリックし、「コマンド・プロンプト」を選択します。

Goチェーンコード・プロジェクトをデバッグする前に、Visual Studio Codeで必要なGoツールをインストールする必要があります。Visual Studio Codeで、コマンド・パレットを開き、Go: Install/Update Toolsコマンドを実行します。リストに表示されているすべてのGo拡張機能をインストールします。

Visual Studio Codeでは、Delveを使用してGoをデバッグします。Goチェーンコードを初めてデバッグすると、Delveのインストールを求められます。続行する前にDelveインストールを受け入れます。Visual Studio Codeには、TypeScript用の組込みデバッガが含まれています。

行単位のデバッグを実行するには:
  1. Visual Studio Codeエクスプローラでチェーンコード・プロジェクトを開きます。チェーンコード・ペインでチェーンコードを右クリックし、エクスプローラで開くを選択します。
  2. 必要に応じて、コードにブレークポイントをアタッチします。
  3. 「実行」メニューに移動し、「デバッグの開始」をクリックします。これによりデバッガがアタッチされます。デバッガがチェーンコードにアタッチするまでに数秒かかる場合があります。
  4. コードを実行するターミナルから任意のコマンドをコールします。

    Visual Studio Codeインタフェースを使用してチェーンコードをテストしている場合は、「ローカルHyperledger Fabricネットワークでのチェーンコードのテスト」で概説されている呼出し構文に従います。

    ブレークポイントでデバッガが停止します。その後、デバッグを開始できます。

  5. デバッグを再開して新しい変更を反映します。

チェーンコードはデバッグ・モードで実行されているため、新しい変更のホット・デプロイメントは自動的には行われません。最新の変更を有効にするには、Visual Studio Codeのデバッグ制御を使用して、デバッグ・プロセスを手動で再起動する必要があります。

トラブルシューティング

Windows 11では、次のようなエラーが発生することがあります。
dlv: failed to install dlv(github.com/go-delve/delve/cmd/dlv@latest): Error: Command failed:
C:\Program Files (x86)\Go\bin\go.exe get -x github.com/go-delve/delve/cmd/dlv@latest
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list
# get https://proxy.golang.org/github.com/@v/list
# get https://proxy.golang.org/github.com/go-delve/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list
# get https://proxy.golang.org/github.com/@v/list: 410 Gone (0.420s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/@v/list: 410 Gone (1.040s)
# get https://proxy.golang.org/github.com/go-delve/@v/list: 410 Gone (1.062s)
# get https://proxy.golang.org/github.com/go-delve/delve/cmd/dlv/@v/list: 410 Gone (1.066s)
# get https://proxy.golang.org/github.com/go-delve/delve/@v/list: 200 OK (1.448s)
go: found github.com/go-delve/delve/cmd/dlv in github.com/go-delve/delve v1.8.3C:\Users\<UserName>\go\pkg\mod\github.com\go-delve\delve@v1.8.3\service\debugger\debugger.go:28:2:found packages native (proc.go) and 
your_operating_system_and_architecture_combination_is_not_supported_by_delve(support_sentinel.go) in C:\Users\Asus\go\pkg\mod\github.com\go-delve\delve@v1.8.3\pkg\proc\native
この時点でこのエラーの回避策はありません。