JPH03225535A - プログラムトレース方式 - Google Patents

プログラムトレース方式

Info

Publication number
JPH03225535A
JPH03225535A JP2021226A JP2122690A JPH03225535A JP H03225535 A JPH03225535 A JP H03225535A JP 2021226 A JP2021226 A JP 2021226A JP 2122690 A JP2122690 A JP 2122690A JP H03225535 A JPH03225535 A JP H03225535A
Authority
JP
Japan
Prior art keywords
trace
program
processing
data
environment
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
JP2021226A
Other languages
English (en)
Inventor
Fumio Aono
青野 文雄
Ikuhisa Iwai
岩井 幾久
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
NEC Engineering Ltd
Original Assignee
NEC Corp
NEC Engineering 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 NEC Corp, NEC Engineering Ltd filed Critical NEC Corp
Priority to JP2021226A priority Critical patent/JPH03225535A/ja
Publication of JPH03225535A publication Critical patent/JPH03225535A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はプログラムトレース方式に関し、特にプロセッ
サ上で動作する処理プログラムの動作状態を示すデータ
をトレースルーチンの実行によって採取するプログラム
トレース方式の改良に関する。
〔従来の技術〕
プログラムのデバッグ時あるいは運用後の問題発生時に
は、プログラムの動作状態を示すデータを採取しそれを
解析することが行われる。このようなプログラムの動作
状態を示すデータの採取はプログラムトレースと呼ばれ
るが、従来は次のような方式が採用されていた。
先ず、コール(CALL)されることによりコール命令
の変数等によって指定されたレジスタ内のデータを採取
するトレースルーチンを用意する。
そして、トレース対象とするプログラム中の適所に、採
取したいレジスタ塩等を変数としてトレースルーチンを
呼び出すコール命令を埋め込み、このプログラムと上記
のトレースルーチンとをプロセッサ上で動作させる。こ
れによって、プログラム中のコール命令に実行が進むと
トレースルーチンが呼び出され、トレースルーチンはそ
のコール命令等によって指定されたレジスタ等に格納さ
れているデータを採取する。
〔発明が解決しようとする課題〕
従来は上述した方式によってプログラムのトレースを行
っていたが、次のような問題点があった。
■ トレースしたいプログラム中に予め埋め込んだ命令
等で指定したレジスタ等のデータを採取するため、採取
したいデータを変更するにはプログラムの改造が必要と
なり、採取対象データの変更が容易でない。
■ 1つのコール命令等で指定できる採取対象レジスタ
等の個数に制限があり、多量のデータを採取したいとき
には複数のコール命令等を埋め込む必要があり、プログ
ラムの構造が複雑化する。
■ トレースが不要になった場合、プログラムに埋め込
んだトレースルーチンのコール命令を削除する等のプロ
グラムの改造が必要となる。
本発明の目的はこのような問題点を解消したプログラム
トレース方式を提供することにある。
〔課題を解決するための手段〕
本発明は、複数のソフトウェア実行処理優先レベルを有
するプロセッサ等上で複数の処理プログラムとこの処理
プログラムの動作状態を示すデータをトレースデータと
して採取するトレースルーチンとを実行してプログラム
トレースを行う方式前記トレースルーチンに、 トレース環境、例えばトレースすべきプログラムを特定
するデータとトレース対象となるレジスタを特定するデ
ータ等を保持するトレース環境テーブルと、 このトレース環境テーブルに上述の如きトレース環境を
設定するトレース環境設定手段と、処理プログラムから
のトレース要求時、前記トレース環境テーブルに保持さ
れたトレース環境を参照してトレースを行うか否かを判
定するトレース判定手段と、 このトレース判定手段によりトレースすると判定された
ときに前記トレース環境テーブルを参照して該当するデ
ータを採取するトレースデータ採取手段と、 このトレースデータ採取手段により採取されたトレース
データをトレースエリアに格納するトレースデータ格納
手段と、 前記トレース判定手段によりトレースしないと判定され
たとき及び前記トレースデータ格納手段による格納処理
が終了したとき、トレース要求元の処理プログラムに制
御を戻す復帰処理手段とを設け、 前記処理プログラムに前記トレースルーチンに対しトレ
ースを要求する処理を埋め込むようにしたものである。
また、本発明では、前記トレースルーチンの実行開始後
その処理が終了するまで、今回トレースルーチンに対し
トレースを要求した処理プログラムより高いソフトウェ
ア実行処理優先レベルを持つ処理プログラムの実行契機
となる割り込み等を禁止するようにもしている。
〔作用〕
本発明のプログラムトレース方式においては、プロセッ
サ上で実行する複数の処理プログラムのうち実際にトレ
ース対象としたいプログラムについては、トレースルー
チンのトレース環境設定手段を使用して、そのプログラ
ム名等のデータやトレース対象とするレジスタ塩等のデ
ータをトレース環境としてトレース環境テーブルに設定
しておく。
その後、処理プログラムとトレースルーチンとをプロセ
ッサ上で実行し、成る処理プログラムに埋め込まれた処
理によりトレースルーチンに対しトレースが要求される
と、トレースルーチン内のトレース判定手段が前記トレ
ース環境テーブルに保持されたトレース環境を参照して
実際にトレースを行うか否かを判定し、トレースすると
判定されたときはトレースデータ採取手段が前記トレー
ス環境テーブルを参照して該当するデータを採取し、こ
の採取されたトレースデータをトレースデータ格納手段
がトレースエリアに格納し、この格納処理終了後に復帰
処理手段がトレース要求元の処理プログラムに制御を戻
す、他方、トレース判定手段によりトレースしないと判
定されたときは復帰処理手段により速やかにトレース要
求元の処理プログラムに制御が戻される。
〔実施例〕
次に、本発明の実施例について図面を参照して詳細に説
明する。
第1図は本発明の一実施例の構成図である。同図におい
て、プロセッサ1は、複数のソフトウェア実行処理優先
レベル(以下、単に処理レベルと称す)を有するプロセ
ッサであり、例えば最高位のレベルOから最低位のレベ
ル7までの8レベルの処理レベルを有している0本実施
例では、このようなプロセッサ1上で、複数の処理プロ
グラム2−1〜2−nとトレースルーチン4とを実行す
る。
処理プログラム2−1〜2−nは各々トレース対象とな
り得るプログラムであり、各プログラム中の適所にはト
レースルーチン4を呼び出すコール命令3が埋め込まれ
ている。
トレースルーチン4は、処理プログラム2−1〜2−n
の動作状態を示すデータを採取するもので、トレース判
定部5.トレースデータ採取部6゜トレースデータ格納
部7.復帰処理部8.トレース環境設定部9.トレース
環境テーブル10およびトレースエリア11を有してい
る。
トレース環境テーブル10はトレース環境を保持するテ
ーブルであり、その−例を第2図に示す。
第2図において10−1.10−2.・・・は各々1つ
のエントリであり、各エントリはプログラム名a、)レ
ース有無情報す、  トレース対象レジスタ名Cで構成
される。ここで、トレース有無情報すは同エントリ内の
プログラム名aの処理プログラムからトレースルーチン
4がコールされたとき実際にトレースを行うか否かを指
示するデータ、トレース対象レジスタ名Cは採取対象と
するレジスタ塩であり、任意の数のレジスタ塩を設定す
ることができる。
トレース環境設定部9は、トレース環境テーブル10に
上述したトレース環境を新規に設定し、また既に設定さ
れたトレース環境を変更する機能を有するものである。
トレースエリア11は、採取されたトレースデータを格
納するエリアである。本実施例ではこのトレースエリア
11を全ての処理プログラムで共通に使用する。
トレース判定部5は、処理プログラム2−1〜2−nか
らのトレース要求時、トレース環境テーブル10に保持
されたトレース環境を参照して今回トレース要求を出し
た処理プログラムについて実際にトレースを行うか否か
を判定する手段である。
トレースデータ採取部6は、トレース判定部5によりト
レースすると判定されたときにトレース環境テーブル1
0を参照して採取すべきレジスタ塩を認識し、そのレジ
スタからデータを採取する手段である。
トレースデータ格納部7は、トレースデータ採取部6に
より採取されたトレースデータをトレースエリア11に
格納する手段である。トレースデータ格納部7は、トレ
ースエリア11の書き込みアドレス等を管理しており、
新たに採取されたトレースデータをトレースエリア11
に格納する際には直前に格納したトレースデータの直後
に書き込むようにし、書き込み位置が予め定められた下
限に達したときは予め定められた上限に戻って書き込み
を続けるようにしている。
復帰処理部8は、トレース判定部5によりトレースしな
いと判定されたとき及びトレースデータ格納部7による
格納処理が終了したとき、コール元の処理プログラムに
制御を戻す手段である。
次に、このように構成された本実施例の動作を説明する
先ず、トレースルーチン4のトレース環境テーブル10
に、トレース対象処理プログラムとして登録されていな
い処理プログラムが動作した場合について、第1図1.
第2図、第3図を参照して説明する。
そのような処理プログラム2−iが第1図のプロセッサ
1で実行され、埋め込まれたコール命令3が実行される
と(第3図の100)、制御がトレースルーチン4に渡
ってトレース判定部5が動作を開始し、コールした処理
プログラム2−iがトレース環境テーブル10にトレー
ス対象プログラムとして登録されているか否か、即ち第
2図のプログラム名aに同一のプログラム名が登録され
且つトレース有無情報すがトレース有に設定されている
エントリがあるか否かを判定する(第3図の101)、
今の場合、登録されていないので、トレース判定部5は
復帰処理部8を起動し、復帰処理部8は戻り先の判定を
行って(第3図の104)、上記の処理プログラム2−
4に制御を戻す。
このように、トレース環境テーブル10にトレース対象
プログラムとして登録されていない処理プログラムから
のコール時にはトレース処理は行われない。
次に、トレース環境設定部9によりトレース環境テーブ
ル10にトレース対象処理プログラムとして登録されて
いる処理プログラムが動作した場合について、第1図、
第2図、第4図を参照して説明する。なお、第41図の
110はトレース環境設定部9によるトレース環境設定
処理であり、この処理は少なくとも対象とする処理プロ
グラムの実行前に行えば良い。
さて、トレース対象にされた処理プログラム2−iが第
1図のプロセッサ1で実行され、埋め込まれたコール命
令3が実行されると(第4図の100)、制?Iがトレ
ースルーチン4に渡ってトレース判定部5が動作を開始
し、コールした処理プログラム2−iがトレース環境テ
ーブルlOにトレース対象プログラムとして登録されて
いるか否かを判定するが(第4図の101)、今の場合
、登録されているので、トレース判定部5はトレースデ
ータ採取部6を起動することになる。
トレースデータ採取部6は、トレース環境テーブル10
における上記コールしたプログラム名を含むエントリの
トレース対象レジスタ名Cを参照して今回トレース要求
を出した処理プログラム2−iについて採取すべきレジ
スタ塩を認識し、当該レジスタのデータを採取する(第
4図の102)そして、採取したデータをトレースデー
タ格納部7に渡す。
トレースデータ格納部7は、トレースデータ採取部6か
ら渡されたデータをトレースエリア11に格納(保存)
シ(第4図の103)、復帰処理部8を起動する。
復帰処理部8は戻り先の判定を行って(第4図の104
)、上記の処理プログラム2−iに制御を戻す。
このように、トレース環境テーブルIOにトレ−ス対象
プログラムとして登録された処理プログラムからのコー
ル時には、トレース環境テーブル10中の採取対象レジ
スタについてトレース処理が実施される。
ところで、例えば処理レベル5の処理プログラムからト
レースルーチン4がコールされ、そのトレース処理完了
前に割り込み等により高位たとえば処理レベル1の処理
プログラムの実行契機が発生した場合、何らかの対策を
講じないと、トレース処理が未処理のまま処理レベル1
の処理プログラムが実行され、そして、この処理レベル
1の処理プログラムからトレースルーチン4がコールさ
れてトレース処理が行われトレースデータがトレースエ
リア11に格納されると、前記中断された処理レベル5
の処理プログラムにかかるトレースデータは処理レベル
1のトレースデータの次の位置に格納されてしまうこと
になる。即ち、コール順つまりプログラムのシーケンス
は処理レベル5の処理プログラム、処理レベル1の処理
プログラムの順であるにもかかわらず、トレースデータ
はその逆の順で格納されてしまう。
第1図の実施例はこのような問題点をも解消するために
、トレースルーチン4の実行開始後その処理が終了する
まで、今回トレースルーチン4をコールした処理プログ
ラムより高い処理レベルを持つ処理プログラムの実行契
機となる割り込み等が発生してもそれを受は付けない即
ち禁止するようにしている。この結果、上述の場合の処
理の順序は第5図を参照すると下記のようになる。
処理レベル5の処理プログラム20−xの実行中(■)
にコールが行われるとトレースルーチン4に制御が移り
(■)、トレース処理が開始される(■)。トレース処
理が開始されると割り込み禁止等が行われるので、トレ
ース処理中に処理レベル1の処理プログラム20−yの
実行契機となる割り込み等が発生しても(■)、トレー
ス処理は中断されることなく最後まで実行される(■)
、。
そして、処理プログラム20−xにかかるトレースデー
タをトレースエリア11に格納後、制御が処理プログラ
ム20−Xに戻される(■)。この時点で割り込み禁止
等が解除され、その結果、処理プログラム20−yに制
御が移り(■)、処理プログラム20−yの実行が行わ
れる(■)6次いでコールがあるとトレースルーチン4
に制御が移り(■)、トレースルーチン4によって処理
プログラム20−yにかかるトレースデータの採取と格
納とが行われ([相])、トレース処理終了後に処理プ
ログラム20−yに制御が戻される(■)。
そして、処理プログラム20−yの続く処理が行われ(
@)、終了を契機に処理プログラム2〇−Xのコール命
令直後の命令に制御が戻され(■)、後続の処理が実行
される(0)、この結果、トレースエリア11にはコー
ル命令を発した順にトレースデータが格納されることに
なり、ソフトウェアシーケンスの流れ等を正確に把握す
ることができる。
〔発明の効果〕
以上説明した本発明のプログラムトレース方式によれば
、次のような効果を得ることができる。
■ トレースルーチンのトレース環境テーブルに設定さ
れたレジスタ塩等によって採取光が決まるため、トレー
ス環境テーブルの書替えといった簡単な操作で採取した
いデータの変更が可能となる。
即ち、トレース対象プログラムの改造無しに採取対象デ
ータの変更が可能となる。
■ トレース環境テーブルに設定できる採取対象レジス
タ塩等の個数は任意なので、処理プログラムからの1回
のトレース要求時に採取できるデータ量が増大し、従来
に比べてプログラムの構造が簡単になる。
■ トレース環境テーブルを書替えて成る処理プログラ
ムをトレース対象から外せば、その処理プログラムを改
造することなく、トレースを未実行状態にすることがで
きる。
■ 複数のソフトウェア実行処理優先レベルを有するプ
ロセッサ上で複数の処理プログラムとトレースルーチン
とを実行させる場合、前記トレースルーチンの実行開始
後その処理が終了するまで、今回トレースルーチンに対
しトレースを要求した処理プログラムより高い処理レベ
ルを持つ処理ブログラムの実行契機となる割り込み等を
禁止することにより、トレースエリアにはトレース要求
順にトレースデータが格納される。よって、複数の処理
プログラムのトレースデータを同一のトレースエリアに
格納したことと相俟ってソフトウェアシーケンスの流れ
等を正確に把握することが可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例の構成図、 第2図はトレース環境テーブルの構成例を示す図、 第3図はトレース対象となっていない処理プログラム実
行時の動作説明図、 第4図はトレース対象となっている処理プログラム実行
時の動作説明図および、 第5図は処理レベルの低い処理プログラムについてのト
レース処理中に高位の処理プログラムの実行契機となる
割り込み等が発生した場合の処理の流れを示す動作説明
図である。 図において、 1・・・プロセッサ 2−1〜2−n・・・処理プログラム 3・・・トレースルーチンのコール命令4・・・トレー
スルーチン 5・・・トレース判定部 6・・・トレースデータ採取部 7・・・トレースデータ格納部 8・・・復帰処理部 9・・・トレース環境設定部 10・・・トレース環境テーブル 11・・・トレースエリア

