デバッガ

出典: フリー百科事典『ウィキペディア(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 用もある。