JPH11184735A - プログラム暴走検出方法および暴走検出ルーチンを含む記録媒体 - Google Patents

プログラム暴走検出方法および暴走検出ルーチンを含む記録媒体

Info

Publication number
JPH11184735A
JPH11184735A JP9364934A JP36493497A JPH11184735A JP H11184735 A JPH11184735 A JP H11184735A JP 9364934 A JP9364934 A JP 9364934A JP 36493497 A JP36493497 A JP 36493497A JP H11184735 A JPH11184735 A JP H11184735A
Authority
JP
Japan
Prior art keywords
program
detection point
detection
counter
runaway
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
JP9364934A
Other languages
English (en)
Inventor
Shunichi Seya
俊一 瀬谷
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
Original Assignee
NEC Corp
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 filed Critical NEC Corp
Priority to JP9364934A priority Critical patent/JPH11184735A/ja
Publication of JPH11184735A publication Critical patent/JPH11184735A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 ハードウェアを用いずに、プログラム上の任
意の位置で生じている暴走を検出を検出すること。 【解決手段】 プログラムの最初で、カウンタは”0”
に初期化される。また、各処理間に任意に設定された各
検出ポイント1〜3において、カウンタはカウントアッ
プされていく。プログラムにおける各処理が正常に実行
されていれば、各検出ポイントにおいて、カウンタ値と
検出ポイント番号との不一致は生じない。何らかの原因
で、例えば処理2から処理3の途中までジャンプしてし
まったとする。すると、検出ポイント2もスキップされ
てしまう。よって、検出ポイント3において、検出ポイ
ント番号とカウンタ値との不一致が検出され、不正処理
が行われたことが検出される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムが暴走
したことを検出するプログラム暴走検出方法、およびそ
のプログラム暴走検出方法にもとづく暴走検出ルーチン
を含む記録媒体に関する。
【0002】
【従来の技術】プログラムの暴走を検出するために、ウ
ォッチドッグタイマがしばしば使用される。ウォッチド
ッグタイマを用いたプログラム暴走検出方式では、ソフ
トウェアからウォッチドッグパルスなどを定期的または
間欠的に外部に出力する。そして、長期間のウォッチド
ッグパルス未発生に起因するウォッチドッグタイマのタ
イムアップによって、プログラムの暴走が検知される。
しかし、ウォッチドッグタイマを用いたプログラム暴走
検出方式では、ウォッチドッグタイマを実現するための
ハードウェア機構が必要とされる。また、タイマを用い
ているので、プログラムが暴走してからそれが検知され
るまでに、どうしてもある程度の時間が必要とされる。
【0003】そこで、ハードウェア機構を使用しないプ
ログラム暴走検出方法が提案されている。例えば、特開
昭59−154557号公報には、サブルーチンを呼び
出すCALL命令を実行する際に、エラー処理ルーチン
に移行できるようなスタック設定を行うことによって、
プログラムの暴走を検出する方法が記載されている。ま
た、特開昭61−29455号公報には、各プログラム
の先頭アドレスと終了アドレスとを記憶し、定期的に起
動される割り込み処理によってプログラムカウンタが先
頭アドレスと終了アドレスとの間に有るか否かを判断す
る方法が記載されている。
【0004】
【発明が解決しようとする課題】しかし、特開昭59−
154557号公報に記載された方法では、サブルーチ
ンコールを行うことが必須の条件であり、サブルーチン
コールが長期にわたって発生しないような場合には、プ
ログラムの暴走を検出することはできない。また、特開
昭61−29455号公報に記載された方法では、暴走
によってプログラムカウンタが本来のプログラム領域以
外のアドレスに移行した場合には暴走したことを検出で
きるが、先頭アドレスと終了アドレスとの間で不正なジ
ャンプが行われるような場合には、そのことを検出でき
ない。
【0005】本発明は、そのような課題を解消するため
になされたものであって、プログラム上の任意の位置で
生じている暴走を検出できるプログラム暴走検出方法お
よび暴走検出ルーチンを含む記録媒体を提供することを
目的とする。
【0006】
【課題を解決するための手段】本発明によるプログラム
暴走検出方法は、順に番号が与えられた検出ポイントを
プログラムの任意の位置に置き、検出ポイントにおいて
カウンタのカウントアップを行い、カウンタのカウント
値と検出ポイントの番号とが不一致の場合にプログラム
が不正処理を行ったと判断するものである。ここで、カ
ウント値と検出ポイントに与えられた番号との比較を、
各検出ポイントにおいて行ってもよいし、プログラムの
最後に行ってもよい。
【0007】本発明による暴走検出ルーチンを含む記録
媒体は、プログラムが、順に番号が与えられた検出ポイ
ントが任意の位置に置かれ、検出ポイントではカウンタ
のカウントアップを行い、カウンタのカウント値と検出
ポイントの番号とが不一致の場合にプログラムが不正処
理を行ったと判断するルーチンを含むものである。
【0008】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、本発明によるプログラム
暴走検出方法が適用されたプログラムの構成例を示す説
明図である。図に示すように、プログラム100の任意
の箇所に検出ポイント11〜1nを置く。検出ポイント
11〜1nは、プログラム100上、幾つ置かれていて
もかまわない。そして、検出ポイント11〜1nに、プ
ログラム100の流れに沿って、プログラム100のは
じめから順に番号(検出ポイント番号)を与える。ただ
し、図2においてBで示されるようにジャンプ命令等に
よってループしている部分や、何度も呼ばれるサブルー
チン内には検出ポイントを置けない。また、図2におい
てAで示されるようにプログラムが分岐している場合に
は、分岐点から合流点までの各ルートにおいて設定され
る検出ポイント数を同じ数に合わせる。なお、このよう
なプログラムは、ROM等の内部記憶や、外部記憶装置
に記憶される。
【0009】次に動作について説明する。この実施の形
態では、各検出ポイントでは、今プログラムがどこを実
行していたかを判断するためのカウンタと検出ポイント
番号とを比較する。そのようなカウンタは、例えば、各
検出ポイントにおいてインクリメントされることによっ
て実現される。各検出ポイントにおける比較の結果、不
一致であれば暴走や不正ジャンプ等の不正処理が生じて
いると判断する。
【0010】図3に示すフローチャートを例にして具体
的動作を説明する。プログラムの最初で、カウンタは”
0”に初期化される。また、各処理間に任意に設定され
た各検出ポイント(この例では、検出ポイント1〜3)
において、カウンタはカウントアップされていく。従っ
て、プログラムにおける各処理が正常に実行されていれ
ば、各検出ポイントにおいて、カウンタ値と検出ポイン
ト番号との不一致は生じない。
【0011】しかし、何らかの原因で、例えば処理2か
ら処理3の途中までジャンプしてしまったとする。する
と、検出ポイント2もスキップされてしまう。よって、
検出ポイント3において、検出ポイント3に与えられて
いる検出ポイント番号に対して、カウンタ値は1小さく
なっている。従って、検出ポイント番号とカウンタ値と
の不一致が検出され、不正処理が行われたことが検出さ
れる。
【0012】図4は、各検出ポイントにおける処理を示
すフローチャートである。上述したように、各検出ポイ
ントでは、カウンタのカウントアップが行われるととも
に、フェール判断すなわち検出ポイント番号とカウンタ
値との比較が行われる。フェール判断において、検出ポ
イント番号とカウンタ値とが一致していると判定された
場合には、プログラムにおける次の処理に移行し、不一
致と判定された場合には、不正処理が行われたことが検
出される。
【0013】図5は、本発明の他の実施の形態を示すフ
ローチャートである。このプログラムは、終了判断にお
いて終了と判断されるまで処理1〜3が何度も繰り返し
実行されるプログラムである。そして、処理間に設けら
れた各検出ポイントではカウンタのカウントアップのみ
が行われ、プログラムの最後で(終了判断の前)、フェ
ール判断が行われる。このように構成しても、フェール
判断において、検出ポイント番号とカウンタ値とを比較
することによって、不正処理が行われたか否か判断でき
る。なお、フェール判断において比較対象となる検出ポ
イント番号は、直前の検出ポイントにおける検出ポイン
ト番号である。
【0014】このように、大きくループする場合すなわ
ちループにおける処理が比較的多い場合や、何度もルー
プするような場合には、ループ内の最後の部分において
フェール判断を行っても、不正処理を確実に検出するこ
とができる。
【0015】
【発明の効果】以上のように、本発明によれば、プログ
ラム暴走検出方法および暴走検出ルーチンを含む記録媒
体を、順に番号が与えられた検出ポイントをプログラム
の任意の位置に置き、検出ポイントにおいてカウンタの
カウントアップを行い、カウンタのカウント値と検出ポ
イントの番号とが不一致の場合にプログラムが不正処理
を行ったと判断するように構成したので、ウォッチドッ
グタイマ等のハードウェア機構を必要とせず、かつ、プ
ログラム上の任意の位置で生じている暴走を直ちに検出
できる効果がある。
【図面の簡単な説明】
【図1】 本発明によるプログラム暴走検出方法が適用
されたプログラムの構成例を示す説明図である。
【図2】 プログラムの一例を示すフローチャートであ
る。
【図3】 本発明によるプログラム暴走検出方法が適用
されたプログラム一例を示すフローチャートである。
【図4】 検出ポイントにおける処理を示すフローチャ
ートである。
【図5】 本発明の他の実施の形態におけるプログラム
を示すフローチャートである。
【符号の説明】
100 プログラム 11〜1n 検出ポイント

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 プログラムの任意の位置に、順に番号が
    与えられた検出ポイントを置き、 検出ポイントでは、カウンタのカウントアップを行い、 前記カウンタのカウント値と前記番号とが不一致の場合
    に、プログラムが不正処理を行ったと判断するプログラ
    ム暴走検出方法。
  2. 【請求項2】 カウント値と検出ポイントに与えられた
    番号との比較を、各検出ポイントで行う請求項1記載の
    プログラム暴走検出方法。
  3. 【請求項3】 カウント値と検出ポイントに与えられた
    番号との比較を、プログラムの最後に行う請求項1記載
    のプログラム暴走検出方法。
  4. 【請求項4】 プログラムが不正処理を行ったと判断す
    る暴走検出ルーチンを含む記録媒体であって、 前記プログラムは、順に番号が与えられた検出ポイント
    が任意の位置に置かれ、検出ポイントではカウンタのカ
    ウントアップを行い、前記カウンタのカウント値と前記
    番号とが不一致の場合にプログラムが不正処理を行った
    と判断するルーチンを含むことを特徴とする記録媒体。
