
719
21
章
GDB
でデバッグする
ソフトウェア開発の重要な部分はテストと障害対策だ。大規模プログラムではプログラ
ミングエラー、バグは実際には不可避だ。プログラムは、誤った結果になったり、無限ルー
プでハングアップしたり、不正メモリ操作によりクラッシュしてしまう。このようなエラー
を見つけ除去する作業はプログラムのデバッグと呼ばれる。
多くのバグはソースコードを調べただけでは見つからない。プログラムのテスト版にお
ける追加の出力は有用な診断技法の1つだ。実行時に変数の内容や他の情報を表示する文
を追加できる。しかし、一般に、デバッガを使ったほうがより多くの実行時診断を効率的
に行える。
デバッガは精密な制御環境で他のプログラムを実行するプログラムを指す。例えば、デ
バッガだとプログラムをステップ実行して、各文の実行後ごとに、変数、メモリ番地、
CPUレジスタの内容を調べることができる。プログラムのある位置に来た関数
呼び出しの
呼び出しシーケンスを分析することもできる。
本章では、強力で広く使われているデバッガである GNUデバッガ(GDB)を紹介す
る。以後の節では GDBの基本オプションとコマンドを述べる。ここで述べる多くの機能
と作業原則は、他のデバッグツールでも共通となる。GDBの機能の完全な記述は、Free
Software Foundationによるプログラムマニュアル「GDBによるデバッグ」(http://www.
asahi-net.or.jp/~wg5k-ickw/html/online/gdb-5 ...