ブレークコントロールウィンドウは3種類の実行監視機能を実装しています。
ブレークコントロールはアプリケーションの実行を監視する指定を行います。監視にはブレークポイント指定、TRRフェッチブレーク、メモリフェッチブレーク、範囲指定付きメモリフェッチブレークの4グループがあります。各グループにはそれぞれ4つの比較アドレスを設定することができます。まず、各グループに共通な項目について説明します。
各グループごとにON/OFFします。グループごとのスイッチは、ビジュアルメモリシミュレータでのアドレス比較のオーバーヘッドを最小に押さえるためにあります。グループをONにすると背景色が白になり、設定が有効となります。
ブレークモードは比較アドレスと一致した場合に実行を停止するか、継続して実行するかを指定します。比較アドレスと一致すると、現在のレジスタをダンプします。BreakがONの場合、レジスタのダンプ後、仮想CPUは実行を停止します。BreakがOFFの場合、レジスタのダンプは行いますが、仮想CPUは実行を続けます。
TRH、TRL(間接アドレス)レジスタで参照されるメモリアドレスと一致したときに実行停止します。
実質的には、LDC命令を実行したときに参照されるアドレスと比較されます。
したがってフラッシュメモリの区別はなく、LDC命令を実行した時点でのTRH、TRLによるアドレスが比較対象となります。
メモリフェッチブレークはCPUが指定アドレスのメモリをアクセスしたときに実行停止します。このグループには対象メモリの指定とアクセスモードの指定を行うことができます。
対象メモリはRAM#0、RAM#1、SFR、XRAM#0、XRAM#1、VTRBFです。対象メモリの選択は、設定したいカラムでクリックするとポップアップメニューが表示されますので、その中から選択してください。
アクセスモードはREAD、WRITE、R/Wから選択できます。
READは対象メモリに対して読み出しが行われたときに実行停止し、WRITEは対象メモリに書き込みが行われたときに実行停止します。またR/Wは対象メモリに対して読み出し、書き込みのいずれかが行われたときに実行停止します。
範囲指定付きメモリフェッチブレークは指定されたメモリアドレスの範囲の内外に対しアクセスが行われた場合に実行停止します。
比較範囲は、開始アドレス[Start]と終了アドレス[End]で指定します。比較条件は範囲外と範囲内を選択できます。範囲外は指定アドレス範囲の外側のメモリをアクセスした場合に実行停止します。この条件では、指定アドレスは含みません。範囲内は指定アドレス範囲の内側のメモリをアクセスした場合に実行停止します。この条件では指定アドレスを含みます。
メモリフェッチブレークと同様に、対象メモリの指定とアクセスモードの指定を行うことができます。
対象メモリはRAM#0、RAM#1、SFR、XRAM#0、XRAM#1、VTRBFです。
対象メモリの選択は、設定したいカラムでクリックするとポップアップメニューが表示されますので、その中から選択してください。
アクセスモードはREAD、WRITE、R/Wから選択できます。
READは対象メモリに対して読み出しが行われたときに実行停止します。
WRITEは対象メモリに書き込みが行われたときに実行停止します。
R/Wは対象メモリに対して読み出し、書き込みのいずれかが行われたときに実行停止します。
仮想CPUが割り込みを受け付けたときにシステムコンソールに受け付けメッセージを出力します。
このメッセージの出力タイミングは、仮想CPUが割り込みベクトルを取得した後です。 割り込み要因のチェックボックスをチェックした場合に有効になります。
このチェックボックスは仮想CPUの実行中に変化させても正しく機能します。 割り込み要因には次のものがあります。
アクセスリファレンスは、指定したメモリをアクセスしているプログラム位置を表示します。この機能は多くの場合、メモリを破壊しているプログラム位置を特定するために利用します。
アクセスリファレンスモニタでは、アクセスモードを選択できます。
指定はREAD、WRITE、R/Wのいずれかです。
表示内容は、アクセスされたモード(R、W)と、プログラム位置を逆アセンブルしたものです。これを専用コンソールに出力します。
出力時にプログラム位置の二重検査を行いますので、アクセスごとに羅列されることはありません。もし、時間的経過を含めた状態でアクセス順位を知りたい場合は、メモリフェッチブレークを利用してください。アクセスレファレンスモニタを使用するとシステムコンソールにアクセスされるたびに出力します。
[←] | [INDEX] | [→] |
(C)SEGA ENTERPRISES, LTD., 1998