デバッグとは
デバッグ (debug) とは コンピュータプログラム や 電気機器 中の バグ ・欠陥を発見および修正し、動作を 仕様 通りのものとするための作業である。サブシステムが 密結合 であると、1箇所の変更が別の箇所でのバグを作り出すので、バグの修正がより困難となる。
語源
「デバッグ」という語を初めて使った人物については論争がある( バグ を参照)。1976年に Glenford J. Myers の Software Reliability: Principles and Practices で"debugging"が「既知のエラーの原因を突き止め、そのエラーを修正すること」と定義されて使われたのが初めてだとする者がいる一方、1940年代に グレース・ホッパー によるとする者もいる。
その逸話は以下のようなものである。ホッパーがある 初期のコンピュータ に携わっていたとき、蛾が リレー の中に入って動作不良を起こすのを見た。ここから、プログラムから エラー を取り除く作業を指してデバッグという語が使われ始めたと信じている者もいる。ホッパーによればバグという語はそれ以前にも使われており、実際にその場面に遭遇したのがおもしろかったという 1 。
ツール
一般的に言って、デバッグは面倒で退屈な作業である。実際の作業では プログラマ のデバッグに関するスキルがおそらく最も重要な要素となるが、ソフトウェアのデバッグの難易度は使用する プログラミング言語 や デバッガ などのツールによって大きく左右される。デバッガを使うとプログラムの 実行 について観測、停止、再開、速度を落としての実行、メモリ中の値の変更が行え、さらには時間を巻き戻すことさえ可能な場合がある。また、デバッグ作業を行う人のことを指してデバッガと呼ぶこともある。
一般的に 高級言語 、例えば Java 、でのデバッグはより簡単である。なぜなら 例外処理 などの機能が使え、異常な振る舞いの原因となっている箇所を特定するのがより簡単となるからである。 低級言語 、例えば C言語 や アセンブリ言語 では気づかないうちにメモリ破壊(不正な アドレス へのアクセスや メモリアロケーション ミスなど)を引き起こすことがあり、問題がどこから生まれているのか突き止めるのが困難なことが多い。そのような場面では高度なデバッグツールが必要とされる。...






