JPH0736734A - アーギュメント値のチェック方法 - Google Patents

アーギュメント値のチェック方法

Info

Publication number
JPH0736734A
JPH0736734A JP5158323A JP15832393A JPH0736734A JP H0736734 A JPH0736734 A JP H0736734A JP 5158323 A JP5158323 A JP 5158323A JP 15832393 A JP15832393 A JP 15832393A JP H0736734 A JPH0736734 A JP H0736734A
Authority
JP
Japan
Prior art keywords
argument
source program
debugger
program
load module
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
JP5158323A
Other languages
English (en)
Inventor
Osamu Yokogawa
修 横川
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 JP5158323A priority Critical patent/JPH0736734A/ja
Publication of JPH0736734A publication Critical patent/JPH0736734A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】複数モジュール間で引き渡しを行うアーギュメ
ント値が不正に渡ってきたことをプログラムが暴走する
前に検出する手段をデバッガで提供する。 【構成】CALLER側ソースプログラム1にパラメー
タの持つべき値の組み合わせおよび範囲の定義記述を持
ち、CALL側ソースプログラム2にアーギュメントが
あり、それらをオブジェクトモジュール4,5に生成す
るコンパイラ6と、それを結合するリンケージエディタ
6によりロードモジュール7が準備されて、ロードモジ
ュール7をデバッグするためにデバッガ8がロードモジ
ュール内にあるパラメータ情報とアーギュメント情報を
使用して実行時に対応するパラメータ形式定義とアーギ
ュメント値に矛盾がないか検査する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数モジュールからな
るプログラムでモジュール間に受け渡されるアーギュメ
ントの正当性を検査するアーギュメント値のチェック方
法に関する。
【0002】
【従来の技術】従来のこの種のアーギュメント値のチェ
ック方法のうち、静的に検査する場合は、コンパイラが
アーギュメントの値が取り得る精度や属性をオブジェク
トモジュールに生成しておいて、リンケージエディタが
両者の整合性を検査する。
【0003】また、プログラム実行時動的に検査する場
合は、プログラム開発者がパラメータの取る得る値をそ
のモジュールの中で検査する手続きを事前に記述してお
くか、またはコンパイラがパラメータの取り得る値の精
度や属性をオブジェクトモジュールに生成しておいて、
実行時に整合検査手続きが実行されることによって検査
する。
【0004】
【発明が解決しようとする課題】上述した従来のアーギ
ュメント値のチェック方法では、プログラム開発者がそ
れぞれのソースプログラムに記述する場合は、プログラ
ム開発者の負担となること、およびプログラムリリース
時には不要のステップであり、プログラムサイズを大き
くするという欠点があり、またリンケージエディタがチ
ェックする場合は、チェックできるのはアーギュメント
値の静的な属性や精度であって、実行時に動的に変化し
て渡されるアーギュメントの値はチェックできないとい
う欠点がある。
【0005】
【課題を解決するための手段】第1の本発明のアーギュ
メント値のチェック方法は、ソースプログラムを翻訳し
てソースプログラムの構成要素をリンケージエディタの
処理情報としてオブジェクトモジュールを出力するコン
パイラと、複数オブジェクトモジュールを結合してロー
ドモジュールとするリンケージエディタと、ロードモジ
ュールを実行してデバッグするデバッガとからなり、該
デバッガは、複数モジュール間で引き渡される個々のア
ーギュメント値の正当性を実行時に範囲外チェックする
ことを特徴とする。
【0006】第2の本発明のアーギュメント値のチェッ
ク方法は、ソースプログラムを翻訳してソースプログラ
ムの構成要素をリンケージエディタの処理情報としてオ
ブジェクトモジュールを出力するコンパイラと、複数オ
ブジェクトモジュール結合してロードモジュールとする
リンケージエディタと、ロードモジュールを実行してデ
バッグするデバッガとからなり、前記デバッガは、複数
のアーギュメント値間の正当性を実行時に整合性のチェ
ックをすることを特徴とする。
【0007】
【実施例】本発明の一実施例の構成図を示す図を参照す
ると、本実施例は、パラメータに許される組み合わせと
その値の定義記述が含まれるCALLER側ソースプロ
グラム1と、アーギュメントを指定したCALL記述が
あるCALL側ソースプログラム2と、CALLER側
ソースプログラム1およびCALL側ソースプログラム
2が入力するコンパイラ3と、コンパイラ3の出力とな
るCALLER側オブジェクトモジュール4およびCA
LL側オブジェクトモジュール5と、オブジェクトモジ
ュール4,5を入力して結合するリンケージエディタ6
と、リンケージエディタ6が出力するロードモジュール
7と、ロードモジュール7をデバッグするためのデバッ
ガ8と、デバッガ8の出力するデバッガ実行通知情報9
とから構成される。
【0008】コンパイラ3はCALLER側ソースプロ
グラム1とCALL側ソースプログラム2の翻訳処理を
行い、CALLER側ソースプログラム1,CALL側
ソースプログラム2に対応したCALLER側オブジェ
クトモジュール4,CALL側ソースプログラム5を出
力する。このとき、コンパイラ3はCALLER側ソー
スプログラム1の場合、パラメータに許されるパラメー
タ値の組み合せおよびパラメータ値範囲をパラメータ情
報として生成し、CALL側ソースプログラム2の場
合、アーギュメント情報を生成し、リンケージエディタ
はそれらの情報をロードモジュール7に引き継ぐ。そし
て、ロードモジュール7をデバッガ8でプログラムの実
行テストを行う際に、デバッガ8は次の手順でアーギュ
メント値の正当性をチェックする。
【0009】CALLER側ソースプログラム1では、
PARAはサイズは1バイトの文字で、PARAが“X
“のときは、PARBは3でないとならないと定義さ
れ、PARBは1バイトのバイナリ値で1から3の値で
ないとならないと定義されている。CALL側ソースプ
ログラム2はCALLER側ソースプログラム1をアー
ギュメントリスト付きでCALLしていて、(1)の場
合は同一アーギュメントは“X“で第二アーギュメント
は定数3であり、この組み合わせは正しいアーギュメン
トで指定している。CALL命令で制御がCALLER
側プログラムAに渡ったとき、デバッガ8はCALLE
R側プログラムAが本来持っている処理手順を行う前に
パラメータ情報とアーギュメント情報を使用してアーギ
ュメントの正当性を検査し、正常であれば、CALLE
R側プログラムAの本来の処理手順を実行する。
【0010】(2)の場合、第一、第二アーギュメント
共に変数で渡されるように記述されており、第一アーギ
ュメントは正常である。第二アーギュメントは形式的に
は正常に記述されているが、値は不正に代入されてい
る。この場合も(1)と同様にCALLER側プログラ
ムAに制御が渡り、プログラムA本来の処理手順を実行
する前にパラメータ情報はアーギュメント情報でもって
アーギュメント正当性を検査すると、第二パラメータは
1から3の値しか渡してはならないパラメータ定義であ
るため、10という値は不正であることがわかり、デバ
ッガ8は不正なアーギュメントが渡されたことをデバッ
ガ実行通知情報9として、デバッガ使用者に通知し、デ
バッグの続行の有無をデバッガ使用者に通知する。
【0011】
【発明の効果】以上説明したように本発明は、デバッガ
がパラメータとアーギュメントの相互の整合性をチェッ
クすることによって、プログラムの開発者のソースプロ
グラム記述が容易になり、不正のアーギュメント値が動
的に生成されて渡ってくることによるプログラムの不正
動作が事前に検出されるので、デバッガ作業が軽減され
る効果があり、プログラムサイズを最小限にすることが
できるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例を示す図である。
【符号の説明】
1 CALLER側ソースプログラム 2 CALL側ソースプログラム 3 コンパイラ 4 CALLER側オブジェクトモジュール 5 CALL側オブジェクトモジュール 6 リンケージエディタ 7 ロードモジュール 8 デバッガ 9 デバッガ実行通知情報

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ソースプログラムを翻訳してソースプロ
    グラムの構成要素をリンケージエディタの処理情報とし
    てオブジェクトモジュールを出力するコンパイラと、複
    数オブジェクトモジュールを結合してロードモジュール
    とするリンケージエディタと、ロードモジュールを実行
    してデバッグするデバッガとからなり、該デバッガは、
    複数モジュール間で引き渡される個々のアーギュメント
    値の正当性を実行時に範囲外チェックすることを特徴と
    するアーギュメント値のチェック方法。
  2. 【請求項2】 ソースプログラムを翻訳してソースプロ
    グラムの構成要素をリンケージエディタの処理情報とし
    てオブジェクトモジュールを出力するコンパイラと、複
    数オブジェクトモジュール結合してロードモジュールと
    するリンケージエディタと、ロードモジュールを実行し
    てデバッグするデバッガとからなり、前記デバッガは、
    複数のアーギュメント値間の正当性を実行時に整合性の
    チェックをすることを特徴とするアーギュメント値のチ
    ェック方法。
