みなさん、こんにちは。今日私はあなたにUbuntuをもたらし、GDBブレークポイントを使用してGoプログラムをデバッグします。Eralngとは異なり、GDBデバッグの経験がなく、Go言語自体に組み込まれているデバッグツールがないため、使用できるデバッガーがあります。インターネットから検索し、関連する中国語チュートリアルがないため、ここで自分で調べました。初心者にGDBの単純なデバッグGoプログラムに関する記事を提供します。(GDBに関する記事はまだたくさんあります)
まず、次のようにテストコードを記述します。
パッケージメイン インポート( "fmt" ) func main(){ fmt.Printf( "%s \ n"、 "hello、world") printNumber() } func printNumber(){ var count int; count = 10 sum:= 0 for i:= 0; i <カウント; i ++ { sum = sum + i fmt.Printf( "i =%d、sum =%d \ n"、i、sum) } }
プログラムをコンパイルして実行します(UbuntuでSublime Text 2、このツールも使用する場合は、私の記事を参照してください:UbuntuでSublime Text 2を使用してGo開発環境を構築します)。
main.goをビルドします
。/メイン
これで、GDBを使用してメインアプリケーションのデバッグと生成を開始できるようになりました。ここでは、アプリケーションをすばやく見つけるために、プログラムとコードを〜/ディレクトリに配置します。
まず、GDBを使用してアプリケーションをロードし、ターミナルを開き、次のようにgdb mainと入力します。
ここの最後の2行に注意してください。
/home/administrator/main...doneからシンボルを読み取ります。
Goランタイムサポートを読み込んでいます。
メインプログラムを読んで、Goランタイムを完了して読み込みます。
次に、listと同等のlコマンドを入力します。ソースコードは、以下に示すように、最初の行からリストされます。
真面目な友達、ここにmain.goコードが表示されていないことに気づくでしょう。
ここでは、別のエンターを直接ヒットし、以下に示すような結果が生成されます。
まだ不完全ですが、もう一度改行しますか?
これで完了です。別の改行がある場合はどうなりますか?
このとき、プロンプトによると、コードが表示されていることがわかります。
3、ブレークポイントを設定し、ブレークポイント情報を表示します。
ブレーク8を入力します。これは、8行目にブレークポイントを設定することを意味します。
break printNumberを入力します。これは、関数printNumberの入り口にブレークポイントが設定されていることを意味します。ここでは、図に示すように、ブレークが正常に設定されていません。breakmain.printNumberを入力する必要があります。友人のJamCodeとmikespookの協力に感謝します。
break 14と入力します。これは、14行目にブレークポイントを設定することを意味します。
info breakと入力します。これは、ブレークポイント情報を表示することを意味します。
示されているように:
4番目に、プログラムを実行してデバッグします。
rと入力し、プログラムを実行します。runコマンドの略で、プログラムは次のように8行目のブレークポイントで停止します。
nを使用して、次のコマンドの省略形である単一のステートメントを実行します。
プログラムの実行を継続するには(現在のブレークポイントをスキップ)cを使用します。これは、continueコマンドの省略形です。
btを使用して関数スタックを表示します。
関数を終了するには、finishを使用します。
以下は、私の簡単なデバッグの結果です。
ここに最後の質問があります。p、出力カウント、合計値を使用すると、その値は非常に奇妙です。トラブルを知っている友人は、メッセージを残してお知らせします。ありがとうございます。
この記事の由来:Blog Park
おかげで著者:yourihua
元のテキストを表示:UbuntuでGDBブレークポイントを使用してGoプログラム