1.ブレークポイント設定
プログラムをシミュレータでデバッグする時の最大の利点は、プロ
グラム中の任意の場所で一旦実行を止め、また再開できる所に
あります。
この一端停止させる場所のことを、"Break Point"といいます。
ブレークポイントを設定するのには、"Break Point Setting"の窓を
使います。
この窓を表示させるには、Debug → Break Setting とクリックする
と下図のような窓が表示され設定画面となります。
ここでのブレークポイントの設定方法は、"Start"の所にブレーク
させたい場所のソースリスト上の「ラベル」を入力しENTERキーと
すれば設定されます。
下図のように、MPLABがバージョンアップして、この「ラベル」が
"Start"の枠の矢印をクリックすると、自動的に一覧表として表示
されるようになりました。
この一覧表から希望のものを選択しEnterキーを押すか、緑色の
チェックマークをクリックすれば自動設定されます。
設定されるとプログラムリストの方に反映され、そのラベル行の色
が赤に変わります。
下図ではMAINLPとか SENSE とか表示されているのがラベルです。
このとき注意することは、大文字小文字の区別があることです。
次に、逆にブレークをはずしたい時は、左下の枠内の各行の先頭
にあるチェックボックスをクリックすれば、一時ブレーク解除となり、
行を選択して「Remove」をクリックすれば、そのブレークは抹消さ
れます。
"Start"、"End"で範囲指定でブレークも掛けられますが、かえって
デバッグがやりにくいので使わない方が良いでしょう。
さて、ブレークポイントで一時停止させて何をするか?は、
次の項で説明します。
2.トレース設定
ブレークポイントと異なり、一定の範囲の実行をした途中結果を保存
しておき、後から変数や実行の流れを確認する方法がトレースです。
どうして正常に実行されないか分からない時など、このトレースを
使って 1ステップ毎に命令の実行内容を確認する時に使います。
このトレースの設定には、"Trace Point Setting"の窓を使います。
この窓を表示するには、Debug → Trace Settings とクリックします。
窓は下図の様な内容です。トレース設定には、まずトレースをかける
範囲を指定します。
トレースは普通はある範囲で実行させるので、"Start"と"End"が
必要です。 この入力にもブレークポイントと同様にプログラム中の
「ラベル」で指定します。
下図の例では、入力窓の下矢印をクリックしてラベルの一覧表を
ドロップダウンリストに表示させたところです。
次に、トレース指定の解除は、左下の枠内の行頭にあるチェック
ボックスのチェックをはずせば一時的に解除、行を選択して
「Remove」をクリックすれば抹消されます。
さて、トレースをかけて何をどうするかは次の項で説明します。
3.ストップウォッチ
この "Stopwatch" は、プログラムの実行時間を計測する窓で
実際の実行時間を命令のサイクルを基に表示します。
このストップウォッチの窓を表示させるには、Window → Stopwatch
とクリック すれば、下図の様な窓が表示されます。
使い方は、まず、実際のハードウェアのクロックとして使っている
クリスタル発振子の周波数を設定します。
これには、"Target Frequency" に数値とMHz、KHz、Hzの単位の
指定をします。
下図の例では10MHzに指定しています。
測定方法は、ブレークポイント間を測定します。まず計測をスタート
させる位置でブレークポイントをかけてプログラムを一旦停めます。
そこで、Stopwatchの "Zero" をクリックしてクリアしたあと、プログ
ラムを再開させます。
(再開方法は Debug → Run → Runです)
そうすると計時が開始し、次のブレークポイントでプログラムが停
まると計時も停止しますので、そこで "Time" をみれば実際の
時間が表示されています。
このStop Watchには時間だけでなく、命令の総Cycle数も表示され
ているので、タイマーなどをプログラムで作る時のデバッグには
もってこいです。
さて次ぎはいよいよ実際のデバッグ方法についてです。