JP9364934A 1997-12-19 1997-12-19 プログラム暴走検出方法および暴走検出ルーチンを含む記録媒体 Pending JPH11184735A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9364934A JPH11184735A (ja) 1997-12-19 1997-12-19 プログラム暴走検出方法および暴走検出ルーチンを含む記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9364934A JPH11184735A (ja) 1997-12-19 1997-12-19 プログラム暴走検出方法および暴走検出ルーチンを含む記録媒体

Publications (1)

Publication Number Publication Date
JPH11184735A true JPH11184735A (ja) 1999-07-09

Family

ID=18483023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9364934A Pending JPH11184735A (ja) 1997-12-19 1997-12-19 プログラム暴走検出方法および暴走検出ルーチンを含む記録媒体

Country Status (1)

Country Link
JP (1) JPH11184735A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005509936A (ja) * 2001-11-16 2005-04-14 ギーゼッケ ウント デフリエント ゲーエムベーハー 携帯型データ記憶媒体により制御されるプログラム実行
KR100820789B1 (ko) * 2001-04-06 2008-04-10 엘지전자 주식회사 실시간 기반 시스템 및 그의 모니터링 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100820789B1 (ko) * 2001-04-06 2008-04-10 엘지전자 주식회사 실시간 기반 시스템 및 그의 모니터링 방법
JP2005509936A (ja) * 2001-11-16 2005-04-14 ギーゼッケ ウント デフリエント ゲーエムベーハー 携帯型データ記憶媒体により制御されるプログラム実行
JP4708703B2 (ja) * 2001-11-16 2011-06-22 ギーゼッケ ウント デフリエント ゲーエムベーハー 携帯型データ記憶媒体により制御されるプログラム実行

