GoClipse を使用した Go プログラムのデバッグ: アセンブリ コード ステッピングの問題
GoClipse を使用して Go プログラムをデバッグするのに苦労していて、アセンブリ コード ステッピングの問題が発生していますか?このジレンマを詳しく調べて、解決策を見つけてみましょう。
Go プログラムにブレークポイントを設定すると、デバッガーが Go コードではなくアセンブリ コードをステップ実行することに気づくかもしれません。たとえば、「responses := []*HttpResponse{}」行にブレークポイントを設定すると、「rt0_darwin_amd64.s」のデバッグが発生する可能性があります。アセンブリに慣れていない場合、この動作は困惑する可能性があります。
問題の根本
Eclipse の [デバッグ] ビューにはスタック トレースが表示されます。 「main() at rt0_darwin_amd64.s:15」のようなトレースが表示される場合は、問題が発生しています。デバッガーは、C で記述された内部ランタイムの「main」関数で停止しています。
解決策: 起動オプションの構成
この問題を解決するには、起動オプションを調整します。構成オプションは次のとおりです。
代替オプション:ランタイム メインのステップ オーバー
アセンブリ コードに慣れている場合は、ランタイム メインをステップ オーバーしてデバッグを続けることができます。 F8 (実行/再開) を押すだけで、この最初のステップをバイパスし、実際の Go コードのデバッグに進みます。
結論
アセンブリ コードのステッピングのソースを理解することによって問題を解決し、起動構成オプションを調整すると、GoClipse を使用して Go プログラムを効果的にデバッグできます。この動作が発生した場合は、内部ランタイム main ではなく、正しい main 関数で一時停止していることを確認してください。
以上がGoClipse で Go プログラムをデバッグ中にアセンブリ コードのステップ実行の問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。