JPS63115245A - ソフトウエアモニタにおけるブレ−クポイントを供給し且つ取り扱うための方法及び装置 - Google Patents

ソフトウエアモニタにおけるブレ−クポイントを供給し且つ取り扱うための方法及び装置

Info

Publication number
JPS63115245A
JPS63115245A JP62185318A JP18531887A JPS63115245A JP S63115245 A JPS63115245 A JP S63115245A JP 62185318 A JP62185318 A JP 62185318A JP 18531887 A JP18531887 A JP 18531887A JP S63115245 A JPS63115245 A JP S63115245A
Authority
JP
Japan
Prior art keywords
address
breakpoint
monitor
software
user program
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
JP62185318A
Other languages
English (en)
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.)
Burr Brown Ltd
Original Assignee
Burr Brown 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 Burr Brown Ltd filed Critical Burr Brown Ltd
Publication of JPS63115245A publication Critical patent/JPS63115245A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

Abstract

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

Description

【発明の詳細な説明】 発明の分野 本発明は、ユーザがデバッグあるいは分析するユーザソ
フトウェア内にブレークポイントを定めることができる
ようにして、ユーザプログラム中をステップするかある
いはさもなければ進むことができるようにし、そして選
択されたソフトウェアブレークポイントでのプロセッサ
の諸レジスタの内容を決定できるようにする「ソフトウ
ェアモニタ」に関する。
発明の背景 ソフトウェアモニタあるいは単に「モニタ」と呼ばれる
プログラムは、一般的にエンジニアがソフトウェアを「
デノζッグ」あるいは分析できるようにするためにコン
ピュータシステムにおいて用いられている。あるモニタ
は、代表的にはエンジニアが端末装置によって「モニタ
指令」をモニタに入力することができるようにする。こ
れらのモニタ指令は、−組の指令であり、各々は、通例
1乃至3つの文字からなっている。斯かるモニタ指令に
より、ユーザは、特定のマイクロプロセッサ変数あるい
はマイクロプロセッサによって用いられているメモリ内
のメモリ記憶場所を検査し修正することができる。
例えば、典型的な指令は、「データメモリ表示」であり
、これは、端末装置を経由して数字アドレス値と共にエ
ンタすると、ソフトウェアモニタに命令して、その指定
した数字アドレスから始まる特定の数のメモリ記憶場所
の内容を端末スクIJ−ンに表示させる。別の典型的な
指令は、「レジスタ修正」指令であり、この指令による
と、マイクロプロセッサの指定されたレジスタの内容が
検査されそして修正される。このモニタ指令セットが更
に含む指令は、ユーザがユーザプログラムをメモリにロ
ードし、ユーザプログラムを実行し、且つその実行の特
定の段階においてユーザプログラムを停止してマイクロ
プロセッサの諸レジスタ及びメモリ内の任意の関連の記
憶場所へのユーザプログラムの影響を検査することがで
きるようにする。
ユーザプログラムの実行を停止させるために、ソフトウ
ェア・ブレークポイントが、停止が望まれるメモリ内の
特定の記憶場所にセットされる。
このソフトウェア・ブレークポイントは、マイクロプロ
セッサにユーザプログラムの実行を停止させ、そのレジ
スタの全ての現行の値をモニタによる排他的使用に予約
されたメモリの特定の領域にセーブし、次にモニタプロ
グラムの実行を開始させる。
典型的なシーケンスの事象は以下の通シである。
マイクロプロセッサに基づくシステムの「パワーアップ
」から、システムは、常駐ソフトウェアモニタプログラ
ムの実行を自動的に開始する。これにより、モニタ指令
を端末装置によってエンタすることができる。このモニ
タ指令を用いて、ユーザは、ユーザプログラムを特定の
アビレスから始まるシステムメモリにエンタする。ユー
ザは次に、全ての関連のマイクロプロセッサレジスタを
ユーザプログラムの実行の開始において要求された値に
初期化する。特に、ユーザプログラムカウンタ(ユーザ
プログラムを実行していると仮定した場合に、マイクロ
プロセッサによって実行されるべき次のユーザ命令を含
むメモリ記憶場所のアドレスを含む)がユーザプログラ
ムの初めのアドレス値にセットされる。ユーザは次に、
「ブレークポイント・セット」指令を用いてソフトウェ
アブレークポイントをユーザプログラム内にセットする
このソフトウェア・ブレークポイントは、ユーザプログ
ラムが実行されている時にユーザがユーザプログラムを
停止したいと望むユーザプログラム内の特定のメモリア
ドレス記憶場所にセットされる。
全ての関連のレジスタ及びメモリ記憶場所が(マイクロ
プロセッサがモニタプログラムを実行している状態で使
用可能なモニタ指令を用いて)初期化された後、ユーザ
は、「ラン・モニタ指令」をエンタする。これにより、
マイクロプロセッサは、モニタプログラムの実行を停止
しそしてその初期化されたユーザプログラムカウンタか
らユーザプログラムの実行を開始する。マイクロプロセ
ッサは、ソフトウェア・ブレークポイントに到達するま
でユーザプログラムの実行を継続する。そのブレークポ
イントに到達すると、マイクロプロセッサは、ユーザプ
ログラムの実行を停止し、全てのそのレジスタ値をメモ
リの予約領域にセーブし、そしてモニタプログラムの実
行を再び開始する。ユーザプログラムを停止しそしてモ
ニタプログラムを開始する唯一の方法は、ユーザプログ
ラム内にブレークポイントをセットすることである。
これを達成するためには、モニタ「ブレークポイント・
セット」指令は、ユーザプログラム内の命令を各々の所
望のソフトウェア・ブレークポイントのアドレスにおけ
るトラップ命令と置き換え、そしてこのように置き換え
られたユーザプログラム命令を一時的に記憶する。この
「ラン・モニタ」指令は次に、第1ブレークポイント、
即ち、第1トラツプ命令に遭遇するまでユーザソフトウ
ェアをランさせる。それは、2ワード8ブランチ命令に
「ベクトル」シ、このブランチ命令は、ブレークポイン
トを取り扱い且つ全てのトラップ命令をこのトラップ命
令によって先に置き換えられたユーザ命令に置き換える
モニタサブルーチンをコールする。モニタはまた、プロ
セッサのプログラムカウンタがブレークポイント・トラ
ップ命令に遭遇した時におけるプロセッサの全てのレジ
スタの内容を、端末スクリーンに自動的に表示する。
ユーザプログラムのデバッグには、ユーザプログラムが
これが実行するように設計された予期したシーケンスの
オペレーションを正確に実行スることを検査することが
伴う。理想的には、ユーザプログラムが影響するプロセ
ッサの全てのレジスタ及び任意のメモリ記憶場所は、プ
ロセッサが実行する各ユーザプログラム命令の後の予期
した値と照合される。実際は、たいていのプログラムの
長さの故に、これは実用的でなく、全てのプログラム変
数が、ブレークポイントが定められるユーザプログラム
内の特定の注意深く選択された位置において検査される
だけである。
問題に遭遇すると、この問題を生じているユーザ命令に
「向かって進む」ことがしばしば望まれる。これは、ソ
フトウェア・ブレークポイントの位置を繰シ返し再決定
し、これらのソフトウェア・ブレークポイントがユーザ
プログラム内において互いに近くなるようにすることに
より行うことができる。このようにして、ユーザプログ
ラムがランしている時にブレークポイント間にとられる
ステップがだんだん短くされる。限定的な場合において
、誤りのあるユーザプログラムコードが存在するのでは
ないかと疑われるユーザプログラム内の語記憶場所に1
組のブレークポイントが連続的に定められる。このユー
ザプログラムは、第1ブレークポイントに遭遇するまで
ランされる。プログラム変数が検査される。ユーザプロ
グラムは次に、第1ブレークポイントから第2ブレーク
ポイントまでランされる。即ち、実際には、もう1つの
ユーザー命令が実行され、そしてプログラム変数が再び
検査される。このプロセスは反復される。
しかしながら、どんなモニタも、ある特定の最大数のブ
レークポイントのみdセットすることができるため(一
般的に4乃至10)、ユーザがユーザプログラムにおけ
る最後のブレークポイントを過ぎてユーザプログラムの
1ステップ実行を継続したいと望む場合は、ブレークポ
イントを再び定めなければならない。
命令セットにトラップ命令を含むマイクロプロセッサを
使用するシステムにおいて実行される大S分のモニタは
、簡単にユーザプログラムが一度に1命令ずつ実行され
るようにする「単一ステップ指令」を有している。モニ
タ単一ステップ指令の事象のシーケンスは次の通シであ
る。モニタは、ユーザプログラムカウンタの値によって
与えられるアドレスのメモリ内のOPコードを検査する
。これは、ラン・モニタ指令が実行される場合にユーザ
プログラムが最初に実行するOPコードである。
モニタは、命令全体の長さく例えば1ワード又は2ワー
ド)を決定するためにOPコードを復号化し、次にこの
すぐ後の次の記憶場所(そこのユーザ命令を最初にセー
ブした後)にトレース命令を置く。
斯くシて、モニタは、実行されようとしている次のユー
ザ命令のすぐ後にブレークポイントを効果的にセットす
る。モニタは次に、ラン指令を(単一ステップ指令の一
部として)実行する。ユーザプログラム命令が実行され
、そしてプログラムカウンタが、そのトラップ命令を含
むメモリのアドレス値に増分される。このトラップ命令
が実行され、これにより、ユーザプログラムは停止し、
モニタプログラムを実行する。このモニタプログラムは
、全てのプロセッサ・レジスタ値をセーブし、トラップ
命令を元のセーブされたユーザ命令と置き換える。ユー
ザプログラムカウンタはここで、次のユーザプログラム
・メモリ命令のアドレス値を含むため、ユーザはこの時
点で、前に再び進むために別の単一ステップ指令を再び
実行する。このプロセスは単に、ユーザプログラムにお
いて常に慎重に1命令先に置かれる1つのブレークポイ
ントを用いるだけである。
ユーザ命令のあるものは、モニタ単一ステップ指令を実
行する時に上記の事象ンーケンスに対し僅かな修正を必
要とする。例え°ば、実行されようとしているユーザ命
令が、第5図のメモリ図によって示されるような条件付
きブランチ命令である時について考えることにする。条
件付きブランチ90が実行されるとき、前にセットされ
たフラグの値に応じて、ユーザプログラムは、参照数字
91及び92によってそれぞれ示されるように、アドレ
ス1005又はアドレス1006のどちらかに分枝する
従って、トラップ命令が記憶場所1005 (そこのユ
ーザ命令を最初にセーブした後)に置かなければならな
いばかシか、もう1つのトラップ命令も、参照数字92
によって示されたアドレス1006に置かなければなら
ない。斯くして、ブランチ命令がとる方向に拘わらず、
トラップ命令が常に次女実行される。
第5図はまた、通常その構造セットの一部としてトラッ
プ命令を含むマイクロプロセッサのみが単一ステップモ
ニタ指令を提供できる理由を示している。ここで、トラ
ップ命令の代わシに「サブルーチン・コール」命令が使
用される場合について考えてみる。このサブルーチン・
コール命令は、2ワード命令である。従って、コール命
令OPコードを記憶場所1005に且つこのOPコート
ゝのアーギュメントを記憶場所1006に置くことによ
りブレークポイントを第5図の記憶場所1005にセッ
トできるが、そのアーギュメントには、記憶場所100
7にアーギュメントを持つ1006に置かれた第2ブレ
ークポイントのコール命令OPコードニよってオーバー
ライドされる。記憶場所1005におけるその第1コー
ル命令OPコードの実行によってモニタにエラーが生じ
る。この問題は、単一ステップモニタ指令を実施するの
にトラップ命令を用いると、これが単一ワード命令であ
るため起らない。
多くの一般的に用いられるマイクロプロセッサは、その
命令セットの中に多数のトラップ命令を含むが、これら
の命令の各々は、異なった所定の記憶場所に「ベクトル
」する。しかしながら、最近、いわゆる「限定命令セッ
ト」ヲ有する高性能高速マイクロプロセッサが特定の応
用、例えば、高速デジタル信号プロセッサ(DSP)に
対して用いられている。しかしながら、このようなマイ
クロプロセッサのあるものは、トラップ命令を含んでお
らず、一方他のマイクロプロセッサ、例えば、テキサス
・インスツルメンツ社製TMS 32020 ハ、その
命令セットに1つのトラップ命令だけを含んでいる。こ
の単一命令を用いてTMS 32020に基づくデジタ
ル信号処理システム用のソフトウェアモニタを書き込む
ことができるが、これによって、そのトラップ命令はこ
のシステムが実行するソフトウェアに使用することがで
きなくなってしまう。
TMS 32020に基づくシステムのだめの効率的な
ソフトウェアモニタを提供し、そしてこのシステムの限
定命令セット全体をシステムユーザに対して使用可能に
することが非常に好ましい。
発明の要約 従って、本発明の目的は、トラップ命令を用いないマイ
クロプロセッサに基づくシステムのためのソフトウェア
モニタを提供することにある。
本発明の別の目的は、TMS32020マイクロプロセ
ッサ又は1つのトラップ命令のみを有するマイクロプロ
セッサを用いるシステムに対し、その限定命令セットの
全体をユーザプログラムに対して使用可能にすることの
できる、効率的なソフトウェアモニタを提供することに
ある。
本発明の別の目的は、所望のソフトウェアモニタ機能を
達成するのに最少量の利用可能メモリしか必要とせず、
しかも所望のソフトウェアモニタ機能を実行するのに最
少量の時間しか必要としない、限定命令セットのマイク
ロプロセッサに基づいたシステムのだめのソフトウェア
モニタヲ提供することにある。
簡単に述べると、本発明の1つの実施例によれば、本発
明は、トラップ命令を使用せずに作動し、しかも、ソフ
トウェア・ブレークポイントがユーザプログラムの相次
ぐアドレスにおいて定められる時にある1つのブレーク
ポイント命令のアーギュメントが別のブレークポイント
命令のOPコードによってオーバーライドされることに
因るエラーを防ぐ、ソフトウェアモニタを提供する。本
発明の記述実施例においては、ソフトウェアモニタが、
限定命令セットマイクロプロセッサ、例えば、その命令
セットに1つのトラップ命令しか含んでいないTM83
202016ビツトマイクロプロセツサに基づくデジタ
ル信号処理システムの中に配設される。ユーザプログラ
ム内の各々の所望のブレークポイント・アドレスに対し
て、モニタは、ランすることを初めに指令されると、そ
の所望のブレークポイント・アドレスのユーザプログラ
ム命令をコール命令のOPコードと置き換え、且つまた
その後続の命令をそのコール命令によってコールされる
ベキアーギュメント又はアドレスと置き換える。
モニタはまだ、この2つの置き換えられたユーザ命令を
一時セーブする。ユーザは次にモニタを用いて、第1ソ
フトウェア・ブレークポイント・アドレスにおいて第1
コール命令に遭遇するまで自動的にユーザプログラムを
ランし、そしてソフトウェア・ブレークポイントを取り
扱うモニタルーチンの部分のアドレスを得る。モニタは
また、第1ブレークポイントのアドレス、即ちプログラ
ムカウンタの現行内容及びスタック上のマイクロプロセ
ッサの他のレジスタをセーブし、そしてブレークポイン
トを取り扱うモニタルーチンのその部分にジャンプする
。このモニタ・ブレークポイント取扱いサブルーチンは
次に、第1コール命令及びそのアーギュメントを初めに
置き換えられた2つのユーザ命令と置き換え、そして遭
遇したプロセッサのプログラムカウンタが第1ブレーク
ポイントのアドレスを含む時点において全てのマイクロ
プロセッサ・レジスタの内容を表示する。ソフトウェア
モニタは次に、その初めに戻って、次のモニタ指令を待
機する。新しい「ラン・モニタ」指令がエンタされる場
合、モニタは、その最後のソフトウェア・ブレークポイ
ントから次のブレークポインItでユーザプログラムを
ランし、この次のブレークポイントにおいて、前のシー
ケンスが反復される。第2アドレスにおいて第2ブレー
クポイントを定めるために挿入される第2コール命令の
OPコードが、その第2ブレークポイント・アドレスの
すぐ前のアドレスにおいて第1ソフトウェア・ブレーク
ポイントを定めるように意図された第1コール命令のア
ーギュメントにオーバーライドしないよう防ぐために、
ソフトウェアモニタのブレークポイントを取シ扱う部分
が、それらコール命令のOPコードと等しい値を有する
メモリのアドレスに配置される。この時、第1ブレーク
ポイントを定める第1コール命令のアーギュメントが、
第1ブレークポイントの後の次の連続アドレスにおいて
第2ブレークポイントを定める第2コール命令のOPコ
ードによってオーバーライドされても、ソフトウェアモ
ニタの実行は、モニタのブレークポイントを取)扱う部
分をコールするという結果をもたらす。
本発明のソフトウェアモニタを詳細に説明する前に、先
ず第1図に言及し本発明の記述実施例のソフトウェアモ
ニタが含まれているデジタル信号プロセッサ1を簡単に
述べることが有用である。
デジタル信号プロセッサ1は、データバス導体3によっ
てトランシーバ4に結合されている標準VMEバス2を
含んでおシ、トランシーバ4は、局部データバス5及び
トランシーバ6及び21によってマイクロプロセッサ・
データバス8及びグローバル・データバス19に結合さ
れている。パス2は、回路30.局部アドレスバス32
、バッファ33及びバッファ38によってマイクロプロ
セッサ・アドレスバス34及びグローバル・アドレスバ
ス37に結合されている。上記のTM832020マイ
クロプロセッサ9、局部RAM 10、FROM12、
及びRAM 13は、アドレスバス34及びデータバス
8に接続されている。lPROM (電気的にプログラ
ム可能な読出し専用メモリ)モニタ11は、本発明のソ
フトウェアモニタプログラムを記憶するが、これはまた
、アドレスバス34及びデータバス8に接続されている
グローバルRAM 20は、バッファ39及びトランシ
ーツz22によってI10バス23にそしてノミッファ
36及び18によってアドレスバス34及びデータバス
8にそれぞれ結合されている。工10 yf−ト制御回
路26は、工10バス23、出力ポート27及び入力y
t?−)28の間の通信を制御する。
上記の型式のデジタル信号プロセッサは、利用可能なメ
モリの最少限の使用により最高速度でもって高速デジタ
ル信号処理機能を行う必要がある。
ブロック11のソフトウェアモニタは、lil:PRO
MIIにおいてできるだけ少ないメモリスイースを用い
且つまたそのオペレーションにおいても局部RAM10
のできるだけ小さな部分を用い、しかもソフトウェアモ
ニタ機能を適当な速度でもって実施することが望ましい
ホード復号回路35は、マイクロプロセッサ9が従来の
R8232Cポートであシ得る端末ホード15にアクセ
スできるようにし、これにより、この後説明するように
、ソフトウェアモニタ指令をユーザがデジタル信号プロ
セッサ1に入力し、またブレークポイントをユーザがた
やすく定めることができるようにする。
本発明の動作を理解するには、典型的な先行技術のソフ
トウェアモニタが第1図のシステムにおいてどのように
実施されているかを更により詳細に理解することが有用
であろう。第2図について参照する。TMS32020
マイクロプロセッサ9のメモリマツプ45は、アドレス
2000(16進数)かう始まるユーザプログラムセク
ション46を含んでいる。(本明細書の実施例に与えら
れる全てのアドレスは、16進アドレスである)典型的
なソフトウェアモニタプログラムは、アドレスE000
から始まるメモリマツプ45のセクション47に含まれ
ている。ソフトウェアモニタは、主部47A及びアドレ
スE020から始まる「ブレークポイント・ハンドラ」
セクション47Bを含んでいる。ブレークポイント・ハ
ンドラ47Bは、RETURN命令のOPコードCE2
6を含む記憶場所56まで続いている。
第1図のシステムにおいてソフトウェア・ブレークポイ
ントをセットしそして典型的な先行技術のソフトウェア
モニタをランさせるだめの典型的な手順を次に説明する
。先ず、マイクロプロセッサがパワーアップされると、
マイクロプロセッサはアドレスooooを出力して第1
命令を取シ出す。
アビレスooooは、通常、マイクロプロセッサ9がパ
ワーアップされる時ランダムなデータを含んでいるため
、アドレス0000を、この場合アドレスEOOOであ
るROM (読出し専用メモリ)内の第1アドレスに翻
訳するために復号回路が配設されている。記憶場所EO
OOは、第2図において参照数字110によって示され
るように、OPココ−” F’F80を有するブランチ
命令を含んでいる。このBRANCH命令の「アーギュ
メント」、即ち、ブランチ命令の条件が満足される場合
にプログラムが分枝するアドレスは、アドレスEool
に含まれておシ、ソフトウェアモニタプログラムの第1
命令のアドレスであるアドレスE002にセットされて
いる。この技術によって、システムのパワーアップの際
にシステムがそのモニタに自動的に入るようにするが、
これはシステム又はソフトウェアモニタの以後のオペレ
ーションに関連するものではない。
ない。
システムがパワーアップされた後、ソフトウェアモニタ
を作動させたいと希望するユーザは、メモリマツプ45
のセクション46に記憶されたユーザプログラム内に種
々のソフトウェア・ブレークポイントを定める。上記の
ように、典型的な先行技術のソフトウェアモニタは、モ
ニタプログラムにおけるトラップ命令を用いてソフトウ
ェア・ブレークポイントをセットする。トラップ命令は
、固定ベクトルを含む単一ワートゝ命令である。このト
ラップ命令にマイクロプロセッサ9が遭遇すると、その
トラップ命令によって指し示されたアドレスにジャンプ
する。
説明したこの典型的なソフトウェアモニタを用いるには
、ユーザは先ず、「アドレスにブレークポイントをセッ
トする」モニタ指令にょシューザブログラム内に所望の
ブレークポイントの全てを定める。適当なモニタ「レジ
スタ修正」指令を用いてマイクロプロセッサの関係した
レジスタもセットされ、特に、プログラムカウンタは、
ユーザプログラムの始めのアドレス値にセットされる。
この目的のために、ユーザは、「ブレークポイント表示
」モニタ指令を用いて、ユーザがマイクロプロセッサ9
の種々のレジスタの全ての内容を知多だいと希望するソ
フトウェア・ブレークポイントのアドレスをリストする
次に、ユーザは、「ラン・モニタ」指令をシステムに入
力する。ラン・モニタ指令の実行によって、各ブレーク
ポイントのアドレスにおける命令が、トラップ命令と置
き換えられ、また、各々の置き換えられたユーザ命令は
一時記憶される。このラン・モニタ指令の実行によって
、次に、モニタプログラムは第2図のメモリマツプのセ
クション46に記憶されたユーザプログラムに入ってこ
れを実行する。このユーザプログラムには、アドレス2
000において入シ、そのユーザプログラム命令は、第
1ブレークポイントのアドレスに遭遇するまで実行され
る。第2図の例において、アドレス2000及び200
1は、単に図示の簡便さのために、1MS32020「
ノーOPJ命令OPコードである命令OPコード550
0を含んだ状態で示されている。実際問題として、第1
ブレークポイントのアドレスに遭遇する前に汰多数の種
々の命令が実際には実行されることにある。本例に訃い
て、第1ブレークポイント・アドレスは、第2図におい
てTMS 32020 )ラップ命令のOPコードであ
るCE工Eを含む2002であると仮定する。
これによって、マイクロプロセッサは、アドレス200
2からアドレスエEK:)ヤングし、このアドレスIE
は、TM832020マイクロプロセッサが遭遇する時
にトラップ命令がそこへ常にジャンプするプリセット・
ベクトルである。第2図の矢印51は、アドレス200
2のトラップ命令からのこのジャンプを示している。プ
ログラムメモリの記憶場所IEは、ブランチ命令のOP
コードであるOPココ−’F’F80ヲ含んでいる。こ
のブランチ命令は、次の連続アドレス、即ちアドレスI
ll’におけるそのアーギュメントを含んでいる2ワー
ド命令である。この例において、このブランチ命令のア
ーギュメントは、ブレークポイント・オペレーションを
取シ扱うソフトウェアモニタ部47Bのエントリ点のア
ドレスF:020である。
第2図の矢印54によって示されるように、マイクロプ
ロセッサは次にアドレスKO20にジャンプする。モニ
タプログラムは次に、スタックのその全てのレジスタの
内容をセーブする。(「スタック」には2つの形式のも
のがある。最初の形式のものは、マイクロプロセッサチ
ップ内に含まれているスタックである。TMS 320
20の場合、このスタックは、所望される4つの値を記
憶するのに使用し得る4つのレジスタからなっている。
第2の形式のスタックは、ある種の変数をマイクロプロ
セッサが記憶するのに使用するため予約されたマイクロ
プロセッサの外部のメモリの実際の領域である。明らか
に、この第2の形式のスタックは、所望に応じて大きな
メモリスは−スを許容するものとなシ得る。モニタプロ
グラムにソフトウェア・ブレークポイントを経由して入
ると、モニタは、全てのマイクロプロセッサレジスタ値
をメモリ(第2の形式のスタック)にセーブする。これ
は、「レジスタ表示」等のモニタ指令が、このメモリの
領域を読出しそしてその内容を表示することを意味する
。モニタ「ラン」指令は、ユーザプログラムをランする
ために実行される場合、モニタは、前にセーブされたプ
ログラムカウンタ値を含む全てのセーブされたレジスタ
値をメモリからプロセッサに再ロードし、次にこの再ロ
ート8されたプログラムカウンタ値からユーザ・プログ
ラムの実行を再開する。5PV120モニタは実際、マ
イクロプロセッサ内の内部スタックのレジスタの1つを
用いるだけである。ユーザプログラムあるいはモニタプ
ログラムが停止あるいは開始される時のマイクロプロセ
ッサとメモリ間の全てのマイクロプロセッサ・レジスタ
値のこの交換は、技術的には「コンテキスト・スイッチ
」として知られていも)モニタは次に、アドレスE02
0かう始まるモニタルーチンのブレークポイント取扱い
部分の命令を実行し、そして記憶場所2002における
トラップ命令を、そのアドレスにもともと記憶されてい
たユーザ命令と置き換え、ブレークポイント・アドレス
2002に相当するマイクロプロセッサレジスタの全て
のセーブされた内容を表示する。モニタは次に、その主
セクション47Aの初めに戻り、そして次のモニタ指令
を待機する。本明細書に添付した付録Aは、EPROM
 11に含まれているモニタ用のモニタ指令のリストを