Similar Documents

Publication Publication Date Title
JPH06139107A (ja) ブレイクアドレス検出回路
JPH11184735A (ja) プログラム暴走検出方法および暴走検出ルーチンを含む記録媒体
US6851006B2 (en) Interruption handler-operating system dialog for operating system handling of hardware interruptions
JP2580072B2 (ja) 割込み処理装置
JP3145937B2 (ja) マイクロコンピュータの暴走検出方法
JP2800577B2 (ja) デバッグ装置
JPH0512062A (ja) ステツプブレーク処理方式
JPS61183705A (ja) プログラマブルコントロ−ラの演算トレ−ス処理方法
JPH01226031A (ja) 情報処理装置のパイプライン制御方式
JPS6353654A (ja) 例外発生時のプログラム実行継続処理方式
JP2880658B2 (ja) マルチタスクプログラムの暴走検出装置
JPH02126342A (ja) マイクロコンピュータの暴走検出方法
WO1990013071A1 (en) Programmable controller
JP2004151846A (ja) 暴走検出装置
JPH0241532A (ja) マイクロプロセッサの例外処理方法
JPS61272843A (ja) プログラム実行監視システム
JPH04263324A (ja) 繰り返し制御方式
JPH03201044A (ja) ソフトウェア性能測定装置及びその測定方法
JPH0328938A (ja) マイクロコンピュータ装置
JPS63316146A (ja) マイクロコンピユ−タ
JPS6391751A (ja) デバツグ支援装置
JPH02166523A (ja) コンピュータの割込み誤動作防止装置
JPH02128230A (ja) プログラム終了処理方式
JPH04275635A (ja) 定周期処理方式
JPH0322042A (ja) マイクロプロセッサの制御方式