debuggerとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > debuggerの意味・解説 

デバッガー【debugger】

読み方:でばっがー

コンピューターで、プログラムバグ取り除くデバッグする)作業をする人やそのためのプログラム


デバッガ

【英】debugger

デバッガとは、プログラム存在しているバグ誤り欠陥)を発見して、それを修正する作業支援するソフトウェアのことである。

デバッガには、プログラム実行しながら任意の位置中断させて、処理の実行や値の変化などが確認できるブレークポイント機能プログラムの実行中にメモリ変数など状態遷移監視閲覧するトレース機能プログラム少しずつ実行させながら処理フロー確認できるステップ実行機能ステップ実行の際に確認不要なメソッド関数スキップさせるステップアウト機能など搭載されている

デバッガには、単体のデバッガとして機能するものや、インタプリタ内蔵されているものなどがあるが、近年では、統合開発環境IDE)に機能してあらかじめ組込まれているものが多くなってきている。

プログラミングのほかの用語一覧
開発環境:  条件コンパイル  シングルステップ実行  スタックトレース  デバッガ  デバッグ  トレース  WebKit

Debugger クラス

デバッガとの通信有効にます。このクラス継承できません。

名前空間: System.Diagnostics
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public NotInheritable Class
 Debugger
[ComVisibleAttribute(true)] 
public sealed class Debugger
[ComVisibleAttribute(true)] 
public ref class Debugger sealed
/** @attribute ComVisibleAttribute(true) */ 
public final class Debugger
ComVisibleAttribute(true) 
public final class Debugger
継承階層継承階層
System.Object
  System.Diagnostics.Debugger
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Debugger コンストラクタ


Debugger フィールド


Debugger プロパティ


Debugger メソッド


Debugger メンバ

デバッガとの通信有効にます。このクラス継承できません。

Debugger データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド Debugger Debugger クラス新しインスタンス初期化します。
パブリック フィールドパブリック フィールド
  名前 説明
パブリック フィールド DefaultCategory 定数を持つメッセージ既定カテゴリ表します
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ IsAttached デバッガプロセスアタッチされているかどうかを示す値を取得します
パブリック メソッドパブリック メソッド
参照参照

関連項目

Debugger クラス
System.Diagnostics 名前空間

デバッガ

(debugger から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/09 06:34 UTC 版)

デバッガ: debugger)とは、デバッグ作業を支援するコンピュータプログラムのこと。利用者がデバッグ対象プログラムを対話的に動作/一時停止させたり、プログラムが使っている変数の一覧や内容等を表示させたりする機能がある。近年[いつ?]では統合開発環境に含まれていることが多い。また、インサーキット・エミュレータ (ICE) などでは、ハードウェアと連携して動作する。「デバッガー」と表記することもある。また、デバッグを行なう作業者のことをデバッガあるいはデバッガーと呼ぶこともあるが、プログラムとしてのデバッガは「人間が行うデバッグ作業を支援するプログラム」であり、「自立的にデバッグを行ってくれるプログラム」というわけではない。

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

概要

デバッガの目的

ソフトウェアを設計・開発する際、プログラム作成開始段階では少なからず誤り(エラーあるいはバグ)が含まれており、設計どおりに動作しなかったり、出力結果が不正確だったりすることが多い。そのため、ソフトウェアのテスト実行をしつつ、正しい動作をするようにプログラムを修正し、不具合の原因となるバグを取り除いていく作業、すなわちデバッグを行なう必要がある。古典的かつ原始的な手法としては、ソースコードを1行ずつ目視で検査(コードレビュー)しながら思考実験により論理的な誤りを見つけ出す方法が挙げられる。また典型的には、標準出力などを利用して実際の変数の状態やプログラム実行順序などを時系列に表示しつつ、プログラム動作および不具合再現手順や発生タイミングを確認する技法が用いられることも多い。C言語printf関数にちなんで、この手法を「printfデバッグ」[1]と呼ぶこともある。プログラムのテスト実行によって、ソースコードの流れ、および変数などの中身を確認しながら、その動作の問題点を探ることになる。これにより、変数の取り扱いや計算式、条件分岐などにおける誤りを見つけ出し、修正していく。

