デバッグの実践


1.デバッグの準備

まずデバッグを開始するための準備が必要です。準備といっても
大したことでなく、デバッグの道具の窓を表示させておくだけです。

最低限必要な窓は、下記3つでしょう。
(1) ソースリストまたはアセンブルリスト(Abosolute Listing)
(2) レジスタ内容表示(File Register Window)
(3) ブレークポイント設定(Break Point Setting)

あとの窓は必要に応じていつでも開けるので、必要になった時に
表示させれば問題ありません。
準備の出来た画面例を下図に示します。




2.ブレークポイントの設定

デバッグ前では、プログラムをいきなり実行しても、まず正常
には動作しないので、プログラムのメインルーチンの頭で
ブレークを設定します。   まずは「そろり」と動かしましょう!


3.プログラムのスタート

シミュレータの元で最初に動かすには、実際のものと同じ
ように「Reset」からです。(Debug → Run → Reset で起動)

これでレジスタのリセットなど実際のハードウェアと同じ様に
実行します。
Resetすると直ぐ前項でかけたブレークポイントで停止する
はずです、これが停止しない時は、まだその前に分岐命令が
あるということになります。


4.ブレークポイントで停めたら

ブレークポイントでプログラムの実行を一時停止して何を
するか?
(1) プログラムの流れが正しいか?
  分岐命令などが正常に実行されているかを確認します。
  そのためには、分岐命令にブレークをかけて、そのあと
  Stepで ひとつ命令を実行します。(Debug → Run → Step)

  その結果でどちらに分岐したかが判定できます。
  判定結果が正しければ次のデバッグに進み、おかしけれ
  ば原因を追求します。

(2) 変数の値の確認
  "File Register Window"や"EEPROM Windows"で変数の
  内容が正しいか確認する。あるいは、一時的に変数や
  レジスタの内容を書き換えて実行させプログラムの正しい
  ことを確認する。

(3) 次のブレークポイントの設定
  ここまでは正しく実行されているということが確認できたら
  その次の部分の実行に移ります。


5.プログラムの修正実行

デバッグの最中に、分岐命令など間違っていたり、リテラル
(定数)を変更したい場合などがあります。
その時には、"Modify" で"Program"を選択して直接機械語を
変更します。
これでアセンブルをし直さなくても、一時的にプログラムを修正
して実行することができます。
分岐命令を強制的に一定の方に分岐させる時にも良くこの手
を使います。


6.ソースの修正、再アセンブル

デバッグがある程度進んだら、一度ソースを修正しアセンブル
をし直します。
余り一度に修正すると間違いも多くなりがちなので、こまめに
修正作業を行います。
これには、デバッグに使っているソースリストを直接書き換え
ます。 書き換えたら、"Make Project"を再実行すればオブジェ
クトも自動的に書き換わり、再びデバッグを開始できます。

このProjectによる管理は修正、デバッグをいとも簡単にでき
るので非常に便利です。


次ページへ    目次ページへ