JP5158323A 1993-06-29 1993-06-29 アーギュメント値のチェック方法 Pending JPH0736734A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5158323A JPH0736734A (ja) 1993-06-29 1993-06-29 アーギュメント値のチェック方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5158323A JPH0736734A (ja) 1993-06-29 1993-06-29 アーギュメント値のチェック方法

Publications (1)

Publication Number Publication Date
JPH0736734A true JPH0736734A (ja) 1995-02-07

Family

ID=15669134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5158323A Pending JPH0736734A (ja) 1993-06-29 1993-06-29 アーギュメント値のチェック方法

Country Status (1)

Country Link
JP (1) JPH0736734A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11319219A (ja) * 1998-05-19 1999-11-24 Heiwa Corp 遊技機および遊技機の制御方法
JP2001142738A (ja) * 1999-09-29 2001-05-25 Lucent Technol Inc スクリプタおよびインタープリタ
JP2008188468A (ja) * 2008-05-12 2008-08-21 Heiwa Corp 遊技機
JP2008188467A (ja) * 2008-05-12 2008-08-21 Heiwa Corp 遊技機
JP2008188469A (ja) * 2008-05-12 2008-08-21 Heiwa Corp 遊技機
JP2013045247A (ja) * 2011-08-23 2013-03-04 Nec System Technologies Ltd コンパイル支援装置、コンパイル支援方法、及びプログラム
JP2016177537A (ja) * 2015-03-20 2016-10-06 富士通株式会社 コンパイラ、コンパイル装置、および、コンパイル方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0236435A (ja) * 1988-07-26 1990-02-06 Nec Corp モジュールテスト方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0236435A (ja) * 1988-07-26 1990-02-06 Nec Corp モジュールテスト方式

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11319219A (ja) * 1998-05-19 1999-11-24 Heiwa Corp 遊技機および遊技機の制御方法
JP2001142738A (ja) * 1999-09-29 2001-05-25 Lucent Technol Inc スクリプタおよびインタープリタ
JP2008188468A (ja) * 2008-05-12 2008-08-21 Heiwa Corp 遊技機
JP2008188467A (ja) * 2008-05-12 2008-08-21 Heiwa Corp 遊技機
JP2008188469A (ja) * 2008-05-12 2008-08-21 Heiwa Corp 遊技機
JP4648424B2 (ja) * 2008-05-12 2011-03-09 株式会社平和 遊技機
JP2013045247A (ja) * 2011-08-23 2013-03-04 Nec System Technologies Ltd コンパイル支援装置、コンパイル支援方法、及びプログラム
JP2016177537A (ja) * 2015-03-20 2016-10-06 富士通株式会社 コンパイラ、コンパイル装置、および、コンパイル方法

