JPH04182836A - Unspecific value reference and detection system for program - Google Patents

Unspecific value reference and detection system for program

Info

Publication number
JPH04182836A
JPH04182836A JP2313354A JP31335490A JPH04182836A JP H04182836 A JPH04182836 A JP H04182836A JP 2313354 A JP2313354 A JP 2313354A JP 31335490 A JP31335490 A JP 31335490A JP H04182836 A JPH04182836 A JP H04182836A
Authority
JP
Japan
Prior art keywords
program
data
stack area
area
stack
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.)
Granted
Application number
JP2313354A
Other languages
Japanese (ja)
Other versions
JP2926152B2 (en
Inventor
Hajime Fujimoto
肇 藤本
Keiji Kuwabara
啓二 桑原
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
Hitachi Information and Control Systems Inc
Original Assignee
Hitachi Ltd
Hitachi Process Computer Engineering Inc
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, Hitachi Process Computer Engineering Inc filed Critical Hitachi Ltd
Priority to JP2313354A priority Critical patent/JP2926152B2/en
Publication of JPH04182836A publication Critical patent/JPH04182836A/en
Application granted granted Critical
Publication of JP2926152B2 publication Critical patent/JP2926152B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE:To speedily and surely analyze a program trouble place by reporting the trouble in the unspecific value reference of a program as a program error. CONSTITUTION:When the program 105 runs, a work area 110 is assigned on a memory 100. The area 110 is initialized in specific pattern and every time the program 105 make a reference 115 to data in the area 110, a check (125) on whether the reference data are still initialized data or not is made. When the program 105 is normal, the data are set in the area 110 and then arithmetic, etc., is performed by referring to the data, so the reference data become different from the initialized data and the result of the check 125 indicates a discrepancy. If the program 105 has abnormality and refers to the area 110 without setting the data in the area 110, the initialized data are referred to, so the result of the check 125 coincides. In this case, an unspecific value reference is therefore judged and after the error is reported, the processing of the program 105 is stopped.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、計算機システムに係り、特にプログラムが使
用するワークエリアの不定値参照の不具合を検出するに
好適なプログラムの不定値参照検出方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a computer system, and more particularly to an indefinite value reference detection method for a program suitable for detecting a defect in an indefinite value reference in a work area used by a program. .

〔従来の技術〕[Conventional technology]

従来のプログラムの不定値参照検出方式の例としてスタ
ック初期化方式においては、以下の文献に記載のように
、スタックエリアとして新たにメモリを確保した時のみ
初期化としてゼロクリアする方式が知られており、プレ
ンティス/ホールインタナショナル ザ デザイン オ
ブ ザ ユニックス オペレーティング システム、モ
ウリス ジェ バッハ(1986年)第298頁〜第3
03頁(Prentice/Hall Interna
tional、THEDESIGIN OF THE 
UNIX 0PERATING SYSTEM、Mau
riceJ、Bach(1986)PP298−303
)  (U N I Xは、米国ベル研究所のオペレー
ティング・システムの略称)が参照される。
As an example of a conventional program undefined value reference detection method, in the stack initialization method, as described in the following literature, there is a known method in which the memory is cleared to zero as initialization only when new memory is allocated as the stack area. , Prentice/Hall International The Design of the Unix Operating System, Maurice Gerbach (1986), pp. 298-3.
Page 03 (Prentice/Hall International
tional, THE DESIGN OF THE
UNIX 0PERATING SYSTEM, Mau
riceJ, Bach (1986) PP298-303
) (UNIX is an abbreviation for the operating system of Bell Laboratories, USA).

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

従来のプログラムの不定値参照検出方式にあっては、ユ
ーザのスタックエリアは、スタック拡張により新たにメ
モリが割り当てられたタイミングでしか初期化されなか
った。しかし、スタックエリアはサブルーチンごとに確
保しては解放するということを繰り返すため、メモリが
割り当てられたタイミングで初期化するだけでは、最初
に処理するサブルーチンのスタックエリアは初期化され
ているものの、2番目以降のサブルーチンは前のサブル
ーチンで使用した残骸がスタックエリアとして割り当て
られるため、サブルーチン内にスタックの不定値参照す
る箇所があった場合、前のサブルーチンの動作結果によ
り、不具合が表面化したりしなかったりする。その結果
、テスト段階で検出できず、実運用に入ってから不具合
が発覚し、システム上の大きな事故となるケースが多か
った。
In the conventional program indeterminate value reference detection method, the user's stack area is initialized only when new memory is allocated due to stack expansion. However, the stack area is repeatedly allocated and released for each subroutine, so if you only initialize it when memory is allocated, the stack area of the first subroutine to be processed will be initialized, but the second Since the remaining subroutine used in the previous subroutine is allocated as a stack area for subroutines after the th subroutine, if there is a part in the subroutine that refers to an undefined value on the stack, the problem will not surface due to the operation result of the previous subroutine. or As a result, there were many cases where problems could not be detected during the testing stage and were only discovered after actual operation began, resulting in major system failures.

本発明の目的は、不定値参照の不具合をテスト段階で早
期かつ確実に検出することのできるプログラムの不定値
参照検出方式を提供することにある。
SUMMARY OF THE INVENTION An object of the present invention is to provide an indefinite value reference detection method for a program that can quickly and reliably detect defects due to indefinite value references at the testing stage.

〔課題を解決するための手段〕[Means to solve the problem]

前記の目的を達成するため、本発明に係るプログラムの
不定値参照検出方式は、計算システムのCPU又はOS
にチェック機構を設け、プログラムで使用するワークエ
リアを、メモリに確保するとともに予め特定パターンで
初期化しておき、ワークエリアを参照するごとに参照デ
ータと初期化データとをチェック機構により比較し、そ
れぞれのデータが一致した際にプログラムを不定値参照
と見なす構成とする。
In order to achieve the above object, an indefinite value reference detection method for a program according to the present invention is implemented by a CPU or an OS of a computing system.
A check mechanism is provided in the program, the work area used in the program is secured in memory and initialized in advance with a specific pattern, and each time the work area is referenced, the reference data and initialized data are compared by the check mechanism, and each The program is configured to treat the program as an undefined value reference when the data match.

そしてチェック機構に、不定値参照の際はエラー報告を
させた後、プログラムの処理を停止させる構成でもよい
The checking mechanism may be configured to report an error when an undefined value is referenced, and then stop the program processing.

また計算システムのCPU又はOSにチェック機構を設
け、プログラムで使用するスタックエリアを、主メモリ
に確保したタイミングで特定パターンにより初期化する
とともに、使用したスタックエリアを解放するタイミン
グで初期化し、常にスタックエリアを初期化状態に維持
する構成である。
In addition, a check mechanism is installed in the CPU or OS of the computing system, and the stack area used by the program is initialized with a specific pattern when it is secured in main memory, and when the used stack area is released, so that the stack area is always stacked. This configuration maintains the area in an initialized state.

〔作用〕[Effect]

本発明のプログラムの不定値参照検出方式によれば、ユ
ーザプログラムのすべてのサブルーチンでスタックエリ
アを使用する前に、常にスタックエリアを特定パターン
で初期化されている状態にしておき、スタックエリアを
参照する際、そのデータパターンをチェックする機構を
付加することにより、サブルーチン内で誤ってデータを
セットせずにスタックエリアを参照し処理した場合、プ
ログラムエラーを発生させ、不定値参照の不具合が摘出
される。したがって、ユーザプログラムを変更すること
なく、外部からの設定により初期化及びチェックの実施
有無が指定できることにより、オンラインでは使用せず
テスト段階にのみ使用するということが容易となる。
According to the program indefinite value reference detection method of the present invention, before using the stack area in any subroutine of the user program, the stack area is always initialized with a specific pattern, and the stack area is referenced. By adding a mechanism to check the data pattern when processing data, if a subroutine accidentally refers to the stack area without setting data and processes it, a program error will occur and the problem of referencing an unspecified value will be eliminated. Ru. Therefore, without changing the user program, it is possible to designate whether or not initialization and checking should be performed through external settings, making it easy to use the system only in the testing stage without using it online.

〔実施例〕〔Example〕

本発明の一実施例を第1図及び第2図を参照しながら説
明する。
An embodiment of the present invention will be described with reference to FIGS. 1 and 2.

第1図及び第2図に示すように、プログラム105が作
動する時は、論理空間(メモリ)100上にワークエリ
ア110が割り当てられる。このワークエリア110を
予め特定パターンで初期化しておき、プログラム105
がワークエリア110内のデータを参照115するごと
に、その参照データが初期化データのままであるか、つ
まり一度も設定していない参照データを参照していない
かをチェック(125)するものである。
As shown in FIGS. 1 and 2, when the program 105 operates, a work area 110 is allocated on the logical space (memory) 100. This work area 110 is initialized in advance with a specific pattern, and the program 105
Each time the reference data in the work area 110 is referenced 115, it is checked (125) whether the reference data remains initialized data, that is, whether reference data that has never been set is referenced. be.

プログラム105が正常であれば、ワークエリア110
にデータを設定した後に、データを参照し、演算等を行
うため、参照データは初期化データと異なり、チェック
125の比較結果は(参照データ)≠(初期化データ)
となる。
If the program 105 is normal, the work area 110
Since data is referenced and calculations are performed after data is set in , reference data is different from initialized data, and the comparison result of check 125 is (reference data) ≠ (initialized data)
becomes.

ところが、プログラム105に不具合があり、ワークエ
リアにデータを設定しないで参照した場合、初期化デー
タを参照することになり、チェック]−25の比較結果
は(参照データ)=(初期化データ)となる。
However, if there is a problem with the program 105 and the data is referenced without setting it in the work area, the initialized data will be referenced, and the comparison result of check]-25 will be (reference data) = (initialized data). Become.

