JP2001265619A - データトレース方式 - Google Patents

データトレース方式

Info

Publication number
JP2001265619A
JP2001265619A JP2000084684A JP2000084684A JP2001265619A JP 2001265619 A JP2001265619 A JP 2001265619A JP 2000084684 A JP2000084684 A JP 2000084684A JP 2000084684 A JP2000084684 A JP 2000084684A JP 2001265619 A JP2001265619 A JP 2001265619A
Authority
JP
Japan
Prior art keywords
data
address
trace
mpu
tracing
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
JP2000084684A
Other languages
English (en)
Inventor
Koji Kawaki
浩司 川木
Yasuhiro Fujikura
康洋 藤倉
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000084684A priority Critical patent/JP2001265619A/ja
Publication of JP2001265619A publication Critical patent/JP2001265619A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】指定したアドレスまたはデータの出力が発生し
た場合のデータトレース方式において、システムを停止
することなく、データのトレースを行うことにより、タ
イミングによる不具合に対して、再現性を低下させるこ
となく、現象を再現させてデータのトレースを行うこと
を目的とする。 【解決手段】MPU1とアドレス監視機構2と主記憶3を
アドレスバス、データバス、割込み制御線に接続し、予
めアドレスデータ監視機構にトリガを掛けたいエリアの
アドレスを、トレース情報設定テーブル21にトレース
格納エリア、サイズ、タスクID等を設定することによ
り、アドレスデータ監視機構から割込み発生時に、トレ
ースデータを収集、フィルタリングする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データトレース方
式に係わり、特に特定の領域へのプログラムの書込みに
よりシステム異常になってしまう場合に、その領域にプ
ログラムアクセスを行なう毎にMPUのレジスタ内容等を
トレースすることにより不具合原因を早期に解明するこ
とを実現するデータトレース方式に関する。
【0002】
【従来の技術】従来のデータトレース方式としては、ど
の関数がどのような引数で呼び出されたかをトレースす
るデータトレース方式がある。これはあらかじめトレー
スエリアを設けておき、どの関数が呼ばれたかをトレー
スするために、トレースを実施したい関数の先頭で、関
数を識別するための番号及び関数に渡された引数をトレ
ースエリアに書込む処理を追加してデータトレースを行
っていた。
【0003】また、通常のデバッガなどのブレークポイ
ント機能などでは、トリガを掛けたいプログラムの命令
(機械語)をソフトウェア例外を発生させる命令(機械
語でソフトウェア例外を発生させるための命令であるト
ラップ命令等)に書き換えることで、そのプログラム命
令が動作した時にソフトウェア例外を発生させて、例外
処理中で MPUのレジスタ一覧を表示させ、プログラムの
実行を停止することによりその関数が実行された状態の
確認を行っていた。
【0004】
【発明が解決しようとする課題】しかしながら、プログ
ラム内部にトレースを行うプログラムを埋め込むデータ
トレース方式では、そのプログラムが実行された時のデ
ータしかトレースできず、特定のエリア(特定の変数)
へのリードライトアクセスを行うプログラムのトレース
を行うことはできないという問題があった。
【0005】また、 MPUに内蔵されているデバッグ機能
やアドレスバスやデータバスの監視機構により割り込み
を発生させるデータトレース方式では、逐一、処理を中
断させなければならないため、正常なアクセスでも処理
が中断されたり、タイミングによる不具合などに対して
は、本来とりたいトレース情報を取得することはできな
いという問題があった。
【0006】本トレース方式では、アドレスバスとデー
タバスを監視するハードウェア機構を使用して、故意に
例外を発生させ、例外ハンドラ中でMPUのレジスタ情
報、タスク情報及びスタック内容を指定したアドレスに
格納することにより、プログラム中にトレース処理のた
めのコードを組み込む必要がないため、トレースを行う
データの変更が簡単にでき、また特定のエリアの指定が
可能である。また、本方式ではトリガ条件が一致しても
プログラムを停止させることなしに処理を継続させるこ
とが可能である。また、トリガ条件を複数設定できるた
め、トレースするデータを少なくすることによりタイミ
ングによって生じる不具合の再現性を高めることが可能
である。
【0007】以上から、本発明の目的は、特定のエリア
に対してプログラムのアクセスが発生した場合、処理を
中断することなしに指定したアドレスのデータやMPUの
レジスタの情報を取得するデータトレース方式を提供す
ることにある。
【0008】
【課題を解決するための手段】上記課題を解決するため
に、特定のアドレスまたはデータへの入出力があった場
合にMPUに対して割り込みを発生させるアドレス・デー
タバス監視機構と、該トリガ条件と一致したときに該ア
ドレス・データバス監視機構からの割り込みに対して、
該MPUのレジスタ情報(MPUに演算等を行わせるためにプ
ログラムでしようする一時的な領域)を取り込むレジス
タ情報取り込み手段と、取り込んだデータをトレースエ
リア(外部記憶装置等)に対して書込むためのデータ書
込み手段とを設けることである。
【0009】請求項1記載の発明については、アドレス
・データバス監視機構に設定されたアドレスまたはデー
タに対してプログラムが実行中にアクセスがあった場
合、MPUに対して割り込みが発生する。
【0010】割り込みが発生すると、レジスタ取り込み
手段によりMPUのレジスタ情報を取り込み、データ書込
み手段により取り込んだデータをトレースエリア(外部
記憶装置等)に書き込むことによりデータアクセスをお
こなったときのプログラムの状態がわかる。
【0011】請求項2記載の発明については、特定のタ
スクの実行時のみトレースエリア(外部記憶装置等)に
MPUのレジスタ情報を書込むことにより、トリガ条件設
定手段により設定されたアドレスまたはデータに対し
て、頻繁にアクセスが発生した場合でも特定のタスク実
行時のみレジスタ情報を取得することが可能となり、早
期に不具合解析が可能となる。
【0012】請求項3記載の発明については、アドレス
・データバス監視機構の割り込みが発生したときに特定
のエリアからの情報を指定エリアに格納できるため、ト
リガ発生時の他タスクの状態等の関連する情報が収集で
きるため、早期に不具合解析が可能となる。
【0013】
【発明の実施の形態】以下に、本発明の一実施例を図に
より説明する。図1は本発明の実施例のシステム構成図
であり、図2は、アドレスデータ監視装置の構成例、図
3は、主記憶内使用例、図4はトレース処理フローチャ
ートを示す。
【0014】本発明が適用されるシステムでは、MPU
1、アドレスデータ監視機構2が同一アドレスバス、デ
ータバス、割込み制御線に接続されており、主記憶は、
アドレスバス、データバスにそれぞれ接続されている。
これにより、アドレスデータ監視機構2はMPUがアクセ
スしているアドレス、データを逐次監視することが可能
である。
【0015】以下、請求項1の実施例について説明す
る。
【0016】アドレスデータ監視機構は、アドレスバス
上を流れるアドレス(以下、実アドレスと略す)と比較
するための値を格納する比較アドレスレジスタ10、デ
ータバス場を流れるデータ(以下、実データ)と比較す
るための値を格納する比較データレジスタ11、実アド
レスと比較アドレスレジスタの値が一致したかどうかを
チェックするためのアドレス比較回路12、実データと
比較データレジスタの値が一致したかどうかをチェック
するためのデータ比較回路13、データ比較回路、アド
レス比較回路からの入力により、MPUに対して割込み制
御線6を使用して割込みを発生させる割込み発生回路1
4からなる。割込み発生回路14では、データ比較回路
13、アドレス比較回路12の有効、無効を設定できる
ようになっており、両方が有効の場合には、両方が一致
した場合にのみMPUに対して割込みを発生させる。デー
タのみ有効の場合には、データ比較回路13が一致した
場合にのみMPUに対して割込みを発生させる。アドレス
のみ有効の場合にはアドレス比較回路14が一致した場
合にのみMPUに対して割込みを発生させる。
【0017】MPUに対して割込みを発生させる場合に
は、アドレス比較回路のみ有効にすることで説明する。
【0018】予め、トリガを掛けたいエリアのアドレス
を比較アドレスレジスタ10に設定しておく。アドレス
比較回路12では、実アドレスと比較アドレスレジスタ
10を比較し、一致した場合には、割込み発生回路14
に入力が入る仕組みとなっている。また、予め、主記憶
上20のトレース情報設定テーブル21のトレース格納
エリアアドレス22にトレースデータを格納するエリア
の先頭アドレスを、トレースエリアサイズ23にトレー
ス格納エリアサイズを設定しておく。また、収集データ
選択27には、トレース処理がコールされた場合に、ど
の情報を収集または、フィルタするかを選択するための
もので、この中でレジスタ格納のみを有効にしておく。
また、アドレスデータ監視機構2からの割込みに対応す
るトレース処理30をベクタテーブル(通常、MPUは、
割込みに対応する割込み処理ルーチンを登録しておくた
めのベクタテーブルを保有しており、事前に割込みに対
応すベクタるテーブルに割込み処理の先頭アドレスを登
録しておくと、割込みに対応する処理をコールしてくれ
る仕組みとなっている)に登録しておく必要がある。
【0019】以上の設定完了後、プログラムを動作させ
る。プログラムを動作させ、トリガを掛けた指定エリア
のアドレスにアクセスするとアドレスデータ監視機構2
からMPU1に対して割込みが発生する。すると、MPU1は
アドレスデータ監視機構2の割込みに対応して、トレー
ス処理30をコールする。トレース処理30では、ま
ず、主記憶上20のトレース情報設定テーブル21中の
収集データ選択27を確認し、収集データをチェックす
る。ここで、レジスタ選択有りかをチェックし33、レ
ジスタ選択有りが設定されているため、レジスタ情報を
トレース格納エリア28に格納する34。なお、トレー
ス格納エリア28はリングバッファ(リングバッファ
は、指定エリアの最後までいくと、再度先頭からデータ
を格納していくバッファリング方式である)になってお
り、トレース情報設定テーブル21に設定されているト
レース格納エリアアドレス22、トレースエリアサイズ
23に従い、バッファリングを実施する。トレース格納
エリア28の先頭アドレスにはライトアドレスが格納さ
れており、このライトアドレスにより、トレース格納エ
リア28内のどこのアドレスにトレースデータを格納す
るかを認識することができる。トレース実施後は、ライ
トポインタ(ライトポインタ+格納トレースデータサイ
ズ)が更新される。また、リングバッファになっている
ためライトポインタがトレースエリアを越えてしまう場
合には、再度トレースエリアの先頭からトレースデータ
を蓄積していく。そのため、古いデータは上書きされて
いってしまうため、トレースエリアには、トレースを実
施するのに十分なエリアが必要となる。
【0020】請求項2について以下説明する。請求項2
は、請求項1の実施例と同様に、トレース情報設定テー
ブル等のトリガ情報を事前に掛けておく。さらに、主記
憶上20にあるトレース情報設定テーブル21中の収集
データ選択27のタスクID格納を有効に設定し、トレー
スしたいタスクのタスクID(リアルタイムOS等では、タ
スクはそれぞれにタスクを識別するためにタスクIDをも
っている)をタスクID24に設定しておく。なお、OSで
は、現在どのタスクが動作しているかを識別するためカ
レントIDをもっている。その後、プログラムを動作させ
トリガを掛けたアドレスにアクセスした場合、アドレス
データ監視機構2からMPU1に対して割込みが発生す
る。すると、MPU1はアドレスデータ監視機構2の割込
みに対応して、トレース処理30をコールする。トレー
ス処理30では、まず収集データ選択27をチェック
し、タスクID選択有りかどうかチェックする31。タス
クID選択有りになっているため次にトレース情報設定テ
ーブル21中のタスクID24とカレントIDを比較する3
2。ここで、一致しなかった場合には、トレースを実施
せず、トレース処理を抜ける。タスクID24とカレント
IDが一致した場合には、レジスタ選択有りの場合には、
レジスタ情報がトレースエリアに格納される34。これ
により、指定タスクが動作しているときにみデータをト
レースすることができる。
【0021】請求項3について以下説明する。請求項3
は、請求項1の実施例と同様に、トレース情報設定テー
ブル等にトリガ情報を事前に掛けておく。さらに、主記
憶上20にあるトレース情報設定テーブル21中の収集
データ選択27の指定データ格納を有効に設定し、収集
したいデータの先頭アドレスを収集データ先頭アドレス
25、収集データのサイズを収集データサイズ26に設
定しておく。その後プログラムを動作させトリガを掛け
たアドレスにアクセスした場合、アドレスデータ監視機
構2からMPU1に対して割込みが発生する。すると、MPU
1はアドレスデータ監視機構2の割込みに対応して、ト
レース処理30をコールする。トレース処理30では、
レジスタ選択有りの場合、レジスタ情報をトレース領域
に格納し34、その後、トレース情報設定テーブル21
中の収集データ選択の指定データ格納が有効になってい
るか確認し35、有効の場合には、収集データ先頭アド
レス25に格納されているアドレスから、収集データサ
イズ26に格納されているサイズ分をトレース格納エリ
アに格納する処理を実施する。
【0022】
【発明の効果】この発明によれば、特定のアドレスまた
はデータへのアクセスが起こった場合、通常ではプログ
ラムの処理を中断させ、人の介在によりデータをダンプ
していたものが、人の介在なしにデータを取得すること
が可能となり、タイミング等の問題により発生する不具
合等に対して、極力影響を軽減することが可能となり、
発生頻度を上げることになり、不具合解析を効率よく行
うことが可能となる。
【0023】また、外部記憶装置等に待避することによ
り、不具合が発生した時点ではなく、後ほど解析を行う
ことが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るデータトレース方式の
システム構成を示すブロック図である。
【図2】本発明の一実施例に係るデータトレース方式の
システム構成を示すブロック図である。
【図3】本発明の一実施例に係るデータトレース方式の
システム構成を示すブロック図である。
【図4】本発明の一実施例に係るデータトレース方式の
フローチャート図である。
【符号の説明】
1…プログラムが実際に動作するMPU、2…アドレスデ
ータバスを監視するアドレスデータ監視機構、3…デー
タを格納または設定する主記憶、4…アドレスバス、5
…データバス、6…割込み制御線、10…アドレスバス
の値と比較するための値を格納する比較アドレスレジス
タ、11…データバスの値と比較するための値を格納す
る比較データレジスタ、12…アドレスを比較するため
のアドレス比較回路、13…データを比較するためのデ
ータ比較回路、14…MPUに対して割込みを発生させる
ための割込み発生回路、20…主記憶、21…トレース
情報を設定するためのテーブル、22…トレース格納エ
リアの先頭アドレス、23…トレース格納エリアのサイ
ズ、24…特定タスク時トレースするために使用するタ
スクID、25…指定データ格納時使用する収集データの
先頭アドレス、26…収集データサイズ、27…トレー
ス処理でどのトレースデータをトレース格納エリアに格
納するための収集データ選択、30…アドレスデータ監
視機構からの割込みに対して動作するトレース処理、3
1,32,33,34,35,36…トレース処理のフ
ローチャートブロック。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサ(以下、MPUとい
    う)と、揮発性メモリから構成される主記憶とからなる
    マイクロコンピュータシステムにおいて、 該MPUからデータバス、アドレスバス上に出力するデー
    タを監視し、トリガ条件に一致した場合、該MPUに対し
    て割り込みを発生させるアドレス・データバス監視機構
    と、 該トリガ条件と一致したときに該アドレス・データバス
    監視機構からの割り込みに対して、該MPUのレジスタ情
    報を取り込むレジスタ情報取り込み手段と、 取り込んだデータを指定トレース格納エリアに対して書
    込むためのデータ書込み手段と、を備えることを特徴と
    するデータトレース方式。
  2. 【請求項2】 請求項1記載のデータトレース方式にお
    いて、 特定のタスクが実行している場合のみ、該レジスタ情報
    だけを取り込むフィルタリング手段と、を備えることを
    特徴とするデータトレース方式。
  3. 【請求項3】 請求項1記載のデータトレース方式にお
    いて、 該トリガ条件によって指定されたアドレスからのデータ
    を取り込むデータ取り込み手段と、 取り込んだデータを指定トレース格納エリアに対して書
    込むためのデータ書込み手段と、を備えることを特徴と
    するデータトレース方式。
