JPH0727477B2 - 命令置換方式 - Google Patents

命令置換方式

Info

Publication number
JPH0727477B2
JPH0727477B2 JP63000954A JP95488A JPH0727477B2 JP H0727477 B2 JPH0727477 B2 JP H0727477B2 JP 63000954 A JP63000954 A JP 63000954A JP 95488 A JP95488 A JP 95488A JP H0727477 B2 JPH0727477 B2 JP H0727477B2
Authority
JP
Japan
Prior art keywords
instruction
replacement
circuit
breakpoint
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.)
Expired - Fee Related
Application number
JP63000954A
Other languages
English (en)
Other versions
JPH01177139A (ja
Inventor
眞江 渡部
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP63000954A priority Critical patent/JPH0727477B2/ja
Publication of JPH01177139A publication Critical patent/JPH01177139A/ja
Publication of JPH0727477B2 publication Critical patent/JPH0727477B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は命令置換方式、特にプログラムデバックに使用
される命令置換方式に関する。
〔従来の技術〕
プログラムをデバッグする際用いるツールであるデバッ
ガには、プログラムがある箇所を通過した時に、プログ
ラムの実行を一時中断(ブレーク)させるブレークポイ
ント機能が存在し、さらにこのブレークポイント機能に
は、テンポラリなもの、すなわちブレーク後のプログラ
ムの実行が再開され再びその箇所を通過したときにはブ
レークしなものと、パーマネントなもの、すなわちブレ
ーク後のプログラムの実行が再開され再びその箇所を通
過したときにもブレークするものが存在する。
従来このパーマネントなブレークポイント機能は、通常
中央処置装置(CPU)のブレーク命令のトラップ機能と
シングルステップ命令のトラップ機能とを用いて実現さ
れている。デバッガは、ブレークポイントをセットする
場合、セットするブレークポイントを管理するテーブル
(以下ブレークポイントテーブルという)に登録し、こ
のアドレスの本来の命令をブレークポイントテーブルに
退避し、このアドレスにブレーク命令を埋込む。プログ
ラムはそのブレーク命令を実行することでトラップする
ことによりブレーグする。ブレーク命令の例外処理ルー
チンは、テーブルに登録されている各ブレークポイント
のブレーク命令をそれぞれ退避した命令に戻した後に、
逆アセンブル等のデバッグ処理を行なう。そして、この
アドレスがテンポラリなブレークポイントの時は再度ブ
レークがかからないようにブレークポイントテーブルか
ら削除したのち、他のブレークポイントテーブルに登録
されている各ブレークポイントに、再度ブレークをかけ
るようにもう一度ブレーク命令を埋込み、プログラムの
実行を再開する。
ここでもし、実行再開アドレスがパーマネントなブレー
クポイントであった場合は、このアドレズもブレークポ
イントテーブルに登録されたままなので、ブレーク命令
が埋込まれているため、再び退避した命令を元に戻し、
この命令をシングルステップ命令で実行し、トラップし
た例外処理ルーチンで、ブレーク命令を埋込み、プログ
ラムの実行を再開するという複雑な方法がとられてい
る。
したがって、デバッガにおいて提供されているような、
ブレークポイント機能、特にパーマネントブレークポイ
ント機能の実現には、従来は複数のCPU命令からなるプ
ログラムによって実現されている。
〔発明が解決しようとする問題点〕
上述のように、デバッガでパーマネントなブレークポイ
ント機能を実現するためには、デバッガの実施者が、シ
ングルステップ命令のトラップ機能を利用して、プログ
ラムでこの機能を実現する必要がある。そのために、デ
バッガの開発時には、このプログラムを製作するための
余分な手間が必要になると同時に、製作したプログラム
にバグが含まれる可能性も高くなる。また、プログラム
で実現されたパーマネントなブレークポイントでは、一
回ブレークポイントを通過する毎に2つのトラップが発
生して、例外処理ルーチンに制御が移されるため、不必
要な処理によって処理速度が低下するという問題点があ
る。また、スングルステップ命令のトラップには、上述
のようなパーマネントなブレークポイントの処理を行う
場合の他に、デバッガのシングルステップ機能の処理、
すなわち一命令実行後、デバッグ処理を行う場合があ
り、シングルステップ命令の例外処理ルーチンでは、こ
れらの切分けが必要で、これはバグを作る原因となると
ともに、性能の低下にもなる。
本発明の目的は、パーマネントなブレークポイント機能
実現の上記のような不具合を除去し、中央処理装置に僅
かな回路を付加することにより、単純な命令置換方式を
提供することにある。
〔問題点を解決するための手段〕
本発明の命令置換方式は、中央処理装置において、実行
する命令のアドレスを保持するプログラムカウンタと、
置換する命令のアドレスを保持する命令置換アドレスレ
ジスタと、命令置換の有無を保持する命令置換フラグ保
持回路と、この命令置換フラグ保持回路をリセットする
リセット回路と、置換する命令を保持する置換命令レジ
スタと、一命令実行機構とを具備し、プログラムがパー
マネントなブレークポイントでブレークしたとき、例外
処理ルーチンが前記命令置換フラグ保持回路をセット
し、かつ前記プログラムカウンタと前記命令置換アドレ
スレジスタの内容が一致した時に、メモリ中の前記命令
置換アドレスレジスタが示すアドレスの命令を前記置換
命令レジスタの内容と入換え、このアドレスから一命令
実行後さらにこのアドレスの内容を前記置換命令レジス
タの元の命令に置換えると共に前記滅命令置換フラグ保
持回路をリッセットし、実行を続行するとにより構成さ
れる。
〔実施例〕
次に、本発明の一実施例について図面を参照して説明す
る。
第1図は本発明の一実施例のブロック図で、本発明に関
する中央処理装置の一部を示す。第1図において、1は
データバス、2は命令置換フラグ保持回路、3はプログ
ラムカウンタ、4は命令置換アドレスレジスタ、5は置
換命令レジスタ、6は比較回路、7は論理積回路、8は
命令置換回路、9は一命令実行回路、10はリセット回路
である。
この構成における動作について説明を進めると、先ず命
令置換フラグ保持回路2はオフに初期設定されているも
のとする。デバッガがブレークポイント機能を実現する
場合は、従来と同様にブレークポイントをセットしたい
各アドレスの命令をブレークポイントテーブルに退避
し、それぞれにブレークポイント命令を埋込む。プログ
ラムがブレークポイントでブレークするとその例外処理
ルーチンは、各ブレークポイント命令を、それぞれ退避
していた元の命令に置換え、デバッグ処理を行い、この
アドレスがテンポラリなブレークポイントであれば従来
と同様に他の各ブレークポイントにもう一度ブレークポ
イント命令を埋込む。もしそのブレークポイントがパー
マネントなブレークポイントであればもう一度ブレーク
命令を埋込み、命令置換フラグ保持回路2をセットして
オンにし、そのアドレスを命令置換アドレスレジスタ4
に格納し、退避している元の命令を置換命令レジスタ5
に格納する。プログラムの実行が再開され、プログラム
カウンタ3の値と命令置換アドレスレジスタ4の値が等
しくなると、比較回路6の出力はオンとなり、命令置換
フラグがオンなので、論理積回路7を通して命令置換回
路8と一命令実行回路9とにオン信号が送られる。そこ
で命令置換回路8は、命令置換アドレスレジスタ4の示
すアドレスの命令すなわブレーク命令と置換命令レジス
タ5の内容すなわち退避された元の命令とを入換え、一
命令実行回路9により元の命令が実行される。一命令実
行回路9は、一命令実行後命令置換回路8とリセット回
路10とにオン信号を出力し、命令置換回路8に、再び命
令置換アドレスレジスタ4の示すアドレスの命令すなわ
ち元の命令と置換命令レジスタ5の内容すなわちブレー
ク命令とを入換させ、リセット回路10を介して、命令置
換フラグ保持回路2をリセットしてフラグをオフとす
る。
以上の構成と動作により、命令置換フラグ保持回路2に
オンが設定されていて、かつプログラムカウンタ3の値
と命令置換アドレスレジスタ4の値とが一致した場合
に、命令置換回路8によりこのアドレスの命令が元の命
令にもどされ、一命令実行回路9によりシングルステッ
プでこの命令が実行され、再び命令置換回路8により、
このアドレスにブレーク命令が埋め込まれる。
〔発明の効果〕
以上説明したように本発明は、中央処理装置において指
定されたアドレスとプログラムカウンタの値が一致した
ときに、このアドレスの命令を元の命令と置き換え、一
命令実行後、再びこのアドレスの命令を元に戻す機能を
提供するため、デバッガ製作時にはこの機能によって、
パーマネントなブレークポイント機能が実現でき、ソフ
トウェアでこの機能を実現しなければならなかった従来
の製作に比べ、設計製造効率の向上が期待できる。ま
た、この機能のためのソフトウェアが含むバグの心配が
なくなるため、製作するデバッギングツールの信頼性の
向上も期待できる。特に、シングルステップ命令のトラ
ップを利用する必要がなくなるため、シングルステップ
命令の例外処理ルーチンにおける、パーマネントなブレ
ークポイント機能とシングルステップ機能の切分けとい
う複雑な処理が必要でなくなるので、信頼性と性能の向
上が期待できる。
さらに、本発明の命令置換方式では、指定した回数だけ
ブレークッポイントを無視するブレークポイント機能に
おいて、不必要なブレークポイントトラップが発生しな
いため、処理速度が高まりリアルタイム性の向上も期待
できる。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図である。 1……データバス、2……命令置換フラグ保持回路、3
……プログラムカウンタ、4……命令置換アドレスレジ
スタ、5……置換命令レジスタ、6……比較回路、7…
…論理回路、8……命令置換回路、9……一命令実行回
路、10……リセット回路。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】テンポラリなブレークポイントとパーマネ
    ントなブレークポイントが存在するデバックに使用され
    る中央処理装置の命令置換方式において、実行している
    命令のアドレスを示すプログラムカウンタと、プログラ
    ムがパーマネントなブレークポイントでブレークした際
    に、デバッガがそのブレーク命令を本来の命令に戻した
    あと、再度その命令にブレークポイント命令をセットし
    たことを示すためにオンにセットする命令置換フラグ保
    持回路と、この命令置換フラグ保持回路をオンにセット
    したときブレークポイント命令をセットしたアドレスを
    格納する命令置換アドレスレジスタと、前記命令置換フ
    ラグ保持回路をオンにセットし、ブレークポイント命令
    をセットしたとき退避した元の命令を格納する置換命令
    レジスタと、前記プログラムカウンタの値と前記命令置
    換アドレスレジスタの内容とを比較する比較回路と、プ
    ログラムの実行を再開して前記比較回路で一致が得られ
    かつ前記命令置換フラグ保持回路がオンにセットされて
    いるとき前記置換命令レジスタの命令と前記命令置換ア
    ドレスレジスタの示すアドレスのブレークポイント命令
    を入換え、プログラムカウンタを変更することなく1命
    令を実行する一命令実行回路と、この一命令実行回路の
    1命令の実行後に前記置換命令レジスタの内容とプログ
    ラムカウンタが示す命令の内容とを入換える命令置換回
    路と、前記一命令実行回路の1命令の実行後に、前記命
    令置換フラグ保持回路をリセットするリセット回路とを
    有することを特徴とする命令置換方式。
JP63000954A 1988-01-05 1988-01-05 命令置換方式 Expired - Fee Related JPH0727477B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63000954A JPH0727477B2 (ja) 1988-01-05 1988-01-05 命令置換方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63000954A JPH0727477B2 (ja) 1988-01-05 1988-01-05 命令置換方式

Publications (2)

Publication Number Publication Date
JPH01177139A JPH01177139A (ja) 1989-07-13
JPH0727477B2 true JPH0727477B2 (ja) 1995-03-29

Family

ID=11488066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63000954A Expired - Fee Related JPH0727477B2 (ja) 1988-01-05 1988-01-05 命令置換方式

Country Status (1)

Country Link
JP (1) JPH0727477B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04321139A (ja) * 1991-04-22 1992-11-11 Mitsubishi Electric Corp デバッグ支援装置
US20120185820A1 (en) * 2011-01-19 2012-07-19 Suresh Kadiyala Tool generator

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5549764A (en) * 1978-10-03 1980-04-10 Nippon Telegr & Teleph Corp <Ntt> Memory control system
JPS62196742A (ja) * 1986-02-25 1987-08-31 Nec Corp メモリ常駐モジユ−ルのデ−タ収集方式

Also Published As

Publication number Publication date
JPH01177139A (ja) 1989-07-13

Similar Documents

Publication Publication Date Title
EP3093768A2 (en) Debugging systems
US5404466A (en) Apparatus and method to set and reset a pipeline instruction execution control unit for sequential execution of an instruction interval
US11366740B2 (en) Debugging shared memory errors
JP2513417B2 (ja) 情報処理装置
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
JPH0727477B2 (ja) 命令置換方式
JPH0581070A (ja) プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法
JPH0588933A (ja) デバツグ機能を有する並列処理システム
JPS60124746A (ja) デ−タ処理装置
JP2561460B2 (ja) ソフトウエアトラツプ制御方式
JP2590154B2 (ja) 並列プロセッサのプログラムデバッグ支援装置
JPS6012656B2 (ja) リトライ制御方式
JPH03168844A (ja) プログラムデバッグ方式
JP2697230B2 (ja) デバッグ支援装置
JP3029355B2 (ja) 命令のシングルステップ実行方式
JPH02187829A (ja) ディジタル信号処理プロセッサ
JPH03276341A (ja) マイクロプロセッサシステム
JPH08185341A (ja) Cpuシミュレータ
JP2001125804A (ja) 割り込み処理制御装置および方法
JP2000122882A (ja) マルチスレッドプロセッサおよびデバッグ装置
JPS59200356A (ja) プログラムトレ−ス方式
JPH0784826A (ja) マイクロプロセッサ
JPS59202550A (ja) デバツグ装置
JPH0619720B2 (ja) 情報処理装置
KR19980047755A (ko) 사건 이력을 이용한 병행 chill 프로그램 재실행 방법

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees