JPS645335B2 - - Google Patents

Info

Publication number
JPS645335B2
JPS645335B2 JP56074963A JP7496381A JPS645335B2 JP S645335 B2 JPS645335 B2 JP S645335B2 JP 56074963 A JP56074963 A JP 56074963A JP 7496381 A JP7496381 A JP 7496381A JP S645335 B2 JPS645335 B2 JP S645335B2
Authority
JP
Japan
Prior art keywords
trace
buffer
program
information
circular structure
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
Application number
JP56074963A
Other languages
English (en)
Other versions
JPS57191760A (en
Inventor
Satoshi Takemura
Hiroshi Kadota
Kohei Fukuoka
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 JP56074963A priority Critical patent/JPS57191760A/ja
Publication of JPS57191760A publication Critical patent/JPS57191760A/ja
Publication of JPS645335B2 publication Critical patent/JPS645335B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software

Landscapes

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

Description

【発明の詳細な説明】 本発明は、プログラム環状構造検出装置に関
し、詳しくは、情報処理装置のプログラム評価試
験、プログラム解析のためにデータ収集を行う場
合、プログラムの環状構造により生ずるトレース
情報の重複を抑止するための環状構造検出装置に
関するものである。
従来、マイクロ・プログラム制御方式またはマ
イクロ・コンピユータ・プログラム方式等を有す
る情報処理装置において、これらのプログラムの
動作状態をトレースする場合、プログラムの環状
構造によるトレースの重複を抑止する機能がトレ
ーサにも、情報処理装置にもないため、情報処理
装置内で必然的に発生したプログラム環状構造に
よりプログラムの一部しかトレースできなかつた
り、あるいは環状構造を重複してトレースするた
めトレース用メモリの容量が膨大になるという欠
点がある。
そこで、従来、これに対処し、限られたメモリ
容量でトレースを行うために、トレース範囲を指
示して限られた範囲だけをトレースしたり、特定
の命令のみをトレースしたり、あるいはトレー
ス・データがメモリ容量をオーバすると自動的に
ラツプ・アラウンドする等の方法を用いている。
しかし、この方法を用いた場合、被トレース・
プログラムの一部しかトレースできないこと、ま
た必要なトレース・データが失なわれること等の
重大な欠点がある。そして、これらは、特にトレ
ース範囲内に多くのプログラム環状構造が含まれ
ている場合に顕著である。
本発明の目的は、上記のような従来の問題点を
除去するために、プログラム環状構造による同一
情報を重複してトレースすることなく、必要な情
報をすべてトレースして、トレース用メモリの使
用効率を向上させ、かつ分岐命令を含む動作状態
を追求し易くして、情報処理装置の評価試験、プ
ログラム解析のためのデータ収集を効率よく行う
ことができるプログラム環状構造検出装置を提供
することにある。
上記目的を達成するため、本発明のプログラム
環状構造検出装置は、マイクロプログラム制御方
式か、マイクロ・コンピユータ用のプログラムで
動作する方式のいずれか一方の情報処理装置内で
動作するプログラムをトレースする装置におい
て、上記情報処理装置から出力されたトレースデ
ータに含まれる命令アドレスと分岐アドレスの関
係をチエツクして、命令アドレスが分岐アドレス
より小さいときを検出して環状構造を形成する分
岐命令であることを検出する検出回路と、該検出
回路により環状構造が検出された時点で、トレー
ス情報の重複を調べるため、一方から他方に切り
換えられて分岐命令情報が蓄積される第1および
第2のループ検出用バツフア・メモリと、該第1
および第2のバツフア・メモリの内容を比較する
バツフア比較回路と、該バツフア比較回路の一致
出力により重複トレースを抑止する制御回路とを
有することに特徴がある。
以下、本発明の実施例を、図面により説明す
る。
図は、本発明の一実施例を示すプログラム環状
構造検出装置のブロツク図である。
図に示す装置20は、マイクロ・プログラム制
御方式またはマイクロ・コンピユータ・プログラ
ム方式等の情報処理装置30からのプログラム出
力情報を記憶するトレース用メモリ19と、プロ
グラムの環状構造により重複する情報のトレース
を抑止するための環状構造検出部と、その他の回
路とから構成される。
環状構造検出部としては、ループ検出回路3、
ループ検出用バツフア・メモリ10,11、バツ
フア・サーチ回路5、バツフア比較回路9、およ
び重複トレース抑止制御回路15が設けられる。
情報処理装置30から出力された情報は、イン
タフエース制御回路1を介して分岐命令を抽出
し、これをループ検出用のバツフア・メモリ10
に蓄積する。このとき、トレース用メモリ19に
は、トレース用ポインタ16を使用してトレース
する。ループ検出用バツフア・メモリ10に対す
る蓄積動作は、ループ検出回路3において、命令
アドレスと分岐先アドレスとの関係から環状構造
が検出されるまで継続され、環状構造が検出され
た時点で、トレース情報の重複を調べるために、
ループ検出用バツフア・メモリ10からループ検
出用バツフア・メモリ11に切り換えて分岐命令
情報を蓄積する。このとき、トレース用メモリ1
9のトレース用ポインタ16は、重複トレース抑
止制御回路15により擬似ポインタ18に切り換
えられ、この擬似ポインタ18によつて情報をト
レース用メモリ19に一旦仮トレースする。
ループ検出用バツフア・メモリ11に蓄積され
た情報量が、ループ検出用バツフア・メモリ10
に蓄積されている情報量と同じになつた時点で、
両バツフア・メモリ10,11の内容をバツフア
比較回路9により比較し、比較の結果、全く同一
情報である場合にはトレース用メモリ19に仮ト
レースしておいた情報を無効にする。バツフア比
較回路9により比較するためのループ検出用バツ
フア・メモリ10のポイントは、バツフア・サー
チ回路5によつて探し出される。
一方、バツフア比較回路9により比較した結
果、同一情報でなかつた場合には、環状構造では
ないため、擬似ポインタ18の内容をトレース用
ポインタ16にロードすることにより、トレース
用メモリ19に仮トレースしておいた情報を有効
にする。そして、ループ検出用バツフア・メモリ
11の内容をループ検出用バツフア・メモリ10
に移し替え、環状構造を検出するための比較情報
の蓄積を引き続きループ検出用バツフア10によ
り行う。これらの各ポインタ14,16,18の
設定や無効化の制御は、重複トレース抑止制御回
路15により行う。
次に、図における詳細な動作を説明する。
情報処理装置30からの出力情報は、インタフ
エース制御回路1により分岐命令のための情報か
否かが判定され、命令アドレスと分岐先アドレス
からなるトレース・データ(分岐命令)2の場合
には、トレース用メモリ・ポインタ16を使用し
てトレース用メモリ19にトレースする。同時
に、ループ検出用バツフア・メモリ10にも、命
令アドレスと分岐先アドレスをスタツクする。ル
ープ検出用バツフア・メモリ10にスタツクされ
た命令の数は、スタツク・カウンタ12で計数さ
れ、カウンタ内に格納される。もし、情報をスタ
ツクしようとした場合、すでにバツフア・メモリ
10が一杯であれば、最も古いバツフア・メモリ
10の内容を追い出し、新しい情報をスタツクす
る。
ループ検出回路3は、トレース・データ2にお
ける命令アドレスと分岐先アドレスの関係をチエ
ツクし、命令アドレスが分岐アドレスより小さい
ときには、環状構造が形成されていないものと判
断して、次の分岐命令が実行されるのを待つ。
逆に、命令アドレスが分岐アドレスより大きい
か、等しいときには、環状構造が形成されている
可能性があると判断して、ループ検出回路3は重
複トレース抑止制御回路15に通知する。
重複トレース抑止制御回路15は、環状構造に
よるトレースの重複を抑止するため、トレース用
メモリ・ポインタ16の値を擬似ポインタ18に
ロードし、以後、擬似ポインタ18が無効化され
るまで、このポインタ18を使用してトレース用
メモリ19に仮トレースする。
重複トレース抑止制御回路15の制御により、
バツフア・サーチ回路5は、ループ検出用バツフ
ア・メモリ10にスタツクされている命令アドレ
スと、インタフエース制御回路1により検出され
た分岐命令2の分岐先アドレスとの関係が、(命
令アドレス)>(分岐先アドレス)になるバツフ
ア・メモリ10の位置を探索する。
バツフア・メモリ10の位置を探索したなら
ば、そのバツフア・メモリ10の位置より以前に
格納された情報をすべて追い出し、バツフア・メ
モリ10の内容を前方に詰める。さらに、スタツ
ク・カウンタ12の値からバツフア・ポインタ1
4の値を減算し、比較カウンタ8にロードすると
ともに、ループ検出用バツフア・メモリ11のポ
インタ14を設定する。
次に、再びインタフエース制御回路1が分岐命
令2を検出するのを待ち、検出したならば、この
分岐命令2の情報を擬似ポインタ18を検出して
トレース用メモリ19にトレースする。同時に、
ループ検出用バツフア・メモリ11に命令アドレ
スと分岐先アドレスとをスタツクする。ループ検
出用バツフア・メモリ11へのスタツク数が、比
較カウンタ8の値より小さい場合には、環状構造
内のプログラム・ステツプに未実行部分があるた
め、再度、分岐命令が検出されるのを待つ。
もし、ループ検出用バツフア・メモリ11への
スタツク数が比較カウンタ8の値に一致したなら
ば、環状構造内のトレース・データ2がループ検
出用バツフア・メモリ10,11の両方にスタツ
クされているので、バツフア比較回路9により両
方のスタツク・データを比較カウンタ8で示す数
だけ比較する。このとき、バツフア比較ポインタ
6,7がそれぞれ比較すべきアドレスをポイント
し、ゲートを経てバツフア比較回路9に転送す
る。
比較の結果、一致したならば、プログラムの環
状構造によりトレース・データが重複しているた
め、重複トレース抑止制御回路15は仮トレース
していた情報を無効にし、さらにプログラムの環
状構造をチエツクするために、ループ検出用バツ
フア・メモリ10の内容を保持し、トレース用メ
モリ・ポインタ16の値を擬似ポインタ18にロ
ードし、それ以後は、擬似ポインタ18が無効化
されるまでは、このポインタ18を用いてトレー
ス用メモリ19に仮トレースする。
比較の結果、一致しなければ、トレース用メモ
リ19に仮トレースしていた情報を有効にするた
めに、擬似ポインタ18の値をトレース用メモ
リ・ポインタ16にロードし、擬似ポインタ18
を無効にする。同時に、ループ検出用バツフア・
メモリ11の制御を、ループ検出用バツフア・メ
モリ12に切り替え、最初の制御に戻る。
これにより、環状構造による重複トレースの抑
止および環状構造から抜け出した後の再トレース
が可能になる。
なお、図において用いるループ検出用バツフ
ア・メモリ10,11は、固定の段数とせずに、
トレースの対象となる情報処理装置30の処理速
度により切り替えられるような可変段数を具備す
るものであつてもよい。
以上説明したように、本発明によれば、情報処
理装置内のプログラムに還状構造があつた場合に
は、これを検出することにより、同一情報を重複
してトレースしないので、トレース用メモリの使
用効率は大幅に向上し、必要な情報がトレースで
きないという不具合もなくなる。また、分岐命令
を含む動作状態の追求が簡単となり、情報処理装
置の評価試験やプログラム解析のためのデータ収
集を効率よく行うことが可能となる。
【図面の簡単な説明】
図は、本発明の実施例を示すプログラム還状構
造検出装置のブロツク図である。 1:インタフエース制御回路、2:トレース・
データ(分岐命令)、3:ループ検出回路、4:
バツフア10サーチ用ポインタ、5:バツフア・
サーチ回路、6,7:バツフア比較ポインタ、
8:比較カウンタ、9:バツフア比較回路、1
0,11:ループ検出用バツフア・メモリ、1
2:スタツク・カウンタ、13:バツフア選択フ
ラグ、14:バツフア11ポインタ、15:重複
トレース抑止制御回路、16:トレース用ポイン
タ、17:擬似ポインタ有効表示フラグ、18:
擬似ポインタ、19:トレース用メモリ、20:
トレース装置、30:情報処理装置。

Claims (1)

    【特許請求の範囲】
  1. 1 マイクロプログラム制御方式か、マイクロ・
    コンピユータ用のプログラムで動作する方式のい
    ずれか一方の情報処理装置内で動作するプログラ
    ムをトレースする装置において、前記情報処理装
    置から出力されたトレースデータに含まれる命令
    アドレスと分岐アドレスの関係をチエツクして、
    命令アドレスが分岐アドレスより大きいか、等し
    いときを検出して環状構造を形成する分岐命令の
    可能性があることを検出する検出回路と、該検出
    回路により環状構造の可能性が検出された時点
    で、トレース情報の重複を調べるため、一方から
    他方に切り換えられて分岐命令情報が蓄積される
    第1および第2のループ検出用バツフア・メモリ
    と、該第1および第2のバツフア・メモリの内容
    を比較するバツフア比較回路と、該バツフア比較
    回路の一致出力により重複トレースを抑止する制
    御回路とを有することを特徴とするプログラム環
    状構造検出装置。
JP56074963A 1981-05-20 1981-05-20 Detecting device for program loop structure Granted JPS57191760A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56074963A JPS57191760A (en) 1981-05-20 1981-05-20 Detecting device for program loop structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56074963A JPS57191760A (en) 1981-05-20 1981-05-20 Detecting device for program loop structure

Publications (2)

Publication Number Publication Date
JPS57191760A JPS57191760A (en) 1982-11-25
JPS645335B2 true JPS645335B2 (ja) 1989-01-30

Family

ID=13562466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56074963A Granted JPS57191760A (en) 1981-05-20 1981-05-20 Detecting device for program loop structure

Country Status (1)

Country Link
JP (1) JPS57191760A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62111334A (ja) * 1985-11-11 1987-05-22 Hitachi Electronics Eng Co Ltd コンピユ−タプログラムトレ−サにおける記録情報圧縮装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57152053A (en) * 1981-03-14 1982-09-20 Okuma Mach Works Ltd Program tracing device

Also Published As

Publication number Publication date
JPS57191760A (en) 1982-11-25

Similar Documents

Publication Publication Date Title
US5363502A (en) Hot stand-by method and computer system for implementing hot stand-by method
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
JPS645335B2 (ja)
JP2653412B2 (ja) ブレークポイント設定方法
JPH04332055A (ja) プログラム暴走検知方法
JPH0748183B2 (ja) トレース回路
JPH11167500A (ja) エミュレータ装置のイベント回路及びデバッグシステム
JPH0581087A (ja) プロセサのモニタ方式
JP2876737B2 (ja) プログラム事象記録処理方式
JPS5952349A (ja) 命令先取制御装置
JPS6270947A (ja) デバグ割込み制御方式
JPH03271844A (ja) エラー処理方法
CN120295821A (zh) 异常处理方法、装置、电子设备及可读介质
CN120723524A (zh) 数据处理方法、系统、电子设备、介质及产品
JPH05189255A (ja) プログラム暴走検知方法
JPS588363A (ja) プログラム実行履歴情報収集方式
JPS592155A (ja) プログラム・トレ−ス方式
JPS58103047A (ja) 命令トレ−ス装置
JPS58223854A (ja) デ−タ処理システム
JPS5947647A (ja) マイクロプログラム制御装置
JPS5852760A (ja) プログラム動特性解析装置
JPH04160655A (ja) 例外検出方式
JPS638949A (ja) プログラムの検査装置
JPH02292637A (ja) 仮想計算機
JPS6175939A (ja) 複写形ガ−ベジコレクタ誤動作検出回路