したがって、(参照データ)≠(初期化データ)の場合
は、正常処理としてプログラム105の処理を継続する
。(参照データ)=(初期化データ)の場合は、不定値
参照とみなし、エラー報告をした後、プログラム105
の処理を停止させる。
Therefore, if (reference data)≠(initialization data), the processing of the program 105 is continued as normal processing. If (reference data) = (initialization data), it is regarded as an undefined value reference, and after reporting an error, the program 105
stop processing.

これにより、不定値参照の不具合を確実に検出すること
ができる。以下、本発明の詳細な実現方法について説明
する。
This makes it possible to reliably detect the problem of referencing an indefinite value. A detailed implementation method of the present invention will be described below.

まず、プログラムのワークエリアとしてスタックを有す
る計算機システムにおいて、そのスタックの初期化方式
について説明する。
First, a method for initializing the stack in a computer system having a stack as a program work area will be described.

まず、第3図を参照しながらスタックの機構について説
明する。
First, the stack mechanism will be explained with reference to FIG.

プログラム200は、サブルーチンAをコールすると(
205)−サブル−チンA220は自サブルーチンで使
用するスタックエリアを主メモリ300に確保する(2
21)。スタックエリアが確保されると、第4図の■に
示すように、確保した領域分だけスタックポインタ(以
下SPと略す)と呼ばれるスタックエリアの上限を示す
ポインタが移動する(240)。
When the program 200 calls subroutine A (
205) - Subroutine A 220 reserves a stack area to be used by its own subroutine in main memory 300 (2
21). When the stack area is secured, a pointer indicating the upper limit of the stack area, called a stack pointer (hereinafter abbreviated as SP), moves by the secured area (240), as shown in (2) in FIG.

