Linuxでgdbを使ってCプログラムをデバッグする方法
Linuxでgdbを使ってCプログラムをデバッグする手順を以下に示します。
- デバッグ情報を追加してコンパイルするには、gccでコンパイルするときに -g オプションを付けます。例:gcc -g program.c -o program
- ターミナルで「gdb program」と入力。ここで「program」はお望みのデバッグプログラムの実行ファイルに差し替えてください。
- ブレイクポイントを設定する。ブレイクコマンドでブレイクポイントを設定できます。たとえば、main にブレイクするとメイン関数の最初の行でブレイクポイントを設定でき、break ファイル名:行番号で指定の行にブレイクポイントを設定できます。
- runコマンドを使ってプログラムを実行する。
- デバッグ時には print コマンドで変数の値を出力したり、step コマンドで一行ずつプログラムを実行したり、continue コマンドで次のブレークポイントまで実行することができます。
- プログラムがクラッシュしたり異常が発生するとgdbは停止します。その時はバックトレースコマンドで関数呼び出し履歴をたどったり、そして、フレームコマンドで異なるスタックフレームに切り替えたり、printコマンドで変数の値をプリントしたりできます。
- デバッグ中に、next(ステップ実行)、finish(現在の関数を最後まで実行し、呼び出した場所に停止)、watch(変数の監視)、display(停止する度に変数の値を表示)などの他のコマンドを使用することもできます。
- デバッグを終了する場合は、quit コマンドを入力して gdb を終了します。
gdbの基本的な使い方は上記の通りです。さらに高度な使い方は、gdbのドキュメントやチュートリアルを参照してください。