JPH0211930B2 - - Google Patents

Info

Publication number
JPH0211930B2
JPH0211930B2 JP58226321A JP22632183A JPH0211930B2 JP H0211930 B2 JPH0211930 B2 JP H0211930B2 JP 58226321 A JP58226321 A JP 58226321A JP 22632183 A JP22632183 A JP 22632183A JP H0211930 B2 JPH0211930 B2 JP H0211930B2
Authority
JP
Japan
Prior art keywords
processing
pass
processing time
compiler
time required
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 - Lifetime
Application number
JP58226321A
Other languages
English (en)
Other versions
JPS60118935A (ja
Inventor
Takaaki Ikeda
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 JP58226321A priority Critical patent/JPS60118935A/ja
Publication of JPS60118935A publication Critical patent/JPS60118935A/ja
Publication of JPH0211930B2 publication Critical patent/JPH0211930B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、データ処理装置におけるソースプロ
グラムのコンパイル処理において、コンパイラの
欠陥により無限ループにおちいつた状態を早期に
検出するためのコンパイラ障害自動検出方式に関
する。
〔技術の背景〕
一般に、コンパイル処理において、コンパイラ
自身のパグで異常終了となる場合には、無限ルー
プの場合と、それ以外の特定処理での障害の場合
とがある。通常、コンパイラの異常終了ではメモ
リ内容ダンプの指定が行なわれていないので、後
者の場合、メモリ内容ダンプの指定をとり直して
もう1度処理を繰り返せばバグ位置をつきとめる
ことが可能である。しかし、前者の無限ループに
入つた場合には、たとえば30秒乃至60秒に設定さ
れているCPUの時間監視(CPU TIME OVER)
にかかるまで、そのまま走行を続けた後、異常終
了することになる。しかもこのとき、メモリ内容
のダンプ指定が行なわれていないと、異常終了の
メツセージが出力されるのみであり、また、たと
え異常終了時のダンプ指定が行なわれたとして
も、ループのどの位置でCPU TIME OVERに
かかるかは定まつていないため、異常終了の原因
を知る確実な手掛りが得られず、障害回復にかな
りの手間と時間がかかつていた。
〔発明の目的および構成〕
本発明の目的は、コンパイラの欠陥により無限
ループに入つた場合に、CPU時間監視によらず
に異常を検出して、必要な情報を出力することを
可能にする手段を提供することにあり、そのため
本発明は、コンパイラの処理が複数の処理段階
(フエーズ)で構成されていて、ソースプログラ
ムはこれらの処理段階を順次パスして行くことに
よりオブジエクトに変換される点と、各処理段階
でのパス処理時間に極端な差がないことに着目し
て、各処理段階のパス処理時間の間の相対的な比
較によつて無限ループの検出を行なうものであ
る。
そしてそれによる本発明の構成は、ソースプロ
グラムを複数回のパスによりコンパイル処理する
コンパイラをそなえたデータ処理装置において、
上記コンパイラを用いたコンパイル処理の第1回
のパスに要する処理時間と、第2回以降の各回ご
とのパスに要する処理時間との間の比率について
予測できる最大値を超えた所定の値が予め設定さ
れているテーブル手段と、実際のソースプログラ
ムについてコンパイル処理時に各回ごとのパスに
要する処理時間を計測する手段と、第2回以降の
パスごとに要した処理時間と第1回のパスに要し
た処理時間に上記テーブル手段に設定されている
当該回の比率とを乗じた時間とを比較し、前者が
後者よりも大きくなつたとき無限ループ状態と判
定する手段とを有し、該判定手段が無限ループ状
態と判定したパスにおいて異常終了処理を行なう
ことを特徴とするものである。
〔発明の実施例〕
以下に、本発明の詳細を実施例にしたがつて説
明する。
第1図は、コンパイラの主要な処理段階を示し
たもので、単語解析、構文解析、最適化、記憶域
割当て、コード生成、アセンブルの各処理からな
り、それぞれの段階で各種の記号表、リテラル
表、中間テキストなどが生成される。
上記の各処理段階は、実際には10乃至30のパス
処理に分けられている。そしてそれぞれのパスに
要する処理時間は、ソース行数に大体比例するこ
とが言える。したがつて、最初のパスでの処理時
間と他のパスでの処理時間とは、任意のソースに
対して同じ比例関係を保つものと考えることがで
きる。
そこで、最初のパスで処理時間を測定し、2番
目以降のパスの処理時間が最初のパスの処理時間
に予め定められた一定の係数を掛けて得られた時
間を超えたならば、コンパイラループが生じてい
るものと判定して異常終了する機構を設け、その
時点での処理情報を出力させる。
第2図は、本発明の1実施例装置の機能構成図
である。図中、1はデータ処理装置、2はコンパ
イル処理部、3は処理情報記憶部、4はループ検
出処理部、5は処理時間タイマ、6はループ判定
係数テーブル、7は異常終了処理部、8は外部記
憶装置、9はプリンタを示す。
コンパイル処理部2は、コンパイラの各処理段
階のパス処理を順次実行する。処理情報記憶部3
はコンパイル処理に必要な全ての情報を記憶す
る。コンパイル処理部2は、パス処理において、
必要に応じて処理時間タイマ5のセツトを要求す
るSTIMERマクロ、テストを要求するT
TIMERマクロ、クリヤを要求するCTIMERマク
ロを、それぞれ発行する。
ループ検出処理部4は、OSの1機能部として
設けられ、STIMER、TTIMER、CTIMERの
各マクロに応答して処理時間タイマ5を制御する
とともに、処理時間タイマ5のタイムオーバーを
監視し、タイムオーバーの場合に異常終了処理部
7を起動する。
ループ判定係数テーブル6は、2回目以降の各
パスP2,P3,…,Pi,PNについて、それぞれの
処理時間に掛けるべき係数k2,k3,…,ki,…kN
を保持するテーブルである。
異常終了処理部7は、コンパイラループが検出
されたとき、コンパイル処理部2の処理を終了さ
せるとともに、処理情報記憶部3にある中間テキ
ストをプリンタ9へ出力させる処理を行なう。
第3図は、上記した実施例装置の処理手順の説
明図である。
コンパイル処理部2は第1回のパスP1の始め
にSTIMER(TA)のマクロを発行し、そしてパ
スP1の終りにTTIMER(TB)のマクロを発行す
る。ループ検出処理部4は、STIMER(TA)に
応じて処理時間タイマ5にTAをプリセツトして、
クロツクのカウントダウン動作を行なわせ、そし
てTTIRER(TB)マクロに応じて、処理時間タイ
マ5の残り時間TBを調べ、パスP1の処理時間T1
=TA−TBを求めて記憶する。
次に、コンパイル処理部2は、パスP2の始め
にSTIMER(k2・T1)マクロを発行し、終りに
CTIMERマクロを発行する。ループ検出処理部
4は、STIMER(k2・T1)マクロに応じて、ルー
プ判定係数テーブル6から、係数k2を求め、これ
と先に記憶してあるパスP1の処理時間T1とを掛
け合わせて、その結果値を、処理時間タイマ5に
プリセツトする。そしてその後CTIMERマクロ
を受けとるまで処理時間タイマ5のタイムオーバ
ーを監視する。
タイマの残り時間が零となつてタイムオーバ
ー、すなわちT2>k2・T1になつた場合には、ル
ープと判定して異常終了処理部7に通知し、他
方、タイマがタイムオーバーにならない間に
CTIMERマクロを受けとつた場合、すなわち正
常終了の場合には、タイマをクリヤする。この正
常終了の場合には以上のようなPiの処理を繰り返
す。
異常終了処理部7は、任意のパスPiにおいてル
ープ検出処理部4からループ検出を通知される
と、出口ルーチンを呼び出して実行し、ループに
よるコンパイラ障害の発生をメツセージ出力する
とともに、処理情報記憶部3の中の中間テキスト
をプリンタ出力し、異常終了処理(ABEND)を
行なう。
〔発明の効果〕
以上のように、本発明によれば、最初のパス
P1で無限ループに入つた場合を除いてコンパイ
ラのループは確実に検出でき、しかもそのパス位
置情報と中間テキストが得られるので、コンパイ
ラのバグの検出が容易となり障害の回復処理に要
する手間と時間の大幅な短縮が可能となる。
【図面の簡単な説明】
第1図はコンパイラの処理段階の説明図、第2
図は本発明の1実施例装置の構成図、第3図は本
発明実施例の処理手順のフロー図である。 図中、1はデータ処理装置、2はコンパイル処
理部、3は処理情報記憶部、4はループ検出処理
部、5は処理時間タイマ、6はループ判定係数テ
ーブル、7は異常終了処理部、8は外部記憶装
置、9はプリンタを示す。

Claims (1)

    【特許請求の範囲】
  1. 1 ソースプログラムを複数回のパスによりコン
    パイル処理するコンパイラをそなえたデータ処理
    装置において、上記コンパイラを用いたコンパイ
    ル処理の第1回のパスに要する処理時間と、第2
    回以降の各回ごとのパスに要する処理時間との間
    の比率について予測できる最大値を超えた所定の
    値が予め設定されているテーブル手段と、実際の
    ソースプログラムについてコンパイル処理時に各
    回ごとのパスに要する処理時間を計測する手段
    と、第2回以降のパスごとに要した処理時間と第
    1回のパスに要した処理時間に上記テーブル手段
    に設定されている当該回の比率とを乗じた時間と
    を比較し、前者が後者よりも大きくなつたとき無
    限ループ状態と判定する手段とを有し、該判定手
    段が無限ループ状態と判定したパスにおいて異常
    終了処理を行なうことを特徴とするコンパイラ障
    害自動検出方式。
JP58226321A 1983-11-30 1983-11-30 コンパイラ障害自動検出方式 Granted JPS60118935A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58226321A JPS60118935A (ja) 1983-11-30 1983-11-30 コンパイラ障害自動検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58226321A JPS60118935A (ja) 1983-11-30 1983-11-30 コンパイラ障害自動検出方式

Publications (2)

Publication Number Publication Date
JPS60118935A JPS60118935A (ja) 1985-06-26
JPH0211930B2 true JPH0211930B2 (ja) 1990-03-16

Family

ID=16843356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58226321A Granted JPS60118935A (ja) 1983-11-30 1983-11-30 コンパイラ障害自動検出方式

Country Status (1)

Country Link
JP (1) JPS60118935A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573136U (ja) * 1992-03-10 1993-10-05 アイカ工業株式会社 螺旋階段の踊場構造

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5054294A (en) * 1990-09-21 1991-10-08 Carrier Corporation Compressor discharge temperature control for a variable speed compressor
GB2373072A (en) * 2001-03-08 2002-09-11 Escher Technologies Ltd Process for validating a computer program segment that has recursive cycles or loops

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573136U (ja) * 1992-03-10 1993-10-05 アイカ工業株式会社 螺旋階段の踊場構造

Also Published As

Publication number Publication date
JPS60118935A (ja) 1985-06-26

Similar Documents

Publication Publication Date Title
JPH0211930B2 (ja)
JPS6115239A (ja) プロセツサ診断方式
KR910006314B1 (ko) 리얼타임 클럭의 장애검출 및 복귀방법
JPH09231105A (ja) プログラム障害検出方法
JPH10171546A (ja) 起動監視装置
JP2990008B2 (ja) プロセッサの自己診断方式
JPH06149762A (ja) 計算機システムの競合動作試験方式
KR200293236Y1 (ko) 감시타이머장치
JPS632922Y2 (ja)
JP2836084B2 (ja) 計算機の検査装置
JPS6272038A (ja) プログラム暴走検出装置の試験方法
JPH04160649A (ja) 試験プログラムのタイミング設定方式
JPH0149975B2 (ja)
JPS6162945A (ja) 情報処理装置の検査方式
JPH0314148A (ja) プログラム破壊検出装置
JPS60243750A (ja) コンピユ−タにおける異常監視回路
JPS61240334A (ja) 情報処理装置の検査方式
JPH02130646A (ja) Cpuの異常検出方式
JPH01106231A (ja) 異常処理検出方式
JPH08305673A (ja) マルチcpu監視方式
JPS5858662A (ja) 装置試験方式
JPS6015749A (ja) インラインtmp方式
JPH0997197A (ja) 情報処理装置の自己診断方法
JPH01243132A (ja) 障害処理方式
JPS6295646A (ja) 走行監視機能付マイクロプログラム制御装置