サブルーチンA220は、確保したスタックエリアをワ
ークエリアとして使用しく222)、処理終了時にスタ
ックエリア殻解放する(223)。
The subroutine A220 uses the secured stack area as a work area (222), and releases the stack area shell at the end of processing (223).

スタックエリアが解放されると、■に示すようにSPは
、確保前の状態に戻される(250)ものの、使用して
いたスタックエリアのデータ自体(残骸)はそのまま残
される。
When the stack area is released, as shown in (2), the SP is returned to the state before it was secured (250), but the data itself (remains) of the stack area that was being used remains as is.

続いてプログラム200はサブルーチンBをコールする
(210)と、サブルーチンB230は自サブルーチン
で使用するスタックエリアを確保する(231.)。ス
タックエリアを確保すると、■に示すようにSPが確保
した領域分移動する(260)だけで、スタックエリア
自体はサブル−チンAで使用したエリアが割り当てられ
る。
Subsequently, the program 200 calls subroutine B (210), and subroutine B 230 secures a stack area for use in its own subroutine (231). Once the stack area is secured, the SP simply moves by the secured area (260) as shown in (2), and the area used in subroutine A is allocated to the stack area itself.

サブルーチンB230は、確保し、たスタックエリアに
データをセットしく232)、そのデータを元に演算を
行い(233)、処理していくが、ここでもし、サブル
ーチンB230に不具合があり、スタックエリアにデー
タをセットするという処理(232)が洩れているとサ
ブルーチンAで使用した残骸のデータに基づいて処理す
ることになり、その参照データの値により、この不具合
が表面化したりしなかったりする。
The subroutine B230 sets data in the secured stack area (232), performs calculations based on that data (233), and processes it. However, if there is a problem in the subroutine B230 and the stack area is If the process of setting data (232) is omitted, processing will be performed based on the residual data used in subroutine A, and this problem may or may not surface depending on the value of the reference data.

