デバッガ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
デバッガ(Debugger)とは、デバッグを支援するプログラムのこと。対話的に利用者がプログラムを動作させたり、プログラムが使っている変数等を表示させる機能がある。近年では統合開発環境に含まれていることが多い。また、ICEなどでは、ハードウェアと連携して動作する。
インタプリタには内蔵されていることもある。たとえばperlは起動時に -d オプションを指定することで、デバッガモードになる。
概要
デバッガの目的
ソフトウェアを設計・製作する際、作成開始段階では多くのバグが含まれており、設計どおりに動作しなかったり、出力結果が不正確なことが多い。そこで、デバッガを利用してソースコードの流れ、および変数などの中身を確認しながら、その動作の問題点を探ることになる。これにより、誤った変数処理や分岐条件を確認し、修正していく。
また、性能解析および性能強化にも使われる。
デバッガの機能
多くのデバッガは、大体似たような機能を持つ。
- ブレークポイント
- ソースコード中に置く、実行の流れを止める機能。ブレークポイントを置いてから該当のソフトウェアを実行した際、デバッガはそこで処理を止める。これにより、任意の位置での実行状況(変数の値やメモリの内容)を調べることができるようになる。
- ステップ実行
- 処理を止めた際に、一ステップずつソースコードを実行する。これにより、ソースコードをステップごとに追いかけながら実行することが出来、ロジックの問題点を探ることが出来る。
- ステップアウト
- 構造型言語、オブジェクト指向言語などで、関数、またはメソッドをひとつ飛ばして実行する。これにより、ステップ実行した際に処理を簡略化できる。
- 変数確認
- 指定した変数の中身を出力する。これにより、変数にどんな値が入っており、それが正しいか、誤っているかを確認できる。
デバッガの例
UNIX上のもの
- TotalView - UNIX/Linux用並列デバッガ:CUDA,Xeon Phi
- GDB - GNUデバッガ
- adb - アブソリュート・デバッガ
- dbx - ソース・レベルのシンボリック・デバッガ
CP/M上のもの
- DDT(CP/M-80付属のデバッガ)
- SID(シンボル表を読み込み、デバッグ中の表示をシンボル表示にできるようにしたもの)
- ZSID(SIDのZ80対応版)
MS-DOS上のもの
- DEBUG - アブソリュート・デバッガ。機械語のアセンブル、逆アセンブルもできる。
- SYMDEB - シンボリック・デバッガ。機械語のアセンブル、逆アセンブルもできる。
- CodeView - マイクロソフト社のソース・レベルのシンボリック・デバッガ。MS-C 5.10 等に付属。Windows 用もある。
- Turbo Debugger - ボーランド社のソース・レベルのシンボリック・デバッガ。Turbo Assembler 5.0J や Turbo C++ 4.0J for DOS 等に付属。Windows 用もある。