Claims (3)

    【特許請求の範囲】
  1. (1)プロセッサ上で複数の処理プログラムとこの処理
    プログラムの動作状態を示すデータをトレースデータと
    して採取するトレースルーチンとを実行してプログラム
    トレースを行う方式において、前記トレースルーチンに
    、 トレース環境を保持するトレース環境テーブルと、 該トレース環境テーブルにトレース環境を設定するトレ
    ース環境設定手段と、 処理プログラムからのトレース要求時、前記トレース環
    境テーブルに保持されたトレース環境を参照してトレー
    スを行うか否かを判定するトレース判定手段と、 該トレース判定手段によりトレースすると判定されたと
    きに前記トレース環境テーブルを参照して該当するデー
    タを採取するトレースデータ採取手段と、 該トレースデータ採取手段により採取されたトレースデ
    ータをトレースエリアに格納するトレースデータ格納手
    段と、 前記トレース判定手段によりトレースしないと判定され
    たとき及び前記トレースデータ格納手段による格納処理
    が終了したとき、トレース要求元の処理プログラムに制
    御を戻す復帰処理手段とを設け、 前記処理プログラムには前記トレースルーチンに対しト
    レースを要求する処理が埋め込まれていることを特徴と
    するプログラムトレース方式。
  2. (2)複数のソフトウェア実行処理優先レベルを有する
    プロセッサ上で複数の処理プログラムとトレースルーチ
    ンとを実行させ、且つ、 前記トレースルーチンの実行開始後その処理が終了する
    まで、今回トレースルーチンに対しトレースを要求した
    処理プログラムより高いソフトウェア実行処理優先レベ
    ルを持つ処理プログラムの実行契機となる割り込み等を
    禁止するようにしたことを特徴とする請求項1記載のプ
    ログラムトレース方式。
  3. (3)前記トレース環境テーブルには、トレースすべき
    プログラムを特定するデータとトレース対象となるレジ
    スタを特定するデータとが含まれることを特徴とする請
    求項1または2記載のプログラムトレース方式。