Similar Documents

Publication Publication Date Title
US7647584B2 (en) Automation and isolation of software component testing
US8095917B2 (en) Debugger for virtual intermediate language operations
JPH0748182B2 (ja) プログラム・エラー検出方法
JPH0736734A (ja) アーギュメント値のチェック方法
Lee Exception handling in C programs
JP2008210059A (ja) 情報処理装置、デバッグ支援方法及びプログラム
JPS60179847A (ja) 実配列および仮配列間の整合性チエツク方式
JPS63147232A (ja) 整合性検査方式
JPH01177165A (ja) 配列の定義/引用関係検査方式
JPH03290739A (ja) プログラムの動的解析方式
JP2815178B2 (ja) コンパイラ装置
JPH05334119A (ja) プログラムデバッグ方法
Rosmaninho Bridging Swift Error Handling Model to C++
JPH05143393A (ja) テストプログラム作成装置
JPH01205348A (ja) プログラムデバッグ方式
JPH0355633A (ja) モジュール間インタフェイス検査装置
JPH0358232A (ja) プリプロセッサ呼び出し方式
JPH0353335A (ja) コンパイラの処理方式
JPS63317839A (ja) プログラムデバッグ方法
JPS6365542A (ja) デバツグ方式
JPS6393044A (ja) プログラム翻訳,編集結合方式
JPH04181326A (ja) ソースプログラムのコンパイル方法
JPH03263129A (ja) コンパイラ・デバッガ方法
JPS63271532A (ja) コンパイル方式
JPH05224908A (ja) プログラム生産システム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960402