• 締切済み

ソフトウェアブレークで停止した後の実行について

組み込み機器をICEやGDBで動作させている時、単純な疑問が出てきましたので質問させてください。 それはソフトウェアブレーク処理についてなのですが、 ソフトウェアブレークはブレークを張りたい場所にHALT命令などで命令を置き換え、停止させていると思います。疑問点はその後なのですが、 そのソフトウェアブレークを張り続ける場合、再度実行(Go)させる場合はその命令が置き換えられたままになり、元の命令が実行されない気がするのですが、どのような機構でこの問題を解決しているのでしょうか(CPUによっても違うと思いますが。。)? ご存知の方がいればご教授いただけると助かります。

みんなの回答

  • kent85
  • ベストアンサー率52% (38/73)
回答No.1

ブレイクで停止、というのをデバッガで見てるときは きたきた、止まった止まった  ↓  ↓ ・ASM文というか逆ASM,MIX文を見る ・PCとSPをちらり ・汎用レジスタなどをチェック さてと、どこから手をつけようか…です。 そこら近辺のことであれば、このあたりでブレイクしているのかも http://www.alles.or.jp/~thisida/mycpu265.html まず一画面見てから、スタックトレースをさらっとチェックしたりですけど うまくいかなければ、RESETして上から順繰りにSTEP , TRACE実行でもいいかもしれません。 その他でいえば、モニタプログラム、JTAG、FULL ICE、実実行での 差分/出来る/出来ない/注意しなければならないところを押さえるぐらいとか、環境次第だと思います。

参考URL:
http://www.itplaza.co.jp/opti/ARM7/debug.htm
qxmorin
質問者

お礼

お礼が遅くなり申し訳ありません。 いろいろもがいて自己解決致しました。 デバッガの外から見る分には、再度GOしただけなのですが、 内部の動作では、1命令ステップさせてからGOするようになっている様です。そうする事で、HALT命令に変えられて処理についても問題なく実行できるという事になります。 ありがとうございました。

関連するQ&A