この様なスタックの機構上の問題点を解決するため、サ
ブルーチンがスタックエリアを使用する時には、常に特
定パターンで初期化しておくことが有効である。
To solve such stack mechanical problems, it is effective to always initialize the stack area with a specific pattern when a subroutine uses the stack area.

次にこのスタックの初期化タイミングについて第5図及
び第6図を参照しながら説明する。
Next, the initialization timing of this stack will be explained with reference to FIGS. 5 and 6.

スタックエリアの確保において、■に示すように5P3
01がページ境界302を越えた場合、5P301が示
すベージ詮メモリ300上に確保するが、このタイミン
グで新たに確保したページ及びスタックエリア(304
)を特定パターンで初期化する。
In securing the stack area, 5P3 as shown in ■
01 exceeds the page boundary 302, the page is secured on the page memory 300 indicated by 5P301, but at this timing, the newly secured page and stack area (304
) with a specific pattern.

サブルーチンがスタックエリアを使用してぃくと、■に
示すように新たに確保したページのうち使用Iノでいな
い部分のスタックエリア(306)は、初期化されたま
まの状態であるが、使用した部分のスタックエリア(3
04)は使用した残骸、つまり不特定パターンどなる。
When the subroutine uses the stack area, the stack area (306) of the newly allocated page that is not in use remains initialized, but is not used. Stack area (3
04) is the leftovers that were used, that is, an unspecified pattern.

そこで、■に示すようにスタックエリアを解放する際、
5P301をスタックエリア確保前のアドレスに戻すだ
けでなく、ザブルーチンで使用したスタックエリア(3
04)を特定パターンで初期化する。
Therefore, when releasing the stack area as shown in ■,
In addition to returning 5P301 to the address before securing the stack area, it also returns the stack area (3
04) with a specific pattern.

これにより、■に示すように次のサブルーチンがスタッ
クエリア307を確保する際、す入で初期化されたスタ
ックエリアが割り当てられる。
As a result, when the next subroutine allocates the stack area 307 as shown in (2), the stack area initialized at the beginning is allocated.

ここで、確保したスタックエリア以外(同一ページのす
べての範囲)も初期化しておくことは、サブルーチンで
誤って確保したスタックエリア以外を参照する(308
)という不具合の検出に有効である。
Here, initializing the stack area other than the allocated stack area (all ranges on the same page) means referencing the stack area other than the allocated stack area by mistake in the subroutine (308
) is effective in detecting defects.

このようにスタックエリアとして新たにページを確保す
るタイミング及びスタックエリアを解放するタイミング
で初期化することによって、サブルーチンがスタックエ
リアを確保する際に、常に特定パターンで初期化された
スタックエリアが割り当てられることになる。
In this way, by initializing when a new page is allocated as a stack area and when the stack area is released, a stack area that is initialized with a specific pattern is always allocated when a subroutine allocates a stack area. It turns out.

次にこのスタックエリアの初期化処理について第7@、
第8図を参照しながら説明する。
Next, regarding the initialization process of this stack area, Part 7 @,
This will be explained with reference to FIG.

第7図は、スタックエリアとして新たにページを確保し
たタイミングにおける初期化処理を示している。従来の
主メモリ確保処理401の後、不定値参照チェック指定
の有無を判定しく402)1、もし指定なしの場合は、
従来処理通り、確保したスタックエリアをゼロクリアす
る(404)。
FIG. 7 shows the initialization process at the timing when a new page is secured as a stack area. After conventional main memory allocation processing 401, it is determined whether or not indefinite value reference check is specified (402) 1. If not specified,
As in conventional processing, the secured stack area is cleared to zero (404).