JP2021226A 1990-01-31 1990-01-31 プログラムトレース方式 Pending JPH03225535A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021226A JPH03225535A (ja) 1990-01-31 1990-01-31 プログラムトレース方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021226A JPH03225535A (ja) 1990-01-31 1990-01-31 プログラムトレース方式

Publications (1)

Publication Number Publication Date
JPH03225535A true JPH03225535A (ja) 1991-10-04

Family

ID=12049106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021226A Pending JPH03225535A (ja) 1990-01-31 1990-01-31 プログラムトレース方式

Country Status (1)

Country Link
JP (1) JPH03225535A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257737A (ja) * 1992-01-31 1993-10-08 Nec Corp プログラム異常終了原因解析支援方式
JP2000235510A (ja) * 1999-02-15 2000-08-29 Hitachi Ltd プロセッサおよびそのためのコンパイルプログラム記録媒体
JP2002215420A (ja) * 2000-10-10 2002-08-02 Ricoh Co Ltd 画像形成装置、プロセス監視方法、デバッグ方法およびこれらの方法をコンピュータに実行させるプログラム
US6467083B1 (en) 1998-09-30 2002-10-15 Nec Corporation Debugging system for computer program, method for checking target program and information storage medium for storing checking program
JP2010211555A (ja) * 2009-03-11 2010-09-24 Meidensha Corp プログラマブルコントローラのデータトレース方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS598067A (ja) * 1982-07-03 1984-01-17 Fujitsu Ltd デ−タ処理装置
JPS6244844A (ja) * 1985-08-23 1987-02-26 Fujitsu Ltd 実行軌跡情報収集装置
JPS63174142A (ja) * 1987-01-14 1988-07-18 Fujitsu Ltd タスクトレ−ス方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS598067A (ja) * 1982-07-03 1984-01-17 Fujitsu Ltd デ−タ処理装置
JPS6244844A (ja) * 1985-08-23 1987-02-26 Fujitsu Ltd 実行軌跡情報収集装置
JPS63174142A (ja) * 1987-01-14 1988-07-18 Fujitsu Ltd タスクトレ−ス方式

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257737A (ja) * 1992-01-31 1993-10-08 Nec Corp プログラム異常終了原因解析支援方式
US6467083B1 (en) 1998-09-30 2002-10-15 Nec Corporation Debugging system for computer program, method for checking target program and information storage medium for storing checking program
JP2000235510A (ja) * 1999-02-15 2000-08-29 Hitachi Ltd プロセッサおよびそのためのコンパイルプログラム記録媒体
JP2002215420A (ja) * 2000-10-10 2002-08-02 Ricoh Co Ltd 画像形成装置、プロセス監視方法、デバッグ方法およびこれらの方法をコンピュータに実行させるプログラム
JP2010211555A (ja) * 2009-03-11 2010-09-24 Meidensha Corp プログラマブルコントローラのデータトレース方法

