JPH02293939A - スタックオーバーフロー検出時処理方式 - Google Patents

スタックオーバーフロー検出時処理方式

Info

Publication number
JPH02293939A
JPH02293939A JP1114406A JP11440689A JPH02293939A JP H02293939 A JPH02293939 A JP H02293939A JP 1114406 A JP1114406 A JP 1114406A JP 11440689 A JP11440689 A JP 11440689A JP H02293939 A JPH02293939 A JP H02293939A
Authority
JP
Japan
Prior art keywords
reset
stack
watchdog timer
stack overflow
software
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
JP1114406A
Other languages
English (en)
Inventor
Hajime Sugano
肇 菅野
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 JP1114406A priority Critical patent/JPH02293939A/ja
Publication of JPH02293939A publication Critical patent/JPH02293939A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 [概 要] スタックオーバーフローによるソフトウェア異常を回避
するためのスタックオーバーフロー検出時処理方式に関
し、 スタックオーバーフロー時に,確実にシステムリセット
をかけることができるようにして、ソフトウェアが異常
動作しつづけるのを防止できるようにすることを目的と
し、 ウォッチドッグタイマとウォッチドッグタイマリセット
部とディスパッチ処理部とを有し、ディスバッチ処理部
に、スタックサイズを監視することによりスタックオー
バーフローを検出するスタックオーバーフロー検出部を
そなえ、スタックオーバーフロー検出部によってスタッ
クオーバーフローを検出するとウォッチドッグタイマリ
セット部によるウォッチドッグタイマのリセット処理を
禁止するリセット処理禁止部を設けるように構成する。
[産業上の利用分野] 本発明は、スタックオーバーフローによるソフトウェア
異常を回避するためのスタックオーバーフロー検出時処
理方式に関する。
コンピュータシステムの高速化に伴い,メモリアクセス
の高速化が要求されている.このため、データを一時的
に格納し、必要に応じて取り出すスタック方式が使われ
ているが、スタック領域をオーバーした場合、データが
破壊されソフトウェアが異常動作をするおそれがあるの
で,スタックオーバーフローを監視する必要がある。
[従来の技術] 第5図はウォッチドッグタイマ方式の動作説明図である
が、この第5図において、右側のフローはウォッチドッ
グタイマの動作フロー、中央のフローはウォッチドッグ
タイマリセット部の動作フロー,左側のフローはプログ
ラム動作フローである。
かかるウォッチドッグタイマ方式では、ウォッチドッグ
タイマがカウントを開始すると(右側のフロー参照)、
プログラムが正常な場合は,この開始時から規定時間T
秒内にウォッチドッグタイマリセット部がウォッチドッ
グタイマをリセットすることにより(中央のフロー参照
)、ウォッチドッグタイマをタイムアップさせないよう
になっている. しかし、プログラム動作に異常が発生して、ソフトウェ
アが無限ループ処理等を行なうと(左側のフロー参照)
,ウォッチドッグタイマリセット処理ステップを通らな
い状態となって、これにより規定時間T秒が経過して,
ウォッチドッグタイマがタイムアップしてしまう。その
結果,システムリセットがかけられるため、ソフトウェ
アの異常が検出されるようになっている. ソフトウェアが異常動作しつづけるのを防止できるよう
にした,スタックオーバーフロー検出時処理方式を提供
することを目的とする。
[発明が解決しようとする課題] しかしながら、このような従来のウォッチドッグタイマ
方式では、スタックオーバーフローによるメモリ破壊が
原因で起こったソフトウェア動作異常に関し、ソフトウ
ェアが必ずしも無限ループに陥るとは限らない。このた
め、スタックオーバーフロー時において、ウォッチドッ
グタイマリセット処理ステップを通ることがあり,この
場合は、ウォッチドッグタイマがリセットされるため、
スタックオーバーフローを起こしている場合でも、シス
テムリセットをかけることができず、これによりソフト
ウェアが異常動作しつづけるおそれがあるという問題点
がある。
本発明は、このような問題点に鑑みてなされたもので、
スタックオーバーフロー時に、確実にシステムリセット
をかけることができるようにして、[課題を解決するた
めの手段] 第1図は本発明の原理ブロック図である。
この第1図において、1はウォッチドッグタイマで,こ
のウォッチドッグタイマ1は規定時間内にリセットされ
ないとシステムリセットを行なうものである. 2はウォッチドッグタイマリセット部で、このウォッチ
ドッグタイマリセット部2は規定時間内にウォッチドッ
グタイマ1のリセット処理を行なうものである。
3はディスパッチ処理部で、このディスバッチ処理部3
は、プログラム切り換え,ソフトウェア割り込み,ハー
ドウェア割り込み時に、CPUの使用権の切り換えを行
なうもので、このディスパッチ処理部3には、スタック
サイズ(予め定めたスタックの使用量)を監視すること
にょリスタックオーバーフローを検出するスタックオー
バーフロー検出部4が設けられている。
5はリセット処理禁止部で、このリセット処理禁止部5
は、スタックオーバーフロー検出部4によって、スタッ
クオーバーフローを検出すると、ウォッチドッグタイマ
リセット部2によるウォッチドッグタイマ1のリセット
処理を禁止するものである。
[作 用] 本発明のスタックオーバーフロー検出時処理方式では、
デイスパッチ時に,スタックの使用量(スタックサイズ
)を監視し、ディスパッチ処理部3のスタックオーバー
フロー検出部4で、現在のスタック使用量が所要のスタ
ックサイズをオーバーしていることが検出されると、リ
セット処理禁止部5によって、ウォッチドッグタイマリ
セット部2によるウォッチドッグタイマ1のリセット処
理を禁止することが行なわれる。
これにより、ウォッチドッグタイマ1が規定時間内にリ
セットされないため、システムリセットがかけられる。
[実施例] 以下、図面を参照して本発明の実施例を説明する。
第2図は本発明の一実施例を示すブロック図で、この第
2図において、1はウォッチドッグタイマで、このウォ
ッチドッグタイマ1は、規定時間T秒内にリセットされ
ないとシステムリセットを行なうもので、ハードウェア
で構成される。
2はウォッチドッグタイマリセット部で、このウォッチ
ドッグタイマリセット部2は、規定時間T秒内にウォッ
チドッグタイマ1のリセット処理を行なうもので、プロ
グラム領域に存在し、ソフトウエアで構成される.即ち
,プログラム中に、ウォッチドッグタイマリセットステ
ップが存在することにより、このステップを通ると、ウ
ォッチドッグタイマ1ヘタイマリセット信号が出される
ようになっているのである. また、このプログラム領域には、ディスパッチ処理部3
も存在する。このディスパッチ処理部3は、プログラム
切り換え(タスク切り換え),ソフトウェア割り込み、
ハードウェア割り込み時に、CPUの使用権の切り換え
を行なうもので,このディスパッチ処理部3には、スタ
ックオーバーフロー検出部4とソフトウェア異常発生部
6とが設けられている. ここで、スタックオーバーフロー検出部4は、スタック
サイズを監視することによりスタックオーバーフローを
検出するものである。
また,ソフトウエア異常発生部6は、スタックオーバー
フロー検出部4によって、スタックオーバーフローが検
出されると、プログラムにおける以降の処理を中断して
無限ループ状態にすることにより、擬似的にプログラム
異常を発生させて,ウォッチドッグタイマリセット部2
によるウォッチドッグタイマ1のリセット処理を禁止す
るものである。したがって、このソフトウェア異常発生
部6はリセット処理禁止部として機能する。
なお,データ領域に、スタック領域が存在し、このスタ
ック領域のサイズは予め定められている.また、スタッ
ク領域以外はその他のデータ領域である。
上述の構成により、第3図に基づき本方式による処理フ
ローを説明する. まず、ソフトウェア・ハードウェア割り込み・タスク切
り換え(プログラム切り換え)により,デイスパッチ処
理部3が起動される.このデイスパッチ処理部3のスタ
ックオーバーフロー検出部4では、起動時のスタック位
置(現在のスタック位W)とスタック領域の開始アドレ
スとを比較し、スタックサイズをオーバーしていないか
どうかをチェックする(ステップA1).なお,現在の
スタック位置,スタック領域の開始アドレスの位置関係
を模式的に示すと,第4図のようになる.もし、スタッ
クサイズをオーバーしていた場合は、スタックオーバー
フロー検出ということで、ソフトウェア異常発生部6の
作用により、以後の処理を中断し、無限ループ状態に移
行する(ステップA2).このようにして、デイスパッ
チ処理部3でループ状態に入ると、ウォッチドックタイ
マリセット部2で、規定時間T秒内にウォッチドッグタ
イマ1をリセットできなくなるため,ウォッチドッグタ
イマ1は規定時間T秒経過によるソフトウェア異常とみ
なして,異常処理(システムリセット処理)を行なう(
ステップA3,A4)。
一方,スタックサイズをオーバーしていない時は,通常
のディスパッチ処理を行なう。即ち、ソフトウェア割り
込み処理,ハードウェア割り込み処理あるいはプログラ
ム切り換え処理を行なってから(ステップA5) 、C
PU使用権の切り換えを行なうのである(ステップA6
). このように、スタックオーバーフロー検出時においては
.I1似的にソフトウェア異常(無限ループ)を発生さ
せるようにし、ウォッチドッグタイマ1が規定時間T秒
内にリセットされないようにしているので,スタックオ
ーバーフローの場合にも、ウォッチドッグタイマ1によ
り、ソフトウェア異常が検出可能となり、これによりソ
フトウェアが異常動作しつづけることを確実に防止でき
るものである。
[発明の効果] 以上詳述したように、本発明のスタックオーバーフロー
検出時処理方式によれば,スタックオーバーフローを検
出した場合は,ウォッチドッグタイマリセット部による
ウォッチドッグタイマのリセット処理を禁止することが
行なわれるので、ウォッチドッグタイマにソフトウエア
異常を検出させることが可能となり、これによりソフト
ウェアが異常動作しつづけるのを確実に防止できる利点
がある。
【図面の簡単な説明】
第1図は本発明の原理ブロック図、 第2図は本発明の一実施例を示すブロック図、第3図は
本発明の一実施例の処理フローを示す図、 第4図は現在のスタック位置,スタック領域の開始アド
レスの位置関係を模式的に示す図,第5図はウォッチド
ッグタイマ方式を説明する図である. 図において, 1はウォッチドッグタイマ部、 2はウォッチドッグタイマリセット部、3はディスパッ
チ処理部、 4はスタックオーバーフロー検出部、 5はリセット処理禁止部, 6はソフトウェア異常発生部(リセット処理禁止部)で
ある.

