デバッガ 【debugger】 デバッグツール / debug tool / デバガ
概要
デバッガ(debugger)とは、プログラミングの際に用いる開発ツールの一つで、プログラムの欠陥(バグ)を発見・修正するデバッグ(debug)作業を支援するソフトウェア。自動的にデバッグしてくれるソフトウェアではない。人間がプログラミング言語で書いたソースコードには誤りが含まれることがあり、コンピュータが実行可能な形式(オブジェクトコード)に変換できないような文法上の誤りなどはコンパイラなどが検出して修正を促すが、処理の論理的な誤りなどを自動的に検知するのは難しく、開発者が自力で欠陥を見つけて除去しなければならない。
デバッガはプログラムの実行状態に介入したり、実行中のある瞬間におけるコード中の変数やメモリの特定の番地、CPU内部のレジスタなどの値を表示することができ、どこで誤りが生じているのか探し出すのを手助けしてくれる。
ブレークポイント(breakpoint)機能はプログラマがコード中の任意の箇所を指定し、実行時にその場所に差し掛かったら強制的に実行を一時停止してその時点での変数などの状態を確認することができる。
ステップ実行(step by step execution)あるいはシングルステップ実行(single stepping)は、ブレークポイントなどで一時停止後、プログラムを一ステップ(一行、一命令など)ごとに実行する機能で、各ステップで実際にどのような処理が行われたかを確認しながら実行を進めることができる。
ステップ実行中に関数呼び出しなどに出くわした場合に、その内部へ移動してさらにステップ実行するステップイン、ステップインした関数等の終了までを一気に実行(呼び出し元に戻った時点で一時停止)するステップアウト、関数等の呼び出しなどをスキップするステップオーバーなどの機能が利用できる場合もある。
オブジェクトコードを実行しつつ、対応するソースコード上での実行位置や変数名などを参照できるものをシンボリックデバッガ(symbolic debugger)あるいはソースレベルデバッガ(source-level debugger)と呼び、通常はこちらが使われるが、ソースコードが入手できない場合など特殊な状況で利用される、実行形式コードを直接解析するデバッガ(low-level debugger/machine language debugger)も存在する。