しかし、ソフトウェアの規模が大きくなるにつれて、通例バグの数も比例して増え、複雑で大規模なプログラムにおいて不具合の原因がどこに存在するのかを特定することが困難になっていく。標準出力が使えない環境や、ログが瞬時に流れてしまうようなケースではprintfデバッグ技法は適用しにくい。また、本来は必要のないデバッグ用の余分な出力処理を埋め込むことで、ソースコードのメンテナンス性が低下するだけでなく、システムに対する副作用が発生してタイミングがずれるなどして、再現させたいはずの不具合が発生しなくなってしまうこともある。複雑なデータ構造や膨大なデータ列など、単純にテキストで表現することが難しいケースもある。

そこで、プログラミングツールのひとつであるデバッガを利用して、テスト実行やデバッグの効率化および負担軽減を行なうようになった。デバッガを用いることで、前述の思考実験やprintfデバッグでは難しかった、高度な実行時検証をすることができるようになる。

デバッガの原理は、デバッグ対象のプロセスにアタッチして、プロセスの実行状況に関する情報の双方向通信を行なうことである。オペレーティングシステムにはデバッガの実装に利用可能なAPIが用意されていることもある[2]コンパイルすると、(人間には理解しにくい)機械語中間表現になるプログラミング言語であっても、デバッグ用にコンパイル&ビルドする際に、ソースコードに関するメタデータである「プログラムデータベース」(program database; pdb) と呼ばれる追加情報を生成し、デバッグ実行時にこのシンボル情報を参照することで、デバッガは現在実行中のプログラムステップ位置などを特定することができる。

デバッガは性能解析および性能強化にも使われることがあるが、これらは本来プロファイラと呼ばれる別のツールの役割である。デバッグ用にコンパイル&ビルドされたプログラムは、余分なコードや最適化されていないコードを含んでおり、プログラム本来の性能指標としては使うべきではない。また、プログラムにデバッガをアタッチすることでオーバーヘッドを生じることもある。

デバッガの機能

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

ブレークポイント
ソースコード中の任意のステップに置くことで、実行の流れを一時的に止める機能。ブレークポイントを置いてからデバッグ対象のソフトウェアを実行した際、デバッガはブレーク位置でプログラムの処理を一時停止させる。これにより、任意の位置での実行状況(変数の値やメモリの内容)を調べることができるようになる。一時停止後に通常通り実行を再開することもできる。
ステップ実行
処理を止めた後で、1ステップずつ対話的にソースコードを実行する。これにより、ソースコードをステップごとに追いかけながら実行することができ、状態の変化の確認やロジックの問題点を探ることができる。
ステップイン
ステップを関数(サブルーチン)あるいはメソッドの内部に進める。
ステップオーバー
現在実行中の関数(サブルーチン)あるいはメソッドにおいて1ステップ進める。
ステップアウト
現在実行中の関数(サブルーチン)あるいはメソッドの実行を最後まで完了し、ステップを呼び出し元に進める。
変数確認/変数書き換え
指定した変数の中身を出力する。これにより、変数にどんな値が入っており、それが正しいか、誤っているかを確認できる。
変数名だけでなく、式 (expression) 形式で出力対象を指定できる機能を持つデバッガもある。
また、デバッグ対象プログラムの一時停止中に変数の中身を任意の値に書き換えた後、再開することができるデバッガもある。

デバッガの例

多くのオペレーティングシステムやプログラミング言語処理系にはコマンドラインで扱えるデバッガが付属するほか、ほとんどの統合開発環境にはGUIによって情報の直感的かつ高度な視覚化が可能なビジュアルデバッガが付属している。

クロスプラットフォーム

  • jdb - Java用のシンプルなコマンドラインデバッガ
  • Eclipse内のデバッグ・パースペクティブ - IDEの一部の機能として提供

ウェブブラウザ

Windows

C/C++のネイティブコード、およびC#/VB.NETなどのマネージコードのデバッグに対応するほか、アドインにより追加の言語に対応することも可能。
ブレーク中にソースコードの一部を書き換えてビルド&再開することのできる「エディット コンティニュ」(Edit and Continue) をサポートする。
Visual Basicエディターとともに、Microsoft Office内蔵の統合開発環境に付属。

UNIX

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

Android

  • adb - Android Debug Bridge

CP/M

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

MS-DOS

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

脚注



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「debugger」の関連用語

debuggerのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



debuggerのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2024 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリデバッガの記事を利用しております。
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのデバッガ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS