ホームページ  >  記事  >  バックエンド開発  >  Visual Studio Code IDE を使用してデバッグするために、クロスコンパイルされた go バイナリにアタッチするにはどうすればよいですか?

Visual Studio Code IDE を使用してデバッグするために、クロスコンパイルされた go バイナリにアタッチするにはどうすればよいですか?

WBOY
WBOY転載
2024-02-08 20:53:53826ブラウズ

如何使用 Visual Studio Code IDE 附加到交叉编译的 go 二进制文件以进行调试?

質問内容

Golang ベースのアプリケーションの IDE として Visual Studio Code を使用しています。アプリケーションは Linux ターゲット上で実行されます。このクロスコンパイルされたバイナリに VSC デバッガーをアタッチしたいと考えています。バイナリは、arm または x86 プラットフォーム用にコンパイルできます。 launch.json ファイルでこれを実現できることは知っていますが、使用したことはありません。助けてください。


正解


Debuggerdlvはgoコードをデバッグするために使用されます。 Delve または dlv には、64 ビット アーキテクチャのバイナリにのみ追加できるという制限があります。そこで、64 ビット amd アーキテクチャ用のコードをコンパイルし、Linux ボックスで実行しました。次に、バイナリのプロセス ID を取得し、ドリルダウンを添付しました。 Delve サーバーにはポート 2345

を使用しました

dlv some_process_id を添付 --listen=:2345 --headless --api-version=2 --log

sudo 権限を使用して Linux ターゲットのデバッグ レベルを有効化/変更する必要がある場合もあります。

cat 0 > /proc/sys/kernel/yama/ptrace_scope

次の設定を使用して、Visual Studio Code IDE で launch.json を作成します。 リーリー

Windows マシンから Visual Studio を実行しているため、リモート Linux ターゲットにはリモート モードを選択します。

Visual Studio Code からデバッガーを実行すると、launch.json の設定によってターゲット上の dlv デバッガー/サーバーが検索され、それにアタッチされます。コード内にブレークポイントをいくつか配置します。できれば外部からトリガーできる場所に配置します。例えば。クライアント呼び出しからトリガーできるサーバー上の呼び出しを受け入れます。

以上がVisual Studio Code IDE を使用してデバッグするために、クロスコンパイルされた go バイナリにアタッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。