JPH02108135A - プログラムトレース制御方式 - Google Patents

プログラムトレース制御方式

Info

Publication number
JPH02108135A
JPH02108135A JP63260966A JP26096688A JPH02108135A JP H02108135 A JPH02108135 A JP H02108135A JP 63260966 A JP63260966 A JP 63260966A JP 26096688 A JP26096688 A JP 26096688A JP H02108135 A JPH02108135 A JP H02108135A
Authority
JP
Japan
Prior art keywords
program
trace
tracing
execution
instruction
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
JP63260966A
Other languages
English (en)
Inventor
Satoshi Kurosaki
聡 黒崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63260966A priority Critical patent/JPH02108135A/ja
Publication of JPH02108135A publication Critical patent/JPH02108135A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 計算機における、プログラムのトレースの制御に関し、 2種のトレース手段を自動的に選択して、プログラムト
レースの実行効率を改善するプログラムトレース制御方
式を目的とし、 プログラムのトレースに際し、該プログラムの各命令を
解析してシミュレートする第1のトレース手段と、該プ
ログラムの所要の各命令を、割込を発生する所定の命令
に置換して、該プログラムを実行し、該割込の発生によ
って制御を受け取って、所定のトレース処理を行う第2
のトレース手段とを設け、該プログラムのトレース済部
分の大きさを示す所定の実行1ii羅率を入力して、該
実行xi率が所定値より小さい場合に第1のトレース手
段により、所定値以上の場合に第2のトレース手段によ
ってトレースを実行させるように構成する。
〔産業上の利用分野〕
本発明は、計算機における、プログラムのトレースの制
御に関する。
プログラムを実行した軌跡に関するデータを収集するた
めの、プログラムのトレースは、プログラムのテストや
、プログラム保守のためのデータ採取等のために計算機
においてしばしば使用される。
〔従来の技術〕
公知のように、トレース手段としてのシミュレーション
方式では、シミュレータが被測定プログラムの各命令を
解析して処理を代行する。従って被測定プログラムの各
命令ごとに70〜100ステツプの命令をシミュレータ
で実行する必要があり、その結果書に被測定プログラム
のみの実行時間の70〜100倍の実行時間を要するこ
とになる。
他方被測定プログラムの所要の各命令、例えば分岐命令
を中断点に選んで、割込を発生するためのSvC命令等
の命令に置き換えて、そのプログラムを実行する、SV
C命令埋め込み方式等と呼ばれるトレース手段がある。
この場合は被測定プログラムを実行してSvC命令の実
行になると、SvC割込の発生によってトレーサが制御
を受け取って、所定のトレース処理を行った後、元の命
令とSvC命令の次の命令にジャンプする命令とを適当
な作業域に設定して、元の命令から被測定プログラムの
実行を再開する。
この方式ではSvC命令の埋め込み個所のみでトレース
のためのオーバヘッドを生じ、又測定が進めば、未処理
の中断点のみにSvC命令を埋め込むようにして、次第
にオーバヘッドを減少させることができるが、1回の割
込発生による処理の所要ステップ数が比較的大きいので
、平均10命令程度ごとに1個のSvC命令を埋め込ん
だ場合でも、トレース時は被測定プログラムのみの実行
時間の200〜300倍の実行時間を要する。
このためにSVC命令埋め込み方式は、トレースによっ
て監視する個所が被測定プログラムの一部であって、且
つ散在しているような状況において比較的効率よくトレ
ースを行うことのできる手段である。
〔発明が解決しようとする課題〕
前記のようにそれぞれ特徴のあるトレース方式があるの
で、被測定プログラムやトレースの進行状況に応じて、
例えばシミュレーション方式でトレースを始めて、トレ
ースが進行して残りの範囲が減少した時からは、SvC
命令埋め込み方式によるというように、適当なトレース
方式を使用すれば、トレースの実行効率を改善できる。
しかし、従来その選択を試験者の人手によって行ってい
るので、煩雑であり且つ必ずしも適切な運用ができない
という問題がある。
本発明は、2種のトレース手段を自動的に選択して、プ
ログラムトレースの実行効率を改善するプログラムトレ
ース制御方式を目的とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。
図は計算機における、プログラムトレース制御方式の構
成を示し、1は被測定プログラムの実行網羅率2に基づ
いて、2種のトレース手段を実行する第1トレース部4
又は第2トレース部5の一方を選択し、被測定プログラ
ム3を入力するように制御するトレース制御部である。
(作 用〕 被測定プログラム3のトレースに際し、被測定プログラ
ム3の各命令を解析してシミュレートする第1のトレー
ス手段である第1トレース部4と、被測定プログラム3
の所要の各命令を、割込を発生する所定の命令に置換し
て、被測定プログラム3を実行し、その割込の発生によ
って制御を受け取って、所定のトレース処理を行う第2
のトレース手段である第2トレース部5とを設ける。
トレース制御部1は、被測定プログラム3のトレース済
部分の大きさを示す所定の実行網羅率2を入力して、実
行Ii1羅率2が所定値より小さい場合に第1トレース
部4、所定値以上の場合に第2トレース部5を選択して
トレースを実行するように制御する。
以上の制御方式により、被測定プログラムのトレース済
部分の大きさにより自動的に適切な方のトレース方式を
選択してトレースを実行させることができる。
〔実施例〕
第2図は本発明の実施例を示すブロック図である。被測
定プログラム3のトレースを行う場合には、例えば被測
定プログラム3をコンパイルした際に出力される、いわ
ゆるアセンブルリストを参照して、予めプログラムの各
経路の分岐点等を中断点として抽出し、中断点ごとのア
ドレス、実行回数カウンタ(初期値をOとする)等を内
容とする中断点レコードからなる中断点データ12を作
っておく。
又例えば中断点データにより、実行済の中断点の個数と
全中断点数との比として求める実行網羅率を、実行M4
羅率2として保存する。
試験者は適当な所定の制御文9をトレース制御部1に入
力して、トレース開始を指示すると、トレース制御部1
の制御文解析部10が制御文9を解析処理する。制御文
では例えば被測定プログラムの指定、トレース方式を自
動選択するか、指定するかの指示、自動選択する場合の
選択判定値等を入力できるものとする。
以下は自動選択が指定されているものとして説明し、制
御文解析部10から要すれば選択判定値その他を受け取
って、トレース方式判定部11が起動する。
トレース方式判定部11は実行網羅率2を読みとって、
予め設定されているか又は制御文で入力された選択判定
値と実行網羅率2の値を比較し、実行網羅率2の値が選
択判定値より小さければシミュレーション方式のトレー
スを実行する第1トレース処理部14を選択し、実行網
羅率2の値が選択判定値以上であればSVC命令埋め込
み方式のトレースを実行する第2トレース処理部15を
選択する。
第1トレース処理部14の場合には、指定の被測定プロ
グラム3を1命令づつ解析して、その命令の実行をシミ
ュレートし、例えば実行した命令のアドレスを測定結果
処理部16に渡す。
第2トレース処理部15の場合には、中断点データ12
を読み込んで、未実行の中断点を抽出し、そのアドレス
の命令を所定のSvC命令に置き換えて、元の命令は保
存する。その後このようにして所要のすべての個所にS
vC命令を埋め込んだ被測定プログラムを実行させる。
被測定プログラム3の実行中に、埋め込まれているSV
C命令が実行されると、公知のように割込が発生されて
、システムの管理プログラムに制御が渡り、管理プログ
ラムの制御によって第2トレース処理部15に制御が渡
る。
こ\で、第2トレース処理部15はそのSvC命令が埋
め込まれているアドレスを識別して、そのアドレスを測
定結果処理部16に渡す。その後前記説明と同様にして
元の命令を実行させて、被測定プログラム3の実行を再
開させ、このようにして通過した中断点のアドレスが測
定結果処理部16に蓄積される。
測定結果処理部16は蓄積された通過点のアドレスが、
中断点データ12の各中断点レコードに保持されるアド
レスと一致する場合に、そのレコードの実行回数カウン
タの値を+1して更新する。又被測定プログラム3の1
経路についてトレースが完了すると、更新した中断点デ
ータ12の全中断点レコードについて、実行回数カウン
タの値が1以上の中断点の個数を集計し、その値を全中
断点数で割った商を新しい実行網羅率2として前の値と
置き換える。又必要な場合には所定内容のトレースリポ
ートI8を出力する。
以上のようにして、例えば選択判定値を60%に設定し
て、被測定プログラムの各経路のトレースを順次実行さ
せると、実行網羅率=0%からシミュレーション方式の
第1トレース処理部14によるトレースが実行されて、
逐次実行網羅率が上昇し、実行網羅率が60%を越える
と、以後のトレースは第2トレース処理部15によるS
vC命令埋め込み方式のトレースに自動的に切り換えら
れ、2種のトレース方式の特長を生かして効率よくトレ
ースを進めることができる。
このようにして、プログラムの全経路を網羅するトレー
スが効率良(できるようになると、それを利用して、例
えばプログラムモジュール間の呼出関係のデータを、実
際にプログラムのトレースを実行し採取することが経済
的にできる。
従来このような呼出関係のデータはソースプログラムの
呼出命令文を拾い出す静的な解析によって作成していた
ので、呼出の階層関係等を完全にまとめることが困難で
あったが、以上のようなトレースに、呼出関係のデータ
として、呼出元モジュール名、呼出先モジュール名及び
呼出回数その他からなるデータを採集する機能を設ける
ことにより、自動的に呼出関係のデータを集積すること
が容易になる。この呼出関係データを処理すれば、例え
ば呼出の階層関係図を作成して出力することができる。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算機
における、プログラムのトレースにおいて、被測定プロ
グラムのトレース済部分の大きさにより自動的に適切な
トレース方式を選択することができるので、経済的にト
レースができ、更にトレースの利用が容易になるという
著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の構成を示すブロック図、第2図は本発
明の実施例構成を示すブロック図である。 図において、 1はトレース制御部、 2は実行網羅率、3は被測定プ
ログラム、4は第1トレース部、5は第2トレース部、
 1oは制御文解析部、11はトレース方式判定部、

Claims (1)

  1. 【特許請求の範囲】 プログラム(3)のトレースに際し、 該プログラム(3)の各命令を解析してシミュレートす
    る第1のトレース手段(4)と、 該プログラム(3)の所要の各命令を、割込を発生する
    所定の命令に置換して、該プログラムを実行し、該割込
    の発生によって制御を受け取って、所定のトレース処理
    を行う第2のトレース手段(5)とを設け、 該プログラムのトレース済部分の大きさを示す所定の実
    行網羅率(2)を入力して、該実行網羅率が所定値より
    小さい場合に第1のトレース手段(4)により、所定値
    以上の場合に第2のトレース手段(5)によってトレー
    スを実行させる(1)ように構成されていることを特徴
    とするプログラムトレース制御方式。
JP63260966A 1988-10-17 1988-10-17 プログラムトレース制御方式 Pending JPH02108135A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63260966A JPH02108135A (ja) 1988-10-17 1988-10-17 プログラムトレース制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63260966A JPH02108135A (ja) 1988-10-17 1988-10-17 プログラムトレース制御方式

Publications (1)

Publication Number Publication Date
JPH02108135A true JPH02108135A (ja) 1990-04-20

Family

ID=17355231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63260966A Pending JPH02108135A (ja) 1988-10-17 1988-10-17 プログラムトレース制御方式

Country Status (1)

Country Link
JP (1) JPH02108135A (ja)

Similar Documents

Publication Publication Date Title
JP2749528B2 (ja) エラー解析用のトレーサシステム
US6658649B1 (en) Method, apparatus and article of manufacture for debugging a user defined region of code
US5987250A (en) Transparent instrumentation for computer program behavior analysis
JPH02108135A (ja) プログラムトレース制御方式
JP3389745B2 (ja) プログラムの性能測定装置と方法
JPH03158937A (ja) プログラム実行制御方式
JPH02275539A (ja) デバッグ処理方式
JP3339708B2 (ja) イベント記録方式
JPH02220145A (ja) プログラムトレース方式
JPH02242440A (ja) 命令トレース回路
CN120386709A (zh) 一种数据代码调试方法及终端
JPS63289654A (ja) プログラム分岐命令モニタ方式
JPH03130839A (ja) オンラインシミュレーション方式
JPH05324402A (ja) プログラムのテスト状態計測方式
JPH0869340A (ja) クロックサイクル数測定方法および装置
JPH02100146A (ja) トレース決定方式
JPH0344330B2 (ja)
WO2004097545A2 (en) A method of executing a computer program
JPS63211037A (ja) プログラムデバツク方法
JPH08314817A (ja) エラー解析方式
JPS6292033A (ja) プログラムデバツグ装置
JPS59161736A (ja) プログラムアナライザ
JPH0750445B2 (ja) プログラムのデバツグ方式
JPH02201646A (ja) プログラム作成装置
JPS61246845A (ja) プログラムデバツグ方法