デバッガ

読み:でばっが / 英語表記:debugger

プログラムの実行を途中で中断したり、1行ずつ進めたり、その時点の変数の値を表示したりして、バグの原因の発見を支援するツール。

イマシルちゃんの解説

プログラムが思いどおりに動かないとき、「どこで、何がおかしくなったのか」を調べるのは大変だよね。

デバッガを使うと、プログラムを好きな場所で一時停止して、
「今、この変数にはどんな値が入っているかな?」ってのぞき見できるんだ。
1行ずつ進めながら確かめられるから、バグの犯人がどこに隠れているのか、突き止めやすくなるんだよ!

より深い解説

定義

デバッガは、プログラムの不具合(バグ)を見つけて取り除く作業(デバッグ)を支援するためのツールである。ソースコードを表示しながら、実行中のプログラムの状態を観察・操作できる。

主な機能

機能内容
ブレークポイント指定した行に到達したら、プログラムの実行を一時停止する
ステップ実行1行(1命令)ずつ実行を進める。関数の中に入る(ステップイン)、関数をまとめて実行する(ステップオーバー)などがある
変数の表示(ウォッチ)停止した時点の変数の値を表示する。値を書き換えることもできる
コールスタックの表示どの関数からどの順で呼び出されたかを表示する
条件付きブレークポイント変数が特定の値になったときだけ停止する

デバッグの手法との関係

手法内容
デバッガを使う実行を止めて、状態を詳しく調べる
プリント文(ログ出力)プログラムの途中に、変数の値などを出力する命令を入れる
スナップショットダンプ実行中の指定した時点の、メモリやレジスタの内容を出力する
トレース実行した命令の順序や、変数の値の変化を記録する

開発を支援するツールの区別

ツール機能
デバッガ実行の中断や変数の表示などで、バグの発見を支援する
バグトラッキングシステム見つかったバグの内容や、修正の計画と履歴を管理する
テスト支援ツールテストケースやテスト用のプログラムの作成を支援する
静的解析ツールプログラムを実行せずに、ソースコードを解析して誤りの可能性を指摘する

デバッガはプログラムを動かしながらバグの原因を探す「動的」な道具、静的解析ツールはソースコードを読むだけで問題を見つける「静的」な道具である。

実際の試験ではここに出る!

この用語が出てくる記事

↑