JP3277900B2 - プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体 - Google Patents

プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体

Info

Publication number
JP3277900B2
JP3277900B2 JP27913398A JP27913398A JP3277900B2 JP 3277900 B2 JP3277900 B2 JP 3277900B2 JP 27913398 A JP27913398 A JP 27913398A JP 27913398 A JP27913398 A JP 27913398A JP 3277900 B2 JP3277900 B2 JP 3277900B2
Authority
JP
Japan
Prior art keywords
trace
information
storage
program
storage means
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
JP27913398A
Other languages
English (en)
Other versions
JP2000112783A (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 JP27913398A priority Critical patent/JP3277900B2/ja
Priority to EP99118893A priority patent/EP0992912A3/en
Priority to US09/407,565 priority patent/US6467083B1/en
Publication of JP2000112783A publication Critical patent/JP2000112783A/ja
Application granted granted Critical
Publication of JP3277900B2 publication Critical patent/JP3277900B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、プログラム検査
方法、プログラム検査装置及びプログラム検査プログラ
ムを記憶した記憶媒体に係り、詳しくは、ファクシミリ
装置や画像処理装置等、開発の対象であるシステム(タ
ーゲットシステム)を構成する中央処理装置(CPU)
が実行すべきプログラム(ターゲットプログラム)を実
行して検査するプログラム検査方法、プログラム検査装
置及びプログラム検査プログラムを記憶した記憶媒体に
関する。
【0002】
【従来の技術】ファクシミリ装置や画像処理装置等、開
発の対象であるターゲットシステムに組み込まれるター
ゲットプログラムは、完成当初から正常に動作すること
はまれである。そこで、通常は、プログラム検査装置が
ターゲットプログラムを実行して、ターゲットプログラ
ムを構成する各命令がどのような順番で実行されるか、
各命令が実行された後、レジスタの内容がどのように変
化するか、あるいは主記憶装置内のどのアドレスの内容
がどのように変化するかを1つ1つ追跡(トレース)
し、それらに関する情報(トレース情報)を獲得してト
レースメモリに記憶させている。そして、得られたトレ
ース情報に基づいて、ターゲットプログラムの問題点
(バグ等)をなくすようにしている。
【0003】図13は、特開平1−201740号公報
に開示されたそのような従来のプログラム検査装置の電
気的構成例を示すブロック図である。このプログラム検
査装置は、主記憶装置1と、CPU2と、ROM3と、
トレース制御装置4と、トレースメモリ制御装置5とか
ら概略構成されている。主記憶装置1には、CPU2が
実行すべき検査の対象であるターゲットプログラムが記
憶されている。CPU2は、主記憶装置1からターゲッ
トプログラムを構成する各命令を読み出して順次実行
し、ターゲットシステムの各部を制御すると共に、各命
令の主記憶装置1におけるアドレス値を出力する。RO
M3には、図14に示すように、トリガ条件としてトリ
ガアドレスA〜C、トレース条件として上限トレースア
ドレスA〜C及び下限トレースアドレスA〜Cが予め記
憶されている。トレース制御装置4は、トリガ検出器6
と、上限トレースアドレス検出器7と、下限トレースア
ドレス検出器8と、アンドゲート9とから構成されてお
り、トレースメモリ制御装置5にトレースを指示するト
レースイネーブル信号を供給する。トリガ検出器6は、
ROM3から供給されたトリガアドレス値とCPU2か
ら供給されたアドレス値とからトリガポイントを検出し
て、トリガアドレス検出信号をROM3に供給する。上
限トレースアドレス検出器7は、ROM3から供給され
た上限トレースアドレス値とCPU2から供給されたア
ドレス値とから、トレースアドレスの上限値を越えてい
ないことを示す上限トレースアドレス範囲内信号を出力
する。下限トレースアドレス検出器8は、ROM3から
供給された下限トレースアドレス値とCPU2から供給
されたアドレス値とから、トレースアドレスの下限値を
越えていないことを示す下限トレースアドレス範囲内信
号を出力する。アンドゲート9は、上限トレースアドレ
ス範囲内信号と下限トレースアドレス範囲内信号との論
理積をとり、トレース条件が成立したことを示す上限ト
レースアドレス範囲内信号及び下限トレースアドレス範
囲内信号が全てイネーブルになっていることを検出し、
トレースイネーブル信号を出力する。トレースメモリ制
御装置5は、トレースイネーブル信号に基づいてトレー
スを開始し、CPU2から出力されるトレース情報を内
蔵されたトレースメモリに記憶する。
【0004】次に、上記構成のプログラム検査装置の動
作について説明する。まず、ROM3からトリガアドレ
スAが読み出されてトリガアドレス検出器6に供給さ
れ、上限トレースアドレスAが読み出されて上限トレー
スアドレス検出器7に供給され、下限トレースアドレス
Aが読み出されて下限トレースアドレス検出器8に供給
される。次に、CPU2は、主記憶装置1からターゲッ
トプログラムを構成する各命令を読み出して順次実行
し、ターゲットシステムの各部を制御すると共に、各命
令の主記憶装置1におけるアドレス値をトリガアドレス
検出器6、上限トレースアドレス検出器7及び下限トレ
ースアドレス検出器8に供給する。これにより、上限ト
レースアドレス検出器7がROM3から供給された上限
トレースアドレスAとCPU2から供給されたアドレス
値とを比較して、上限トレースアドレス範囲内信号を出
力すると共に、下限トレースアドレス検出器8がROM
3から供給された下限トレースアドレスAとCPU2か
ら供給されたアドレス値とを比較して下限トレースアド
レス範囲内信号を出力するので、アンドゲート9は、上
限トレースアドレス範囲内信号と下限トレースアドレス
範囲内信号との論理積をとり、トレースイネーブル信号
を出力する。したがって、トレースメモリ制御装置5
は、トレースイネーブル信号が供給されるとトレースを
開始し、CPU2から出力されるトレース情報を内蔵さ
れたトレースメモリに記憶する。そして、CPU2から
出力されるアドレス値がトリガアドレスAと等しくなる
と、トリガ検出器6がトリガアドレス検出信号をROM
3に供給するので、ROM3からトリガアドレスBが読
み出されてトリガアドレス検出器6に供給され、上限ト
レースアドレスBが読み出されて上限トレースアドレス
検出器7に供給され、下限トレースアドレスBが読み出
されて下限トレースアドレス検出器8に供給される。以
上の動作が繰り返されることにより、CPU2からトリ
ガアドレスAが出力されるまではトレースメモリ制御装
置5に内蔵されたトレースメモリに上限トレースアドレ
スA以下下限トレースアドレスA以上のトレース情報が
記憶され、CPU2からトリガアドレスBが出力される
まではトレースメモリ制御装置5に内蔵されたトレース
メモリに上限トレースアドレスB以下下限トレースアド
レスB以上のトレース情報が記憶されるというように、
トレースの途中でトレース情報を獲得するアドレスの範
囲を変更することができる。
【0005】
【発明が解決しようとする課題】以上説明したように、
上記従来のプログラム検査装置においては、CPU2に
接続されるアドレスバスやデータバスをトレース制御装
置4やトレースメモリ制御装置5と接続して、所定のタ
イミングで所望のトレース情報を獲得し、トレースメモ
リ制御装置5に内蔵されたトレースメモリに記憶するよ
うにしていた。しかしながら、近年ではCPU2の動作
速度が高速化し、動作クロックは数百MHzにも及ぶよ
うになった。このように高速でアドレス値やデータが転
送されるアドレスバスやデータバスにトレース制御装置
4やトレースメモリ制御装置5のコネクタやプローブな
どを接続すると、不要な寄生容量がアドレスバスやデー
タバスに付加されることになり、アドレス信号やデータ
信号の波形がなまり、ターゲットシステムが正常に動作
しなくなることがある。さらに、CPU2がキャッシュ
メモリを内蔵している場合には、CPU2が主記憶装置
1をアクセスしないこともあり、外部のアドレスバスや
データバスを転送されるアドレス値やデータの変化をト
レースしても、CPU2が実行した命令を完全にトレー
スできないことも生ずる。
【0006】そこで、CPUチップの内部にトレースに
関する回路やメモリを設け、トレース専用の端子を介し
て必要なトレース情報を外部に出力することが考えられ
る。この場合、プログラム検査専用のCPUチップを作
製する方法もあるが、プログラム検査のためだけにCP
Uチップを作製するのではコストがかかるし、実際にタ
ーゲットシステムに組み込まれるCPUチップと内部構
造や端子数が異なるプログラム検査専用のCPUチップ
とでは特性が異なるため、結局実装状態に近いプログラ
ム検査を行うことはできない。このため、実際にターゲ
ットシステムに組み込まれるCPUチップと内部構造や
端子数が同一のCPUチップにトレースに最低限必要な
回路やメモリ、端子を設けた方が良い。この点、図13
に示す構成であれば、トレースメモリ制御装置5に内蔵
するトレースメモリの記憶容量は可能な限り大きくする
ことができ、しかも、高速のメモリを用いていればリア
ルタイムで大量のトレース情報を漏れなく獲得すること
も可能である。しかし、CPUチップの内部にトレース
専用のメモリを設けた場合、その記憶容量を大きくする
ことは、CPUチップのコストアップにつながり、好ま
しくない。また、トレース専用の端子数を増やして、デ
ータを取り出す(例えば、パラレルデータ転送)ように
することは、パッケージが大きくなると共に、実装時に
使用しない端子が増えることになるので、これも好まし
くない。さらに、CPUの動作速度とほぼ同じ速度でC
PUチップの外にデータを取り出すことは技術的にも難
しい。このように、限られたトレース専用のメモリの記
憶容量と限られたトレース専用の端子で、如何に効率的
にリアルタイムでトレース情報を獲得するかが問題とな
る。
【0007】ところが、上記した従来のプログラム検査
装置においては、以上説明したCPUチップ内部にトレ
ースに関する回路やメモリを設けたり、トレース専用の
端子を設けることについては何等考慮されていない。し
たがって、ターゲットシステムが正常に動作しなくなっ
たり、CPU2が実行した命令を完全にトレースできな
いという欠点がある。また、上記した従来のプログラム
検査装置においては、ROM3に予め記憶されたトリガ
条件やトレース条件に基づいてトレースするアドレス範
囲を指定しているので、CPU2が実行した命令のすべ
てのトレース情報をトレースメモリに記憶する場合に比
べて、トレースメモリに記憶すべきトレース情報の数を
少なくすることができる。しかし、条件分岐命令が頻出
するループを有したり、短期間で分岐命令が頻出するメ
インルーチンやサブルーチンからなるターゲットプログ
ラムを検査する場合には、トリガ条件やトレース条件に
基づいてトレースするアドレス範囲を指定しても、トレ
ースメモリに記憶すべきトレース情報の数は膨大とな
る。したがって、たとえ図13に示すCPU2、ROM
3、トレース制御装置4及びトレースメモリ制御装置5
をCPUチップの中に組み入れることができたとして
も、トレースメモリ制御装置5に内蔵されたトレースメ
モリはすぐにオーバーフローしてしまう。トレースメモ
リがオーバーフローした場合、通常はCPU2によるタ
ーゲットプログラムの実行を一旦中断した後、トレース
メモリに記憶されたすべてのトレース情報をCPUチッ
プ外に読み出さなければトレースを再開することができ
ない。したがって、リアルタイムでのプログラム検査が
できないという問題があった。
【0008】この発明は、上述の事情に鑑みてなされた
もので、実際にターゲットシステムに組み込まれるCP
Uチップと内部構造や端子数が同一のCPUチップを用
いた場合でも、リアルタイムでプログラムの検査に必要
なトレース情報が得られるプログラム検査方法、プログ
ラム検査装置及びプログラム検査プログラムを記憶した
記憶媒体を提供することを目的としている。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、請求項1記載の発明は、開発の対象であるシステム
を構成する中央処理装置によりプログラムを実行するス
テップと、トレース検出手段の制御によりプログラム実
行の履歴に関するトトレース情報の中の所定のトレース
情報のみの獲得を指定するトレース条件を複数のトレー
ス条件設定手段に設定するステップと、前記複数のトレ
ース条件設定手段に対応して設けられ、対応するトレー
ス条件設定手段に設定されたトレース条件が有効となる
少なくとも始期を複数のトレース条件有効時期設定手段
に設定するステップと、獲得した前記トレース情報をト
レースバッファ制御手段の制御により第1の記憶手段に
記憶するステップと、プログラム検査手段内に設けら
れ、前記第1の記憶手段に記憶された前記トレース情報
を第2の記憶手段に読み出して記憶するステップとを含
み、前記トレース情報に基づいて前記プログラムを検査
するプログラム検査方法であって、前記プログラム実行
に対応して前記トレース情報が供給された場合、前記ト
レース検出手段が、前記複数のトレース条件有効時期設
定手段に設定された始期となる毎に、前記トレース条件
設定手段に設定されたトレース条件に基づいて所定のト
レース情報のみを獲得する第1の処理と、該第1の処理
で獲得された前記トレース情報前記第1の記憶手段
憶可能な記憶容量がある場合には、前記トレースバッ
ファ制御手段が前記トレース情報を前記第1の記憶手段
に一時的に記憶させた後、前記プログラム検査手段が
記第1の記憶手段に記憶された前記トレース情報を読み
出し、前記第2の記憶手段に記憶させるとともに、前記
記憶容量がない場合には、前記プログラム検査手段が
記第1の記憶手段に記憶された全てのトレース情報を読
み出して前記第2の記憶手段に記憶させ後、前記トレ
ース情報が記憶不可能であったことを示す記憶不可能情
報を前記トレースバッファ制御手段が前記第1の記憶手
段に記憶させる第2の処理とを有することを特徴として
いる。
【0010】
【0011】請求項2記載の発明は、開発の対象である
システムを構成する中央処理装置によりプログラムを実
行するステップと、トレース検出手段の制御によりプロ
グラム実行の履歴に関するトトレース情報の中の所定の
トレース情報のみの獲得を指定するトレース条件を複数
のトレース条件設定手段に設定するステップと、前記複
数のトレース条件設定手段に対応して設けられ、対応す
るトレース条件設定手段に設定されたトレース条件が有
効となる少なくとも始期を複数のトレース条件有効時期
設定手段に設定するステップと、トレース条件の強制変
更をトレース条件変更強制手段に指示するステップと、
獲得した前記トレース情報をトレースバッファ制御手段
の制御により第1の記憶手段に記憶するステップと、プ
ログラム検査手段内に設けられ、前記第1の記憶手段に
記憶された前記トレース情報を第2の記憶手段に読み出
して記憶するステップとを含み、前記トレース情報に基
づいて前記プログラムを検査するプログラム検査方法で
あって、前記プログラム実行に対応して前記トレース情
報が供給された場合、前記トレース検出手段が、前記複
数のトレース条件有効時期設定手段により設定された始
期となる毎に、対応するトレース条件設定手段に設定さ
れたトレース条件に基づいて所定のトレース情報のみを
獲得するとともに、前記トレース条件変更強制手段の操
作に応じて、トレース条件が現在有効となっているトレ
ース条件から他のトレース条件に変更され、該他のトレ
ース条件に基づいて所定のトレース情報のみを獲得する
第1の処理と、該第1の処理で獲得されたトレース情報
前記第1の記憶手段に記憶可能な記憶容量がある場合
には、前記トレースバッファ制御手段が前記トレース情
報を前記第1の記憶手段に一時的に記憶させた後、前記
プログラム検査手段が前記第1の記憶手段に記憶された
前記トレース情報を読み出し、前記第2の記憶手段に記
憶するとともに、前記記憶容量がない場合には、前記プ
ログラム検査手段が前記第1の記憶手段に記憶された全
てのトレース情報を読み出して前記第2の記憶手段に記
させ後、前記トレース情報が記憶不可能であったこ
とを示す記憶不可能情報を前記トレースバッファ制御手
段が前記第1の記憶手段に記憶させる第2の処理とを有
することを特徴としている。
【0012】請求項発明は、請求項1又は2記載のプ
ログラム検査方法に係り、上記第2の処理では、上記第
1の記憶手段に上記トレース情報が記憶可能な第1の記
憶容量がある場合には、上記トレース情報を上記第1の
記憶手段に一時的に記憶し、上記第1の記憶容量がない
が、上記第1の記憶手段に上記トレース情報が記憶不可
能であったことを示す記憶不可能情報が記憶可能な第2
の記憶容量がある場合には、上記記憶不可能情報を上記
第1の記憶手段に一時的に記憶し、上記第2の記憶容量
がない場合には、上記第1の記憶手段に上記第2の記憶
容量ができるまで待機した後、上記記憶不可能情報を記
憶することを特徴としている。
【0013】請求項記載の発明は、請求項記載のプ
ログラム検査方法に係り、上記第1の記憶手段は、複数
個のフリップフロップが直列接続されたシフトレジスタ
が複数個直列接続されて構成され、上記トレース情報及
び上記記憶不可能情報が上記第1の記憶手段に記憶可能
か否かは、上記トレース情報及び上記記憶不可能情報の
ビット長と、上記第1の記憶手段の次に記憶すべき情報
の最下位ビットのアドレスを示すポインタとを比較して
判断することを特徴としている。
【0014】請求項記載の発明は、請求項1又は2記
載のプログラム検査方法に係り、上記第2の処理では、
上記第1の記憶手段に上記トレース情報が記憶可能な第
1の記憶容量がある場合には、上記トレース情報を上記
第1の記憶手段に一時的に記憶し、上記第1の記憶容量
がないが、上記第1の記憶手段に上記トレース情報が記
憶不可能であったことを示す記憶不可能情報が記憶可能
な第2の記憶容量がある場合には、上記記憶不可能情報
を上記第1の記憶手段に一時的に記憶し、上記第2の記
憶容量がない場合には、上記第1の記憶手段に上記第2
の記憶容量ができるまで上記トレース情報及び上記記憶
不可能情報を読み出し、上記第2の記憶手段に記憶した
後、上記記憶不可能情報を記憶することを特徴としてい
る。
【0015】請求項記載の発明は、請求項記載のプ
ログラム検査方法に係り、上記第1の記憶手段は、半導
体メモリにより構成され、上記トレース情報及び上記記
憶不可能情報が上記第1の記憶手段に記憶可能か否か
は、上記トレース情報及び上記記憶不可能情報のビット
長と、上記第1の記憶手段の最大アドレスと次に記憶す
べき情報の最上位ビットのアドレスを示す第1のポイン
タとの差又は上記第1の記憶手段の次に読み出すべき情
報の最上位ビットのアドレスを示す第2のポインタとを
比較して判断することを特徴としている。
【0016】請求項記載の発明は、上記トレース情報
は、請求項1乃至のいずれか1に記載のプログラム検
査方法に係り、割込・例外・分岐がそれぞれ発生した時
の分岐元のアドレス及び分岐先のアドレス、アクセスし
たデータの値又はデータが記憶されたアドレスからなる
ことを特徴としている。
【0017】
【0018】請求項8記載の発明は、請求項1乃至7の
いずれか1に記載のプログラム検査方法に係り、前記第
1の記憶手段は、前記プログラムを実行する中央処理装
置及び前記複数のトレース条件設定手段と前記複数のト
レース条件有効時期設定手段と前記トレース検出手段と
前記トレースバッファ制御手段と同一のチップ内に形成
れており、前記第2の処理は、前記第1の記憶手段に
記憶した前記トレース情報をシリアルのトレース情報に
変換して前記第2の記憶手段に出力することを特徴とし
ている。
【0019】
【0020】請求項9記載の発明は、開発の対象である
システムを構成する中央処理装置が実行すべきプログラ
ムを実行すると共に、その際のプログラム実行の履歴に
関するトレース情報を上記中央処理装置から獲得し、上
記トレース情報に基づいて上記プログラムを検査するプ
ログラム検査装置に係り、上記トレース情報が記憶され
る第1及び第2の記憶手段と、上記トレース情報の中の
所定のトレース情報のみの獲得を指定するトレース条件
を設定するための複数のトレース条件設定手段と、該複
数のトレース条件設定手段に対応して設けられ、対応す
るトレース条件設定手段に設定されたトレース条件が有
効となる少なくとも始期を設定するための複数のトレー
ス条件有効時期設定手段と、上記プログラムが実行さ
れ、上記トレース情報が供給された場合、上記複数のト
レース条件有効時期設定手段により設定された始期とな
る毎に、対応するトレース条件設定手段に設定されたト
レース条件に基づいて所定のトレース情報のみを獲得
し、該第1の処理で獲得されたトレース情報について、
上記第1の記憶手段に上記トレース情報が記憶可能な記
憶容量がある場合には、上記第1の記憶手段に一時的に
記憶した後、上記第1の記憶手段に記憶された上記トレ
ース情報を読み出し、上記第2の記憶手段に記憶すると
ともに、上記記憶容量がない場合には、上記第1の記憶
手段に記憶された全てのトレース情報を読み出して上記
第2の記憶手段に記憶した後、上記第1の記憶手段に上
記トレース情報が記憶不可能であったことを示す記憶不
可能情報を記憶するトレース手段とを備えてなることを
特徴としている。
【0021】求項10記載の発明は、開発の対象であ
るシステムを構成する中央処理装置が実行すべきプログ
ラムを実行すると共に、その際のプログラム実行の履歴
に関するトレース情報を上記中央処理装置から獲得し、
上記トレース情報に基づいて上記プログラムを検査する
プログラム検査装置に係り、上記トレース情報が記憶さ
れる第1及び第2の記憶手段と、上記トレース情報の中
の所定のトレース情報のみの獲得を指定するトレース条
件を設定するための複数のトレース条件設定手段と、該
複数のトレース条件設定手段に対応して設けられ、対応
するトレース条件設定手段に設定されたトレース条件が
有効となる少なくとも始期を設定するための複数のトレ
ース条件有効時期設定手段と、トレース条件の強制変更
を指示するトレース条件変更強制手段と、上記プログラ
ムが実行され、上記トレース情報が供給された場合、上
記複数のトレース条件有効時期設定手段により設定され
た始期となる毎に、対応するトレース条件設定手段に設
定されたトレース条件に基づいて所定のトレース情報の
みを獲得するとともに、上記トレース条件変更強制手段
の操作に応じて、トレース条件が現在有効となっている
トレース条件から他のトレース条件に変更され、該他の
トレース条件に基づいて所定のトレース情報のみを獲得
し、該第1の処理で獲得されたトレース情報について、
上記第1の記憶手段に上記トレース情報が記憶可能な記
憶容量がある場合には、上記第1の記憶手段に一時的に
記憶した後、上記第1の記憶手段に記憶された上記トレ
ース情報を読み出し、上記第2の記憶手段に記憶すると
ともに、上記記憶容量がない場合には、上記第1の記憶
手段に記憶された全てのトレース情報を読み出して上記
第2の記憶手段に記憶した後、上記第1の記憶手段に上
記トレース情報が記憶不可能であったことを示す記憶不
可能情報を記憶するトレース手段とを備えてなることを
特徴としている。
【0022】また、請求項11記載の発明は、請求項
又は10記載のプログラム検査装置に係り、上記トレー
ス手段は、上記第1の記憶手段に上記トレース情報が記
憶可能な第1の記憶容量がある場合には、上記トレース
情報を上記第1の記憶手段に一時的に記憶し、上記第1
の記憶容量がないが、上記第1の記憶手段に上記トレー
ス情報が記憶不可能であったことを示す記憶不可能情報
が記憶可能な第2の記憶容量がある場合には、上記記憶
不可能情報を上記第1の記憶手段に一時的に記憶し、上
記第2の記憶容量がない場合には、上記第1の記憶手段
に上記第2の記憶容量ができるまで待機した後、上記記
憶不可能情報を記憶することを特徴としている。
【0023】また、請求項12記載の発明は、請求項
記載のプログラム検査装置に係り、上記第1の記憶手
段は、複数個のフリップフロップが直列接続されたシフ
トレジスタが複数個直列接続されて構成され、上記トレ
ース情報及び上記記憶不可能情報が上記第1の記憶手段
に記憶可能か否かは、上記トレース情報及び上記記憶不
可能情報のビット長と、上記第1の記憶手段の次に記憶
すべき情報の最下位ビットのアドレスを示すポインタと
を比較して判断することを特徴としている。
【0024】また、請求項13記載の発明は、請求項
又は10記載のプログラム検査装置に係り、上記トレー
ス手段は、上記第1の記憶手段に上記トレース情報が記
憶可能な第1の記憶容量がある場合には、上記トレース
情報を上記第1の記憶手段に一時的に記憶し、上記第1
の記憶容量がないが、上記第1の記憶手段に上記トレー
ス情報が記憶不可能であったことを示す記憶不可能情報
が記憶可能な第2の記憶容量がある場合には、上記記憶
不可能情報を上記第1の記憶手段に一時的に記憶し、上
記第2の記憶容量がない場合には、上記第1の記憶手段
に上記第2の記憶容量ができるまで上記トレース情報及
び上記記憶不可能情報を読み出し、上記第2の記憶手段
に記憶した後、上記記憶不可能情報を記憶することを特
徴としている。
【0025】請求項14記載の発明は、請求項13記載
のプログラム検査装置に係り、上記第1の記憶手段は、
半導体メモリにより構成され、上記トレース情報及び上
記記憶不可能情報が上記第1の記憶手段に記憶可能か否
かは、上記トレース情報及び上記記憶不可能情報のビッ
ト長と、上記第1の記憶手段の最大アドレスと次に記憶
すべき情報の最上位ビットのアドレスを示す第1のポイ
ンタとの差又は上記第1の記憶手段の次に読み出すべき
情報の最上位ビットのアドレスを示す第2のポインタと
を比較して判断することを特徴としている。
【0026】請求項15記載の発明は、請求項乃至
のいずれか1に記載のプログラム検査装置に係り、上
記トレース情報は、割込・例外・分岐がそれぞれ発生し
た時の分岐元のアドレス及び分岐先のアドレス、アクセ
スしたデータの値又はデータが記憶されたアドレスから
なることを特徴としている。
【0027】
【0028】また、請求項16記載の発明は、請求項9
乃至15のいずれか1に記載のプログラム検査装置に係
り、前記第1の記憶手段は、前記プログラムを実行する
中央処理装置及び前記複数のトレース条件設定手段と前
記複数のトレース条件有効時期設定手段と同一のチップ
内に形成されていることを特徴としている。
【0029】さらにまた、請求項17乃至23記載の発
明に係る検査プログラムを記憶したコンピュータ読み取
り可能な記憶媒体は、請求項1乃至8のいずれかに記載
プログラム検査方法をコンピュータで処理させるため
検査プログラムが記憶されていることを特徴としてい
る。
【0030】
【作用】この発明の構成によれば、実際にターゲットシ
ステムに組み込まれるCPUチップと内部構造や端子数
が同一のCPUチップを用いた場合でも、リアルタイム
でプログラムの検査に必要なトレース情報が得られる。
【0031】
【発明の実施の形態】以下、図面を参照して、この発明
の実施の形態について説明する。説明は、実施例を用い
て具体的に行う。図1はこの発明の一実施例であるプロ
グラム検査装置の電気的構成を示すブロック図である。
この例のプログラム検査装置は、主記憶装置11と、C
PUチップ12と、エミュレータ13とから概略構成さ
れている。主記憶装置11は、後述するCPU15が実
行すべきターゲットプログラムが記憶されたターゲット
プログラム記憶部11aと、CPU15がターゲットプ
ログラム実行時に用いられるデータが記憶されたデータ
記憶部11bとから構成されている。CPUチップ12
は、レジスタ群14と、CPU15と、トレース手段1
6と、トレースバッファ17とから概略構成されてい
る。レジスタ群14は、複数のレジスタからなり、CP
U15がターゲットプログラム実行時に用いる。CPU
15は、プログラムカウンタ(PC)15aを有し、装
置各部を制御すると共に、ターゲットプログラムを順次
実行する。PC15aには、CPU15が次に実行すべ
き命令のアドレスの値が格納され、各命令の実行毎にそ
の値が順次カウントアップされたり、ジャンプ先のアド
レスの値がロードされたりする。この実施例では、CP
U15の動作クロックは200MHzであるとする。ト
レース手段16は、ターゲットプログラムを構成する各
命令の実行順序、各命令実行後のレジスタ群14の内容
の変化状況等を1つ1つトレースしてそれらに関するト
レース情報を獲得すると共に、トレース情報をトレース
パケットTP(後述)に変換してトレースバッファ17
に一旦記憶した後、トレースデータとしてエミュレータ
13に供給する。トレースバッファ17は、図示しない
が、複数個のフリップフロップが直列接続されてなり、
全体で400ビットの記憶容量を有する直列接続された
複数個のシフトレジスタと、ローテート回路と、制御部
等とからなり、トレースパケットTPが順次記憶され
る。なお、トレースバッファ17の詳細な構成及び動作
については、本出願人が先に提案した特願平9−45
46号を参照されたい。また、トレースバッファ17の
記憶容量は400ビットに限定されないことはいうまで
もない。エミュレータ13は、RAM等の半導体メモ
リ、FD(フロッピー・ディスク)やHD(ハード・デ
ィスク)等の大規模な記憶容量を有する記憶媒体からな
るトレースメモリ13aを有し、トレース手段16から
供給されたトレースデータをトレースメモリ13aに記
憶すると共に、トレースデータに基づいてターゲットプ
ログラムのデバッグ等を行う。また、エミュレータ13
は、操作者によって設定されたトレース条件や各種デー
タをトレース手段16に供給する。ここで、トレース条
件としては、例えば、特定の分岐命令のみに関するトレ
ース情報の獲得を指定するものがある。
【0032】トレース手段16は、トレース検出部21
と、トレースパケット生成部22と、トレースバッファ
制御部23と、トレースデータ出力部24と、トレース
条件レジスタ25及び26と、トリガ・アドレス・レジ
スタ27及び28と、レジスタ群29とから概略構成さ
れている。トレース検出部21は、トレース手段16を
構成する各部を制御すると共に、CPU15から供給さ
れる、PC15aの値や実行された命令の種類、あるい
はCPU15のターゲットプログラム実行処理状態等か
らなるステータス情報から特定のアドレスやトレース情
報を検出し、トレース条件に基づき、すべてのトレース
情報の中から必要なトレース情報のみをトレースパケッ
ト生成部22へ供給する。トレースパケット生成部22
は、トレース検出部21から供給されるトレース情報に
基づいて、8ビット、16ビット、48ビット、56ビ
ット又は88ビットからなる7種類のパラレルのトレー
スパケットTPのいずれかを生成してトレースバッファ
制御部23に供給する。
【0033】トレースバッファ制御部23は、トレース
バッファ17がオーバーフローしていない場合には、ト
レースパケット生成部22から供給されたトレースパケ
ットTPを、トレースバッファ17がオーバーフローし
た場合には、オーバーフローしたことを示すオーバーフ
ローパケットOFPを生成してオーバーフローパケット
OFPを、それぞれトレースバッファ17の所定の記憶
領域に書き込むと共に、トレースデータ出力部24を制
御する。トレースデータ出力部24は、トレースバッフ
ァ制御部23の制御の下、トレースバッファ17から1
ビットずつ出力されるシリアルのトレースパケットTP
及びオーバーフローパケットOFPをトレースクロック
TCK(25MHz)に同期してLSBファーストで4
ビットずつシリアルで出力して、エミュレータ13に供
給する。トレース条件レジスタ25及び26は、エミュ
レータ13から供給されたトレース条件TC及びTC
が記憶されるレジスタである。トリガ・アドレス・レ
ジスタ27及び28は、それぞれトレース条件レジスタ
25及び26に対応して設けられ、エミュレータ13か
ら供給され、それぞれトレース条件TC及びTC
トレースを開始すべきトリガ・アドレスTA及びTA
が記憶されるレジスタである。この実施例では、トレ
ース条件レジスタ及びトリガ・アドレス・レジスタを2
個設けた例を示したが、3個以上設けてももちろん良
い。レジスタ群29は、後述するトレース・データ・レ
ジスタ等の複数のレジスタからなり、操作者により設定
され、エミュレータ13から供給されたトレースのため
の各種データが記憶される。
【0034】トレース検出部21は、図2に示すよう
に、アドレス検出部31と、トレース情報検出部32
と、トレース条件切換部33と、トレース条件マスク部
34とから概略構成されている。アドレス検出部31
は、トリガ・アドレス・レジスタ27及び28からそれ
ぞれ供給されるトリガ・アドレスTA及びTAに一
致するアドレスをCPU15から供給されるステータス
情報から順次検出してその旨を示す制御信号をトレース
条件切換部33に供給する。トレース情報検出部32
は、CPU15から供給されるステータス情報からトレ
ース情報を検出してトレース条件マスク部34に供給す
る。トレース条件切換部33は、アドレス検出部31か
ら供給される制御信号に基づいて、トレース条件レジス
タ25から供給されるトレース条件TC 又はトレース
条件レジスタ26から供給されるトレース条件TC
いずれか一方をトレース条件マスク部34に供給する。
トレース条件マスク部34は、トレース条件切換部33
から供給されるトレース条件TC又はトレース条件T
に従って不要なトレース情報をマスク(削除)し
て、操作者が必要なトレース情報のみをトレースパケッ
ト生成部22に供給する。
【0035】次に、トレースパケットTPについて説明
する。この実施例では、トレース情報は、トレースパケ
ット生成部22において、図3に示すように、8ビッ
ト、16ビット、48ビット、56ビット又は88ビッ
トからなる7種類のトレースパケットTPに変換され
る。図3(1)は、出力すべきトレース情報がないこと
(トレースパケットTPの種類を判別するためのトレー
スコードTRCODE[0000]b、[]bは、[]
内の数字が2進数であることを表す。以下同様であ
る。)、トレースバッファ17がオーバーフローしたこ
と(トレースコードTRCODE[0011]b)をそ
れぞれ表すトレースパケットTPのフォーマットを示
す。このフォーマットを有するトレースパケットTPの
ビット長は8ビットである。これらのトレースパケット
TPのうち、トレースコードTRCODE[0011]
bのトレースパケットTPをオーバーフローパケットO
FPと呼ぶことにする。図3(2)は、アドレス・トリ
ガによるトレース開始(トレースコードTRCODE
[0001]b)を表すトレースパケットTPのフォー
マットを示す。このフォーマットを有するトレースパケ
ットTPのビット長は8ビットである。SINFは、4
ビットからなり、最下位ビット又は下位から2番目のビ
ットのいずれか一方がアクティブであることにより、レ
ジスタ群27を構成する2個のトレース・スタート・レ
ジスタのいずれか一方に設定された仮想アドレス(PC
15aの値)からのトレース開始が指示されたことを示
す。
【0036】図3(3)は、例外や割り込みの発生によ
り分岐が起きた時に例外や割り込みの原因(トレースコ
ードTRCODE[1100]b)を表すトレースパケ
ットTPのフォーマットを示す。このフォーマットを有
するトレースパケットTPのビット長は16ビットであ
る。TRPSTは8ビットからなり、例外や割り込みの
原因を示すコードである。図3(4)は、ジャンプ・ブ
ランチ命令により、分岐が発生したことや強制スタート
によりトレースが開始したこと(トレースコードTRC
ODE[1000]b)、ジャンプ・ブランチ命令、あ
るいは例外や割り込みにより分岐が発生したこと(トレ
ースコードTRCODE[1010]b)をそれぞれ表
すトレースパケットTPのフォーマットを示す。このフ
ォーマットを有するトレースパケットTPのビット長は
48ビットである。BRNSTは4ビットからなり、発
生した分岐の種類を示す。分岐の種類としては、ジャン
プ・アンド・リンク(JAL)命令、ジャンプ(JM
P)命令、ブランチ・オン・コンディション・テークン
(BCC)命令、ブランチ・オン・コンディション・ノ
ット・テークン(BCCNT)命令、インタラプト・ソ
ース・アドレス(INT)命令、リターン・フローム・
トラップ・オア・インタラプト(RETI)命令、ジャ
ンプ・リラティブ(JR)命令などがある。VADDは
32ビットからなり、分岐先又は分岐元の仮想アドレ
ス、あるいはトレース開始アドレスを示す。ASIDは
8ビットからなり、分岐先又は分岐元アドレス、あるい
はトレース開始アドレスのアドレス空間IDを示す。
【0037】図3(5)は、分岐先又は強制スタート時
アドレスで、分岐命令、例外、割り込みにより分岐が発
生した時に出力されるトレースパケットTPのフォーマ
ットを示す。このフォーマットを有するトレースパケッ
トTPのビット長は48ビット、トレースコードTRC
ODEは[1001]bである。BRNSTDは4ビッ
トからなり、分岐してきた分岐の種類を示し、BRNS
TSは4ビットからなり、発生した分岐の種類を示す。
VADDは32ビットからなり、分岐先又は分岐元の仮
想アドレス、あるいはトレース開始アドレスを示す。A
SIDは8ビットからなり、分岐先又は分岐元アドレス
のアドレス空間IDを示す。図3(6)は、例外や割り
込みによる分岐先で、分岐命令、例外、割り込みにより
分岐が発生した時に出力されるトレースパケットTPの
フォーマットを示す。このフォーマットを有するトレー
スパケットTPのビット長は56ビット、トレースコー
ドTRCODEは[1011]bである。TRPSTは
8ビットからなり、分岐してきた例外や割り込みの原因
を示すコードである。VADDは32ビットからなり、
分岐元の仮想アドレスを示す。ASIDは8ビットから
なり、分岐元アドレスのアドレス空間IDを示す。BR
NSTSは4ビットからなり、発生した分岐の種類を示
す。
【0038】図3(7)は、CPU15が発行するデー
タ・アクセスをトレースした時に出力されるトレースパ
ケットTPのフォーマットを示す。このフォーマットを
有するトレースパケットTPのビット長は88ビット、
データ・ライト・アクセスの時に出力されるトレースパ
ケットTP(DATAWパケットと呼ぶ)のトレースコ
ードTRCODEは[1101]bであり、データ・リ
ード・アクセスの時に出力されるトレースパケットTP
(DATARパケットと呼ぶ)のトレースコードTRC
ODEは[1110]bである。DATAWパケット
は、レジスタ群27を構成する2個のトレース・データ
・レジスタのいずれか一方に設定されたアドレスと、デ
ータ・ライト・アクセスの発生したアドレスが一致した
時に出力される。これに対し、DATARパケットは、
レジスタ群27を構成する2個のトレース・データ・レ
ジスタのいずれか一方に設定されたアドレスと、データ
・リード・アクセスの発生したアドレスが一致した時に
出力される。DATAは64ビットからなり、データア
クセスのデータ値を示す。ADRは8ビットからなり、
データアクセスの仮想アドレスの上位8ビットを示す。
BEは8ビットからなり、DATAのうち、有効なデー
タを示す。TRGRは1ビットからなり、ヒットしたデ
ータ・トレース・ポイントを示す。MEIOは1ビット
からなり、当該アクセスが主記憶装置11に対するもの
か、I/Oに対するものかを示す。
【0039】次に、図4〜図8を参照して、上記構成の
プログラム検査装置の動作について説明する。この実施
例では、検査すべきターゲットプログラムのメインルー
チンは、図4(a)に示すものであるとし、それに対応
するフローチャートを図4(b)に示す。また、図5
(a)に図4(a)に示すサブルーチン1のプログラム
を、図5(b)にサブルーチン1における割り込み処理
ルーチンのプログラムを、図5(c)に図5(a)に示
すサブルーチン1のプログラムに対応するフローチャー
トを示す。同様に、図6(a)に図4(a)に示すサブ
ルーチン2のプログラムを、図6(b)〜(e)にそれ
ぞれサブルーチン2におけるサブルーチンA〜Dのプロ
グラムを、図7に図6(a)に示すサブルーチン2のプ
ログラムに対応するフローチャートを示す。そして、上
記ターゲットプログラムが主記憶装置11のターゲット
プログラム記憶部11aに予め記憶されているものとす
る。そして、この実施例では、図4(a)に示すターゲ
ットプログラムのうち、サブルーチン1とサブルーチン
2とをそれぞれ異なるトレース条件でトレースをするも
のとする。即ち、トリガ・アドレスTAを「ffff
0202」h(「」hは「」内の数字が16進数である
ことを表す。以下同様である。)とし、その場合のトレ
ース条件TCを、例えば、JAL命令、JMP命令、
BCCNT命令、INT命令、RETI命令及びJR命
令のみのトレースを指示するものとする。一方、トリガ
・アドレスTAを、「ffff0208」hとし、そ
の場合のトレース条件TCを、例えば、JAL命令、
JMP命令、BCC命令、INT命令、RETI命令及
びJR命令のみのトレースを指示するものとする。そこ
で、操作者は、エミュレータ13の図示せぬテンキーや
操作ボタンを操作して、上記トリガ・アドレスTA
びTA並びにトレース条件TC及びTCを入力す
る。これにより、エミュレータ13がトリガ・アドレス
TA及びTA並びにトレース条件TC及びTC
をトレース手段16に供給するので、トレース手段16
において、トリガ・アドレスTA及びTAがそれぞ
れトリガ・アドレス・レジスタ27及び28に記憶され
ると共に、トレース条件TC 及びTCがそれぞれト
レース条件レジスタ25及び26に記憶される。
【0040】次に、操作者がエミュレータ13に設けら
れたプログラム実行を指示するボタンを押下すると、C
PU15は、図4〜図6に示されたターゲットプログラ
ムをターゲットプログラム記憶部11aから順次読み出
して実行を開始し、各命令を実行する毎に、PC15a
の値や実行された命令の種類、あるいはCPU15のタ
ーゲットプログラム実行処理状態等からなるステータス
情報をトレース手段16へ供給する。以上説明したCP
U15によるターゲットプログラムの実行と並行して、
トレース手段16は、以下に示すトレース処理を実行す
る。まず、トレース検出部21は、トレース手段16の
各部を制御して初期化処理を行う。これにより、例え
ば、トレースバッファ制御部23は、トレースバッファ
17を構成するシフトレジスタの全ての記憶内容をクリ
アする。次に、トレース検出部21のアドレス検出部3
1は、CPU15から供給されるステータス情報から検
出したアドレス(即ち、PC15aの値)と、トリガ・
アドレス・レジスタ27及び28からそれぞれ供給され
たトリガ・アドレスTA (この実施例では、「fff
f0202」h)及びトリガ・アドレスTA(この実
施例では、「ffff0208」h)とを比較して、一
致したか否かを判断する(ステップSP1)。この判断
結果が「NO」の場合には、アドレス検出部31は、何
もしない。また、トレースデータ出力部24は、トレー
スパケットバッファ17から1ビットずつ出力されるシ
リアルのトレースパケットTP及びオーバーフローパケ
ットOFPを4ビットのシリアルのトレースデータに変
換してエミュレータ13に供給する。今の場合、トレー
スバッファ17には何も記憶されていないので、エミュ
レータ13には何も供給されない。
【0041】一方、ステップSP1の判断結果が「YE
S」の場合、即ち、PC15aの値と、トリガ・アドレ
スTA(この実施例では、「ffff0202」h)
又はトリガ・アドレスTA(この実施例では、「ff
ff0208」h)とが一致した場合には、アドレス検
出部31は、その旨を示す制御信号をトレース条件切換
部33に供給する。今、PC15aの値が「ffff0
202」hであるとすると、アドレス検出部31がその
旨を示す制御信号をトレース条件切換部33に供給す
る。これにより、トレース条件切換部33は、アドレス
検出部31から供給された制御信号に基づいて、トレー
ス条件レジスタ25から供給されたトレース条件TC
をトレース条件マスク部34に供給する(ステップSP
2)。次に、トレース情報検出部32は、CPU15か
ら供給されたステータス情報からトレース情報が検出さ
れたか否かを判断する(ステップSP3)。この判断結
果が「NO」の場合には、トレース情報検出部32は、
同判断を繰り返す。なお、図8においては、便宜上、ス
テップSP3の処理はステップSP1及びSP2の処理
の後に示されているが、図2からも分かるように、アド
レス検出部31とトレース検出部32とはそれぞれ独立
しているので、実際には並行して動作しており、ステッ
プSP1の処理とステップSP3の処理とは同時に行わ
れる。
【0042】一方、ステップSP3の判断結果が「YE
S」の場合、即ち、CPU15から供給されたステータ
ス情報からトレース情報が検出された場合には、トレー
ス情報検出部32は、検出したトレース情報をトレース
条件マスク部34に供給する。今の場合、PC15aの
値(「ffff0202」h)及びJAL命令に関する
トレース情報がトレース条件マスク部34に供給される
(図4(a)参照)。これにより、トレース条件マスク
部34は、トレース条件TCに基づいて、トレース情
報検出部32から供給されたトレース情報がマスク(削
除)されるべき不要なトレース情報か否かを判断する
(ステップSP4)。この判断結果が「YES」の場合
には、トレース条件マスク部34は、同判断を繰り返
す。一方、ステップSP4の判断結果が「NO」の場
合、即ち、トレース情報検出部32から供給されたトレ
ース情報がマスク(削除)されるべき不要なトレース情
報でない場合には、トレース条件マスク部34は、当該
トレース情報をトレースパケット生成部22に供給す
る。今の場合、PC15aの値(「ffff0202」
h)及びJAL命令に関するトレース情報がトレースパ
ケット生成部22に供給される。これにより、トレース
パケット生成部22は、供給されたトレース情報に基づ
いて、8ビット、16ビット、48ビット、56ビット
又は88ビットからなる7種類のパラレルのトレースパ
ケットTPのいずれかを生成する(ステップSP5)。
今の場合、PC15aの値(「ffff0202」h)
及びJAL命令に関するトレース情報が供給されている
ので、JAL命令を表すトレースコードTRCODE
[1001]bのトレースパケットTP(図3(4)及
び図9最上段参照。但し、図9のトレースパケットTP
はいずれも簡略化されている。)を生成する。
【0043】次に、トレースパケット生成部22は、生
成されたトレースパケットTPのトレースパケット長L
TPを算出してトレースバッファ制御部23に供給する
(ステップSP6)。これにより、トレースバッファ制
御部23は、トレースパケット長LTPとトレースバッ
ファ17における記憶可能位置の先頭(ポインタと呼
ぶ)との差を演算し、その差に基づいて、トレースパケ
ットTPの書き込みが可能か否かを判断する(ステップ
SP7)。この判断結果が「YES」の場合には、トレ
ースバッファ制御部23は、トレースバッファ17の記
憶可能位置の先頭からトレースパケットTPを書き込む
(ステップSP8)。次に、トレースバッファ制御部2
3は、トレースバッファ17におけるポインタの現在位
置を更新する(ステップSP9)。今の場合、トレース
バッファ17には何も記憶されていないので、ポインタ
はトレースバッファ17の最下位の位置にあり、トレー
スパケットTPの書き込みは可能である。次に、アドレ
ス検出部31は、再びPC15aの値と、トリガ・アド
レスTA 及びTAとを比較して、一致したか否かを
判断し(ステップSP1)、トレース情報検出部32
は、ステータス情報からトレース情報が検出されたか否
かを判断する(ステップSP3)。今度は、PC15a
の値(「ffff1000」h)及びJAL命令に関す
るトレース情報が検出されるが(図5(a)参照)、P
C15aの値(「ffff1000」h)はトリガ・ア
ドレスTA(「ffff0202」h)及びトリガ・
アドレスTA(「ffff0208」h)のいずれと
も一致せず、JAL命令に関するトレース情報もトレー
ス条件TCによってもマスクされないので(ステップ
SP4)、PC15aの値(「ffff1000」h)
及びJAL命令に関するトレース情報に基づいて、JA
L命令を表すトレースコードTRCODE[1000]
bのトレースパケットTP(図3(4)及び図9第2段
参照)が生成される(ステップSP5)。次に、トレー
スパケット生成部22におけるトレースパケット長LT
Pの算出(ステップSP6)、トレースバッファ制御部
23におけるトレースパケットTPの書き込みの可否の
判断(ステップSP7)が行われるが、トレースバッフ
ァ17には1個のトレースパケットTPしか書き込まれ
ていないので、トレースバッファ制御部23は、トレー
スバッファ17のポインタで示された記憶領域へトレー
スパケットTPを書き込み(ステップSP8)、ポイン
タの現在位置を更新する(ステップSP9)。
【0044】次に、アドレス検出部31は、再びPC1
5aの値と、トリガ・アドレスTA 及びTAとを比
較して、一致したか否かを判断し(ステップSP1)、
トレース情報検出部32は、ステータス情報からトレー
ス情報が検出されたか否かを判断する(ステップSP
3)。今度は、PC15aの値(「ffff1006」
h)及びBCC命令に関するトレース情報が検出される
(図5(a)参照)。PC15aの値(「ffff10
06」h)はトリガ・アドレスTA(「ffff02
02」h)及びトリガ・アドレスTA(「ffff0
208」h)のいずれとも一致しないが、BCC命令に
関するトレース情報はトレース条件TCによってマス
クされるので、トレースパケットTPは生成されない
(ステップSP4及び図9参照)。これ以降、図5
(a)に示すサブルーチン1においてループ処理が繰り
返されている間はBCC命令が出力され続けるので、ス
テップSP4の判断結果は「YES」のままであり、ト
レースパケットTPは生成されない。そして、割り込み
入力があると、ループ処理から抜け、PC15aの値
(「ffff1004」h)及びINT命令に関するト
レース情報が検出される(図5(b)参照)。これによ
り、ステップSP4の判断結果が「NO」となり、PC
15aの値(「ffff1004」h)及びINT命令
に関するトレース情報に基づいて、INT命令を表すト
レースコードTRCODE[1010]bのトレースパ
ケットTP(図3(4)及び図9第4段参照。)が生成
される(ステップSP5)。この後、ステップSP6〜
ステップSP9の処理がなされる。以上説明したステッ
プSP1〜SP9の処理が行われている間、トレースデ
ータ出力部24は、トレースパケットバッファ17から
1ビットずつ出力されるシリアルのトレースパケットT
Pを4ビットのシリアルのトレースデータに変換してエ
ミュレータ13に供給する。これにより、エミュレータ
13は、トレース手段16から供給されたトレースデー
タをトレースメモリ13aに記憶する。
【0045】以上説明した処理が繰り返されると、トレ
ースバッファ17においては、トレースパケットTPが
書き込まれると共に、シリアルのトレースパケットTP
が1ビットずつ出力され、トレースデータ出力部24に
おいて4ビットのシリアルのトレースデータに変換され
てエミュレータ13に供給され、トレースメモリ13a
の所定の記憶領域に書き込まれていく。この場合、トレ
ース条件マスク部34においてトレース条件TCに基
づいて不要なトレース情報をマスクせず、トレース情報
検出部32において検出されるすべてのトレース情報か
らトレースパケットTPを生成すると、割り込み入力が
あるまでは、図10に示すように、サブルーチン1のル
ープ処理に対応した多量のトレースパケットTPが生成
される。しかし、トレースバッファ17の記憶容量が4
00ビットであると共に、1回の処理で書き込まれるト
レースパケットTPのビット数が8ビット、16ビッ
ト、48ビット、56ビット又は88ビットであるのに
対し、1回の処理で読み出されるトレースデータのビッ
ト数が4ビットであるので、ビット長が48ビットのト
レースパケットTPが9回連続して生成されると、9個
目のビット長が48ビットのトレースパケットTPを書
き込む際には、ポインタの現在位置の方がトレースパケ
ットTPのビット長LTPより小さくなってしまう。こ
れにより、ステップSP7の判断結果が「NO」とな
り、ステップSP10〜SP13において、後述するオ
ーバーフローパケットOFPの生成処理等がなされるこ
とになる。これに対し、この実施例では、トレース条件
マスク部34においてトレース条件TCに基づいて不
要なトレース情報であるBCC命令に関するトレース情
報をマスクしているので、図9の1点鎖線より上側に示
すように、サブルーチン1のトレース中には8個のトレ
ースパケットTPしか生成されず、このため、トレース
バッファ17がオーバーフローすることはない。したが
って、操作者が所望のトレース情報をリアルタイムです
べて獲得することができ、エミュレータ13によりサブ
ルーチン1のデバッグ等を行うことができる。
【0046】次に、アドレス検出部31において検出さ
れたPC15aの値が(「ffff0208」h)にな
る、即ち、トリガ・アドレスTA(「ffff020
8」h)と一致すると、ステップSP1の判断結果が
「YES」となるので、アドレス検出部31は、その旨
を示す制御信号をトレース条件切換部33に供給する。
これにより、トレース条件切換部33は、アドレス検出
部31から供給された制御信号に基づいて、トレース条
件レジスタ25から供給されたトレース条件TC をト
レース条件マスク部34に供給する(ステップSP
2)。これ以降、上記したサブルーチン1のトレースと
同様、ステップSP3〜SP9の処理が繰り返される
が、トレース条件TCは、JAL命令、JMP命令、
BCC命令、INT命令、RETI命令及びJR命令の
みのトレースを指示するものであり、BCCNT命令に
関するトレース情報はトレース条件マスク部34におい
てマスクされ、それに対応したトレースパケットTPは
生成されない(図9の1点鎖線下側及び図10参照)。
したがって、図9の1点鎖線より下側に示すように、サ
ブルーチン2のトレース中には6個のトレースパケット
TPしか生成されないため、トレースバッファ17がオ
ーバーフローすることはない。これにより、操作者が所
望のトレース情報をリアルタイムですべて獲得すること
ができ、エミュレータ13によりサブルーチン2のデバ
ッグ等を行うことができる。
【0047】次に、上記したトリガ・アドレス及びトリ
ガ条件の設定にもかかわらず、トレースバッファ17が
オーバーフローした場合の処理について説明する。トレ
ースバッファ17のポインタの現在位置の方がトレース
パケットTPのビット長LTPより小さくなる、即ち、
差のビット数が負の数になると、ステップSP7の判断
結果が「NO」となる。そこで、トレースバッファ制御
部23は、オーバーフローパケットOFPが既に書き込
み済かを判断する(ステップSP10)。この判断は、
例えば、トレースバッファ制御部23内部にオーバーフ
ローパケットOFPが書き込み済の場合に1にセットさ
れるフラグを設けておき、そのフラグが1にセットされ
ているか否かによる。ステップSP10の判断結果が
「YES」の場合、即ち、オーバーフローパケットOF
Pが既に書き込み済の場合には、トレースバッファ制御
部23は、トレース検出部21にその旨を報知する。こ
れにより、トレース検出部21は、再びステータス情報
から検出されたアドレスがトリガアドレスに一致するか
否かを判断する(ステップSP1)。一方、ステップS
P10の判断結果が「NO」の場合、即ち、オーバーフ
ローパケットOFPがまだ書き込まれていない場合に
は、トレースバッファ制御部23は、オーバーフローパ
ケットOFPの書き込みが可能か否か判断する(ステッ
プSP11)。ステップSP11の判断結果が「YE
S」の場合には、トレースバッファ制御部23は、ステ
ップSP12へ進む。一方、ステップSP11の判断結
果が「NO」の場合には、トレースバッファ制御部23
は、同判断を繰り返す。そして、トレースデータ出力部
24によるトレースバッファ17からのトレースデータ
の読み出し処理により、ポインタの現在位置が8以上と
なると、ステップSP11の判断結果が「YES」とな
る。ステップSP12では、トレースバッファ制御部2
3は、図3(1)に示すフォーマットを有する8ビット
のオーバーフローパケットOFPを生成して上記ポイン
タで示された記憶領域に書き込む。次に、トレースバッ
ファ制御部23は、トレースバッファ17におけるポイ
ンタの現在位置を更新した後、トレース検出部21にそ
の旨を報知する(ステップSP13)。これにより、ト
レース検出部21は、再びステータス情報から検出され
たアドレスがトリガアドレスに一致するか否かを判断す
る(ステップSP1)。
【0048】このように、この例の構成によれば、CP
Uチップ12内部にトレース手段16及びトレースバッ
ファ17を設けたので、200MHzという高速度の動
作クロックでCPU15が動作した場合でも、CPU1
5の主記憶装置11へのアクセスだけでなく、レジスタ
群14や図示せぬキャッシュメモリへのアクセスについ
てもトレースできる。また、トレースデータは、トレー
スクロックTCK(25MHz)に同期してLSBファ
ーストで4ビットずつシリアルで出力して、エミュレー
タ13に供給しているので、端子数はクロック用の端子
を含めて5個で良い。さらに、エミュレータ13からト
レース手段16を構成する各レジスタ25〜29への各
種データの供給についても、図1においては便宜的に各
レジスタ毎に端子を示しているが、トレース手段16内
部にセレクタ等を設ければ、端子数は数個で良い。した
がって、プログラム検査専用に設ける必要のある端子数
は10個前後で良く、実際にターゲットシステムに組み
込まれるCPUチップと内部構造や端子数が同一のCP
Uチップでプログラム検査を行うことができる。
【0049】ところで、上記実施例と同様に図4〜図6
に示すターゲットプログラムのサブルーチン1及び2に
ついて従来のようにアドレス範囲だけを指定してトレー
ス処理した場合、サブルーチン1(アドレス範囲「ff
ff1000〜ffff100a」h、割り込み処理ル
ーチンも含めると、アドレス範囲「ffff7000〜
ffff72fa」hも要指定)については、図11に
示すように、条件分岐命令が高頻度で発生するループ処
理が含まれているため、容易にオーバーフローしてしま
う。これにより、ループ処理の中の条件分岐命令は単純
な繰り返しであるからすべてのトレース情報を獲得する
必要がないにもかかわらず、すべて獲得してしまう場合
があり、これに対し、不要なトレース情報が獲得された
ためにトレースバッファ17がオーバーフローして割り
込み処理への分岐に関するトレース情報を獲得できなく
なってしまう場合がある。一方、サブルーチン2(アド
レス範囲「ffff2000〜ffff2018」h)
については、図12に示すように、分岐命令が短期間で
高頻度で発生するため、オーバーフローする可能性が高
い。したがって、場合によっては、デバッグにとって重
要な分岐命令に関するトレース情報がトレースバッファ
17のオーバーフローによって獲得できなくなってしま
う危険性がある。これに対し、この例の構成によれば、
操作者がエミュレータ13の図示せぬテンキーや操作ボ
タンを操作して、トリガ・アドレスTA及びTA
びにトレース条件TC及びTCを入力することがで
きるので、従来のような単にトレースすべきアドレス範
囲を指定する場合に比べて、きめ細かな設定ができ、操
作者が希望するトレース情報だけを獲得することができ
る。これにより、トレースバッファ17がオーバーフロ
ーする頻度を低くすることができ、リアルタイムでトレ
ース処理を行うことができる。さらに、トリガ・アドレ
スTA及びTA並びにトレース条件TC及びTC
は、操作者がエミュレータ13の図示せぬテンキーや
操作ボタンを操作して容易に入力できるので、一旦設定
されたトリガ・アドレスTA及びTA並びにトレー
ス条件TC及びTCに基づいたトレース処理により
得られたトレースデータを用いてデバッグ等を行った
後、トリガ・アドレスTA及びTA並びにトレース
条件TC及びTCを設定し直して再びトレース処理
を行うことが容易にできる。したがって、プログラム検
査が迅速・容易に行うことができる。
【0050】さらに、この例の構成によれば、トレース
バッファ17においては、トレースに従ってトレースパ
ケットTPが書き込まれると共に、4ビットずつに分割
されたトレースパケットTPが順次読み出されてエミュ
レータ13に供給され、トレースメモリ13aに記憶さ
れていくので、トレースバッファ17がオーバーフロー
するまでの時間を長くすることができる。また、トレー
スバッファ17がオーバーフローしても、従来のよう
に、CPU15の動作を停止させることがなく、実使用
状態でのアクセス履歴やレジスタの内容などのトレース
が可能になる。さらに、トレースバッファ17がオーバ
ーフローしてトレースパケットTPが連続的に保存でき
なくなった場合には、その旨を示すオーバーフローパケ
ットOFPを生成してトレースバッファ17に書き込ん
でいる。したがって、トレースメモリ13aに記憶され
たトレースパケットTPからターゲットプログラムの実
行状況が正確に把握できると共に、どの箇所でトレース
が中断されたかを判断することができる。これにより、
ターゲットプログラムにバグ等の問題点があった場合に
は、具体的にどの箇所にバグなどがあるかが確認でき、
ターゲットプログラムの検査を簡単・迅速に行うことが
できる。また、本実施例においては、トレースバッファ
17にトレースパケットTPが書き込める領域が確保で
きると、次のトレース情報を獲得してトレースパケット
TPに変換した後、トレースバッファ17に書き込むこ
とができる。したがって、トレース処理を中断している
時間が短くて済む。これにより、獲得できるトレース情
報の間隔を短くすることができる。
【0051】以上、この発明の実施例を図面を参照して
詳述してきたが、具体的な構成はこの実施例に限られる
ものではなく、この発明の要旨を逸脱しない範囲の設計
の変更等があってもこの発明に含まれる。例えば、上述
の実施例においては、アドレス検出部31は、トリガ・
アドレス・レジスタ27及び28からそれぞれ供給され
るトリガ・アドレスTA及びTAに一致するアドレ
ス(即ち、PC15aの値)をCPU15から供給され
るステータス情報から順次検出する例を示したが、これ
に限定されない。アドレス検出部31がステータス情報
から検出するのは、PC15aの値だけでなく、例え
ば、CPU15がアクセスしたアドレスやデータの値
(これらとPC15aの値を総称してイベントと呼ぶ)
でも良い。この場合、トリガ・アドレス・レジスタ27
及び28にも、操作者が希望するイベントが設定される
ものとする。さらに、トレース条件の切り換えは、イベ
ントの検出に限らず、なんらかのタイミングの検出に応
じてするようにしても良く、さらにあるトレース条件が
有効となる始期だけでなく終期、即ち、当該トレース条
件が有効となる範囲を指定するようにしても良い。ま
た、上述した実施例においては、トレース条件は予めト
レース条件レジスタ25及び26に設定されている例を
示したが、これに限定されない。例えば、トレース処理
動作をリアルタイムでモニタできる手段を設け、何らか
のトラブルが発生した場合に、緊急処置としてトレース
条件を強制的に変更できるように構成しても良い。この
ような構成によれば、トレース処理中に発生頻度が極め
て低いトラブルがたまたま発生した場合でも、トレース
条件を強制的に変更することにより、当初マスクされる
はずのトレース情報を獲得することができ、トラブルの
原因を追及できる。
【0052】また、上述した実施例においては、トレー
スバッファ17にトレースパケットTPが書き込み不可
能となった場合(図8に示すステップSP7の判断結果
が「NO」となった場合の処理)、図8に示すステップ
SP10〜SP13の処理を行う例を示したが、これに
限定されない。例えば、トレースバッファ17に記憶さ
れた全てのトレースデータを読み出してエミュレータ1
3に供給してトレースメモリ13aに記憶した後、トレ
ースバッファ17にオーバーフローパケットOFPを記
憶するように構成しても良い。また、トレースバッファ
17にトレースパケットTPを記憶するだけの記憶容量
(第1の記憶容量)はないが、オーバーフローパケット
OFPを記憶するだけの記憶容量(第2の記憶容量)が
ある場合には、オーバーフローパケットOFPをトレー
スバッファ17に一時的に記憶し、第2の記憶容量がな
い場合には、トレースバッファ17に第2の記憶容量が
できるまでトレースデータをエミュレータ13に供給し
てトレースメモリ13aに記憶した後、オーバーフロー
パケットOFPをトレースバッファ17に記憶するよう
に構成しても良い。
【0053】また、上述した実施例においては、CPU
15がターゲットプログラムのトリガアドレスで指定さ
れた領域を全て実行してトレース手段16がトレース処
理を行う例を示したが、これに限定されない。ターゲッ
トプログラムは、通常、検査が終了した定型処理と当該
ターゲットプログラム固有で検査が終了していない非定
型処理から構成されている。このうち、定型処理につい
ては、CPU15が解釈せずに実行できる形態の命令で
構成することにより実行を高速で行うことができ、また
検査が終了しているためトレース処理を行う必要がな
い。これに対し、非定型処理は、当該ターゲットプログ
ラム固有であるから、CPU15が1命令ずつ解釈して
実行する必要があり、かつ、検査が終了していないた
め、トレース処理を行う必要がある。そこで、例えば、
CPU15がターゲットプログラムを定型処理について
は高速に実行し、非定型処理については1命令ずつ解釈
して実行し、これに並行して、トレース手段は、非定型
処理についてのみトレース処理を実行するように構成す
る。このような構成であれば、トレースパケットTPを
記憶するトレースバッファ17がオーバーフローになる
頻度が少なくなり、これに伴ってトレース処理が中断さ
れる時間も短縮される。これにより、トレース処理を含
めたターゲットプログラムを検査する処理時間全体が短
くて済む。
【0054】また、上述した実施例においては、1回の
トレース処理についてのみの説明であるが、通常、バグ
などは何回かトレース処理を行わなければ完全には除去
できない。そこで、ターゲットプログラムのうち、前回
のトレース処理で問題が発生しなかった箇所については
今回はトレース処理を行わず、異常が発生した箇所や、
前回のトレース処理時にトレースバッファ17がオーバ
ーフローしたためにトレースパケットTPがトレースバ
ッファ17に記憶できなかった箇所について、重点的に
トレース処理して確実にトレースパケットTPを記憶す
る必要がある。そのためには、例えば、前回のトレース
情報等を所定の記憶手段に記憶しておくと共に、上記し
たユーザがトレース処理を希望する箇所を指定する。こ
れにより、CPU15は、ターゲットプログラムを実行
するが、正常に動作する箇所では処理を省き(例えば、
単にデータ記憶部11bの所定箇所に記憶されたデータ
を、レジスタ群14を構成するレジスタにロードした
り、データ記憶部11bの他の記憶箇所や外部の機器に
転送する処理など)、前回のトレース情報に基づいて、
トレース処理がユーザによって指定された箇所を実行す
る直前の状態にレジスタ群14やデータ記憶部11bの
内容を設定し、直ちに当該指定箇所のトレース処理を実
行する。このような構成によれば、ターゲットプログラ
ムの検査を簡単・迅速に行うことができる。
【0055】さらに、上述した実施例においては、各手
段をハードウェアで構成した例を示したが、これに限定
されない。即ち、上記プログラム検査装置を、CPU
と、サブCPUと、ROMやRAM等の内部記憶装置
と、FDD(フロッピー・ディスク・ドライバ)、HD
D(ハード・ディスク・ドライバ)、CD−ROMドラ
イバ等の外部記憶装置と、出力手段と、入力手段とを有
するコンピュータによって構成し、上記トレース検出部
21、トレースパケット生成部22、トレースバッファ
制御部23、トレースデータ出力部24をサブCPUに
よって構成され、CPU及びサブCPUの機能がプログ
ラム検査プログラムとして、ROM等の半導体メモリ
や、FD、HDやCD−ROM等の記憶媒体に記憶され
ていると構成しても良い。この場合、上記内部記憶装
置、あるいは外部記憶装置が主記憶装置11、レジスタ
群14、トレースバッファ17、トレース条件レジスタ
25及び26、トリガ・アドレス・レジスタ27及び2
8、レジスタ群29となり、プログラム検査プログラム
は、記憶媒体からCPUやサブCPUに読み込まれ、C
PU及びサブCPUの動作を制御する。サブCPUは、
プログラム検査プログラムが起動されると、上記トレー
ス検出部21、トレースパケット生成部22、トレース
バッファ制御部23、トレースデータ出力部24として
機能し、プログラム検査プログラムの制御により、上記
した処理を実行するのである。
【0056】また、上述した実施例においては、トレー
スパケットのビット長を8ビット、16ビット、48ビ
ット、56ビット又は88ビットとする例を示したが、
これに限定されず、トレース情報やPC15aのカウン
ト値及びオーバーフローしたことを示すことができる程
度のビット長であれば良いことはいうまでもない。さら
に、上述した実施例においては、トレースバッファ17
を直列接続されたシフトレジスタで構成する例を示した
が、これに限定されず、半導体メモリで構成しても良
い。この構成によれば、同一の記憶容量ならばCPUチ
ップ12のチップ面積を低減でき、同じチップ面積であ
れば記憶容量を大きくすることができるので、獲得でき
るトレース情報の数を増加できる。
【0057】
【発明の効果】以上説明したように、この発明の構成に
よれば、実際にターゲットシステムに組み込まれるCP
Uチップと内部構造や端子数が同一のCPUチップを用
いた場合でも、リアルタイムでプログラムの検査に必要
なトレース情報が得られる。
【図面の簡単な説明】
【図1】この発明の一実施例であるプログラム検査装置
の電気的構成を示すブロック図である。
【図2】トレース検出部の構成を示すブロック図であ
る。
【図3】7種類のトレースパケットのフォーマットを示
す図である。
【図4】ターゲットプログラムのメインルーチンの一例
を示す図であり、(a)はプログラム、(b)はプログ
ラムに対応したフローチャートである。
【図5】ターゲットプログラムのサブルーチン1の一例
を示す図であり、(a)はプログラム、(b)は割り込
み処理ルーチンのプログラム、(c)はプログラムに対
応したフローチャートである。
【図6】ターゲットプログラムのサブルーチン2の一例
を示す図であり、(a)はプログラム、(b)はサブル
ーチンAのプログラム、(c)はサブルーチンBのプロ
グラム、(d)はサブルーチンCのプログラム、(e)
はサブルーチンDのプログラムである。
【図7】ターゲットプログラムのサブルーチン2に対応
したフローチャートである。
【図8】同実施例におけるトレース手段の動作を表すフ
ローチャートである。
【図9】同実施例におけるトレース手段により図4〜図
6に示すターゲットプログラムについてトレース処理し
た結果生成されるトレースパケットTPの一例を示す図
である。
【図10】何等の制約もなく図4〜図6に示すターゲッ
トプログラムについてトレース処理した結果生成される
すべてのトレースパケットTPの一例を示す図である。
【図11】図13に示すプログラム検査装置により図5
に示すターゲットプログラムのサブルーチン1について
トレース処理した結果生成されるトレースパケットTP
の一例を示す図である。
【図12】図13に示すプログラム検査装置により図6
に示すターゲットプログラムのサブルーチン2について
トレース処理した結果生成されるトレースパケットTP
の一例を示す図である。
【図13】従来のプログラム検査装置の電気的構成例を
示すブロック図である。
【図14】同装置を構成するROMの記憶内容の一例を
示す図である。
【符号の説明】
12 CPUチップ 13a トレースメモリ(第2の記憶手段) 15 CPU(中央処理装置) 16 トレース手段 17 トレースバッファ(第1の記憶手段) 21 トレース検出部 22 トレースパケット生成部 23 トレースバッファ制御部 24 トレースデータ出力部 25,26 トレース条件レジスタ(トレース条件
設定手段) 27,28 トリガ・アドレス・レジスタ(トレー
ス条件有効時期設定手段) 31 アドレス検出部 32 トレース情報検出部 33 トレース条件切換部 34 トレース条件マスク部
フロントページの続き (56)参考文献 特開 平8−314764(JP,A) 特開 昭62−154148(JP,A) 特開 平3−225535(JP,A) 特開 平7−219807(JP,A) 特開 平1−201740(JP,A) 特開 平5−241892(JP,A) 特開 平7−210422(JP,A) 特開 平3−184135(JP,A) 特開 平5−28037(JP,A) 特開 平4−238549(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/28 - 11/36

Claims (23)

    (57)【特許請求の範囲】
  1. 【請求項1】開発の対象であるシステムを構成する中央
    処理装置によりプログラムを実行するステップと、 トレース検出手段の制御によりプログラム実行の履歴に
    関するトトレース情報の中の所定のトレース情報のみの
    獲得を指定するトレース条件を複数のトレース条件設定
    手段に設定するステップと、 前記複数のトレース条件設定手段に対応して設けられ、
    対応するトレース条件設定手段に設定されたトレース条
    件が有効となる少なくとも始期を複数のトレース条件有
    効時期設定手段に設定するステップと、 獲得した前記トレース情報をトレースバッファ制御手段
    の制御により第1の記憶手段に記憶するステップと、 プログラム検査手段内に設けられ、前記第1の記憶手段
    に記憶された前記トレース情報を第2の記憶手段に読み
    出して記憶するステップとを含み、 前記トレース情報に基づいて前記プログラムを検査する
    プログラム検査方法であって、 前記プログラム実行に対応して前記トレース情報が供給
    された場合、前記トレース検出手段が、前記複数のトレ
    ース条件有効時期設定手段に設定された始期となる毎
    に、前記トレース条件設定手段に設定されたトレース条
    件に基づいて所定のトレース情報のみを獲得する第1の
    処理と、 該第1の処理で獲得された前記トレース情報前記第1
    の記憶手段に記憶可能な記憶容量がある場合には、前記
    トレースバッファ制御手段が前記トレース情報を前記第
    1の記憶手段に一時的に記憶させた後、前記プログラム
    検査手段が前記第1の記憶手段に記憶された前記トレー
    ス情報を読み出し、前記第2の記憶手段に記憶させると
    ともに、 前記記憶容量がない場合には、前記プログラム検査手段
    前記第1の記憶手段に記憶された全てのトレース情報
    を読み出して前記第2の記憶手段に記憶させ後、前
    トレース情報が記憶不可能であったことを示す記憶不可
    能情報を前記トレースバッファ制御手段が前記第1の記
    憶手段に記憶させる第2の処理とを有することを特徴と
    するプログラム検査方法。
  2. 【請求項2】開発の対象であるシステムを構成する中央
    処理装置によりプログラムを実行するステップと、 トレース検出手段の制御によりプログラム実行の履歴に
    関するトトレース情報の中の所定のトレース情報のみの
    獲得を指定するトレース条件を複数のトレース条件設定
    手段に設定するステップと、 前記複数のトレース条件設定手段に対応して設けられ、
    対応するトレース条件設定手段に設定されたトレース条
    件が有効となる少なくとも始期を複数のトレース条件有
    効時期設定手段に設定するステップと、 トレース条件の強制変更をトレース条件変更強制手段に
    指示するステップと、 獲得した前記トレース情報をトレースバッファ制御手段
    の制御により第1の記憶手段に記憶するステップと、 プログラム検査手段内に設けられ、前記第1の記憶手段
    に記憶された前記トレース情報を第2の記憶手段に読み
    出して記憶するステップとを含み、 前記トレース情報に基づいて前記プログラムを検査する
    プログラム検査方法であって、 前記プログラム実行に対応して前記トレース情報が供給
    された場合、前記トレース検出手段が、前記複数のトレ
    ース条件有効時期設定手段により設定された始期となる
    毎に、対応するトレース条件設定手段に設定されたトレ
    ース条件に基づいて所定のトレース情報のみを獲得する
    とともに、前記トレース条件変更強制手段の操作に応じ
    て、トレース条件が現在有効となっているトレース条件
    から他のトレース条件に変更され、該他のトレース条件
    に基づいて所定のトレース情報のみを獲得する第1の処
    理と、 該第1の処理で獲得されたトレース情報前記第1の記
    憶手段に記憶可能な記憶容量がある場合には、前記トレ
    ースバッファ制御手段が前記トレース情報を前記第1の
    記憶手段に一時的に記憶させた後、前記プログラム検査
    手段が前記第1の記憶手段に記憶された前記トレース情
    報を読み出し、前記第2の記憶手段に記憶するととも
    に、 前記記憶容量がない場合には、前記プログラム検査手段
    前記第1の記憶手段に記憶された全てのトレース情報
    を読み出して前記第2の記憶手段に記憶させ後、前
    トレース情報が記憶不可能であったことを示す記憶不可
    能情報を前記トレースバッファ制御手段が前記第1の記
    憶手段に記憶させる第2の処理とを有することを特徴と
    するプログラム検査方法。
  3. 【請求項3】 前記第2の処理では、 前記第1の記憶手段に前記トレース情報が記憶可能な第
    1の記憶容量がある場合には、前記トレース情報を前記
    第1の記憶手段に一時的に記憶し、 前記第1の記憶容量がないが、前記第1の記憶手段に前
    記トレース情報が記憶不可能であったことを示す記憶不
    可能情報が記憶可能な第2の記憶容量がある場合には、
    前記記憶不可能情報を前記第1の記憶手段に一時的に記
    憶し、 前記第2の記憶容量がない場合には、前記第1の記憶手
    段に前記第2の記憶容量ができるまで待機した後、前記
    記憶不可能情報を記憶することを特徴とする請求項1又
    は2記載のプログラム検査方法。
  4. 【請求項4】 前記第1の記憶手段は、複数個のフリッ
    プフロップが直列接続されたシフトレジスタが複数個直
    列接続されて構成され、前記トレース情報及び前記記憶
    不可能情報が前記第1の記憶手段に記憶可能か否かは、
    前記トレース情報及び前記記憶不可能情報のビット長
    と、前記第1の記憶手段の次に記憶すべき情報の最下位
    ビットのアドレスを示すポインタとを比較して判断する
    ことを特徴とする請求項3記載のプログラム検査方法。
  5. 【請求項5】 前記第2の処理では、 前記第1の記憶手段に前記トレース情報が記憶可能な第
    1の記憶容量がある場合には、前記トレース情報を前記
    第1の記憶手段に一時的に記憶し、 前記第1の記憶容量がないが、前記第1の記憶手段に前
    記トレース情報が記憶不可能であったことを示す記憶不
    可能情報が記憶可能な第2の記憶容量がある場合には、
    前記記憶不可能情報を前記第1の記憶手段に一時的に記
    憶し、 前記第2の記憶容量がない場合には、前記第1の記憶手
    段に前記第2の記憶容量ができるまで前記トレース情報
    及び前記記憶不可能情報を読み出し、前記第2の記憶手
    段に記憶した後、前記記憶不可能情報を記憶することを
    特徴とする請求項1又は2記載のプログラム検査方法。
  6. 【請求項6】 前記第1の記憶手段は、半導体メモリに
    より構成され、前記トレース情報及び前記記憶不可能情
    報が前記第1の記憶手段に記憶可能か否かは、前記トレ
    ース情報及び前記記憶不可能情報のビット長と、前記第
    1の記憶手段の最大アドレスと次に記憶すべき情報の最
    上位ビットのアドレスを示す第1のポインタとの差又は
    前記第1の記憶手段の次に読み出すべき情報の最上位ビ
    ットのアドレスを示す第2のポインタとを比較して判断
    することを特徴とする請求項5記載のプログラム検査方
    法。
  7. 【請求項7】 前記トレース情報は、割込・例外・分岐
    がそれぞれ発生した時の分岐元のアドレス及び分岐先の
    アドレス、アクセスしたデータの値又はデータが記憶さ
    れたアドレスからなることを特徴とする請求項1乃至6
    のいずれか1に記載のプログラム検査方法。
  8. 【請求項8】 前記第1の記憶手段は、前記プログラム
    を実行する中央処理装置及び前記複数のトレース条件設
    定手段と前記複数のトレース条件有効時期設定手段と前
    記トレース検出手段と前記トレースバッファ制御手段
    同一のチップ内に形成されており、 前記第2の処理は、前記第1の記憶手段に記憶した前記
    トレース情報をシリアルのトレース情報に変換して前記
    第2の記憶手段に出力する ことを特徴とする請求項1乃
    至7のいずれか1に記載のプログラム検査方法。
  9. 【請求項9】 開発の対象であるシステムを構成する中
    央処理装置が実行すべきプログラムを実行すると共に、
    その際のプログラム実行の履歴に関するトレース情報を
    前記中央処理装置から獲得し、前記トレース情報に基づ
    いて前記プログラムを検査するプログラム検査装置にお
    いて、 前記トレース情報が記憶される第1及び第2の記憶手段
    と、 前記トレース情報の中の所定のトレース情報のみの獲得
    を指定するトレース条件を設定するための複数のトレー
    ス条件設定手段と、 該複数のトレース条件設定手段に対応して設けられ、対
    応するトレース条件設定手段に設定されたトレース条件
    が有効となる少なくとも始期を設定するための複数のト
    レース条件有効時期設定手段と、 前記プログラムが実行され、前記トレース情報が供給さ
    れた場合、前記複数のトレース条件有効時期設定手段に
    より設定された始期となる毎に、対応するトレース条件
    設定手段に設定されたトレース条件に基づいて所定のト
    レース情報のみを獲得し、該第1の処理で獲得されたト
    レース情報について、前記第1の記憶手段に前記トレー
    ス情報が記憶可能な記憶容量がある場合には、前記第1
    の記憶手段に一時的に記憶した後、前記第1の記憶手段
    に記憶された前記トレース情報を読み出し、前記第2の
    記憶手段に記憶するとともに、前記記憶容量がない場合
    には、前記第1の記憶手段に記憶された全てのトレース
    情報を読み出して前記第2の記憶手段に記憶した後、前
    記第1の記憶手段に前記トレース情報が記憶不可能であ
    ったことを示す記憶不可能情報を記憶するトレース手段
    とを備えてなることを特徴とするプログラム検査装置。
  10. 【請求項10】 開発の対象であるシステムを構成する
    中央処理装置が実行すべきプログラムを実行すると共
    に、その際のプログラム実行の履歴に関するトレース情
    報を前記中央処理装置から獲得し、前記トレース情報に
    基づいて前記プログラムを検査するプログラム検査装置
    において、 前記トレース情報が記憶される第1及び第2の記憶手段
    と、 前記トレース情報の中の所定のトレース情報のみの獲得
    を指定するトレース条件を設定するための複数のトレー
    ス条件設定手段と、 該複数のトレース条件設定手段に対応して設けられ、対
    応するトレース条件設定手段に設定されたトレース条件
    が有効となる少なくとも始期を設定するための複数のト
    レース条件有効時期設定手段と、 トレース条件の強制変更を指示するトレース条件変更強
    制手段と、 前記プログラムが実行され、前記トレース情報が供給さ
    れた場合、前記複数のトレース条件有効時期設定手段に
    より設定された始期となる毎に、対応するトレース条件
    設定手段に設定されたトレース条件に基づいて所定のト
    レース情報のみを獲得するとともに、前記トレース条件
    変更強制手段の操作に応じて、トレース条件が現在有効
    となっているトレース条件から他のトレース条件に変更
    され、該他のトレース条件に基づいて所定のトレース情
    報のみを獲得し、該第1の処理で獲得されたトレース情
    報について、前記第1の記憶手段に前記トレース情報が
    記憶可能な記憶容量がある場合には、前記第1の記憶手
    段に一時的に記憶した後、前記第1の記憶手段に記憶さ
    れた前記トレース情報を読み出し、前記第2の記憶手段
    に記憶するとともに、前記記憶容量がない場合には、前
    記第1の記憶手段に記憶された全てのトレース情報を読
    み出して前記第2の記憶手段に記憶した後、前記第1の
    記憶手段に前記トレース情報が記憶不可能であったこと
    を示す記憶不可能情報を記憶するトレース手段とを備え
    てなることを特徴とするプログラム検査装置。
  11. 【請求項11】 前記トレース手段は、前記第1の記憶
    手段に前記トレース情報が記憶可能な第1の記憶容量が
    ある場合には、前記トレース情報を前記第1の記憶手段
    に一時的に記憶し、前記第1の記憶容量がないが、前記
    第1の記憶手段に前記トレース情報が記憶不可能であっ
    たことを示す記憶不可能情報が記憶可能な第2の記憶容
    量がある場合には、前記記憶不可能情報を前記第1の記
    憶手段に一時的に記憶し、前記第2の記憶容量がない場
    合には、前記第1の記憶手段に前記第2の記憶容量がで
    きるまで待機した後、前記記憶不可能情報を記憶するこ
    とを特徴とする請求項9又は10記載のプログラム検査
    装置。
  12. 【請求項12】 前記第1の記憶手段は、複数個のフリ
    ップフロップが直列接続されたシフトレジスタが複数個
    直列接続されて構成され、前記トレース情報及び前記記
    憶不可能情報が前記第1の記憶手段に記憶可能か否か
    は、前記トレース情報及び前記記憶不可能情報のビット
    長と、前記第1の記憶手段の次に記憶すべき情報の最下
    位ビットのアドレスを示すポインタとを比較して判断す
    ることを特徴とする請求項11記載のプログラム検査装
    置。
  13. 【請求項13】 前記トレース手段は、前記第1の記憶
    手段に前記トレース情報が記憶可能な第1の記憶容量が
    ある場合には、前記トレース情報を前記第1の記憶手段
    に一時的に記憶し、前記第1の記憶容量がないが、前記
    第1の記憶手段に前記トレース情報が記憶不可能であっ
    たことを示す記憶不可能情報が記憶可能な第2の記憶容
    量がある場合には、前記記憶不可能情報を前記第1の記
    憶手段に一時的に記憶し、前記第2の記憶容量がない場
    合には、前記第1の記憶手段に前記第2の記憶容量がで
    きるまで前記トレース情報及び前記記憶不可能情報を読
    み出し、前記第2の記憶手段に記憶した後、前記記憶不
    可能情報を記憶することを特徴とする請求項9又は10
    記載のプログラム検査装置。
  14. 【請求項14】 前記第1の記憶手段は、半導体メモリ
    により構成され、前記トレース情報及び前記記憶不可能
    情報が前記第1の記憶手段に記憶可能か否かは、前記ト
    レース情報及び前記記憶不可能情報のビット長と、前記
    第1の記憶手段の最大アドレスと次に記憶すべき情報の
    最上位ビットのアドレスを示す第1のポインタとの差又
    は前記第1の記憶手段の次に読み出すべき情報の最上位
    ビットのアドレスを示す第2のポインタとを比較して判
    断することを特徴とする請求項13記載のプログラム検
    査装置。
  15. 【請求項15】 前記トレース情報は、割込・例外・分
    岐がそれぞれ発生した時の分岐元のアドレス及び分岐先
    のアドレス、アクセスしたデータの値又はデータが記憶
    されたアドレスからなることを特徴とする請求項9乃至
    14のいずれか1に記載のプログラム検査装置。
  16. 【請求項16】 前記第1の記憶手段は、前記プログラ
    ムを実行する中央処理装置及び前記複数のトレース条件
    設定手段と前記複数のトレース条件有効時期設定手段と
    同一のチップ内に形成されていることを特徴とする請求
    項9乃至15のいずれか1に記載のプログラム検査装
    置。
  17. 【請求項17】開発の対象であるシステムを構成する中
    央処理装置によりターゲットプログラムを実行するステ
    ップと、 トレース検出手段の制御によりターゲットプログラム実
    行の履歴に関するトトレース情報の中の所定のトレース
    情報のみの獲得を指定するトレース条件を複数のトレー
    ス条件設定手段に設定するステップと、 前記複数のトレース条件設定手段に対応して設けられ、
    対応するトレース条件設定手段に設定されたトレース条
    件が有効となる少なくとも始期を複数のトレース条件有
    効時期設定手段に設定するステップと、 獲得した前記トレース情報をトレースバッファ制御手段
    の制御により第1の記憶手段に記憶するステップと、 ターゲットプログラム検査手段内に設けられ、前記第1
    の記憶手段に記憶された前記トレース情報を第2の記憶
    手段に読み出して記憶するステップとを含み、 前記トレ
    ース情報に基づき前記ターゲットプログラムを検査する
    ための検査プログラムを記憶したコンピュータ読み取り
    可能な 記憶媒体であって、 前記ターゲットプログラム実行に対応して前記トレース
    情報が供給された場合、前記複数のトレース条件有効時
    期設定手段に設定された始期となる毎に、前記トレース
    条件設定手段に設定されたトレース条件に基づいて所定
    のトレース情報のみを獲得する処理を前記トレース検出
    手段に実行させるための第1の処理プログラムと、前記 第1の処理で獲得された前記トレース情報前記第
    1の記憶手段に記憶可能な記憶容量がある場合には、
    記トレース情報を前記第1の記憶手段に一時的に記憶さ
    せる処理を前記トレースバッファ制御手段に実行させ
    後、前記第1の記憶手段に記憶された前記トレース情報
    を読み出し、前記第2の記憶手段に記憶する処理を前記
    プログラム検査手段に実行させるとともに、 前記記憶容量がない場合には、前記第1の記憶手段に記
    憶された全てのトレース情報を読み出して前記第2の記
    憶手段に記憶させる処理を前記プログラム検査手段に実
    行させた後、前記トレース情報が記憶不可能であったこ
    とを示す記憶不可能情報を前記第1の記憶手段に記憶す
    るための処理を前記トレースバッファ制御手段に実行さ
    せるための第2の処理プログラムを有する検査プログ
    ラムを記憶したコンピュータ読み取り可能な記憶媒体。
  18. 【請求項18】開発の対象であるシステムを構成する中
    央処理装置によりターゲットプログラムを実行するステ
    ップと、 トレース検出手段の制御によりターゲットプログラム実
    行の履歴に関するトトレース情報の中の所定のトレース
    情報のみの獲得を指定するトレース条件を複数のトレー
    ス条件設定手段に設定するステップと、 前記複数のトレース条件設定手段に対応して設けられ、
    対応するトレース条件設定手段に設定されたトレース条
    件が有効となる少なくとも始期を複数のトレース条件有
    効時期設定手段に設定するステップと、 トレース条件の強制変更をトレース条件変更強制手段に
    指示するステップと、 獲得した前記トレース情報をトレースバッファ制御手段
    の制御により第1の記 憶手段に記憶するステップと、 ターゲットプログラム検査手段内に設けられ、前記第1
    の記憶手段に記憶された前記トレース情報を第2の記憶
    手段に読み出して記憶するステップとを含み、前記トレ
    ース情報に基づき前記ターゲットプログラムを検査する
    ための検査プログラムを記憶したコンピュータ読み取り
    可能な 記憶媒体であって、 前記ターゲットプログラム実行に対応して前記トレース
    情報が供給された場合、前記複数のトレース条件有効時
    期設定手段に設定された始期となる毎に、前記トレース
    条件設定手段に設定されたトレース条件に基づいて所定
    のトレース情報のみを獲得するとともに、前記トレース
    条件変更強制手段の操作に応じて、トレース条件が現在
    有効となっているトレース条件から他のトレース条件に
    変更され、該他のトレース条件に基づいて所定のトレー
    ス情報のみを獲得する処理を前記トレース検出手段に実
    行させるための第1の処理プログラムと、前記 第1の処理で獲得された前記トレース情報前記第
    1の記憶手段に記憶可能な記憶容量がある場合には、
    記トレース情報を前記第1の記憶手段に一時的に記憶さ
    せる処理を前記トレースバッファ制御手段に実行させ
    後、前記第1の記憶手段に記憶された前記トレース情報
    を読み出し、前記第2の記憶手段に記憶する処理を前記
    プログラム検査手段に実行させるとともに、 前記記憶容量がない場合には、前記第1の記憶手段に記
    憶された全てのトレース情報を読み出して前記第2の記
    憶手段に記憶させる処理を前記プログラム検査手段に実
    行させた後、前記トレース情報が記憶不可能であったこ
    とを示す記憶不可能情報を前記第1の記憶手段に記憶す
    処理を前記トレースバッファ制御手段に実行させるた
    めの第2の処理プログラムを有する検査プログラム
    記憶したコンピュータ読み取り可能な記憶媒体。
  19. 【請求項19】 前記第2の処理プログラムは、 前記第1の記憶手段に前記トレース情報が記憶可能な第
    1の記憶容量がある場合には、前記トレース情報を前記
    第1の記憶手段に一時的に記憶し、 前記第1の記憶容量がないが、前記第1の記憶手段に前
    記トレース情報が記憶不可能であったことを示す記憶不
    可能情報が記憶可能な第2の記憶容量がある場合には、
    前記記憶不可能情報を前記第1の記憶手段に一時的に記
    憶し、 前記第2の記憶容量がない場合には、前記第1の記憶手
    段に前記第2の記憶容量ができるまで待機した後、前記
    記憶不可能情報を記憶する処理を前記トレースバッファ
    制御手段に実行させるための請求項17又は18記載の
    検査プログラムを記憶したコンピュータ読み取り可能な
    記憶媒体。
  20. 【請求項20】 前記第1の記憶手段は、複数個のフリ
    ップフロップが直列接続されたシフトレジスタが複数個
    直列接続されて構成され、 前記トレース情報及び前記記憶不可能情報が前記第1の
    記憶手段に記憶可能か否かは、前記トレース情報及び前
    記記憶不可能情報のビット長と、前記第1の記憶手段の
    次に記憶すべき情報の最下位ビットのアドレスを示すポ
    インタとを比較して判断する処理を前記トレース検出手
    段に実行させるための請求項19記載の検査プログラム
    を記憶したコンピュータ読み取り可能な記憶媒体。
  21. 【請求項21】 前記第2の処理プログラムは、 前記第1の記憶手段に前記トレース情報が記憶可能な第
    1の記憶容量がある場合には、前記トレース情報を前記
    第1の記憶手段に一時的に記憶し、 前記第1の記憶容量がないが、前記第1の記憶手段に前
    記トレース情報が記憶不可能であったことを示す記憶不
    可能情報が記憶可能な第2の記憶容量がある場合には、
    前記記憶不可能情報を前記第1の記憶手段に一時的に記
    憶し、 前記第2の記憶容量がない場合には、前記第1の記憶手
    段に前記第2の記憶容量ができるまで前記トレース情報
    及び前記記憶不可能情報を読み出し、前記第2の記憶手
    段に記憶した後、前記記憶不可能情報を記憶する処理を
    前記トレースバッファ制御手段に実行させるための請求
    項17又は18記載の検査プログラムを記憶したコンピ
    ュータ読み取り可能な記憶媒体。
  22. 【請求項22】 半導体メモリにより構成された前記第
    1の記憶手段に、前記トレース情報及び前記記憶不可能
    情報が記憶可能か否かは、 前記トレース情報及び前記記憶不可能情報のビット長
    と、 前記第1の記憶手段の最大アドレスと次に記憶すべき情
    報の最上位ビットのアドレスを示す第1のポインタとの
    差又は前記第1の記憶手段の次に読み出すべき情報の最
    上位ビットのアドレスを示す第2のポインタとを比較し
    て判断する処理を前記トレース検出手段に実行させるた
    めの請求項21記載の検査プログラムを記憶したコンピ
    ュータ読み取り可能な記憶媒体。
  23. 【請求項23】 込・例外・分岐がそれぞれ発生した
    時の分岐元のアドレス及び分岐先のアドレス、アクセス
    したデータの値又はデータが記憶されたアドレスを前記
    トレース情報として取得する処理を前記トレース検出手
    段に実行させるための請求項17乃至22のいずれか1
    に記載の検査プログラムを記憶したコンピュータ読み取
    り可能な記憶媒体。
JP27913398A 1998-09-30 1998-09-30 プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体 Expired - Fee Related JP3277900B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP27913398A JP3277900B2 (ja) 1998-09-30 1998-09-30 プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体
EP99118893A EP0992912A3 (en) 1998-09-30 1999-09-24 Debugging system for computer program, method for checking target program and information storage medium for storing checking program
US09/407,565 US6467083B1 (en) 1998-09-30 1999-09-28 Debugging system for computer program, method for checking target program and information storage medium for storing checking program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27913398A JP3277900B2 (ja) 1998-09-30 1998-09-30 プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体

Publications (2)

Publication Number Publication Date
JP2000112783A JP2000112783A (ja) 2000-04-21
JP3277900B2 true JP3277900B2 (ja) 2002-04-22

Family

ID=17606903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27913398A Expired - Fee Related JP3277900B2 (ja) 1998-09-30 1998-09-30 プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体

Country Status (3)

Country Link
US (1) US6467083B1 (ja)
EP (1) EP0992912A3 (ja)
JP (1) JP3277900B2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000007103A1 (de) * 1998-07-30 2000-02-10 Siemens Aktiengesellschaft Bus-steuereinheit zur unterstützung einer programmablauf-überwachung in sternstrukturen, dazugehöriges programmablauf-überwachungssystem sowie verfahren zur programmablauf-überwachung
US6609247B1 (en) * 2000-02-18 2003-08-19 Hewlett-Packard Development Company Method and apparatus for re-creating the trace of an emulated instruction set when executed on hardware native to a different instruction set field
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7168066B1 (en) 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7069544B1 (en) 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7185234B1 (en) 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7380239B1 (en) * 2001-05-31 2008-05-27 Oracle International Corporation Method and mechanism for diagnosing computer applications using traces
US7043668B1 (en) * 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
DE60212465T2 (de) * 2002-10-15 2007-02-01 Stmicroelectronics S.A. Protokoll zur übertragung von digitalen nachrichten
US7496792B2 (en) * 2002-10-15 2009-02-24 Stmicroelectronics S.A. Repeat digital message transmission between a microprocessor monitoring circuit and an analyzing tool
US7831814B2 (en) * 2002-10-29 2010-11-09 Stmicroelectronics S.A. Monitoring a microprocessor programme by sending time-trackable messages
EP1556765A1 (fr) * 2002-10-29 2005-07-27 STMicroelectronics S.A. Transmission de messages numeriques generiques par un circuit de surveillance d'un microprocesseur
WO2004042580A1 (fr) * 2002-10-29 2004-05-21 Stmicroelectronics S.A. Correlation temporelle de messages transmis par un circuit de surveillance d'un microprocesseur
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7099817B2 (en) * 2002-11-22 2006-08-29 Texas Instruments Incorporated Stalling CPU pipeline to prevent corruption in trace while maintaining coherency with asynchronous events
US6948155B2 (en) * 2002-11-22 2005-09-20 Texas Instruments Incorporated Little offset in multicycle event maintaining cycle accurate tracing of stop events
DE10303452B4 (de) * 2003-01-29 2007-02-08 Infineon Technologies Ag Verfahren zur Steuerung der Unterbrechung und/oder der Aufzeichnung von Ausführungsdaten eines Programms in einem Mikrocontroller und Mikrocontroller mit einer Anordnung zur Durchführung des Verfahrens
GB2402236B (en) * 2003-05-27 2005-04-27 Simon Alan Spacey A method and apparatus for securing a computer system
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US7225434B2 (en) * 2003-09-25 2007-05-29 Intel Corporation Method to collect address trace of instructions executed
US7194731B1 (en) * 2003-11-14 2007-03-20 Sun Microsystems, Inc. Method and apparatus for speculative tracing
DE602005018457D1 (de) * 2004-02-24 2010-02-04 Nxp Bv Verfahren und Einrichtung zum Schützen einer integrierten Schaltung mittels Einbrucherkennung durch Monte-Carlo-Analyse
JP2005284557A (ja) * 2004-03-29 2005-10-13 Fujitsu Ltd 内部メモリをモニタ可能なマイクロコンピュータ
US7434108B2 (en) * 2004-04-30 2008-10-07 Freescale Semiconductor, Inc. Masking within a data processing system having applicability for a development interface
US7971191B2 (en) * 2004-06-10 2011-06-28 Hewlett-Packard Development Company, L.P. System and method for analyzing a process
JP2006092029A (ja) * 2004-09-21 2006-04-06 Fujitsu Ltd マイクロコンピュータ及びトレース制御方法
JP2006120071A (ja) * 2004-10-25 2006-05-11 Matsushita Electric Ind Co Ltd プロセッサおよび開発支援装置
US7454666B1 (en) * 2005-04-07 2008-11-18 Sun Microsystems, Inc. Real-time address trace generation
US7721263B2 (en) * 2005-05-16 2010-05-18 Texas Instruments Incorporated Debug event instruction
US20060277435A1 (en) * 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
US8099556B2 (en) 2005-09-13 2012-01-17 Arm Limited Cache miss detection in a data processing apparatus
WO2007099273A1 (en) * 2006-03-03 2007-09-07 Arm Limited Monitoring values of signals within an integrated circuit
US20080016408A1 (en) * 2006-07-14 2008-01-17 Abernathy Christopher M System and Method for Streaming High Frequency Trace Data Off-Chip
US7653848B2 (en) * 2006-07-14 2010-01-26 International Business Machines Corporation Selectively engaging optional data reduction mechanisms for capturing trace data
US7937535B2 (en) 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US8589890B2 (en) * 2008-06-03 2013-11-19 International Business Machines Corporation Mechanism for maintaining detailed trace information relevant to the current operation being processed
JP5492573B2 (ja) * 2010-01-04 2014-05-14 発紘電機株式会社 トレース機能を備える接続機器シミュレータ装置、方法、及びプログラム
JP2016177564A (ja) * 2015-03-20 2016-10-06 Necプラットフォームズ株式会社 デバッグ制御回路及びデバッグ制御方法
US10402306B2 (en) * 2016-05-17 2019-09-03 Futurewei Technologies, Inc. Parallel tracing
KR20180054364A (ko) * 2016-11-15 2018-05-24 삼성전자주식회사 트레이스 데이터를 생성하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10356015B2 (en) * 2017-04-27 2019-07-16 Dell Products L.P. Execution traces

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62154148A (ja) 1985-12-27 1987-07-09 Nec Corp トレ−サ制御方式
US5249278A (en) * 1986-01-24 1993-09-28 Intel Corporation Microprocessor breakpoint apparatus
JPH01201740A (ja) 1988-02-08 1989-08-14 Matsushita Electric Ind Co Ltd マイクロプロセッサトレース装置
JPH03184135A (ja) 1989-12-13 1991-08-12 Nec Software Ltd データ処理装置
JPH03225535A (ja) 1990-01-31 1991-10-04 Nec Corp プログラムトレース方式
JPH04238549A (ja) 1991-01-23 1992-08-26 Nec Eng Ltd 情報トレース方式
US5321828A (en) * 1991-06-07 1994-06-14 Step Engineering High speed microcomputer in-circuit emulator
JPH0528037A (ja) 1991-07-23 1993-02-05 Nec Corp バツフア管理方式
JPH05241892A (ja) 1992-02-27 1993-09-21 Nec Corp リアルタイムトレーサ
JP2762893B2 (ja) * 1993-04-02 1998-06-04 三菱電機株式会社 プログラマブルコントローラ及びそのプログラマブルコントローラを用いたsfcプログラム実行方法
JP3290280B2 (ja) 1994-01-13 2002-06-10 株式会社東芝 情報処理装置
JPH07219807A (ja) 1994-02-08 1995-08-18 Toshiba Corp プログラマブルコントローラシステム
US5809293A (en) * 1994-07-29 1998-09-15 International Business Machines Corporation System and method for program execution tracing within an integrated processor
JPH08314764A (ja) 1995-05-17 1996-11-29 Fujitsu Ltd バストレーサ
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
US5970246A (en) * 1997-09-11 1999-10-19 Motorola Inc. Data processing system having a trace mechanism and method therefor

Also Published As

Publication number Publication date
EP0992912A2 (en) 2000-04-12
EP0992912A3 (en) 2003-01-29
JP2000112783A (ja) 2000-04-21
US6467083B1 (en) 2002-10-15

Similar Documents

Publication Publication Date Title
JP3277900B2 (ja) プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP3151808B2 (ja) 集積回路装置、回路検査装置および方法
US7330809B2 (en) Trace data compression system and trace data compression method and microcomputer implemented with a built-in trace data compression circuit
JP4987182B2 (ja) コンピュータシステム
JP2006127553A (ja) プログラムのテスト及びデバッギングが容易な中央処理装置
JP2003076578A (ja) マイクロコンピュータ及びデバッグシステム並びにトレース情報収集方法
JPH07182204A (ja) 集積マイクロプロセッサ、コンピュータ開発システム、および集積プロセッサのテスト方法
JP4865943B2 (ja) コンピュータシステム
EP1429250A2 (en) Digital processor with programmable breakpoint/watchpoint trigger generation circuit
JP2001154876A (ja) マイクロコンピュータデバッグアーキテクチャ及び方法
CN116521468B (zh) 一种fpga在线调试方法及支持在线调试的fpga
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
US20070226473A1 (en) Breakpointing on register access events or I/O port access events
US20060179380A1 (en) On-chip electronic hardware debug support units having execution halting capabilities
US20100198548A1 (en) Diagnostic apparatus, diagnostic method and test apparatus
JP2003263339A (ja) デバック機能内蔵型マイクロコンピュータ
JP3708493B2 (ja) デバッグシステム、半導体集積回路、半導体集積回路のデバッグ方法、半導体集積回路のデバッグプログラム、及び半導体集積回路のデバッグプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3224478B2 (ja) メモリのアクセス状態の比較によるデバッグ・解析方法
KR100297224B1 (ko) Prom이구비된마이크로컴퓨터및그것의데이타판독검사방법
JP2967741B2 (ja) Cpu互換性テスト装置
JPS59202546A (ja) デバツグ装置
JP2003263336A (ja) デバック機能内蔵型マイクロコンピュータ
JP2001134460A (ja) 電子回路解析装置および解析方法
JP2003263338A (ja) デバック機能内蔵型マイクロコンピュータ
JPH05189267A (ja) マイクロプロセッサの動作制御方式、及びエミュレータ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080215

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090215

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100215

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees