gdbの使い方

202007233-1 プログラミング

gdbは、GNUデバッガ(GNU Debugger)の略称です。
ここでは、gdbについて解説します。


gdbとは

gdb(CNU Project Debugger)とは、「GNUプロジェクト」が開発したUnix系システムで動くデバッグ用フリーソフトのことです。
コマンドラインからgdbコマンドを実行して起動します。

C言語、C++、FORTRAN、FreeBASIC、Pascalなど、多様なプログラミング言語に対応しています。



プログラムのコンパイル

gcc(Gnu Compiler Collection)を使用してコンパイルします。

gdbを使用してデバッグする場合、コンパイル時にはオプション「-g -O0」を付けてコンパイルする必要があります。

gdbの使い方


実行ファイル「a.out」が生成されます。

このオプションには、以下の意味があります。

gdbの使い方


gdbの起動方法としては、「gdbから起動する方法」と「稼働済みプログラムをアタッチする方法」があります。



起動方法

gdbから起動する方法

以下のコマンドを入力します。

「a.out」は、実行ファイルです。

gdbの使い方


稼働済みプログラムをアタッチする方法

端末Aからプログラムを実行します。

gdbの使い方


psコマンドでプログラムのプロセスID(PID)を確認します。

gdbの使い方


一番左端のフィールドに出てくる数字(ここでは26227)がPIDです。

端末Bからgdbを実行します。

gdbの使い方


gdbのコンソールにてプログラムにアタッチします。

gdbの使い方


シンボルのロードが完了したらブレークポイントを設定し、continue(c)します。

gdbの使い方


gdbの実行方法

「run」または「r」と入力します。

gdbの使い方


gdbの終了方法

「quit」または「q」と入力します。

gdbの使い方


コマンド集

主要なコマンドを紹介します。



ブレーク関連

gdbの使い方


実行関連

gdbの使い方


参照

gdbの使い方


値の書き換え

gdbの使い方