指定ありの場合は、特定パターンで初期化する(403
)。
If specified, initialize with a specific pattern (403
).

第8図は、スタックエリアを解放するタイミングでの初
期化処理方法を示している。
FIG. 8 shows an initialization processing method at the timing of releasing the stack area.

サブルーチン500は、スタック解放命令501で始ま
り、スタック解放命令502で終わる。
Subroutine 500 begins with stack free instruction 501 and ends with stack free instruction 502.

そこで、このスタック解放命令を予め例外発生命令に置
き換えておく (503)。サブルーチン50oがスタ
ック解放命令の代りに例外発生命令を実行すると、OS
の例外処理505ヘリンクする。
Therefore, this stack release instruction is replaced in advance with an exception generation instruction (503). When the subroutine 50o executes an exception generation instruction instead of a stack release instruction, the OS
Link to exception handling 505.

例外処理505では、ユーザのサブルーチンへの戻りア
ドレスをスタック初期化プログラムのアドレスに変更す
る(506)。これにより、ユーザがプログラムに戻る
(507)。これにより、ユーザプログラムに戻る(5
07)際、例外発生命令に戻るところが、スタック初期
化プログラム510ヘリンクすることになる。
In exception handling 505, the return address to the user's subroutine is changed to the address of the stack initialization program (506). This returns the user to the program (507). This returns you to the user program (5
07), the return to the exception generating instruction is linked to the stack initialization program 510.

スタック初期化プログラム510では、サブルーチンが
使用していたスタックエリアを初期化した(511)後
、スタック解放命令を実行しく512)、サブルーチン
へ戻る(513)。
The stack initialization program 510 initializes the stack area used by the subroutine (511), executes a stack release instruction (512), and returns to the subroutine (513).

このようにして、ユーザのサブルーチンでは、意識せず
に、サブルーチンがあたかもスタック解放時に使用した
スタックエリアを初期化したかのようにみせることがで
きる。
In this way, the user's subroutine can unconsciously make it appear as if the subroutine had initialized the stack area used when the stack was released.

OSの例外処理505の中で、スタックエリアの初期化
を直接行わないのは、スタックエリアがユーザ用とOS
用とで領域が別けられており、SPが別々に割り当てら
れている計算機システムにおいては、スタック解放命令
をそれぞれのプログラムで実行する必要があることを考
慮したためである。
The reason why the stack area is not directly initialized in the OS exception handling 505 is that the stack area is for the user and for the OS.
This is because in a computer system where areas are separated for use and SP is allocated separately, it is necessary to execute a stack release instruction in each program.

次に、不定値参照のチェック機構について第9図、第1
0図を参照しながら説明する。
Next, we will explain the checking mechanism for indefinite value references in Figures 9 and 1.
This will be explained with reference to Figure 0.

第9図は、CPUにチェック機構を設けた場合の実施例
を示している。
FIG. 9 shows an embodiment in which a check mechanism is provided in the CPU.

プログラムが命令語を実行し、主メモリ601及びキャ
ッシュメモリを参照する場合、その参照データは、デー
タライン603を通してBPU610に送られる。
When a program executes an instruction and references main memory 601 and cache memory, the reference data is sent to BPU 610 through data line 603.

そこで、このデータラインから参照データを横取りし、
予め外部より設定しておいたチェックパターン(初期化
データと同値)604とを比較器605によりチェック
し、さらに不定値参照のチェック有無を示すチェックフ
ラグ606と参照アドレスがスタックエリアかの有無の
結果607とをAND回路608によりチェックする。
Therefore, we intercepted the reference data from this data line,
A comparator 605 checks a check pattern (same value as initialization data) 604 that has been set externally in advance, and also checks a check flag 606 that indicates whether or not undefined value reference is checked and the result of whether or not the reference address is a stack area. 607 and is checked by an AND circuit 608.

もし、すべてが満たされる場合は不定値参照とみなし、
BPU610に対して、例外を発生させる(609)。
If all are satisfied, it is considered an indefinite value reference,
An exception is generated in the BPU 610 (609).

この例外発生により、システムは不定値参照があったこ
とを認識し、エラー報告する。
When this exception occurs, the system recognizes that there is an undefined value reference and reports an error.