Claims (1)

  1. 【特許請求の範囲】 規定時間内にリセットされないとシステムリセットを行
    なうウォッチドッグタイマ(1)と、該規定時間内に該
    ウォッチドッグタイマ(1)のリセット処理を行なうウ
    ォッチドッグタイマリセット部(2)と、 プログラム切り換え、ソフトウェア割り込み、ハードウ
    ェア割り込み時に、CPUの使用権の切り換えを行なう
    ディスパッチ処理部(3)とを有し、該ディスパッチ処
    理部(3)に、スタックサイズを監視することによりス
    タックオーバーフローを検出するスタックオーバーフロ
    ー検出部(4)をそなえ、 該スタックオーバーフロー検出部(4)によって、スタ
    ックオーバーフローを検出すると、該ウォッチドッグタ
    イマリセット部(2)による該ウォッチドッグタイマ(
    1)のリセット処理を禁止するリセット処理禁止部(5
    )が設けられたことを 特徴とする、スタックオーバーフロー検出時処理方式。
JP1114406A 1989-05-08 1989-05-08 スタックオーバーフロー検出時処理方式 Pending JPH02293939A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1114406A JPH02293939A (ja) 1989-05-08 1989-05-08 スタックオーバーフロー検出時処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1114406A JPH02293939A (ja) 1989-05-08 1989-05-08 スタックオーバーフロー検出時処理方式