JP2000084684A 2000-03-22 2000-03-22 データトレース方式 Pending JP2001265619A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000084684A JP2001265619A (ja) 2000-03-22 2000-03-22 データトレース方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000084684A JP2001265619A (ja) 2000-03-22 2000-03-22 データトレース方式

Publications (1)

Publication Number Publication Date
JP2001265619A true JP2001265619A (ja) 2001-09-28

Family

ID=18601132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000084684A Pending JP2001265619A (ja) 2000-03-22 2000-03-22 データトレース方式

Country Status (1)

Country Link
JP (1) JP2001265619A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009099045A1 (ja) * 2008-02-04 2009-08-13 Nec Corporation トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009099045A1 (ja) * 2008-02-04 2009-08-13 Nec Corporation トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
JP5505781B2 (ja) * 2008-02-04 2014-05-28 日本電気株式会社 トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
US8799753B2 (en) 2008-02-04 2014-08-05 Nec Corporation Trace/failure observation system, trace/failure observation method, and trace/failure observation program

Similar Documents

Publication Publication Date Title
US8250543B2 (en) Software tracing
JP5905911B2 (ja) シングルステップ実行を用いる診断コード
US7007205B1 (en) Method and apparatus for recording trace data in a microprocessor based integrated circuit
JP2002342114A (ja) トレースデータ採取可能なプロセッサ
US5819024A (en) Fault analysis system
JP2001265619A (ja) データトレース方式
JPS60159951A (ja) 情報処理装置におけるトレ−ス方式
JPH0581087A (ja) プロセサのモニタ方式
JP2019526108A (ja) 診断データキャプチャ
JP3399741B2 (ja) ダンプデータの表示方法及び障害解析システム
JPH11119992A (ja) ファームウェアのトレース制御装置
JP2979553B2 (ja) 障害診断方式
JPH07191876A (ja) プログラム試験装置とその使用方法
JPS60252959A (ja) オンライン・トレ−ス制御方式
JP2002116926A (ja) プログラム処理装置およびプログラム処理方法
JP2001005689A (ja) トレース採取回路
JP2665173B2 (ja) プロセッサトラップ回路
JPS6240550A (ja) プログラムデバツク装置
JPH0736735A (ja) デバッグ装置
JPS61269746A (ja) 情報処理装置
JPH02242444A (ja) 情報処理装置のデバッグ機構
JP2000353109A (ja) エミュレータ及びエミュレーションシステム
JPH04326440A (ja) エラー発生履歴記憶装置および情報処理装置
JPH08263324A (ja) デバッグ容易化装置
JPH02242445A (ja) 情報処理装置のデバッグ機構