JPH02135545A - デバッガの実行制御処理方式 - Google Patents

デバッガの実行制御処理方式

Info

Publication number
JPH02135545A
JPH02135545A JP63289687A JP28968788A JPH02135545A JP H02135545 A JPH02135545 A JP H02135545A JP 63289687 A JP63289687 A JP 63289687A JP 28968788 A JP28968788 A JP 28968788A JP H02135545 A JPH02135545 A JP H02135545A
Authority
JP
Japan
Prior art keywords
debugger
interrupt
execution
program
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP63289687A
Other languages
English (en)
Inventor
Atsushi Suzuki
敦 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63289687A priority Critical patent/JPH02135545A/ja
Publication of JPH02135545A publication Critical patent/JPH02135545A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概 要〕 マイクロコンピュータシステムのプログラムデバングを
行うデバッガの実行制御処理方式に関し。
デバッガのみで任意のアドレスにブレークポイントを設
定してデバッグを行うことを目的とし。
プログラムについてのブレークポイントを格納するブレ
ークポイント記憶領域と。
トラップフラグのセットとシングルステップ割り込みの
処理を行うシングルステップ割り込み処理部とをデバッ
ガに備え。
前記トラップフラグのセットにより、命令実行部が前記
プログラムの一命令を実行する毎に前記シングルステッ
プ割り込みを発生させ。
前記シングルステップ割り込みが発生した時に前記シン
グルステップ割り込み処理部が実行アドレス記憶領域の
アドレスと前記ブレークポイント記憶領域のアドレスと
を比較し、一致した時に前記プログラムの実行を停止す
るように構成する。
〔産業上の利用分野〕
本発明はデバッガの実行制御処理方式に関し。
更に詳しくは、マイクロコンピュータシステムのプログ
ラムデバッグを行うデバッガの実行制御処理方式に関す
る。
マイクロコンピュータシステムのプログラムデバッグに
おいては、プログラムの任意のアドレスから任意のアド
レスまでを実行する実行制御機能が必須である。この機
能は、デバッガ及びエミュレータによって実現される。
〔従来の技術〕
従来のデバッガの実行制御において、特に任意のアドレ
スでの実行の停止は、実行を停止させたいアドレス(ブ
レークポイント)に格納されている命令を取り出して保
存し、その代わりに割り込みを発生させる命令をブレー
クポイントに格納することで行っている。
このフローを簡単に示すと次のようになる。
(ア)デバッガはコンソールからのコマンド入力待ちの
状態になっている。
(イ)デバッガはコンソールから入力された実行制御コ
マンド及びそのパラメタ(実行開始アドレス、ブレーク
ポイント)を受は取る。
(つ)デバッガはデバッグ対象であるプログラムのブレ
ークポイントに格納されている命令を取り出して保存す
る。
(1)デバッガはプログラムのブレークポイントに割り
込みを発生させる命令を格納する。
(オ)デバッガからプログラムに実行が移り、実行開始
アドレスからプログラムが実行される。
(力)プログラムがブレークポイントまで実行されると
割り込みが発生する。この割り込み発生により、デバッ
ガに実行が移るように予め割り込みベクタが登録されて
いるので、デバッガに実行が戻る。
(キ)デバッガは(つ)で保存した命令をブレークポイ
ントに戻す。
(り)デバッガはコンソールからの入力待ち状態となる
〔発明が解決しようとする課題〕
前述の従来技術によれば、デバッグ対象であるプログラ
ムのブレークポイントにある命令を書き換える必要があ
る。このため、プログラムが書き換え可能なメモリ、即
ちRAM (random accessmemory
 )上にある場合にしか適用できないという問題があっ
