シングルステップ実行
【英】single step execution
シングルステップ実行とは、プログラムのデバックの際に、命令ごともしくは1ステートメントごとに実行させることである。
シングルステップ実行は、プログラムがどのように動作しているか、変数の値がどのように変化したかを知るためなど、問題点調査には欠かせない機能となっている。
シングルステップ実行は、関数を呼び出す際の挙動によってステップイントゥとステップオーバーに分かれる。ステップイントゥは関数内部に進入し最初の行で止まるが、ステップオーバーは関数を実行し、次の行で停止する。これらは関数の内部を調査対象にするかどうかにより使い分けられる。
なお、機械語レベルのシングルステップ実行は時として大変な手間となるので、調査箇所を事前に絞り込まないと効率が悪い。
シングルステップ用にCPUが機能を持っている場合がある。例えば、8086系のCPUはTF(トラップフラグ)を1にするとシングルステップモードが有効となり、各命令の実行後にデバッグ例外が発生し、シングルステップ実行が可能になる。
開発環境: | Subversion シンボリックデバッガ 条件コンパイル シングルステップ実行 スタックトレース デバッガ デバッグ |
シングルステップ実行
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/22 04:23 UTC 版)
TK-80モニタプログラムは、プログラムをデバッグするためのシングルステップ実行をサポートしている。シングルステップスイッチをAUTOモードからSTEPモードにするとプロセッサから得られるM1信号(インストラクションのフェッチ、つまり1つの命令の実行開始を示す信号)が、プロセッサの割り込み要求に入力される。これにより、8080プロセッサは割り込み処理を開始する。 8080プロセッサは割り込み要求があると、データバスから割り込みのための命令を読み込むという動作をする。TK-80で採用されている8080用システム・コントローラ/バッファ8228はINTA端子の使い方により2種類の動作を選べる。1番目の使い方は8228のINTA端子を割り込み応答出力端子として使う方法である。INTA端子がアクティブになったときにシステムデータバス(8228からメモリやI/Oが接続されている側のデータバス)に接続されている割り込みコントローラ(8212、8214、8259等)がRST 0~7命令やCALL命令をシステムデータバスに乗せ8228はそれをCPUデータバスに伝えるというものである。プロセッサはこの命令を実行する。2番目の使い方は8228のINTA端子を1KΩの抵抗器を介して+12Vにプルアップするというものである。このような処理をすると8228は、このフェーズにおいてシステムデータバスの状態とは関係なくRST 7命令をCPUデータバスに送る。プロセッサは0038Hへのサブルーチン呼び出しを実行する。TK-80では2番目の8228を1レベルの割り込みコントローラとして使う方法を採用している。この8228のINTA端子に対す処理はTK-80の回路図によって確認できる。 割り込み処理が開始されると割り込み許可フラグがディセーブルされるので、モニタープログラム内の処理が連続実行される。モニタープログラム内ではこの割り込みエントリから実行が始まるとPC(プログラムカウンタ)、Aレジスタ、PSW(フラグ)レジスタの内容をLEDに表示する。その後、RETキーを押すとこのサブルーチンコールがリターンしユーザープログラムにリターンし、命令の実行を継続する。このリターンの直前に割り込みが許可されるのでユーザープログラムが1命令だけ実行され、再びモニタープログラムに戻ってくる。EI(割り込み許可)命令の後、RET(サブルーチン/割り込みからのリターン)命令を実行するが、単純にM1信号を割り込み要求に接続するとRET命令の実行後に割り込みがかかりユーザープログラムが実行されない。そのためTK-80のシングルステップ実行機能は割り込み許可後、1命令(RET命令)を実行しその次の命令(ユーザープログラムの1命令)の実行後の割り込みが実行されるような回路になっている。
※この「シングルステップ実行」の解説は、「TK-80」の解説の一部です。
「シングルステップ実行」を含む「TK-80」の記事については、「TK-80」の概要を参照ください。
シングルステップ実行
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/22 04:23 UTC 版)
STEPモードの際に、1命令ずつ実行する。あるいはブレークポイントとブレークカウンタを指定し、条件を満たすまでSTEPモードの実行を連続的に繰り返すことができる。STEPモードでモニタに戻ってきた際には、退避されたレジスタの内容を参照することができる。
※この「シングルステップ実行」の解説は、「TK-80」の解説の一部です。
「シングルステップ実行」を含む「TK-80」の記事については、「TK-80」の概要を参照ください。
- シングルステップ実行のページへのリンク