含んでおシ、これはモニタ指令セットを代表している。
次のモニタ指令が、モニタ・ラン(即チ「プログラムコ
ード実行」)指令である場合、マイクロプロセッサはユ
ーザプログラムの記憶場所2003にジャンプし、次の
ブレークポイントに遭遇するまでユーザプログラムを実
行し続け、そしてそのブレークポイントから、上記の手
順を繰シ返す。
前記のように、TMS 32020マイクロプロセツサ
を有する第1図に記述のシステムに対して令達た型式の
典型的なモニタを用いると、ユーザは任意のユーザプロ
グラムにおいてトラップ命令を用いることができない。
と言うのは、TMS32020は、モニタプログラムに
用いたこの1つのトラップ命令しか含まないからである
本発明によると、トラップ命令を用いず、その代わシコ
ール命令を用いるソフトウェアモニタが提供される。こ
こで信じられることは、これまでだれもTMS 320
20限定命令セツト・マイクロプロセッサに基づくシス
テムにおいてソフトウェアモニタを提供していないこと
である。何故なら、ユーザにトラップ命令を実行できな
くすることは好ましくないため、且つ用いられ得るTM
S32020命令セットの他の命令(コール命令)は2
ワード9のメモリを必要とし、従ってユーザプログラム
においてブレークポイントを定めるのに必要なメモリの
量が倍となシ、且つブレークポイントを定めるためにユ
ーザプログラムにおいて置換されなければならないユー
ザ命令を記憶するのに必要なメモリの量が2倍となるか
らである。
次に、モニタすべきユーザプログラム内において所望の
ソフトウェア・ブレークポイントを定めるためにトラッ
プ命令の代わシにコール命令を含むソフトウェアモニタ
を説明するに当シ、第3図のメモリマツプ45Aを参照
する。第3図のメモリマツプ45Aにおいて、ユーザプ
ログラムはセクション46に含まれておシ、ソフトウェ
ア・モニタプログラムはセクション47に含まれており
、このセクション47は、主セクション47A及びブレ
ークポイント取扱いセクション47Bを含んでいる。
第2図を参照して述べた典型的なソフトウェアモニタに
おけるのと同じように、第3図は、ユーザプログラムに
含まれ得る種々の命令を示すためにノーOP(ノーオは
レーション)命令OPコードを示している。ソフトウェ
アモニタによってユーザプログラムに挿入されるべき第
1所望ブレークポイントはアドレス2002に起こると
仮定する。アドレス2002は、コール命令のOPコー
トゝであるFE80を含んでいる。次の記憶場所200
3は、ブレークポイント取扱いサブルーチン47Bに入
るアドレスE020を含んでいる。矢印67は、アドレ
ス2003から、ブレークポイント取扱いモニタルーチ
ンのエントリ点であるアドレスE020へのマイクロプ
ロセッサ9のジャンプを示している。
ここでたやすく判ることは、アドレス2002及び20
03の両方の元のユーザ命令は、ソフトウェアモニタが
ユーザプログラムの記憶場所2002のブレークポイン
トを定めるために一時記憶されなければならないことで
ある。
この時点において、以下のことが明らかとなろう。即ち
、トラップ命令の代わシにコール命令を用いてブレーク
ポイントを定めるソフトウェアモニタは、次のブレーク
ポイントが記憶場所2003において定められない場合
にのみ、その挿入されタコール命令のアーギュメントか
ら直接ブレークポイント取扱いルーチン47Bに入る。
というのは、第2ブレークポイントがアドレス2003
に定められるとした場合、そのFE 800Pコードは
、アドレス2002にOPコードを持つ第1ブレークポ
イント命令のアーギュメントEO20をオーバーライド
することになるからである。従って、定めることができ
る最も近い次のブレークポイントは、アドレス2004
にあシ、ここにおいて、第3図の参照数字69によって
指示されるOPコードFE80が示されておシ、そのア
ーギュメンl−EO20がアドレス2005に挿入され
ておシ、これによりこれらの記憶場所の元の命令を置き
換える。上記の問題を更に説明するために、第3ブレー
クポイントが次のアドレス2005において希望される
と仮定する。
先に述べた方法でこのブレークポイントを定めるために
、参照数字71によって指示される第3コール命令のO
PコードF’E80は、参照数字70によって指示され
る第2コール命令のアーギュメントEO20をオーバー
ライドする。矢印80は、第2コール命令がコールすべ
きモニタアドレスのこの破壊を示している。
従って、後のユーザプログラムがソフトウェアモニタに
よってランされると、第2ブレークポイント69に遭遇
した時に、プログラムは、プログラムカウンタが200
5に達すると、モニタアドレスE020にジャンプせず
、どこか他のアドレスF’E8Qにジャンプし、誤シオ
ペレーションをもたらす。
この問題を克服するために、本発明によれば、第4図の
メモリマツプ45Bに示されている配置が用いられる。
この配置において、モニタのブレークポイント取扱いセ
クション47BにはE020の代わシにアドレスFE8
0で入る。このとき、コール命令のアーギュメント、即
ち、FE8Qは、そのOPコードに等しくなるようにセ
ットすることができる。
次に、第1ブレークポイント・アドレス2002は、コ
ールOPコーrF’E80を含み、そのアーギュメント
FE80は、アドレス2003に含まれている。これは
モニタプログラムに、アドレスFE80のブレークポイ
ント取扱いサブルーチン47Bをコールさせる。
アドレス2004における第2ブレークポイントが参照
数字69Aによって指示されるコール命令OPコー1−
″FE80によって定められると、参照数字70Aによ
って指示されるそのアーギュメントFE80はアドレス
2005に書き込まれる。第3ブレークポイントが参照
数字71Aによって指示されるコール命令OPコードF
’E80によってアドレス2005に定められる場合、
アーギーメン) 70Aは、ユーザプログラム及びブレ
ークポイント取扱いサブルーチン47Bが実行される前
に、アドレス2005に第3ブレークポイントを定める
コール命令のF’F800Pコート″71Aによって(
矢印80Aによって示されるように)オーバーライドさ
れる。しかしながら、ユーザプログラムがランされ、そ
して記憶場所2004におけるコール命令が実行される
と、モニタのブレークポイント取扱いセクション47B
は、第2コール命令のアーギュメントがそれをオーバー
ライドするOPコードに等しいため、アドレスFE80
に適切にエンタする。
通常、モニタプログラムは、1つのオはレーションとし
て全てのブレークポイントを挿入するかあるいは全ての
ブレークポイントをクリアする。
しかしながら、(「ブレークポイント・セット」指令に
よって)記憶場所2004及び2005でユーザプログ
ラム内に2つのブレークポイントをセットしたユーザに
ついて考えてみる。モニタのメモリスタックに含まれて
いるユーザプログラムカウンタの現在の値は2003で
ある。それらのブレークポイントはまだ実際に物理的に
ユーザプログラムに挿入されていないが、記憶場所20
04.2005及ヒ2006のユーザ命令は、(ブレー
クポイント・セット指令の実行により)セーブされてい
る。ブレークポイントを挿入するアドレス(2004及
び2005 )もセーブされている。ここでユーザは、
RUN指令をエンタしてそのユーザプログラムをうンす
る。「コンテキスト・スイッチ」が実行され、即ち、全
てのユーザレジスタ値がモニタメモリスタックからマイ
クロプロセッサにロート8される。
次に、全てのソフトウェア・ブレークポイントがユーザ
プログラムに書き込まれる。即ち、コードrEsoが記
憶場所2004.2005、及び2006に書き込まれ
る。次にユーザプログラムがランされる。
第1ブレークポイントに到達し、制御がモニタに戻る。
次に、モニタは、全てのブレークポイントをクリアし、
即ち、記憶場所2004.2005及び2006におけ
るコー)”FE80を元のユーザ命令と置き換える。ユ
ーザは次に、RUN指令を再びエンタすることができる
再び、全てのユーザレジスタ値がメモリスタックからマ
イクロプロセッサにロードされる。しかしながら、ここ
で、プログラムカウンタレジスタは2004となる。こ
こでモニタが全てのブレークポイントをユーザプログラ
ムに書き込む場合、そのアドレスにおける第1ブレーク
ポイントが再び即座に実行される。ユーザプログラムは
、記憶場所2004を過ぎて進むことができない。この
場合、モニタは、記憶場所2005における第2ズレ−
゛クポイントをユーザプログラムに物理的に書き込むだ
けである。記憶場所2005の第2ブレークポイントに
一旦到達そして制御がモニタに戻ると、モニタは次に、
元のユーザ命令をいつものように再挿入することにより
全てのブレークポイントをクリアする。
斯くして一般的に、モニタは全てのブレークポイントを
1つのオペレーションとしてセットあるいはクリアする
。しかしながら、任意のブレークポイント記憶場所が、
ユーザプログラムカウンタの現行値あるいはプログラム
カウンタの現行値から1を引いたものに等しくなる場合
、この特定のブレークポイントはセットされない。(こ
の設計は選択であって必要なことではなかった。幾つか
の点において、ユーザが始めにブレークポイントを含む
ユーザプログラムのランの開始を試みる場合、このブレ
ークポイントは常にその開始においてユーザプログラム
を停止させるという観点をとることか賢明であろう。) ここで銘記すべきことは、コール命令だけがソフトウェ
ア・ブレークポイントを定めるために上記の方法で用い
ることができることである。その理由は、コール命令が
実行されると、マイクロプロセッサのプログラムカウン
タの現行値は、7MS32020マイクロプロセツサ内
に含まれるハードウェアスタックに押し込まれるからで
ある。次に、コール命令のアーギュメントは、プログラ
ムがコールされたサブルーチンの実行を開始するように
、マイクロプロセッサのそのプログラムカウンタに置か
れる。しかしながら、プログラムカウンタの元の値がセ
ーブされていること。サブルーチンの終りにおいてリタ
ーン命令が実行される。これにより、マイクロプロセッ
サは、スタックからセーブされたプログラムカウンタ内
容を引き出し、これらをプログラムカウンタレジスタに
戻しておくため、これによりブログラムは、それがサブ
ルーチンをコールした点からすぐにその実行を再開でき
る。コールされているサブルーチンがソフトウェアモニ
タの一部である場合に重要である。これは、ソフトウェ
アモニタはこの時点で、ユーザプログラムのどこでサブ
ルーチンがコールされたかを知っていることを意味する
。というのは、ソフトウェアモニタは、スタックを検査
してセーブされたプログラムカウンタを決定することが
できるからである。ブランチ命令等の他の命令は、現行
のカウンタ値をマイクロプロセッサのハート8ウエアに
セーブさせない。
上記のソフトウェア・モニタプログラムは、ユーザプロ
グラムがTMS32020プロセッサの完全な限定命令
セットを用いることができるという利点を提供し、ユー
ザプログラムの連続アドレスにおけるソフトウェア・ブ
レークポイントが所望される場合モニタオシレーション
におけるエラーを防ぐ。例えば、ユーザプログラムは、
モニタを指し示すよう初期化することによりトラップは
クトルを用いることができ、それによってユーザが、も
し望む場合、実行中のユーザプログラムからモニタに制
御をスワップするソフトウェア・ブレークポイントのよ
うに、それをユーザプログラムにおいて用いることがで
きるようにする。しかしながら、ユーザがまた、ユーザ
自身の目的のためにトラップを用いて、例えば、ユーザ
自身のサブルーチンを指し示すようにトラップベクトル
アドレスを変えることにより、サブルーチンをコールす
ることができる。
これは、特に、モニタ単一ステップ指令の実施の場合に
適当である。前に説明したように、ソフトウェアモニタ
単一ステップ指令によって、ユーザプログラムの各命令
は、−度に一命令ずつ実行される。通常、このモニタ指
令は、命令セットにトラップ命令を含まないマイクロプ
ロセッサで実行するモニタによっては、ソフトウェアに
提供スることはできない。
もしマイクロプロセッサ命令セットがトラップ命令を含
んでいる場合、トラップ命令は、通常、単一ステップモ
ニタ指令を実施するために使用され、従ってユーザから
ユーザプログラムにおけるトラップ命令を奪い取る。
本明細書に添付した付録Bは、本発明に従ってソフトウ
ェア・ブレークポイント点を取シ扱う部分を含む、EP
ROMu内のソフトウェアモニタプログラムの関連部分
の一部分のリストである。このリストの最後の2ページ
のメモリマツプのセクション10−15 、31及び3
5は、本発明に関連している。
以上に本発明をいくつかの実施例で説明したが、当業者
には、本発明の真の精神及び範囲から逸脱せずに各種の
変更を記述実施例に行うことができるであろう。意図す
ることは、同一の結果を実質上同一の方法で実質上同一
の機能を行うという点で記述したものと等価の技術は全
て、本発明の範囲に入るということである。
0)                   Ill 
au a+ 〜  −−**4本 ***本′JI水本 な。
’l+ 1ト 本   S νλ 本永永々卆  4g 本よ      *    永*
 ホホ永   *  4 本4本* *申卆    木
