デバッガ
プログラムの実行を途中で中断したり、1行ずつ進めたり、その時点の変数の値を表示したりして、バグの原因の発見を支援するツール。
イマシルちゃんの解説
デバッガは、プログラムの不具合であるバグの原因を調べるためのツールだよ。
たとえば計算結果がおかしいときは、プログラムを途中で止めて処理を確かめられるんだ。
止めたい場所に設定する目印をブレークポイントというよ。
そこでデータを入れておく変数を確認すると、計算の途中でどんな数が使われているか分かるの。
1行ずつ処理を進めるステップ実行で、どこから予想と違う動きになったかも追いかけられるよ。
結果だけでは見えない途中の状態を調べることで、原因となった処理を絞り込みやすくなるんだ。
この解説はわかりやすかったですか?
より深い解説
定義
デバッガは、プログラムの不具合(バグ)を見つけて取り除く作業(デバッグ)を支援するためのツールである。ソースコードを表示しながら、実行中のプログラムの状態を観察・操作できる。
主な機能
| 機能 | 内容 |
|---|---|
| ブレークポイント | 指定した行に到達したら、プログラムの実行を一時停止する |
| ステップ実行 | 1行(1命令)ずつ実行を進める。関数の中に入る(ステップイン)、関数をまとめて実行する(ステップオーバー)などがある |
| 変数の表示(ウォッチ) | 停止した時点の変数の値を表示する。値を書き換えることもできる |
| コールスタックの表示 | どの関数からどの順で呼び出されたかを表示する |
| 条件付きブレークポイント | 変数が特定の値になったときだけ停止する |
デバッグの手法との関係
| 手法 | 内容 |
|---|---|
| デバッガを使う | 実行を止めて、状態を詳しく調べる |
| プリント文(ログ出力) | プログラムの途中に、変数の値などを出力する命令を入れる |
| スナップショットダンプ | 実行中の指定した時点の、メモリやレジスタの内容を出力する |
| トレース | 実行した命令の順序や、変数の値の変化を記録する |
開発を支援するツールの区別
| ツール | 機能 |
|---|---|
| デバッガ | 実行の中断や変数の表示などで、バグの発見を支援する |
| バグトラッキングシステム | 見つかったバグの内容や、修正の計画と履歴を管理する |
| テスト支援ツール | テストケースやテスト用のプログラムの作成を支援する |
| 静的解析ツール | プログラムを実行せずに、ソースコードを解析して誤りの可能性を指摘する |
デバッガはプログラムを動かしながらバグの原因を探す「動的」な道具、静的解析ツールはソースコードを読むだけで問題を見つける「静的」な道具である。
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