本実施例はハードウェアでチェック機構を実現したもの
であるが51命令実行ごとにシステムプログラムにリン
クさせることのできる計算機システムでは、ソフトウェ
アにおいても実現可能である。
In this embodiment, the check mechanism is implemented in hardware, but it can also be implemented in software in a computer system that can be linked to a system program every 51 instructions.

以下、第10図を参照しながらその実現方法を説明する
。プログラム700が一命令実行ごとに(701)、不
定値参照チェック処理7jOを実行する。不定値参照チ
ェック処理では、まずチェック要否を判定しく711)
、次に命令語を解釈しメモリを参照する命令語であるか
を判定(712)し、参照アドレスがスタックアドレス
かどうかを判定(713)L、最後に参照データが初期
化データと同一であるかを判定する(714)。
Hereinafter, a method for realizing this will be explained with reference to FIG. Each time the program 700 executes one instruction (701), it executes the indefinite value reference check process 7jO. In the indefinite value reference check process, it is first necessary to determine whether or not the check is necessary (711).
, Next, interpret the instruction word and determine whether it is an instruction word that refers to memory (712), and determine whether the reference address is a stack address (713) L. Finally, the reference data is the same as the initialization data. (714).

これらの判定がすべて満たされた場合、不定値参照とみ
なしエラー報告する(715)。前記判定の一つでも満
たされない場合は、プログラム7゜Oに戻り、次の命令
語を繰り返し実行する(702)。
If all of these determinations are satisfied, it is considered an undefined value reference and an error is reported (715). If even one of the above judgments is not satisfied, the program returns to 7°O and repeatedly executes the next command (702).

〔発明の効果〕〔Effect of the invention〕

本発明のプログラムの不定値参照検出方式によれば、プ
ログラムの不定値参照の不具合をプログラムエラーとし
て報告することができるため、プログラムの不具合箇所
の解析が迅速かつ確実に行えるという効果がある。
According to the program indefinite value reference detection method of the present invention, it is possible to report a malfunction due to an indefinite value reference in a program as a program error, so that there is an effect that a malfunction part of a program can be quickly and reliably analyzed.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図及び第2図は本発明の一実施例を示す構成図、第
3図は及び第4図はスタックの機構を説明する図、第5
図及び第6図はスタックエリアの初期化タイミング説明
する図、第7図はスタックエリアの初期化処理を説明す
る図、第8図はスタック解放時の初期化処理を説明する
図、第9図はハードウェアにおけるチェック機構を説明
する図、第10図はソフトウェアにおけるチェック機構
を説明する図である。 100・・理論空間(メモリ)、 110・・・ワークエリア、 120・・・チェック機構。
1 and 2 are configuration diagrams showing one embodiment of the present invention, FIGS. 3 and 4 are diagrams explaining the stack mechanism, and FIG.
Figure 6 is a diagram explaining the initialization timing of the stack area, Figure 7 is a diagram explaining the initialization process of the stack area, Figure 8 is a diagram explaining the initialization process when releasing the stack, and Figure 9 is a diagram explaining the initialization process of the stack area. 10 is a diagram explaining a check mechanism in hardware, and FIG. 10 is a diagram explaining a check mechanism in software. 100...Theoretical space (memory), 110...Work area, 120...Check mechanism.

Claims (1)

【特許請求の範囲】 1、計算システムのCPU又はOSににチェック機構を
設け、プログラムで使用するワークエリアを、メモリに
確保するとともに予め特定パターンで初期化しておき、
前記ワークエリアを参照するごとに参照データと初期化
データとを前記チェック機構により比較し、それぞれの
データが一致した際に前記プログラムを不定値参照と見
なすことを特徴とするプログラムの不定値参照検出方式
。 2、チェック機構に、不定値参照の際はエラー報告をさ
せた後、プログラムの処理を停止させることを特徴とす
る請求項1記載のプログラムの不定値参照検出方式。 3、計算システムのCPU又はOSにチェック機構を設
け、プログラムで使用するスタックエリアを、主メモリ
に確保したタイミングで特定パターンにより初期化する
とともに、使用した前記スタックエリアを開放するタイ
ミングで初期化し、常に前記スタックエリアを初期化状
態に維持することを特徴とするプログラムの不定値参照
検出方式。
[Claims] 1. A check mechanism is provided in the CPU or OS of the computing system, and a work area used by the program is secured in memory and initialized in advance with a specific pattern,
An indefinite value reference detection of a program, characterized in that each time the work area is referenced, the reference data and the initialization data are compared by the checking mechanism, and when the respective data match, the program is regarded as an indefinite value reference. method. 2. The method for detecting an indefinite value reference in a program according to claim 1, wherein the check mechanism is caused to report an error when an indefinite value is referenced, and then halts program processing. 3. Provide a check mechanism in the CPU or OS of the computing system, initialize the stack area used by the program according to a specific pattern at the timing when it is secured in the main memory, and initialize it at the timing when the used stack area is released, An indefinite value reference detection method for a program, characterized in that the stack area is always maintained in an initialized state.
JP2313354A 1990-11-19 1990-11-19 Indefinite value reference detection method of program Expired - Lifetime JP2926152B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2313354A JP2926152B2 (en) 1990-11-19 1990-11-19 Indefinite value reference detection method of program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2313354A JP2926152B2 (en) 1990-11-19 1990-11-19 Indefinite value reference detection method of program

