をプログラムとして見たときに注意・検討すべきところを学んでおきたい、ということで
を読んでいく。
前回
13. デバッグ
13.1 デバッグの基本原則
デバッグは科学というテクニックであるが、基本的な原則が存在する。
13.1.1 デバッグの神髄:確認の原則
デバッグにおいて確認の原則が真髄である。
バグのあるプログラムの修正は、コードに関して正しいと「思っている」さまざまな事項が「実際に」正しいことを1つずつ確認する作業です。思い込みの1つが正しく「ない」とわかったら、バグの(正確な本質とまではいかなくても)位置の手掛かりが見つかります。
13.1.2 小さく始める
デバッグ工程の初期には、小さく簡単なテストケースに専念すること。
13.2 デバッグツールを使うべき理由
手作業によるデバッグ作業は、長いセッションではとても退屈で、また編集作業で気が散り、肝心のバグ発見に集中でき無くなり得る。そのためデバッグツールを用いた方が良い。
13.3 Rのデバッグ機能
のデバッグ機能の中心はブラウザである。ブラウザは関数か関数を呼び出すと起動できる。
関数にバグがあると考えている場合、を呼び出して関数をデバッグ状態に設定できる。を呼び出すとデバッグ状態を解除できる。
一方での任意の位置にの呼び出しを配置すると、実行がその行に到達したときのみにブラウザを起動する。
13.3.1 ブラウザコマンドの利用
ブラウザでは、以下のコマンドを利用できる:
- :次の行を実行し、再び一時停止するように指示する。
- :複数行のコードを実行してから一時停止できる。
- 任意のコマンド
- :スタックトレースを出力する。
- :ブラウザを終了する。
13.4 整合性の確保
乱数を使う際は、を用いて制御する。
13.5 構文エラーと実行時エラー
最も一般的な構文エラーは、丸括弧、角括弧、中括弧ないし引用符の対応が取れていないことである。もし構文エラーに気付いた場合、まずはこれらが生じていないかをチェックする。
構文エラーの場所が明白ではない場合、構文問題の位置を特定しやすくなるため、コードを選んでコメントアウトすることを推奨する。
メッセージが生じた場合は、を用いて確認する。