デバッガ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

デバッガ(Debugger)とは、デバッグを支援するプログラムのこと。対話的に利用者がプログラムを動作させたり、プログラムが使っている変数等を表示させる機能がある。近年では統合開発環境に含まれていることが多い。また、ICEなどでは、ハードウェアと連携して動作する。

インタプリタには内蔵されていることもある。たとえばperlは起動時に -d オプションを指定することで、デバッガモードになる。

概要[編集]

デバッガの目的[編集]

ソフトウェアを設計・製作する際、作成開始段階では多くのバグが含まれており、設計どおりに動作しなかったり、出力結果が不正確なことが多い。そこで、デバッガを利用してソースコードの流れ、および変数などの中身を確認しながら、その動作の問題点を探ることになる。これにより、誤った変数処理や分岐条件を確認し、修正していく。

また、性能解析および性能強化にも使われる。

デバッガの機能[編集]

多くのデバッガは、大体似たような機能を持つ。

ブレークポイント
ソースコード中に置く、実行の流れを止める機能。ブレークポイントを置いてから該当のソフトウェアを実行した際、デバッガはそこで処理を止める。これにより、任意の位置での実行状況(変数の値やメモリの内容)を調べることができるようになる。
ステップ実行
処理を止めた際に、一ステップずつソースコードを実行する。これにより、ソースコードをステップごとに追いかけながら実行することが出来、ロジックの問題点を探ることが出来る。
ステップアウト
構造型言語、オブジェクト指向言語などで、関数、またはメソッドをひとつ飛ばして実行する。これにより、ステップ実行した際に処理を簡略化できる。
変数確認
指定した変数の中身を出力する。これにより、変数にどんな値が入っており、それが正しいか、誤っているかを確認できる。

デバッガの例[編集]

UNIX上のもの[編集]

  • TotalView - UNIX/Linux用並列デバッガ:CUDA,Xeon Phi
  • GDB - GNUデバッガ
  • adb - Advanced Debugger の略のようだが(英語版 en:Advanced Debugger も参照)、SysV 系のマニュアルなどで absolute debugger と書かれていることがあるようである。なお一般に absolute debugger という語は symbolic debugger に対比した語で、シンボルを扱えないデバッガという意味で使われる。
  • dbx - ソース・レベルのシンボリック・デバッガ

CP/M上のもの[編集]

  • DDT(CP/M-80付属のデバッガ)
  • SID(シンボル表を読み込み、デバッグ中の表示をシンボル表示にできるようにしたもの)
  • ZSID(SIDのZ80対応版)

MS-DOS上のもの[編集]

  • DEBUG - SYMDEBと違い、シンボルを扱う機能がない。
  • SYMDEB - DEBUGと違い、シンボルを扱えるシンボリック・デバッガとなっている。
  • CodeView - マイクロソフト社の高機能なソース・レベルのシンボリック・デバッガ。MS-C 5.10 等に付属。Windows 用もある。
  • Turbo Debugger - ボーランド社の高機能なソース・レベルのシンボリック・デバッガ。Turbo Assembler 5.0J や Turbo C++ 4.0J for DOS 等に付属。Windows 用もある。