Similar Documents

Publication Publication Date Title
US7426732B2 (en) Placing a task of a multithreaded environment in a known state
JP4436036B2 (ja) 情報処理装置、トレース処理方法、プログラム及び記録媒体
KR930000592B1 (ko) 타스크 추적장치
US7844971B2 (en) Method and apparatus for detecting cross-thread stack access in multithreaded programs
JPS63109541A (ja) データ参照制御方法
JPH07191865A (ja) オペレーティング・システムにおけるインタブロックの分析方法
JPH05216689A (ja) コンピュータ装置およびコンピュータ装置を動作させる方法
US5828890A (en) System for interrupting program operation when an out-of-range value is encountered to correct a data value
JPH03225535A (ja) プログラムトレース方式
JP2922723B2 (ja) 情報処理装置
JP3595028B2 (ja) リアルタイムosの処理方法
JP2795676B2 (ja) プログラムトレース装置
JP2653412B2 (ja) ブレークポイント設定方法
JP3130798B2 (ja) バス転送装置
JPH03113646A (ja) トレース回路
JPH05181712A (ja) スタック履歴作成方式
JP3022398B2 (ja) 仮想計算機方式
JPH0247728A (ja) フォルト処理管理方式
JPS62125437A (ja) 付加プロセツサの制御方法
JP2887488B2 (ja) マルチプロセス処理装置
JPH04167146A (ja) 情報処理装置のアドレストレース方式
JPH0391055A (ja) ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置
JPH04107644A (ja) オンライン中の情報収集方式
JPS62154145A (ja) 動的拡張ス−パ−バイザ・コ−ル割込み処理方式
JPH05224951A (ja) マイクロプロセッサ・システムの割込管理方法