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

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

WBOY
リリース: 2024-02-08 20:53:53
転載
891 人が閲覧しました

如何使用 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート