デバッグ(debug)とは
バグ(不具合原因)を取り除く行為のことである。デバックではない。
曖昧さ回避
バグを発見する行為、ちゃんと動いているかを確認するソフトウェアテストとは異なる。
もちろんバグに気付かなければ修正できず放置されてしまうため、同様に重要。
概要
ソフトウェアが、期待・想定と異なる振る舞いや出力をするときに、その原因となっている箇所を特定し/取り除く作業がデバッグである。
バグは、ソフトウェアを作成しているといつの間にか入り込んでいるものである。とくに中規模以上のソフトウェア開発において、バグを含まずに完成品を作り上げることは極めて難しい。ソフトウェアの品質を確保するためにも、ソフトウェアテストを行っておかしな挙動を見つけ、その原因であるバグを修正するという作業はソフトウェア開発の必須作業となる。
デバッグ作業
デバッグ作業は、プログラミングとはまた別の難しさのある知的作業である。多くの場合デバッグ作業を担当するのは、バグが含まれるソフトウェアを作った開発者自身なので、自分がしたおぼえのない誤り、間違っているという意識がない部分を探すという、心理的にもつらい作業である。またプログラムが膨大である場合も一行一行まで目を通さなくてはいけない。
このデバッグの作業を補助するツールのことをデバッガ(debugger)と呼ぶ。デバッガの種類にもよるが、たいていのデバッガは、プログラムの実行を気になるポイントで一時停止したり、そこからプログラムをちょっとずつ動かして途中のメモリや変数の中身を覗き見たり、ということができる。
また、デバッグをデバッガに頼らずに行うことを机上デバッグと呼ぶ。検証環境がそこになく、伝聞などで得た情報を元にデバッグを行うことを念力デバッグと呼ぶ(参考)。
コンパイラは、通常、リリースビルドとデバッグビルド(ともしくはその他のビルドパターン)を備えており、オプションとして選択することが出来る。
デバッグビルドを選ぶと、デバッグ情報を含んだオブジェクトコードを生成して、デバッグ作業に役立てることが出来る。
ニコニコ動画において
ニコニコで「デバッグ」とタグがついていれば、それはゲームなどの「デバッグモード」の動画を指している場合が多い。
デバッグモードはテストモードなどともよばれ、ゲーム開発者たちがデバッグを行ったり、バグが無いかどうかテストプレイをするために用いるモードである。
ランダムに発生するイベントを任意で発生させることができたり、各種フラグのON/OFFを変更したりできる。
もちろん、市販のソフトはデバッグモードは封印(or削除)されているのだが、改造コードを用いればデバッグモードを開放することが可能な場合がある。
関連項目
- 5
- 0pt