本 本簿(リド鴫 ! 永 * 本 * * 本 々 木        
 本 木本 々本 木 ***       セ 本 
准y * 嵩 * * *  *  本来  ホ **’ig リ )−LL  LLtLcLL  Lcla、  1a−
Li−LLt−Lc    −的的ククψ輪りクククc
=LIJtututattuLalLiJLLILAI
LLILIJLIJすQ’/)n(す(すI/+rCQ
UrLりり)1+ICcOeOeCe<   Q:< 
  Oe<<<<      OOPcocacoco
mcocacoc。
1!J φ ホ  本  *    本   本  本*   * 
   本    *  *≧ す m                      ρロ
                       QI * 永  * * ホ      Xk  卆宰  々  
* 木  才 才  * * 木      **木 
       * 准 *    木θ νコ。
′***   ホ  本  ホ*  * ホ *≧ へ へO (N 永 (:)                    C:
J   b            ππ  K父!り
一!L1.I’/+’/+(り頓θり(り的りも) ≧
  −5b=p:b:b  sh  トトトトトトUr
Chもり’ArAVrl/ICりり1’h1./+しU
’/)(コO’S’(ミくジ((間<”Z<ζ(【ズ(
【u   cOcocQcocabcqozcqca 
  u     c   la+la+la+Lia+
   QQ(OQI:al;口■b■ 0卆。  准   1  ホ   *  卆  ホ  
  **   ホホ 1111   ζVs   +1+1 *准〃ホ4#々**准*本ホ       ホホ  *
*  ホ准Aζホ々*本永本*ホ*ホ永々      
々木*木*々  ホ本ヤ卆  〃へ 准                        
          ′Jf**^、        
 V; **   准**  ホ  ***     々木*々
  々**  ホ市才*I室木木本本  本*    
室*々*  *  本ホ穿ホホ攻*ホ*京*准  **
*llk**    *准永々*准木ホホ木木   永
   凍  〃  *永*木本  4Jgホ  *木本 卆  *ホ*   セ  々  ホ未木本々  卓卆准
  室卆ホ取々木永木**オ々々*木木木木木1 本 木  木 准 木 本 本 ホ * * ホ * ホ 
水 木 木 本 。
k*オ永オ永オオ*卆I**本ホホ々 七**ホ〃凍*木本室木本章**セ傘 本  永*永木    本々Jg〃        本
ホオ木木  本木卆木木木*ホ*木木(:2: $ −+ $ < ”C ホヘホl/Iミ ミ IJe ホ ャホ穿    本  IJI  本*ホ〃ホ    永
*本  々原木tつ +I/)                     
      ;’1/)  ロ龜− 5ぐ1 * 卆 永 永 釡 木本 本 * * k 々 * 卆 **      
    *                 ’Jl
   木 々  卆■ II  II                II 
 11II  II               I
I  II               It  1
1本 * ホ *’ig*       **** ホ
 *** 々 本才本木 々 セ 才 ホ      
* 本 々 * 本  本 〃 ホ 々 本  木 々
 ***           ホ 木々 木 木  
木 々 ホ 〃  々 〃Jg  セ 〃 卆   ホ
 傘   々 車 才 木つ +111 4々***凍本凍*々ホ*  ホO1木〃永ホ木卆本〃
+JII  W **木*々ホ      セ     ホ々ホ   ホ
傘ホホ*木ホ本*木永本ト。
よ め ***** 准 凍 攻*本ホ〃 (N ト ≧ β 本  本 本  * 々 * 1   **  室 永
 ホ10            u *11     *      ♂ 木取*  木本*卆木本十木々木本     卆   
室  本      本* 永 4 本      *
******              ホ ホ ++鴫目匈ト111ト11目ト11+th))−C:l
(/+  II  o+−!e(71II  θ mミ
(1)  II  o  octrs  ++  1−
−−−−−LIJ   −−−+ 喝 −1伽 −−−
−−−◆ 1 へ 1 鴫 −10Q        
    ロ            ロ4L     
     ホ         永         
    *木*               *  
       ホe; 嵩                  *     
    *            ホ木      
              々         よ
にtつ 心 鵬 4JC噌 LIJL+JL&IL&ILallJLgLuL41+
a+        ee’lcθ −ト\−龜k(≧
≧トトトhトトト1−kl−1jJLg  :eり≧舅
(cLIJC:l5II−1′1+1 ホ                      * 
            木I+?         
    ば く                  βり ′g            ψ          
十*ホ准卆で) ―、                       
         匁β よIよ本*よ                   
ロ* * *、      * 々  謝  *  永
  卆  卓すリ 木木本*         本 CI      町     寸     1)々  
   本     ホ     *ズ C ’h                       
                         
            p員 ヘ ト * 本々  *  1才   *〃本      室ホ  
*永木  木   々水  ホ〃永V+       
+L 匂      Q *    *  本     永 腎 永欺  ******     本    才    
木本木本      本*      4々     
 *本      木本で阿 eλ \            °← 准*       木本       本よ  *  
     卓     木本りり **     *     **  **  ホ傘准 
    木々率〃  准木本1/+e 1k 本       准永       **** 
       * 卆ホ***ホ      ****
      龜攻永         84* 本 本
 本  本 4  * 本      々***   
 **本    ホ        木本      
 木本本**  ホよ*      ホ    4本 
 *卆 永  よt→ 〜 ”ψ( C4〜 ?叱 1川頃LIJLLILLIL&ILIJLIJLLIL
&ILIJLLILLILIJLLILLI寸    
    O1/)η〜〜門りC<x町つり門〜≧   
NI+I  N       NNN1NNt< ll
l0   リNζ−η〜〜町−N−へ91−?(z  
  つ    −mss   N1rrJもの5句の句
−tへ61’lkQもロトロ     −く)へ6矯<
1”6気O寸へ01へo”o聾TN〜つ〜1Cイ   
   守り  へシIs、Qも1も1−−1もC4’&
喝tも3偽      に  へ−11@ e ’S+
 S+ eも1〜q〜−も1t〜     句  〜コ
? G H4+% QQ I:k(m ’N C(”門
b−r’6 k(0> e    3  %(c* r
< C4(N C′< c< m rq M m n 
rq M M M M ?      Z
【図面の簡単な説明】
第1図は、本発明に係るソフトウェアモニタを含むデジ
タル信号プロセッサのブロック図。 第2図は、第1図に含まれているマイクロプロセッサの
メモリマツプの一部分を示す図であり、トラップ命令を
用いる典型的な先行技術のソフトウェアモニタのオ投し
−ションを説明する上で有用な図。 第3図は、第1図に含まれているマイクロプロセッサの
部分メモリマツプの図であり、ソフトウェアモニタを実
施するのにトラップ命令を用いる代わシにコール命令を
用いる結果として生じる幾つかの問題を説明する上で有
用な図。 第4図は、本発明のソフトウェアの実施を説明する上で
有用な第1図のシステムにおけるマイクロプロセッサの
部分メモリマツプを示す図。 第5図は、本発明によって解決される特定の問題を説明
する上で有用なメモリマツプ図。 1・・・デジタル信号プロセッサ、  2・・・VME
パス、4・・・■MEテーデーストランシーバ、6.1
8,21,22.25・・・トランシーバ、9・・・T
MS 32020プロセツサ、10・・・局部化■、1
1・・・EPROMモニタ、  12・・・バイポーラ
FROM 。 13・・・プログラムRAM、  14・・・ホストR
8232Cポート、15・・・端末R8232Cポート
、 19・・・グローバル彎データバス、 20・・・グローノ之ルRAM、26・・・工10 、
Iニート制御、27・・・出力ポートFIF0,28・
・・入力ボートラッチ、29・・・割込み論理、 30・・・VMEアドレス及びAM復号器及び制御、3
3.36,38,39・・・バッファ、35・・・ボー
ト復号。

Claims (12)

    【特許請求の範囲】
  1. (1)トラップ命令を用いずにプロセッサによるユーザ
    プログラムの実行をモニタする方法において、 (a)上記ユーザプログラム内の第1アドレスにおいて
    第1ソフトウェア・ブレークポイントを定める段階であ
    って、 i、上記第1アドレス及び該第1アドレスのすぐ後に続
    くアドレスの命令を一時的にセーブし、 ii、第1コール命令のOPコードを上記第1アドレス
    に書き込み、且つ上記第1コール命令のOPコードを上
    記第1アドレスのすぐ後のアドレスに書き込み、これに
    より上記第1コール命令のアーギュメントをそのOPコ
    ードに等しくなるようにすること、 により第1ソフトウェア・ブレークポイントを定める段
    階、 (b)上記第1アドレスに遭遇するまで上記ユーザプロ
    グラムを実行し、そして上記第1コール命令のOPコー
    ドを実行する段階、 (c)上記第1コール命令のアーギュメントにおける上
    記OPコードに等しいアドレスにジャンプして、そのア
    ドレスのソフトウェアモニタサブルーチンにエンタする
    段階、 (d)上記ソフトウェアモニタサブルーチンを実行する
    段階であって、 i、プログラムカウント及び上記第1ソフトウェア・ブ
    レークポイントに対応する上記プロセッサの他のレジス
    タの内容をセーブし、 ii、上記第1アドレス及びそれに続くアドレスの上記
    第1及び第2命令をそれぞれ置き換え、且つ iii、上記のセーブされたプログラムカウント及び上
    記第1ブレークポイントに対応する上記他のレジスタの
    上記のセーブされた内容を表示すること、 によって上記ソフトウェアモニタサブルーチンを実行す
    る段階、 を含むことを特徴とする方法。
  2. (2)段階(b)を実行する前に、複数の追加のアドレ
    スにおいて段階(a)に従って複数の追加のソフトウェ
    ア・ブレークポイントをそれぞれ定める段階を含むこと
    、を特徴とする特許請求の範囲第1項に記載の方法。
  3. (3)上記プロセッサが、その命令セットに1つのトラ
    ップ命令のみを含むマイクロプロセッサであり、これに
    より、ユーザが、ユーザプログラムがトラップ命令を含
    む時に、上記プロセッサによって上記ユーザプログラム
    の実行をモニタできること、を特徴とする特許請求の範
    囲第2項に記載の方法。
  4. (4)アドレスにブレークポイントを定めるモニタ指令
    が端末装置によって上記プロセッサへのエントリされる
    ことに応答して段階(a)を実行すること、を含むこと
    を特徴とする特許請求の範囲第3項に記載の方法。
  5. (5)上記ソフトウェアモニタサブルーチンが新しいラ
    ン・モニタ指令を待機する記憶場所に上記ソフトウェア
    モニタサブルーチンが戻るよう作動させ、そしてユーザ
    が上記端末装置を通してエンタした新しいラン・モニタ
    指令に応答して、第2ソフトウェア・ブレークポイント
    が定められる第2アドレスに遭遇するまで上記ユーザプ
    ログラムを更に実行するべく段階(b)から段階(d)
    を繰り返す別の段階を、段階(d)の後に含むこと、を
    特徴とする特許請求の範囲第4項に記載の方法。
  6. (6)トラップ命令を用いずにプロセッサによるユーザ
    プログラムの実行をモニタするためのシステムにおいて
    、 (a)上記ユーザプログラム内の第1アドレスに第1ソ
    フトウェア・ブレークポイントを定めるための手段、 (b)上記プロセッサに第1コール命令のOPコードを
    上記第1アドレスに書き込ませるための手段、 (c)上記プロセッサに上記第1コール命令のOPコー
    ドを上記第1アドレスのすぐ後のアドレスに書き込ませ
    る手段であって、これにより上記第1コール命令のアー
    ギュメントはそのOPコードに等しくなること、 (d)上記プロセッサに上記第1アドレス及び上記第1
    アドレスのすぐ後に続くアドレスの命令を一時的にセー
    ブさせるための手段、 (e)上記第1アドレスに遭遇するまで上記プロセッサ
    に上記ユーザプログラムを実行させるための手段、及び
    上記プロセッサに上記第1コール命令のOPコードを実
    行させるための手段、 (f)上記第1コール命令のOPコードに等しいアドレ
    スにソフトウェアモニタサブルーチンを記憶するための
    手段、 (g)上記プロセッサに上記第1コール命令のアーギュ
    メントにおける上記OPコードに等しいアドレスにジャ
    ンプさせて、そのアドレスの上記ソフトウェアモニタサ
    ブルーチンにエンタさせるための手段、 (h)上記プロセッサに上記第1命令を実行させ、上記
    プログラムカウント及び上記第1ソフトウェア・ブレー
    クポイントに対応する上記プロセッサの他のレジスタの
    内容をセーブさせ、且つ上記第1アドレス及びそれに続
    くアドレスの上記第1及び第2命令をそれぞれ置き換さ
    せるための手段、及び (i)上記セーブされたプログラムカウント及び上記第
    1ブレークポイントに対応する上記他のレジスタのセー
    ブされた内容を表示するための手段、 を含むことを特徴とするシステム。
  7. (7)上記定める手段が、上記ユーザプログラムを実行
    する前に、複数の追加アドレスにおいて複数の追加のソ
    フトウェア・ブレークポイントをそれぞれ定めること、
    を特徴とする特許請求の範囲第6項に記載のシステム。
  8. (8)上記プロセッサが、その命令セットに1つのトラ
    ップ命令のみを含むマイクロプロセッサであり、これに
    より、ユーザは、上記ユーザプログラムがトラップ命令
    を含む時に、上記プロセッサによる上記ユーザプログラ
    ムの実行をモニタできること、を特徴とする特許請求の
    範囲第7項に記載のシステム。
  9. (9)上記プロセッサに結合された端末装置であって、
    アドレスにブレークポイントを定めるモニタ指令及び単
    一ステップモニタ指令の上記プロセッサへのエントリを
    実施するための端末装置を含むこと、を特徴とする特許
    請求の範囲第8項に記載のシステム。
  10. (10)上記表示の後に上記ソフトウェアモニタサブル
    ーチンに、上記ソフトウェアモニタサブルーチンが新し
    いラン・モニタ指令を待機する記憶場所へ戻るようにさ
    せるための手段、及び第2ソフトウェア・ブレークポイ
    ントが定められる第2アドレスに遭遇するまで上記ユー
    ザプログラムを更に実行するためにユーザが上記端末装
    置を通してエンタした新しいラン・セニタ指令に応答す
    るための手段、を含むこと、を特徴とする特許請求の範
    囲第9項に記載のシステム。
  11. (11)トラップ命令を用いずにプロセッサによるユー
    ザプログラムの実行をモニタする方法において、 (a)上記ユーザプログラム内に複数の子め選択したア
    ドレスにおいて複数のソフトウェア・ブレークポイント
    を定める段階、 (b)上記予め選択したアドレスの各々及び各予め選択
    したアドレスのすぐ後に続くアドレスの上記ユーザプロ
    グラムの諸命令をセーブする段階、 (c)各予め選択したアドレスの値をセーブする段階、 (d)上記予め選択したアドレスが上記ユーザプログラ
    ムのプログラムカウントの現行値に等しくない限り、上
    記予め選択したアドレスの各々及びこのアドレスのすぐ
    後に続くアドレスにコール命令のOPコードを書き込む
    段階、 (e)上記ブレークポイントの次のブレークポイントに
    遭遇するまで上記ユーザプログラムを実行し、上記プロ
    グラムカウント及びこのブレークポイントに対応する上
    記プログラムの他のレジスタの内容をセーブする段階、 (f)各々のセーブされた命令をその元のアドレスに書
    き込む段階、及び (g)上記のセーブされたプログラムカウント及びレジ
    スタの内容を表示する段階、 を含むことを特徴とする方法。
  12. (12)トラップ命令を用いずにプロセッサによるユー
    ザプログラムの実行をモニタするためのシステムにおい
    て、 (a)上記ユーザプログラム内に複数の子め選択したア
    ドレスに複数のソフトウェア・ブレークポイントを定め
    るための手段、 (b)上記予め選択したアドレスの各々及び各々の予め
    選択したアドレスのすぐ後に続くアドレスにおける上記
    ユーザプログラムの諸命令をセーブするための手段、 (c)各々予め選択されたアドレスの値をセーブするた
    めの手段、 (d)予め選択されたアドレスが上記ユーザプログラム
    のプログラムカウントの現行値に等しくない限り、上記
    予め選択されたアドレスの各々及びこのアドレスのすぐ
    後に続くアドレスにコール命令のOPコードを書き込む
    ための手段、 (e)上記ブレークポイントの次のブレークポイントに
    遭遇するまで上記ユーザプログラムを実行し、上記プロ
    グラムカウント及びこのブレークポイントに対応する上
    記プログラムの他のレジスタの内容をセーブするための
    手段、 (f)各々のセーブされた命令をその元のアドレスに書
    き込むための手段、及び (g)上記のセーブされたプログラムカウント及びレジ
    スタの内容を表示するための手段、 を含むことを特徴とするシステム。
JP62185318A 1986-10-27 1987-07-24 ソフトウエアモニタにおけるブレ−クポイントを供給し且つ取り扱うための方法及び装置 Pending JPS63115245A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB8625667 1986-10-27
GB08625667A GB2197506A (en) 1986-10-27 1986-10-27 Providing and handling break points in a software monitor

Publications (1)

Publication Number Publication Date
JPS63115245A true JPS63115245A (ja) 1988-05-19

Family

ID=10606376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62185318A Pending JPS63115245A (ja) 1986-10-27 1987-07-24 ソフトウエアモニタにおけるブレ−クポイントを供給し且つ取り扱うための方法及び装置

Country Status (5)

Country Link
US (1) US4866665A (ja)
JP (1) JPS63115245A (ja)
DE (1) DE3732808A1 (ja)
FR (1) FR2606903B1 (ja)
GB (1) GB2197506A (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127103A (en) * 1987-10-14 1992-06-30 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
JP2982875B2 (ja) * 1987-12-28 1999-11-29 株式会社日立製作所 スレーブ制御装置
JPH01241636A (ja) * 1988-03-17 1989-09-26 Internatl Business Mach Corp <Ibm> データ処理システム
GB2217061A (en) * 1988-03-23 1989-10-18 Benchmark Technologies Data processing system debugging
US5121489A (en) * 1988-08-02 1992-06-09 International Business Machines Corporation Tracing method for identifying program execution paths using a trace points bit map with one-to-one correspondence with embedded trace points
US5067073A (en) * 1988-08-02 1991-11-19 International Business Machines Corporation Embedded tracing method for identifying program executed paths
JPH02199548A (ja) * 1988-11-09 1990-08-07 Asea Brown Boveri Ag 電算機系で作成されるオブジエクト・プログラムの時間経過を観察する方法とこの方法を実行する観測器具
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5050168A (en) * 1989-12-29 1991-09-17 Paterson Timothy L Test coverage analyzer
US5109504A (en) * 1989-12-29 1992-04-28 Texas Instruments Incorporated Graphics program adaptor
JP2777496B2 (ja) * 1991-02-28 1998-07-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法
US5239642A (en) * 1991-04-02 1993-08-24 Motorola, Inc. Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices
US5333304A (en) * 1991-05-03 1994-07-26 International Business Machines Corporation Method and apparatus for software application evaluation utilizing compiler applications
JP2505950B2 (ja) * 1991-05-13 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション ハ―ドウェア支援ブレ―クポイント・システム
EP0519348B1 (en) * 1991-06-19 1999-07-28 Hewlett-Packard Company Co-processor supporting architecture adapted to a processor which does not natively support co-processing
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
US5625821A (en) * 1991-08-12 1997-04-29 International Business Machines Corporation Asynchronous or synchronous operation of event signaller by event management services in a computer system
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
EP0545581B1 (en) * 1991-12-06 1999-04-21 National Semiconductor Corporation Integrated data processing system including CPU core and parallel, independently operating DSP module
JP2513417B2 (ja) * 1993-07-05 1996-07-03 日本電気株式会社 情報処理装置
US5784552A (en) * 1993-07-28 1998-07-21 Digital Equipment Corporation Debugging a computer program by simulating execution forwards and backwards in a main history log and alternative history logs
CA2643234C (en) * 1993-10-29 2012-05-15 Microsoft Corporation Method and system for generating a computer program
US5485574A (en) * 1993-11-04 1996-01-16 Microsoft Corporation Operating system based performance monitoring of programs
US6263488B1 (en) * 1993-12-03 2001-07-17 International Business Machines Corporation System and method for enabling software monitoring in a computer system
JPH07182182A (ja) * 1993-12-21 1995-07-21 Mitsubishi Electric Corp システムコール情報採取装置
US5471526A (en) * 1994-02-28 1995-11-28 Telefonaktiebolaget L M Ericsson (Publ.) Tracing with keys and locks on a telecommunication network
US5615371A (en) * 1994-04-28 1997-03-25 Nec Corporation Debug processing system for user programs
US5528753A (en) * 1994-06-30 1996-06-18 International Business Machines Corporation System and method for enabling stripped object software monitoring in a computer system
US5687375A (en) * 1994-10-14 1997-11-11 International Business Machines Corporation Debugging of High Performance Fortran programs with backup breakpoints
US6026236A (en) * 1995-03-08 2000-02-15 International Business Machines Corporation System and method for enabling software monitoring in a computer system
US5678003A (en) * 1995-10-20 1997-10-14 International Business Machines Corporation Method and system for providing a restartable stop in a multiprocessor system
US5758061A (en) * 1995-12-15 1998-05-26 Plum; Thomas S. Computer software testing method and apparatus
US5826005A (en) * 1996-03-22 1998-10-20 Sun Microsystems, Inc. System and method for diagnosing computer program faults through the provision of program probe points and referenceable diagnostic program probes
US6175925B1 (en) 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US6178509B1 (en) 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
GB9626401D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Diagnostic procedures in an integrated circuit device
JPH10214203A (ja) * 1997-01-29 1998-08-11 Nec Corp 情報処理装置
US6314562B1 (en) * 1997-09-12 2001-11-06 Microsoft Corporation Method and system for anticipatory optimization of computer programs
US6106571A (en) * 1998-01-29 2000-08-22 Applied Microsystems Corporation Relocatable instrumentation tags for testing and debugging a computer program
US6249907B1 (en) 1998-03-24 2001-06-19 International Business Machines Corporation Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6182208B1 (en) * 1998-08-14 2001-01-30 Lucent Technologies, Inc. System for debugging (N) break points by dividing a computer program to (n+1) regions each contains no break point and using two registers to define the start and end addresses of each region
EP0992906B1 (en) * 1998-10-06 2005-08-03 Texas Instruments Inc. Apparatus and method for software breakpoint in a delay slot
JP2001147837A (ja) * 1999-11-18 2001-05-29 Fujitsu Ltd プログラムトレース装置及び記憶媒体
GB0009943D0 (en) * 2000-04-20 2000-06-07 Sgs Thomson Microelectronics Operating a computer system
US6948095B2 (en) * 2000-04-20 2005-09-20 Stmicroelectronics Limited Methods and apparatus for dynamically loading a file on a target computer system
US7398519B2 (en) * 2001-11-30 2008-07-08 International Business Machines Corporation Inheritance breakpoints for use in debugging object-oriented computer programs
US7644394B2 (en) * 2001-11-30 2010-01-05 International Business Machines Corporation Object-oriented creation breakpoints
CA2383832A1 (en) * 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee System and method for intelligent trap analysis
US7290081B2 (en) * 2002-05-14 2007-10-30 Stmicroelectronics, Inc. Apparatus and method for implementing a ROM patch using a lockable cache
DE10352172A1 (de) * 2003-11-05 2005-06-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
US7652995B2 (en) * 2003-12-19 2010-01-26 International Business Machines Corporation Autonomic reassociation of clients in a wireless local area network
CN102096629B (zh) * 2009-12-14 2013-09-25 华为技术有限公司 经过性断点设置、调试方法和装置
CN108874570B (zh) * 2017-05-10 2022-02-18 鸿秦(北京)科技有限公司 一种cpu程序跑飞的鉴别方法、装置及soc系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3415981A (en) * 1967-10-10 1968-12-10 Rca Corp Electronic computer with program debugging facility
US3551659A (en) * 1969-05-05 1970-12-29 Charles O Forsythe Method for debugging computer programs
CA1004363A (en) * 1972-02-28 1977-01-25 Edward Dillingham Method and means for reading numerals
US3987420A (en) * 1973-12-28 1976-10-19 Ing. C. Olivetti & C., S.P.A. Electronic computer with equipment for debugging operative programs
US4028663A (en) * 1974-06-05 1977-06-07 Bell Telephone Laboratories, Incorporated Digital computer arrangement for high speed memory access
JPS5428248B2 (ja) * 1974-10-21 1979-09-14
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
US4074353A (en) * 1976-05-24 1978-02-14 Honeywell Information Systems Inc. Trap mechanism for a data processing system
US4080650A (en) * 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint
JPS547252A (en) * 1977-06-20 1979-01-19 Hitachi Ltd Program control system
FR2428284A1 (fr) * 1978-06-07 1980-01-04 Ibm France Systeme de selection de circuit d'interface prioritaire
US4558412A (en) * 1978-12-26 1985-12-10 Honeywell Information Systems Inc. Direct memory access revolving priority apparatus
US4308581A (en) * 1979-09-28 1981-12-29 Motorola Inc. Single step system for a microcomputer
JPS5666971A (en) * 1979-11-05 1981-06-05 Dainippon Screen Mfg Co Ltd Picture data compressing method
FR2482331B1 (fr) * 1980-05-06 1986-03-21 Thomson Csf Mat Tel Procede d'arbitration centralisee, et arbitreur centralise pour systeme multiprocesseur
JPS5798053A (en) * 1980-12-11 1982-06-18 Mitsubishi Electric Corp Device for debagging
US4453214A (en) * 1981-09-08 1984-06-05 Sperry Corporation Bus arbitrating circuit
JPS5851388A (ja) * 1981-09-22 1983-03-26 Ricoh Co Ltd 方向コ−ド割付け方法
FR2513407B1 (fr) * 1981-09-24 1987-01-16 Finger Ulrich Systeme d'arbitrage des demandes d'acces de plusieurs processeurs a des ressources communes, par l'intermediaire d'un bus commun
US4525860A (en) * 1982-01-04 1985-06-25 At&T Bell Laboratories Character recognition arrangement
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4586131A (en) * 1982-02-22 1986-04-29 Texas Instruments Incorporated Microcomputer having data move circuits for within-memory shift of data words
US4506322A (en) * 1982-02-22 1985-03-19 Texas Instruments Incorporated Read/write memory cell for microcomputer
US4498135A (en) * 1982-02-22 1985-02-05 Texas Instruments Incorporated Microcomputer with accumulator addressing
US4536839A (en) * 1982-03-30 1985-08-20 Mai Basic Four, Inc. Memory request arbitrator
JPS59111561A (ja) * 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
JPS59174955A (ja) * 1983-03-25 1984-10-03 Fujitsu Ltd 情報処理装置の分岐命令デバツグ方式
JPS6024653A (ja) * 1983-07-21 1985-02-07 Fujitsu Ltd デバツク装置
US4691278A (en) * 1984-04-23 1987-09-01 Nec Corporation Data processor executing microprograms according to a plurality of system architectures
US4635193A (en) * 1984-06-27 1987-01-06 Motorola, Inc. Data processor having selective breakpoint capability with minimal overhead

Also Published As

Publication number Publication date
GB8625667D0 (en) 1986-11-26
FR2606903B1 (fr) 1990-09-28
DE3732808A1 (de) 1988-05-26
GB2197506A (en) 1988-05-18
US4866665A (en) 1989-09-12
FR2606903A1 (fr) 1988-05-20

Similar Documents

Publication Publication Date Title
JPS63115245A (ja) ソフトウエアモニタにおけるブレ−クポイントを供給し且つ取り扱うための方法及び装置
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US6681280B1 (en) Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
KR860007589A (ko) 데이터 처리장치
US4028670A (en) Fetch instruction for operand address calculation
JP4465081B2 (ja) Vliwプロセッサにおける効率的なサブ命令エミュレーション
US20050050524A1 (en) Generating software test information
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
EP0134386A2 (en) Method and apparatus for executing object code instructions compiled from a high-level language source
US20120089817A1 (en) Conditional selection of data elements
JPH0222413B2 (ja)
KR100246465B1 (ko) 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
KR950014162B1 (ko) 파이프라인(Pipeline)이 구비된 프로세서에서 간단한 반복명령어의 구현방법
EP0211487A1 (en) Conditional operations in computers
US5345568A (en) Instruction fetch circuit which allows for independent decoding and execution of instructions
JPH0667896A (ja) シングルチップマイクロコンピュータ
JPS623345A (ja) 割込方式
JPS5995646A (ja) 演算制御装置
KR100471137B1 (ko) 단축된 레지스터 클리어 인스트럭션 실행 사이클을 갖는 데이터처리 장치
JP2679603B2 (ja) マイクロコンピュータ
JPS62264332A (ja) 命令先読み制御回路
JPS6234238A (ja) マイクロプロセツサ
JPH05158734A (ja) マイクロプロセッサ
JPH0553804A (ja) 並列処理装置
JPH01297729A (ja) マイクロコンピュータ