Publications (1)

Publication Number Publication Date
JPH02293939A true JPH02293939A (ja) 1990-12-05

Family

ID=14636887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1114406A Pending JPH02293939A (ja) 1989-05-08 1989-05-08 スタックオーバーフロー検出時処理方式

Country Status (1)

Country Link
JP (1) JPH02293939A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114698A (ja) * 1995-10-16 1997-05-02 Nec Corp プログラム開発装置
WO2006030036A1 (es) * 2004-08-10 2006-03-23 Microelectronica Española, S.A.U Unidad de procesado y método de gestión de memoria en sistemas de procesado con recursos limitados
JP2009223617A (ja) * 2008-03-17 2009-10-01 Kyocera Mita Corp Cpu暴走監視回路、cpu暴走監視システム及び画像形成装置
JP2009301259A (ja) * 2008-06-12 2009-12-24 Fujitsu Microelectronics Ltd 情報処理システム、スタックオーバーフローの発生検出方法及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114698A (ja) * 1995-10-16 1997-05-02 Nec Corp プログラム開発装置
WO2006030036A1 (es) * 2004-08-10 2006-03-23 Microelectronica Española, S.A.U Unidad de procesado y método de gestión de memoria en sistemas de procesado con recursos limitados
US8285938B2 (en) 2004-08-10 2012-10-09 Sandisk Il Ltd. Processing unit and method of memory management in processing systems with limited resources
JP2009223617A (ja) * 2008-03-17 2009-10-01 Kyocera Mita Corp Cpu暴走監視回路、cpu暴走監視システム及び画像形成装置
JP2009301259A (ja) * 2008-06-12 2009-12-24 Fujitsu Microelectronics Ltd 情報処理システム、スタックオーバーフローの発生検出方法及びプログラム