た。
また、このため、書き換えのできないメモリ。
即ちROM (read only me+nory)
上にあるプログラムにブレークポイントを設定したい場
合には。
エミュレータをシステムに接続してデバッグを行うこと
になる。しかし、この方法には、エミュレータが高価で
あること、マイクロコンピュータとプリント配線板が接
着されているシステムには適用できないこと、エミュレ
ータのない現場での障害解析には即応できない1等の問
題がある。
本発明は、デバッガのみで任意のアドレスにブレークポ
イントを設定してデバッグを行うことを可能としたデバ
ッガの実行制御処理方式を提供すること°を目的とする
〔課題を解決するための手段〕
第1図は本発明の原理構成図であり2本発明によるデバ
ッガを備えたデータ処理装置9例えばマイクロコンピュ
ータシステムを示している。
第1図において、1は処理装置、2はデバッガ3は命令
実行部、4はトラップフラグ、5は実行アドレス記憶領
域、6はプログラム、7は割り込みへフタテーブル、8
は割り込み処理プログラム。
9はコンソール、21はシングルステップ割り込み処理
部、22はブレークポイント記憶領域である。
処理装置1は、中央処理装置又はマイクロプロセッサ(
CPU)とRAM及びROM等のメモリとからなり、プ
ログラム6を実行し1組み込まれたデバッガ2によるプ
ログラム6のデバッグを行う。
デバッガ2は、プログラム6がデバッグの対象とされた
時にそのデバッグを行うものであり、そのための種々の
機能を備えると共にシングルステップ割り込み処理部2
1とブレークポイント記憶領域22とを備える。シング
ルステップ割り込み処理部21は、シングルステップ割
り込みが発生した時にその処理を行う他、デバッグの開
始に先立ってトラップフラグ4をセットする。ブレーク
ポイント記憶領域22は、デバッグ対象とされたプログ
ラム6についてのブレークポイントがコンソール9から
入力された時に、デバッガ2がブレークポイントを一時
的な保管のために格納する。
命令実行部3は、プログラム6の各命令を実行するもの
であり、各種のレジスタ、プログラムカウンタ、スタッ
クポインタ、命令レジスタ、命令デコーダ等からなる。
トラップフラグ4は、中央処理装置(CP U)又は命
令実行部3が持つフラグの1つであり1 このフラグが
セットされている時には命令実行部3は1つの命令を実
行する毎に割り込み(シングルステップ割り込み)を発
生する。トラップフラグ4は、シングルステップ割り込
みや他の各種の割り込み発生により、リセットされる。
実行アドレス記憶領域5は、シングルステップ割り込み
及び他の各掻削り込みの発生により、命令実行部3にお
けるプログラム6の実行が中断された時に、実行が中断
される直前に次に実行しようとしていた当該プログラム
6の命令のアドレスを格納する。
プログラム6は、処理装置1を構成するRAM又はRO
M上に存在する。
割り込みへフタテーブル7は3割り込みのタイプ毎にそ
れに対応する割り込み処理プログラム8のエントリアド
レスが設定されている。NMI(マスク不可の割り込み
)及びシングルステップ割り込みについてはデバッガ2
が、他の一般割り込み(レベル1ないしレベル3割り込
みを含む)については割り込み処理プログラム8が、各
々。
割り込みベクタテーブル7により指示される。即ち、デ
バッガ2は割り込み処理プログラムの一種である。
割り込み処理プログラム8は2割り込みのタイプ毎に用
意され、対応する割り込みが発生すると実行を開始する
コンソール9は、利用者が処理装置1に対してデバッガ
の実行制御コマンド及びそのパラメタ(実行開始アドレ
ス、ブレークポイント)を入力するためのものであり、
利用者に対して処理装置1が処理の結果を表示するため
のものである。
〔作 用〕
コンソール9からの入力待ち状態にあるデバッガ2は、
コンソール9からデバッガの実行制御コマンド及びその
パラメタの入力があると5ブレークポイントをブレーク
ポイント記憶領域22に格納し、トラップフラグ4をセ
ットする。
この後、実行をデバッグ対象とされたプログラム6に移
し、命令実行部3において、実行開始アドレスからプロ
グラム6の実行を開始する。
この際、トラップフラグ4がセットされていることによ
り、命令実行部3がプログラム6の1つの命令を実行す
る毎にシングルステップ割り込みが発生し、デバッガ2
に実行が移る。即ち、シングルステップ割り込み発生時
に割り込みベクタテーブル7のシングルステップ割り込
みのベクタが参照され、これによりデバッガ2が割り込
み処理プログラムとして指示される。
一方7割り込み発生により1次に実行しようとしていた
プログラム6の命令のアドレスが実行アドレス記憶領域
5に格納される。なお、この処理は、実際には、CPU
によって割り込み処理に先立って、命令実行部3のプロ
グラムカウンタの内容をスタックに退避することによっ
て行われる。
シングルステップ割り込みが発生すると、シングルステ
ップ割り込み処理部21は、実行アドレス記憶領域5の
アドレスとブレークポイント記憶領域22のアドレスと
を比較する。
両者が不一致であれば、シングルステップ割り込み処理
部21は、トラップフラグ4を再びセットした後、実行
アドレス記憶領域5のアドレスに実行を移し、プログラ
ム6の次の1つの命令が実行される。
一方1両者が一致していれば、シングルステップ割り込
み処理部21は、ブレークポイントまでプログラム6を
実行したと判断し、デバッガ2は処理を停止(プログラ
ム6の実行を停止)してその旨をコンソール9に表示し
、コンソール9からの入力待ち状態となる。
このように、デバッグ対象のプログラム6が処理装置1
のRAM又はROM上のいずれにあるかを問わず(位置
に依存することなり)、デバッガのみによって、任意の
アドレスにブレークポイントを設定してデバッグを行う
ことができる。
〔実施例〕
第2図は実施例構成図であり、処理装置lを示している
第2図において、7′は書き換えられた割り込みベクタ
テーブル、23は割り込み解析部、24は割り込みベク
タ保存テーブル、41はフラグレジスタ、51はスタッ
クメモリである。
本実施例は9割り込み処理プログラム8内へのブレーク
ポイントの設定を可能とした例であり。
これによりデバッガ2内体を除く全てのプログラムにつ
いてのデバッグを可能とするものである。
フラグレジスタ41は、中央処理装置又はマイクロプロ
セッサ(CP U)の持つレジスタであり。
種々のフラグをセットするためのものである。トラップ
フラグ(TF)4は、フラグレジスタ41の1ピント例
えば第8ビツトとされる。セット(“1′″)されたト
ラップフラグ4は2割り込み処理プログラム8の実行の
開始の際には1通常。
割り込み発生により、リセット(“0”)されている。
割り込みベクタ保存テーブル24は、デバッガ2内の記
憶領域に設けられ9割り込みベクタテーブル7をデバッ
グの開始に先立って複写(退避)することによって得ら
れる。従って5割り込みベクタ保存テーブル24の各ベ
クタは1本来それらが指示すべきデバッガ2又は割り込
み処理プログラム8のエントリアドレスを示している。
なお。
NMI及びシングルステップ割り込みのベクタは複写し
なくてもよい。
一方3割り込みベクタテーブル7は、これを割り込みベ
クタ保存テーブル24に複写した後に。
その内容が書き換えられ割り込みベクタテーブル7′と
される。即ち、NMI及びシングルステップ割り込みの
ベクタは、デバッガ2を示すままとされる。これに対し
て、NMI及びシングルステップ割り込み以外の割り込
み(以下、一般割り込み)のベクタは、全て1割り込み
解析部23のエントリアドレスを示すように書き換えら
れる。なお、第2図においては1図面の筒車化のために
−a割り込みとしてレベル1割り込みのみを示し割り込
み処理プログラム8もこれに対応する1つのみを示して
いるが、一般割り込みは各種存在し。
その各々に対応して各種の割り込み処理プログラム8が
存栓する。割り込みベクタテーブル7′の各種一般割り
込みのベクタは割り込み解析部23を示し1割り込みベ
クタ保存テーブル24の各種−般割り込みのベクタは本
来のそれらが対応する各種別り込み処理プログラム8を
示す。
割り込み解析部23は、一般割り込みが発生すると呼び
出され。割り込み発生によってリセットされたトラップ
フラグ4を再びセントする。これにより1割り込み処理
プログラム8におけるシングルステップ動作を可能とす
る。また1割り込み解析部23は9割り込みを発生した
割り込みのりイブを解析し1割り込みベクタ保存テーブ
ル24から対応する割り込み処理プログラム8を求め。
これに実行を移す。
スタックメモリ51は1次に実行すべき命令のアドレス
(実行アドレス)が2割り込みの発生時にCPUによっ
て格納される。これにより、シングルステップ割り込み
の発生に伴う実行アドレスの退避を行う。
第3図は、第2図図示の構成におけるデバッグ実行制御
処理フローを示している。
■ デバッガ2は、コンソール9からの人力待ち状態に
ある。
■ 利用者が、コンソール9から、実行制御コマンド及
びそのパラメタ(実行開始アドレス、ブレークポイント
)を入力する。ここで、実行開始アドレスはプログラム
G内に、ブレークポイントは割り込み処理プログラム8
内に存在するものとする。
■ デバッガ2は、ブレークポイントをブレークポイン
ト記憶領域22に格納(設定)する。
■ デバッガ2は2割り込みベクタテーブル7を割り込
みベクタ保存テーブル24に複写する。
この後、デバッガ2は2割り込みベクタテーブル7の一
般割り込みのベクタが割り込み解析部23を示すように
書き換え1割り込みへフタテーブル7′とする。
■ デバッガ2は、トラップフラグ4をセットし。
プログラム6に実行を移して実行開始アドレスから実行
を開始する。
■ 命令実行部3において、プログラム6の1つの命令
が実行される。
ここで、トラップフラグ4がセットされているので、1
つの命令を実行する毎にシングルステップ割り込みが発
生し、シングルステノブ割り込み処理が行われるが、こ
れについては後述する(処理@ないし処理[相])。
■ プログラム6の1つの命令の実行時に一般割り込み
が発生すると、これに伴い、トラップフラグ4はリセッ
トされ、実行アドレスがスタックメモリ51に退避され
る。
■ 一般割り込みが発生すると2割り込みベクタテーブ
ル7′の書き換えられた一般割り込みのベクタによって
1割り込み解析部23が呼び出される(起動される)。
■ 割り込み解析部23は1割り込みのタイプ(割り込
み発生原因)を解析し、その結果に基づいて割り込みベ
クタ保存テーブル24を参照し。
割り込みタイプに対応した割り込み処理プログラム8の
エントリアドレスを求める。
[相] 割り込み解析部23は、トラップフラグ4を再
びセントし、対応する割り込み処理プログラム8に実行
を移す。
■ 命令実行部3において1割り込み処理プログラム8
の1つの命令が実行される。
0 トラップフラグ4がセットされているので1つの命
令を実行する毎にシングルステップ割り込みが発生する
。これに伴い、トラップフラグ4はリセットされ、実行
アトルスがスタックメモリ51に退避(スタック)され
る。
■ シングルステップ割り込みが発生すると2割り込み
ベクタテーブル7′のシングルステップ割す込みのベク
タによって、シングルステップ割り込み処理部21が呼
び出される(起動される)。
■ シングルステップ割り込み処理部21は、スタック
メモリ51に最新にスタックされたアドレス(実行アド
レス)とブレークポイント記憶領域22のアドレスとに
ついて、一致/不一致をチエツクする。
■ 両者が一致した場合、シングルステップ割り込み処
理部21は、ブレークポイントまで実行したものと判断
して、実行を停止し、指定されたアドレスで実行を停止
した旨をコンソール9に表示する。この後、デバッガ2
はコンソール9からの入力待ち状態となる。
[相] 両者が一致しない場合、シングルステップ割り
込み処理部21は、まだブレークポイントまで実行して
いないものと判断して、実行を継続するためにトラップ
フラグ4を再びセントし、この後スタックメモリ51に
最新にスタックされた実行アドレスに実行を戻して割り
込み処理プログラム8を実行する(処理■に戻る)。
なお、処理■で発生するシングルステップ割り込みに伴
う処理は、処理■に続けて第3図(A)に分岐■として
示す如く処理0ないし[相]を行い。
再び処理■に戻る(第3図(ALに復帰■として示す)
ようにされる。
〔発明の効果〕
以上説明したように9本発明によれば、デバッガの実行
制御処理において、シングルステップ割り込みを利用す
ることによって、デバッガのみで。
プログラムの任意のアドレスにブレークポイントを設定
したデバッグを行うことができ、プログラムの位置に依
存しないデバッガを得ることができると共に、エミュレ
ータが無い又は存在しない場合でもデバッグを行うこと
ができる。
【図面の簡単な説明】
第1図は本発明の原理構成図。 第2図は実施例構成図。 第3図はデバッグ実行制御処理フロー lは処理装置、2はデバッガ、3は命令実行部。 4はトラップフラグ、5は実行アドレス記憶領域6はプ
ログラム、7は割り込みベクタテーブル。 8は割り込み処理プログラム、9はコンソール。 21はシングルステップ割り込み処理部、22はブレー
クポイント記憶領域である。

Claims (1)

  1. 【特許請求の範囲】  プログラム(6)のデバッグを行うデバッガ(2)と
    、 前記プログラム(6)を実行する命令実行部(3)と、 前記命令実行部(3)にシングルステップ割り込みを発
    生させるトラップフラグ(4)と、 割り込み発生により前記実行が中断された時に次に実行
    しようとしていた前記プログラム(6)の命令のアドレ
    スを格納する実行アドレス記憶領域(5)とを備えたデ
    ータ処理装置において、前記プログラム(6)について
    のブレークポイントを格納するブレークポイント記憶領
    域(22)と、前記トラップフラグ(4)のセットと前
    記シングルステップ割り込みの処理を行うシングルステ
    ップ割り込み処理部(21)とを前記デバッガ(2)に
    備え、 前記トラップフラグ(4)のセットにより、前記命令実
    行部(3)が前記プログラム(6)の一命令を実行する
    毎に前記シングルステップ割り込みを発生させ、 前記シングルステップ割り込みが発生した時に前記シン
    グルステップ割り込み処理部(21)が前記実行アドレ
    ス記憶領域(5)のアドレスと前記ブレークポイント記
    憶領域(22)のアドレスとを比較し、一致した時に前
    記プログラム(6)の実行を停止する ことを特徴とするデバッガの実行制御処理方式。
JP63289687A 1988-11-16 1988-11-16 デバッガの実行制御処理方式 Pending JPH02135545A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63289687A JPH02135545A (ja) 1988-11-16 1988-11-16 デバッガの実行制御処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63289687A JPH02135545A (ja) 1988-11-16 1988-11-16 デバッガの実行制御処理方式

Publications (1)

Publication Number Publication Date
JPH02135545A true JPH02135545A (ja) 1990-05-24

Family

ID=17746448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63289687A Pending JPH02135545A (ja) 1988-11-16 1988-11-16 デバッガの実行制御処理方式

Country Status (1)

Country Link
JP (1) JPH02135545A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05505695A (ja) * 1991-03-07 1993-08-19 デジタル イクイプメント コーポレーション 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
US8434057B2 (en) 2010-08-17 2013-04-30 Oracle International Corporation Optimized implementation of breakpoint in java debugger agent
US8572579B2 (en) 2010-08-19 2013-10-29 Oracle International Corporation Break on next called function or method in java debugger agent

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05505695A (ja) * 1991-03-07 1993-08-19 デジタル イクイプメント コーポレーション 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
US8434057B2 (en) 2010-08-17 2013-04-30 Oracle International Corporation Optimized implementation of breakpoint in java debugger agent
US8572579B2 (en) 2010-08-19 2013-10-29 Oracle International Corporation Break on next called function or method in java debugger agent
US10229032B2 (en) 2010-08-19 2019-03-12 Oracle International Corporation Break on next called function or method in java debugger agent

Similar Documents

Publication Publication Date Title
JPS634346A (ja) マイクロプロセッサ・デバッグ装置
JPH02135545A (ja) デバッガの実行制御処理方式
JPH0250228A (ja) デバッグ処理装置
JPS60124746A (ja) デ−タ処理装置
JP3449812B2 (ja) 制御用電子装置
JPH06103109A (ja) データプロセッサ、及びこれを用いるデバッグ装置
JP2000181748A (ja) マルチメモリ空間プログラムのデバッグシステムおよびそのデバッグ方法
JPS61221943A (ja) 演算処理装置
JPS63271542A (ja) Romデバツガ
JPH1049401A (ja) プログラムのデバッグ方法
JPS62290942A (ja) デバツガ起動方式
JPS61229137A (ja) 演算処理装置
JPH04123235A (ja) マイクロプログラムのデバッグ方式及び方法
JPS60167038A (ja) マイクロプロセツサ
JPH01274253A (ja) ソフトウェアブレーク方式
JPH01232446A (ja) コンピュータのプログラム開発支援装置
JPH04165433A (ja) オペレーティングシステムのデバグ方式
JPH0239332A (ja) ソフトウェアブレーク方式
JPH04184544A (ja) ブレークポイント制御方式
JPH08185341A (ja) Cpuシミュレータ
JPH02284236A (ja) プログラムデバッグ処理装置
JPH01181133A (ja) ブレークポイント設定装置
JPS59206955A (ja) デバツグ方法
JPS59158449A (ja) デバツグ装置
JPS59202550A (ja) デバツグ装置