JPS61294555A - プログラム暴走検出方法 - Google Patents
プログラム暴走検出方法Info
- Publication number
- JPS61294555A JPS61294555A JP60136017A JP13601785A JPS61294555A JP S61294555 A JPS61294555 A JP S61294555A JP 60136017 A JP60136017 A JP 60136017A JP 13601785 A JP13601785 A JP 13601785A JP S61294555 A JPS61294555 A JP S61294555A
- Authority
- JP
- Japan
- Prior art keywords
- program
- address
- runaway
- pointers
- head
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は情報処理装置におけるプログラム暴走検出方法
に係り、特にストアードプログラム制御方式のコンピュ
ータに於て任意のプログラムに適用可能なプログラム暴
走検出方法に関する。
に係り、特にストアードプログラム制御方式のコンピュ
ータに於て任意のプログラムに適用可能なプログラム暴
走検出方法に関する。
プログラムが暴走する原因は、簡単なミスからタイミン
グの狂いにいたるものまで種々あるが。
グの狂いにいたるものまで種々あるが。
これらの原因によってひき起される状態は、命令ではな
いデータ等のアドレスが命令であるかのようにアクセス
されて実行される場合と、ダイナミックルーズと呼ばれ
る永久的に復旧しないループにプログラムが迷い込む場
合に集約される。これらは、いずれの場合も実行中の命
令アドレスをチェックすることにより検出できる。この
種の従来の誤動作検出回路としては、特開昭52−87
886号に開示されたものがある。しかしこれは、電子
計算機本来の回路の他に別口路を用いて実行中アドレス
を読み出さなければ実現できない。またプログラムの分
割数と同数の比較回路を必要とするタメ、パーツナルコ
ンピュータの様に価格、大キさに制限がある場合とても
使用はできない。さらにプログラムが変更になった場合
には、先頭ポインタや終了ポインタが変更される事は必
須であるがその変更方法については配慮されていないな
どの欠点があった。
いデータ等のアドレスが命令であるかのようにアクセス
されて実行される場合と、ダイナミックルーズと呼ばれ
る永久的に復旧しないループにプログラムが迷い込む場
合に集約される。これらは、いずれの場合も実行中の命
令アドレスをチェックすることにより検出できる。この
種の従来の誤動作検出回路としては、特開昭52−87
886号に開示されたものがある。しかしこれは、電子
計算機本来の回路の他に別口路を用いて実行中アドレス
を読み出さなければ実現できない。またプログラムの分
割数と同数の比較回路を必要とするタメ、パーツナルコ
ンピュータの様に価格、大キさに制限がある場合とても
使用はできない。さらにプログラムが変更になった場合
には、先頭ポインタや終了ポインタが変更される事は必
須であるがその変更方法については配慮されていないな
どの欠点があった。
本発明の目的は、特別なハードウェアを必要とせず、任
意のプログラムに対して適用可能なプログラム暴走検出
方法を提供するにある。
意のプログラムに対して適用可能なプログラム暴走検出
方法を提供するにある。
本発明は、プログラムの実行前もしくは実行中にプログ
ラムの中で全ての先頭ポインタと終了ポインタを記憶装
置に登録し、さらに定期的に処理が実行できる割込処理
(例えばインターバルタイマーを用いた割込処理)に起
動をかける。そしてその割込処理の中で実行中アドレス
を読込み、そのアドレスが記憶装置に登録された先頭ポ
インタと終了ポインタとの間にあるか否かのチェックを
行い暴走を検出することを特徴とするものである。
ラムの中で全ての先頭ポインタと終了ポインタを記憶装
置に登録し、さらに定期的に処理が実行できる割込処理
(例えばインターバルタイマーを用いた割込処理)に起
動をかける。そしてその割込処理の中で実行中アドレス
を読込み、そのアドレスが記憶装置に登録された先頭ポ
インタと終了ポインタとの間にあるか否かのチェックを
行い暴走を検出することを特徴とするものである。
さらに割込処理において実行中アドレスを表示する事に
よってダイナミックルーズに入ったか否かを検出するよ
うにしたことを特徴とするものである。
よってダイナミックルーズに入ったか否かを検出するよ
うにしたことを特徴とするものである。
以下、本発明のパソコンにおける一実施例を第1図から
第4図を用い説明する。第4図は本発明を適用するため
のコンピュータシステム例を示すもので、中央処理装置
1.クロック発生回路2゜ROMa%RAM4、表示制
御回路5.CRT6.キーボード入力回路7%キーボー
ド8、補助記憶装置制御回路9.補助記憶装置(本実施
例ではフロッピーディスクとする)10から構成されて
いる。
第4図を用い説明する。第4図は本発明を適用するため
のコンピュータシステム例を示すもので、中央処理装置
1.クロック発生回路2゜ROMa%RAM4、表示制
御回路5.CRT6.キーボード入力回路7%キーボー
ド8、補助記憶装置制御回路9.補助記憶装置(本実施
例ではフロッピーディスクとする)10から構成されて
いる。
第1図はROM8及びRAM4の中の情報の配置例を示
すもので、ROM8の中には本発明の特徴とする割込処
理プログラム81が格納されておp、RAM4の中には
チェックされるべきプログラムエリア41とそのデータ
エリア42.及び先頭ポインタと終了ポインタの格納エ
リア48が配置されている。
すもので、ROM8の中には本発明の特徴とする割込処
理プログラム81が格納されておp、RAM4の中には
チェックされるべきプログラムエリア41とそのデータ
エリア42.及び先頭ポインタと終了ポインタの格納エ
リア48が配置されている。
以下で動作を説明する。フロッピーディスクlOに記録
されたチェックされるべきプログラムは。
されたチェックされるべきプログラムは。
オペレーティングシステムによってRAM4上のプログ
ラムエリア41にロードされると、その実行が始まる。
ラムエリア41にロードされると、その実行が始まる。
但しこの実行開始前に第2図の初期化処理が実行される
。即ちまず、RAMJ上のポインタ格納エリアにチェッ
クされるべきプログラムの先頭ポインタと終了ポインタ
全てを登録する(ステップ100ね次に割込処理を有効
にしくステップ101)本来の処理を開始する。この開
始後は。
。即ちまず、RAMJ上のポインタ格納エリアにチェッ
クされるべきプログラムの先頭ポインタと終了ポインタ
全てを登録する(ステップ100ね次に割込処理を有効
にしくステップ101)本来の処理を開始する。この開
始後は。
第3図に示す割込処理プログラム81が1周期的にタイ
マー割込によって起動される。そうするとまずステップ
110ではマイクロプロセッサは当核割込処理から戻る
時のために、現在実行中のアドレスもしくは次に実行す
べきアドレスをスタックと呼ばれるRAMJ上の記憶エ
リア(第1図では省略)にセットする。続いてステップ
111ではこのスタックにセットされている実行中アド
レスを読み出し、ステップ112では前述したダイナミ
ックルーズにプログラムが入っているかどうかをオペレ
ータがチェックできるように読み出した実行中アドレス
を表示制御回路5経由でCRT6に表示する。次にステ
ップttaでは実行中アドレスが前述した第2図の初期
化処理でポインタ格納エリア43に登録された先頭ポイ
ンタと終了ポインタの範囲内に入っているか否かをチェ
ックし、範囲内に入っている場合は割込処理を終了し。
マー割込によって起動される。そうするとまずステップ
110ではマイクロプロセッサは当核割込処理から戻る
時のために、現在実行中のアドレスもしくは次に実行す
べきアドレスをスタックと呼ばれるRAMJ上の記憶エ
リア(第1図では省略)にセットする。続いてステップ
111ではこのスタックにセットされている実行中アド
レスを読み出し、ステップ112では前述したダイナミ
ックルーズにプログラムが入っているかどうかをオペレ
ータがチェックできるように読み出した実行中アドレス
を表示制御回路5経由でCRT6に表示する。次にステ
ップttaでは実行中アドレスが前述した第2図の初期
化処理でポインタ格納エリア43に登録された先頭ポイ
ンタと終了ポインタの範囲内に入っているか否かをチェ
ックし、範囲内に入っている場合は割込処理を終了し。
ステップ114でスタックに記憶された実行中アドレス
を用いて割込処理に入る以前のプログラムの次のステッ
プに制御を戻し本来の処理を続行する。しかし、実行中
アドレスが範囲内に入っていない場合にはプログラムが
存在していないアドレス空間をプログラムは実行してい
る。つまシ暴走しているので暴走検出時の処理(これは
本発明には直接関係なく省略している)へ移る。なお、
チェックされるプログラムの先頭ポインタと終了ポイン
タは1組でなく複数組であってもよい。この場合はプロ
グラムが複数個に分割されておシ、その分割単位毎に先
頭と終了のポインタの組が与えられていて、この各組毎
にプログラムアドレスの範囲が指定され、ステップ11
4の判定はこのいずれかの範囲に実行中アドレスが入っ
て込るか否かをしらべるようにする。
を用いて割込処理に入る以前のプログラムの次のステッ
プに制御を戻し本来の処理を続行する。しかし、実行中
アドレスが範囲内に入っていない場合にはプログラムが
存在していないアドレス空間をプログラムは実行してい
る。つまシ暴走しているので暴走検出時の処理(これは
本発明には直接関係なく省略している)へ移る。なお、
チェックされるプログラムの先頭ポインタと終了ポイン
タは1組でなく複数組であってもよい。この場合はプロ
グラムが複数個に分割されておシ、その分割単位毎に先
頭と終了のポインタの組が与えられていて、この各組毎
にプログラムアドレスの範囲が指定され、ステップ11
4の判定はこのいずれかの範囲に実行中アドレスが入っ
て込るか否かをしらべるようにする。
以上説明したように本発明によれば、情報処理装置に暴
走検出用の特別な装置を付加する事なく。
走検出用の特別な装置を付加する事なく。
プログラムの追加及び変更だけで暴走検出ができるよう
になシ、プログラムの誤動作チェックに多大なる効果が
発揮できる。また、マルチタスク等のシステムにおいて
も各タスク毎に先頭ポインタと終了ポインタを必要数登
録し、オペレーティングシステムで割込処理を行う事に
よって本発明を実施できる事は明確である。
になシ、プログラムの誤動作チェックに多大なる効果が
発揮できる。また、マルチタスク等のシステムにおいて
も各タスク毎に先頭ポインタと終了ポインタを必要数登
録し、オペレーティングシステムで割込処理を行う事に
よって本発明を実施できる事は明確である。
第1図はROM及びRAMに格納されるプログラム及び
データの説明図、第2図はプログラム実行時の初期化処
理のフローチャート、第8図は本発明の特徴とする割込
処理のフローチャート、第4図はコンピュータシステム
の例を示すブロック図である。 1・・・マイクロプロセッサ、3・・・ROM、4・・
・RAM、6・・・CRT。 第 1 図 、9 茅2 図 ! (iP−東の処理た開畑寸り、う 第3121 $ 4 z
データの説明図、第2図はプログラム実行時の初期化処
理のフローチャート、第8図は本発明の特徴とする割込
処理のフローチャート、第4図はコンピュータシステム
の例を示すブロック図である。 1・・・マイクロプロセッサ、3・・・ROM、4・・
・RAM、6・・・CRT。 第 1 図 、9 茅2 図 ! (iP−東の処理た開畑寸り、う 第3121 $ 4 z
Claims (2)
- 1. 検出対象プログラムそのもの又は必要な場合には
分割した各々を単位プログラムとした時、各単位プログ
ラムの先頭アドレス及び最後尾アドレスをポインタ対と
して記憶手段に格納するとともに、周期的に起動される
割込処理プログラムによつて割込発生直前に実行されて
いた検出対象プログラム内の実行中アドレスが上記いず
れかのポインタ対の間にあるか否かをチエツクし、もし
いずれのポインタ対の間にもない時には検出対象プログ
ラムが暴走していると判定するようにしたことを特徴と
するプログラム暴走検出方法。 - 2. 前記実行中アドレスを表示手段に表示することに
よつて検出対象プログラムがダイナミツクループに入つ
ているか否かをオペレータが判断できるようにする機能
を前記割込処理プログラムに有せしめたことを特徴とす
る特許請求の範囲第1項記載のプログラム暴走検出方法
。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60136017A JPS61294555A (ja) | 1985-06-24 | 1985-06-24 | プログラム暴走検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60136017A JPS61294555A (ja) | 1985-06-24 | 1985-06-24 | プログラム暴走検出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS61294555A true JPS61294555A (ja) | 1986-12-25 |
Family
ID=15165234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60136017A Pending JPS61294555A (ja) | 1985-06-24 | 1985-06-24 | プログラム暴走検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61294555A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0251742A (ja) * | 1988-08-16 | 1990-02-21 | Nec Corp | プログラム暴走防止方式 |
JPH02132528A (ja) * | 1988-11-14 | 1990-05-22 | Nec Corp | 二重化処理装置におけるチェック方法 |
-
1985
- 1985-06-24 JP JP60136017A patent/JPS61294555A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0251742A (ja) * | 1988-08-16 | 1990-02-21 | Nec Corp | プログラム暴走防止方式 |
JPH02132528A (ja) * | 1988-11-14 | 1990-05-22 | Nec Corp | 二重化処理装置におけるチェック方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0530816A2 (en) | Microprocessor with cache memory and trace analyzer therefor | |
EP1125199B1 (en) | Method of debugging a program thread | |
JPS61294555A (ja) | プログラム暴走検出方法 | |
US6141635A (en) | Method of diagnosing faults in an emulated computer system via a heterogeneous diagnostic program | |
JP2760228B2 (ja) | キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ | |
JPH0283749A (ja) | マイクロプロセッサの内部割込み制御方式 | |
JPS60238948A (ja) | 計算機システムの処理時間測定装置 | |
JPH01145740A (ja) | マルチプロセス用エミユレータ | |
JPH074669Y2 (ja) | 割込要求処理回路 | |
JPH0258648B2 (ja) | ||
SU1485240A1 (ru) | Устройство расширения адресного пространства | |
JPH0778095A (ja) | プログラム異常原因解析装置 | |
JPS6146535A (ja) | 擬似エラ−設定制御方式 | |
JPH05173846A (ja) | 障害解析情報トレース方法 | |
JPS61213937A (ja) | 情報処理システムのトレ−ス方式 | |
JPS58189747A (ja) | 実行経緯表示装置 | |
JPH0341528A (ja) | 計算機における診断装置 | |
JPS61206052A (ja) | 情報処理装置 | |
JPS61141046A (ja) | デバツグ割込み制御方式 | |
JP2002055846A (ja) | 障害検出システムおよび障害検出方法 | |
JPS60193051A (ja) | エラ−解析装置 | |
JPH0375909B2 (ja) | ||
JPS63147236A (ja) | 情報処理装置 | |
JPH03139734A (ja) | 情報処理装置 | |
JPH0812561B2 (ja) | パルス間隔計測装置 |