Similar Documents

Publication Publication Date Title
US6434591B1 (en) Thread control system and method in a computer system
JP5705258B2 (ja) マイクロコンピュータ及びその動作方法
JPS62157953A (ja) 異常検知機能を備えたマイクロコンピユ−タ
JPH02293939A (ja) スタックオーバーフロー検出時処理方式
JPH09198258A (ja) タスクスタックオーバーフロー検出回路
JP2870250B2 (ja) マイクロプロセッサの暴走監視装置
JP2019020869A (ja) 車両制御装置
JP2659067B2 (ja) マイクロコンピュータのリセット回路
JPH0540668A (ja) プログラム暴走防止方式
JPH05233374A (ja) ウオッチドッグタイマ装置
JPH0844629A (ja) メモリアクセス異常監視装置
JPS6389941A (ja) マイクロプロセツサ応用機器の監視制御装置
JPH04236637A (ja) マイクロプロセッサ障害検出回路
JPH04148246A (ja) ウオツチドツグタイマ
JPH03204739A (ja) マイクロコンピュータ
JPH06250864A (ja) プログラマブルコントローラの誤出力防止方法
JPH0477935A (ja) 故障検出回路
JPH04195437A (ja) プログラム暴走監視装置
JPS6155751A (ja) 中央制御装置
JPH0293738A (ja) 割込み処理方式
JPH0469744A (ja) マイクロコンピュータの暴走検知装置
JPH06131218A (ja) Cpu制御方式
JPH01154258A (ja) ウォッチドッグタイマによる誤動作検出装置
JPH04367012A (ja) 計算機の温度異常制御装置
JPS58184667A (ja) 情報処理装置