Publications (2)

Publication Number Publication Date
JPH04182836A true JPH04182836A (en) 1992-06-30
JP2926152B2 JP2926152B2 (en) 1999-07-28

Family

ID=18040246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2313354A Expired - Lifetime JP2926152B2 (en) 1990-11-19 1990-11-19 Indefinite value reference detection method of program

Country Status (1)

Country Link
JP (1) JP2926152B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132528A (en) * 2000-10-26 2002-05-10 Nec Corp Microcomputer and initializing method of free memory area/stack release area
JP2009282712A (en) * 2008-05-21 2009-12-03 Kyocera Mita Corp Operation control program, operation control method, operation control system and image forming apparatus
JP2016537730A (en) * 2013-11-22 2016-12-01 アルカテル−ルーセント Detecting read access to unallocated or uninitialized memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5474650A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS6220192A (en) * 1985-07-18 1987-01-28 Fujitsu Ltd Stack controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5474650A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS6220192A (en) * 1985-07-18 1987-01-28 Fujitsu Ltd Stack controller

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132528A (en) * 2000-10-26 2002-05-10 Nec Corp Microcomputer and initializing method of free memory area/stack release area
JP2009282712A (en) * 2008-05-21 2009-12-03 Kyocera Mita Corp Operation control program, operation control method, operation control system and image forming apparatus
JP2016537730A (en) * 2013-11-22 2016-12-01 アルカテル−ルーセント Detecting read access to unallocated or uninitialized memory

Also Published As

Publication number Publication date
JP2926152B2 (en) 1999-07-28

Similar Documents

Publication Publication Date Title
US7404105B2 (en) High availability multi-processor system
JP2618070B2 (en) Data processing system
JP2618073B2 (en) Data processing method and system
US5386565A (en) Method and system for controlling/monitoring computer system having plural operating systems to run thereon
US7712084B2 (en) Method for monitoring a program execution using a debug logic
EP0505706B1 (en) Alternate processor continuation of the task of a failed processor
JP2618071B2 (en) Data processing system
US8392762B2 (en) System and method for detection and prevention of flash corruption
JPH02135536A (en) Check point retrial mechanism
US5528750A (en) Method/apparatus for recovering from a process within the system kernel without creating a recovery environment
JPH02502764A (en) Multiprocessing methods and configurations
CN100538644C (en) The method of computer program, computing equipment
Sun et al. SIDE: Isolated and efficient execution of unmodified device drivers
JPH04182836A (en) Unspecific value reference and detection system for program
JP6498770B2 (en) A high-performance mechanism for generating logging information about computer processes
Liang et al. Rustpi: A Rust-powered Reliable Micro-kernel Operating System
CN100511165C (en) Method, operating system and computing element for running a computer program
US20190034259A1 (en) Systems and Methods for Implementing a Thread Trace Log
US4594710A (en) Data processing system for preventing machine stoppage due to an error in a copy register
JP3746957B2 (en) Control method of logical partitioning system
JP2937857B2 (en) Lock flag release method and method for common storage
US11720436B1 (en) System for error detection and correction in a multi-thread processor
CN118519842B (en) Automatic debugging method based on hardware virtualization
Watanabe et al. Design fault tolerance in operating systems based on a standardization project
KR20230160003A (en) Method for monitoring of software execution sequence error detection