JPH05250221A - シミュレータ実行方式 - Google Patents
シミュレータ実行方式Info
- Publication number
- JPH05250221A JPH05250221A JP4051165A JP5116592A JPH05250221A JP H05250221 A JPH05250221 A JP H05250221A JP 4051165 A JP4051165 A JP 4051165A JP 5116592 A JP5116592 A JP 5116592A JP H05250221 A JPH05250221 A JP H05250221A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- program
- unit
- execution
- instruction
- 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)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 プログラム実行時のスタック・サイズの確認
を容易にするとともに、スタック・サイズの設定を正確
に行い得るシミュレータの実行方式を提供する。 【構成】 本発明のシミュレータの実行方式は、入力フ
ァイル102より、言語処理プログラムにより作成され
た情報を入力する入力部103と、前記情報の入力に対
応する命令をシミュレートするシミュレート実行部10
7と、監視制御用のコンソール104から入力される起
動行上の文字列の内容を解析する解析部105と、解析
部105による文字列解析結果を受けて、シミュレート
実行部107におけるプログラムの実行を制御/表示す
る制御/表示部106と、を少くとも備えており、シミ
ュレート実行部107には、プログラム実行時にスタッ
クの使用するメモリ領域情報を検出して出力するスタッ
ク情報検出部109と、スタック・ポインタの指定値を
保持するスタック指定値保持部110と、命令実行時に
おけるスタック・ポインタ値を保持するスタック値保持
部111と、スタック・ポインタの値を保持するメモリ
/レジスタ内容保持部112とが設けられている。
を容易にするとともに、スタック・サイズの設定を正確
に行い得るシミュレータの実行方式を提供する。 【構成】 本発明のシミュレータの実行方式は、入力フ
ァイル102より、言語処理プログラムにより作成され
た情報を入力する入力部103と、前記情報の入力に対
応する命令をシミュレートするシミュレート実行部10
7と、監視制御用のコンソール104から入力される起
動行上の文字列の内容を解析する解析部105と、解析
部105による文字列解析結果を受けて、シミュレート
実行部107におけるプログラムの実行を制御/表示す
る制御/表示部106と、を少くとも備えており、シミ
ュレート実行部107には、プログラム実行時にスタッ
クの使用するメモリ領域情報を検出して出力するスタッ
ク情報検出部109と、スタック・ポインタの指定値を
保持するスタック指定値保持部110と、命令実行時に
おけるスタック・ポインタ値を保持するスタック値保持
部111と、スタック・ポインタの値を保持するメモリ
/レジスタ内容保持部112とが設けられている。
Description
【0001】
【産業上の利用分野】本発明はシミュレータ実行方式に
関する。
関する。
【0002】
【従来の技術】一般に、プログラムの開発においては、
プログラムの作成、実行および実行準備として、エディ
タ、アセンブラ、コンパイラおよびリンカ等が使用され
る。エディタは、プログラムを利用者の指定に従って編
集するツールであり、アセンブラおよびコンパイラは、
プログラミング言語で記述されたプログラムを計算機向
きの言語に翻訳するプログラムである。また、リンカ
は、アセンブラおよびコンパイラにより翻訳された複数
の情報を結合するプログラムである。しかしながら、こ
れらを使用して作成されたプログラムには、通常誤りが
生じるために、この誤りを検出(以下、デバッグと云
う)しなければならない。デバッグの方法としては、机
上デバッグとマシン・デバッグがある。前者の場合は、
プログラムの流れ図およびプログラム・リストにより、
各命令および流れ図の各段階の動作を検査してゆく方法
であり、後者の場合は、実際にプログラムを実行させて
変数の状態などを調べてゆく方法である。このマシン・
デバッグの代表的な手段には、インサーキット・エミュ
レータまたはシミュレータがあるが、最終的には、実機
によりデバッグしなければならない。シミュレータと
は、ホスト・コンピュータ上で目的のCPUまたはI/
Oの動作をソフトウェア的に疑似実行して、プログラム
の動作をチェックするためのソフトウェア・ツールであ
る。このシミュレータの一般的な機能としては、指定さ
れたアドレスからプログラムを実行させる機能、前以っ
て設定された条件が満たされた時にプログラムの実行を
停止させるブレークポイント、記憶装置に記憶されてい
る内容をディスプレイに表示させるダンプ、およびプロ
グラムの実行によるプログラム・カウンタ、スタック・
ポインタのアドレス値およびレジスタの内容等をディス
プレイに表示するトレース等を含む幾つかの機能があ
る。
プログラムの作成、実行および実行準備として、エディ
タ、アセンブラ、コンパイラおよびリンカ等が使用され
る。エディタは、プログラムを利用者の指定に従って編
集するツールであり、アセンブラおよびコンパイラは、
プログラミング言語で記述されたプログラムを計算機向
きの言語に翻訳するプログラムである。また、リンカ
は、アセンブラおよびコンパイラにより翻訳された複数
の情報を結合するプログラムである。しかしながら、こ
れらを使用して作成されたプログラムには、通常誤りが
生じるために、この誤りを検出(以下、デバッグと云
う)しなければならない。デバッグの方法としては、机
上デバッグとマシン・デバッグがある。前者の場合は、
プログラムの流れ図およびプログラム・リストにより、
各命令および流れ図の各段階の動作を検査してゆく方法
であり、後者の場合は、実際にプログラムを実行させて
変数の状態などを調べてゆく方法である。このマシン・
デバッグの代表的な手段には、インサーキット・エミュ
レータまたはシミュレータがあるが、最終的には、実機
によりデバッグしなければならない。シミュレータと
は、ホスト・コンピュータ上で目的のCPUまたはI/
Oの動作をソフトウェア的に疑似実行して、プログラム
の動作をチェックするためのソフトウェア・ツールであ
る。このシミュレータの一般的な機能としては、指定さ
れたアドレスからプログラムを実行させる機能、前以っ
て設定された条件が満たされた時にプログラムの実行を
停止させるブレークポイント、記憶装置に記憶されてい
る内容をディスプレイに表示させるダンプ、およびプロ
グラムの実行によるプログラム・カウンタ、スタック・
ポインタのアドレス値およびレジスタの内容等をディス
プレイに表示するトレース等を含む幾つかの機能があ
る。
【0003】このシミュレータを使用してデバッグをす
る際には、プログラムの実行時のメモリ領域の利用に影
響を及ぼすような設計上の問題から、計算機が暴走する
ような事態が往々にして生じる。プログラムを実行する
ためのメモリ領域には、大きく分けて、静的メモリ領域
と動的メモリ領域とがあり、静的メモリ領域には、プロ
グラムの利用者がプログラム中に定義したデータ構造、
変数および定数等が割当てられており、動的メモリ領域
には、プログラム中の手続きを連係する情報のために必
要な領域、式の評価および引数の転送に一時的に必要と
する領域として使用される。この動的メモリ領域への割
当てには、一般的にヒープ割当てと、スタック割当てが
あり、プログラム実行時にサイズが変更される。従っ
て、プログラムの実行時において、スタック領域として
設定された以外の領域で、スタックを使用しようとする
場合には、スタック・オーバー・フローとなり暴走して
しまう場合がある。このような場合には、プログラム利
用者は、スタック・サイズの設定を変更したり、プログ
ラムの各所にデータを表示するチェック・ルーチンを記
述したり、または根気よくプログラムを実行してはトレ
ースを行い、その出力結果よりスタック・ポインタおよ
び各レジスタの内容を一つ一つ確認することにより対処
しているのが現状である。
る際には、プログラムの実行時のメモリ領域の利用に影
響を及ぼすような設計上の問題から、計算機が暴走する
ような事態が往々にして生じる。プログラムを実行する
ためのメモリ領域には、大きく分けて、静的メモリ領域
と動的メモリ領域とがあり、静的メモリ領域には、プロ
グラムの利用者がプログラム中に定義したデータ構造、
変数および定数等が割当てられており、動的メモリ領域
には、プログラム中の手続きを連係する情報のために必
要な領域、式の評価および引数の転送に一時的に必要と
する領域として使用される。この動的メモリ領域への割
当てには、一般的にヒープ割当てと、スタック割当てが
あり、プログラム実行時にサイズが変更される。従っ
て、プログラムの実行時において、スタック領域として
設定された以外の領域で、スタックを使用しようとする
場合には、スタック・オーバー・フローとなり暴走して
しまう場合がある。このような場合には、プログラム利
用者は、スタック・サイズの設定を変更したり、プログ
ラムの各所にデータを表示するチェック・ルーチンを記
述したり、または根気よくプログラムを実行してはトレ
ースを行い、その出力結果よりスタック・ポインタおよ
び各レジスタの内容を一つ一つ確認することにより対処
しているのが現状である。
【0004】近年、プログラムの複雑化に伴ない、機械
語よりも高水準の言語の使用頻度が高まってきている。
高水準言語は、特定のコンピュータに依存されず、人間
の言語に近いという利点はあるが、機械語と比較する
と、ソースプログラム中で細かいメモリの管理ができな
いという欠点がある。このために、プログラムの開発時
において、プログラム実行時のスタックの使用するメモ
リ領域を予想することが困難であり、特に割込み処理を
考慮する場合には容易ではない。
語よりも高水準の言語の使用頻度が高まってきている。
高水準言語は、特定のコンピュータに依存されず、人間
の言語に近いという利点はあるが、機械語と比較する
と、ソースプログラム中で細かいメモリの管理ができな
いという欠点がある。このために、プログラムの開発時
において、プログラム実行時のスタックの使用するメモ
リ領域を予想することが困難であり、特に割込み処理を
考慮する場合には容易ではない。
【0005】上述したプログラム暴走時の対処方法の
内、スタック・サイズの設定を変更する場合には、実行
時に最もスタックを使用した時のメモリ領域を判別する
ことができないために、対応策としては、予めスタック
・サイズを大まかに設定しているのが実情である。ま
た、根気よくトレースを続けてデータの確認を行うなど
の対処方法においては、プログラムを根気よく実行して
は、実行された命令数だけトレースを繰返して、スタッ
ク・ポインタおよび各レジスタの動作確認を行っている
ために、多大の手間と時間とを必要としている。
内、スタック・サイズの設定を変更する場合には、実行
時に最もスタックを使用した時のメモリ領域を判別する
ことができないために、対応策としては、予めスタック
・サイズを大まかに設定しているのが実情である。ま
た、根気よくトレースを続けてデータの確認を行うなど
の対処方法においては、プログラムを根気よく実行して
は、実行された命令数だけトレースを繰返して、スタッ
ク・ポインタおよび各レジスタの動作確認を行っている
ために、多大の手間と時間とを必要としている。
【0006】
【発明が解決しようとする課題】上述した従来のシミュ
レータの実行方式においては、シミュレータによるトレ
ースの出力結果より、実行時におけるスタック・サイズ
を確認する場合には、プログラムを根気よく実行して
は、実行された命令数だけトレースを行い、その出力結
果よりスタック・ポインタおよび各レジスタの内容を一
つ一つ確認するという操作を必要とし、多大の手間と時
間とを要するという欠点がある。
レータの実行方式においては、シミュレータによるトレ
ースの出力結果より、実行時におけるスタック・サイズ
を確認する場合には、プログラムを根気よく実行して
は、実行された命令数だけトレースを行い、その出力結
果よりスタック・ポインタおよび各レジスタの内容を一
つ一つ確認するという操作を必要とし、多大の手間と時
間とを要するという欠点がある。
【0007】
【課題を解決するための手段】本発明のシミュレータの
実行方式は、所定のファイルより言語処理プログラムに
より作成された情報を入力するファイル情報入力部と、
前記情報の入力に対応する命令をシミュレートするシミ
ュレート実行部と、所定の監視制御用のコンソールから
入力される起動行上の文字列の内容を解析する解析部
と、前記解析部による文字列解析結果を受けて、前記シ
ミュレート実行部におけるプログラムの実行を制御する
とともに、シミュレート実行状態を含む情報を表示する
制御/表示部と、を少くとも備えて形成されるシミュレ
ータ実行方式において、前記シミュレート実行部におけ
るプログラム実行時に、スタックの使用するメモリ領域
情報を検出して出力するスタック情報検出部と、スタッ
ク・ポインタの指定値を保持するスタック指定値保持部
と、命令実行時におけるスタック・ポインタ値を保持す
るスタック値保持部とを、命令実行手段として前記シミ
ュレート実行部に備えて構成される。
実行方式は、所定のファイルより言語処理プログラムに
より作成された情報を入力するファイル情報入力部と、
前記情報の入力に対応する命令をシミュレートするシミ
ュレート実行部と、所定の監視制御用のコンソールから
入力される起動行上の文字列の内容を解析する解析部
と、前記解析部による文字列解析結果を受けて、前記シ
ミュレート実行部におけるプログラムの実行を制御する
とともに、シミュレート実行状態を含む情報を表示する
制御/表示部と、を少くとも備えて形成されるシミュレ
ータ実行方式において、前記シミュレート実行部におけ
るプログラム実行時に、スタックの使用するメモリ領域
情報を検出して出力するスタック情報検出部と、スタッ
ク・ポインタの指定値を保持するスタック指定値保持部
と、命令実行時におけるスタック・ポインタ値を保持す
るスタック値保持部とを、命令実行手段として前記シミ
ュレート実行部に備えて構成される。
【0008】
【実施例】次に、本発明について図面を参照して説明す
る。
る。
【0009】図1は本発明の第1の実施例を示すシステ
ム構成図である。図1に示されるように、本実施例は、
入力部103、解析部105、制御/表示部106およ
びシミュレート実行部107を含むシミュレータ・プロ
グラム実行手段101と、入力ファイル102と、コン
ソール104とを備えて構成される。
ム構成図である。図1に示されるように、本実施例は、
入力部103、解析部105、制御/表示部106およ
びシミュレート実行部107を含むシミュレータ・プロ
グラム実行手段101と、入力ファイル102と、コン
ソール104とを備えて構成される。
【0010】シミュレータ・プログラム実行手段101
は、上述のように、入力ファイル102のファイル情報
を入力する入力部103と、コンソール104より入力
される起動行状の文字列を解析する解析部105と、解
析部105において解析された結果によりシミュレート
実行部107を制御する制御/表示部106と、入力部
103を介して入力されるファイル情報に対して命令を
シミュレートするシミュレート実行部107とにより形
成されており、このシミュレート実行部107には、命
令を実行する命令実行部108と、メモリとレジスタの
内容を保持するメモリ/レジスタ内容保持部112とが
含まれている。そして、更に、命令実行部108には、
スタックの使用するメモリ情報を検出するスタック情報
検出部109と、スタック指定値保持部110と、スタ
ック値保持部111とが含まれている。
は、上述のように、入力ファイル102のファイル情報
を入力する入力部103と、コンソール104より入力
される起動行状の文字列を解析する解析部105と、解
析部105において解析された結果によりシミュレート
実行部107を制御する制御/表示部106と、入力部
103を介して入力されるファイル情報に対して命令を
シミュレートするシミュレート実行部107とにより形
成されており、このシミュレート実行部107には、命
令を実行する命令実行部108と、メモリとレジスタの
内容を保持するメモリ/レジスタ内容保持部112とが
含まれている。そして、更に、命令実行部108には、
スタックの使用するメモリ情報を検出するスタック情報
検出部109と、スタック指定値保持部110と、スタ
ック値保持部111とが含まれている。
【0011】また、図2は、本実施例におけるシミュレ
ータ・プログラム実行手段109に含まれるスタック情
報検出部109における処理手順を示すフローチャート
である。入力ファイル102よりシミュレータ・プログ
ラム実行手段109に入力されるファイル情報は、コン
ソール104にプログラムの実行を指示する起動行が入
力される場合には、次の手順において処理される。
ータ・プログラム実行手段109に含まれるスタック情
報検出部109における処理手順を示すフローチャート
である。入力ファイル102よりシミュレータ・プログ
ラム実行手段109に入力されるファイル情報は、コン
ソール104にプログラムの実行を指示する起動行が入
力される場合には、次の手順において処理される。
【0012】なお、本実施例においては、スタック・ポ
インタの値は、アドレス値の大きいメモリ領域から割当
てられるものとする。また、図2のフローチャートにお
ける「はじめ」と「おわり」は、シミュレーションのコ
ンマンド入力待ち状態に相当している。
インタの値は、アドレス値の大きいメモリ領域から割当
てられるものとする。また、図2のフローチャートにお
ける「はじめ」と「おわり」は、シミュレーションのコ
ンマンド入力待ち状態に相当している。
【0013】先ず、初期化処理ステップ201におい
て、変数SP MINにスタック・ポインタの初期値を
設定する。初期化処理ステップ202においては、入力
ファイル102より入力されたファイル情報から得られ
るスタック・サイズを、初期化処理ステップ201にお
いて設定されたSP MINの値から差引き、その値を
変数SP SIZEに設定する。読込み処理ステップ2
03においては、入力された前記ファイル情報より1命
令を読込む。終了判定処理ステップ204においては、
読込み処理ステップ203において読込まれた命令が、
図1のコンソール104において実行を指示された命令
であるか否かを判定する。この終了判定処理ステップ2
04において、もしもコンソール104より実行するこ
とを指示された命令である場合には、命令実行処理ステ
ップ206に移行し、またコンソール104より実行す
ることを指示された命令でない場合には、コンソール1
04によるプログラムの実行は終了したものと判定さ
れ、最小スタック・ポインタ値出力処理ステップ205
に移行する。
て、変数SP MINにスタック・ポインタの初期値を
設定する。初期化処理ステップ202においては、入力
ファイル102より入力されたファイル情報から得られ
るスタック・サイズを、初期化処理ステップ201にお
いて設定されたSP MINの値から差引き、その値を
変数SP SIZEに設定する。読込み処理ステップ2
03においては、入力された前記ファイル情報より1命
令を読込む。終了判定処理ステップ204においては、
読込み処理ステップ203において読込まれた命令が、
図1のコンソール104において実行を指示された命令
であるか否かを判定する。この終了判定処理ステップ2
04において、もしもコンソール104より実行するこ
とを指示された命令である場合には、命令実行処理ステ
ップ206に移行し、またコンソール104より実行す
ることを指示された命令でない場合には、コンソール1
04によるプログラムの実行は終了したものと判定さ
れ、最小スタック・ポインタ値出力処理ステップ205
に移行する。
【0014】最小スタック・ポインタ値出力処理ステッ
プ205においては、SP MINの値をコンソール1
04に出力し、シミュレータをコマンド入力待ちの状態
に設定する。ここにおいて表示されるSP MINは、
プログラム実行時にスタックが使用するメモリ領域の最
小アドレス値を表わしている。
プ205においては、SP MINの値をコンソール1
04に出力し、シミュレータをコマンド入力待ちの状態
に設定する。ここにおいて表示されるSP MINは、
プログラム実行時にスタックが使用するメモリ領域の最
小アドレス値を表わしている。
【0015】他方、命令実行処理ステップ206におい
ては、読込み処理ステップ203において読込まれた命
令を実行し、その結果をメモリおよびレジスタに保存す
る。この命令実行処理ステップ206における処理は、
図1の命令実行部108とメモリ/レジスタ内容保持部
110において実行される。
ては、読込み処理ステップ203において読込まれた命
令を実行し、その結果をメモリおよびレジスタに保存す
る。この命令実行処理ステップ206における処理は、
図1の命令実行部108とメモリ/レジスタ内容保持部
110において実行される。
【0016】命令判定処理ステップ207においては、
読込み処理ステップ203において読込まれた命令が、
スタックを操作する命令か否かの判定を行う。もしも、
読込み処理ステップ203において読込まれた命令が、
スタックを操作する命令である場合には、スタック・ポ
インタ・エラー判定処理ステップ208に移行し、そう
でない場合には、読込まれた命令がスタックを操作する
命令でないと判定されて、読込み処理ステップ203に
戻る。
読込み処理ステップ203において読込まれた命令が、
スタックを操作する命令か否かの判定を行う。もしも、
読込み処理ステップ203において読込まれた命令が、
スタックを操作する命令である場合には、スタック・ポ
インタ・エラー判定処理ステップ208に移行し、そう
でない場合には、読込まれた命令がスタックを操作する
命令でないと判定されて、読込み処理ステップ203に
戻る。
【0017】スタック・ポインタ・エラー判定処理ステ
ップ208においては、スタック・ポインタの値が、初
期化処理ステップ202において設定されたSP SI
ZEよりも小さいか否かを判定する。もしも、スタック
・ポインタの値がSP SIZEよりも小さい場合に
は、設定されているスタックの領域内にスタック・ポイ
ンタの値が存在するものと判定されて、最小スタック・
ポインタ判定処理ステップ211に移行する。また、そ
うでない場合には、設定されているスタックの領域外に
スタック・ポンイタの値が存在するものと判定されて、
エラー・メッセージ出力処理ステップ209に移行す
る。エラー・メッセージ出力処理ステップ209におい
ては、図1のコンソール104に、スタックがオーバー
フローを起したことを示すメッセージを出力する。シミ
ュレータ停止処理ステップ210においては、前記メッ
セージを受けて、シミュレータをコマンド入力待ち状態
に設定し処理を終了する。
ップ208においては、スタック・ポインタの値が、初
期化処理ステップ202において設定されたSP SI
ZEよりも小さいか否かを判定する。もしも、スタック
・ポインタの値がSP SIZEよりも小さい場合に
は、設定されているスタックの領域内にスタック・ポイ
ンタの値が存在するものと判定されて、最小スタック・
ポインタ判定処理ステップ211に移行する。また、そ
うでない場合には、設定されているスタックの領域外に
スタック・ポンイタの値が存在するものと判定されて、
エラー・メッセージ出力処理ステップ209に移行す
る。エラー・メッセージ出力処理ステップ209におい
ては、図1のコンソール104に、スタックがオーバー
フローを起したことを示すメッセージを出力する。シミ
ュレータ停止処理ステップ210においては、前記メッ
セージを受けて、シミュレータをコマンド入力待ち状態
に設定し処理を終了する。
【0018】一方、最小スタック・ポインタ判定処理ス
テップ211においては、スタック・ポインタの値がS
P MINより小さいか否かを判定し、もしも、スタッ
ク・ポインタの値がSP MINより小さい値である場
合には、現在のスタック・ポインタの値が、現時点にお
ける最小スタック・ポンイタの値になるものと判定され
て、最小スタック・ポンイタ保存処理ステップ212に
移行する。また、そうでない場合には、現在のスタック
・ポンイタの値を保存する必要がないものと判断され
て、読込み処理ステップ203に戻る。なお、スタック
・ポインタの値がSP MINより小さい値である場合
には、最小スタック・ポンイタ保存処理ステップ212
において、SP MINに現在のスタック・ポインタの
値を代入して、読込み処理ステップ203に戻る。
テップ211においては、スタック・ポインタの値がS
P MINより小さいか否かを判定し、もしも、スタッ
ク・ポインタの値がSP MINより小さい値である場
合には、現在のスタック・ポインタの値が、現時点にお
ける最小スタック・ポンイタの値になるものと判定され
て、最小スタック・ポンイタ保存処理ステップ212に
移行する。また、そうでない場合には、現在のスタック
・ポンイタの値を保存する必要がないものと判断され
て、読込み処理ステップ203に戻る。なお、スタック
・ポインタの値がSP MINより小さい値である場合
には、最小スタック・ポンイタ保存処理ステップ212
において、SP MINに現在のスタック・ポインタの
値を代入して、読込み処理ステップ203に戻る。
【0019】以上説明したように、コンソール104よ
りプログラムの実行が指示された場合には、SP MI
Nを検出してコンソール104に出力する。ここにおい
て検出されたSP MINの値は、プログラムの実行時
にスタックが使用するメモリ領域の最小スタック・ポイ
ンタ値を表わしている。更に、プログラム実行中におい
て、スタックが設定されているスタック領域以外を使用
しようとする場合には、スタック・ポインタ・エラー判
定処理ステップ208による判定により、エラー・メッ
セージ出力処理ステップ209と、シミュレータ停止処
理ステップ210に移行して、コンソール104にスタ
ック・オーバーフローのエラー・メッセージを出力し、
シミュレータをコマンド入力待ち状態に設定する。
りプログラムの実行が指示された場合には、SP MI
Nを検出してコンソール104に出力する。ここにおい
て検出されたSP MINの値は、プログラムの実行時
にスタックが使用するメモリ領域の最小スタック・ポイ
ンタ値を表わしている。更に、プログラム実行中におい
て、スタックが設定されているスタック領域以外を使用
しようとする場合には、スタック・ポインタ・エラー判
定処理ステップ208による判定により、エラー・メッ
セージ出力処理ステップ209と、シミュレータ停止処
理ステップ210に移行して、コンソール104にスタ
ック・オーバーフローのエラー・メッセージを出力し、
シミュレータをコマンド入力待ち状態に設定する。
【0020】次に本発明の第2の実施例について説明す
る。本実施例のシステム構成は、図1に示される第1の
実施例の場合と同一である。本実施例と第1の実施例と
の相違点は、第1の実施例においては、入力ファイル1
02から命令を読込んだ後に命令を実行しているのに対
して、本実施例においては、読込まれた命令をスタック
操作命令であるか否かを判定した後に命令を実行してい
ることである。
る。本実施例のシステム構成は、図1に示される第1の
実施例の場合と同一である。本実施例と第1の実施例と
の相違点は、第1の実施例においては、入力ファイル1
02から命令を読込んだ後に命令を実行しているのに対
して、本実施例においては、読込まれた命令をスタック
操作命令であるか否かを判定した後に命令を実行してい
ることである。
【0021】図3は、本実施例におけるシミュレータ・
プログラム実行手段109に含まれるスタック情報検出
部109における処理手順を示すフローチャートであ
る。入力ファイル102よりシミュレータ・プログラム
実行手段109に入力されるファイル情報は、コンソー
ル104にプログラムの実行を指示する起動行が入力さ
れる場合には、次の手順において処理される。
プログラム実行手段109に含まれるスタック情報検出
部109における処理手順を示すフローチャートであ
る。入力ファイル102よりシミュレータ・プログラム
実行手段109に入力されるファイル情報は、コンソー
ル104にプログラムの実行を指示する起動行が入力さ
れる場合には、次の手順において処理される。
【0022】なお、本実施例においては、前述の第1の
実施例の場合と同様に、スタック・ポインタの値は、ア
ドレス値の大きいメモリ領域から割当てられるものとす
る。また、図3のフローチャートにおける「はじめ」と
「おわり」は、シミュレーションのコンマンド入力待ち
状態に相当している。
実施例の場合と同様に、スタック・ポインタの値は、ア
ドレス値の大きいメモリ領域から割当てられるものとす
る。また、図3のフローチャートにおける「はじめ」と
「おわり」は、シミュレーションのコンマンド入力待ち
状態に相当している。
【0023】本実施例のフローチャートにおける処理ス
テップ301から処理ステップ305までの処理手順
は、第1の実施例における処理ステップ201から処理
ステップ205までの処理手順と同様に行われる。ま
た、本実施例における処理ステップ309から処理ステ
ップ311までの処理手順についても、第1の実施例に
おける処理ステップ208から処理ステップ210まで
の処理手順と同様に行われる。従って、これらの処理手
順については、その説明を省略する。
テップ301から処理ステップ305までの処理手順
は、第1の実施例における処理ステップ201から処理
ステップ205までの処理手順と同様に行われる。ま
た、本実施例における処理ステップ309から処理ステ
ップ311までの処理手順についても、第1の実施例に
おける処理ステップ208から処理ステップ210まで
の処理手順と同様に行われる。従って、これらの処理手
順については、その説明を省略する。
【0024】命令判定処理ステップ306および307
においては、読込み処理ステップ303において読込ま
れた命令が、それぞれCALL命令であるか否か、およ
びPUSH命令であるか否かを判定する。もしも、命令
判定処理ステップ306においてCALL命令であると
判定され、命令判定処理ステップ307においてPUS
H命令であると判定された場合には、これらの命令は、
共にスタックを操作する命令であるため、処理手順とし
てはスタック・ポインタ・エラー判定処理ステップ30
9に移行する。また、これらの命令判定処理において、
それぞれCALL命令ならびにPUSH命令でない場合
には、命令判定処理ステップ308に移行する。
においては、読込み処理ステップ303において読込ま
れた命令が、それぞれCALL命令であるか否か、およ
びPUSH命令であるか否かを判定する。もしも、命令
判定処理ステップ306においてCALL命令であると
判定され、命令判定処理ステップ307においてPUS
H命令であると判定された場合には、これらの命令は、
共にスタックを操作する命令であるため、処理手順とし
てはスタック・ポインタ・エラー判定処理ステップ30
9に移行する。また、これらの命令判定処理において、
それぞれCALL命令ならびにPUSH命令でない場合
には、命令判定処理ステップ308に移行する。
【0025】命令判定処理ステップ308においては、
命令処理ステップ306および307の場合と同様に、
読込み処理ステップ303において読込まれた命令が、
POP命令であるか否かを判定し、もしも、POP命令
であると判定された場合には、スタックを操作する命令
であるため、スタック・ポインタ・エラー判定処理30
9に移行する。また、そうでない場合には、命令実行処
理ステップ314に移行する。命令実行処理ステップ3
14においては、第1の実施例の場合の命令実行処理ス
テップ206と同様の処理を行い、処理終了後、読込み
処理ステップ303に戻って次の1命令を読込む。
命令処理ステップ306および307の場合と同様に、
読込み処理ステップ303において読込まれた命令が、
POP命令であるか否かを判定し、もしも、POP命令
であると判定された場合には、スタックを操作する命令
であるため、スタック・ポインタ・エラー判定処理30
9に移行する。また、そうでない場合には、命令実行処
理ステップ314に移行する。命令実行処理ステップ3
14においては、第1の実施例の場合の命令実行処理ス
テップ206と同様の処理を行い、処理終了後、読込み
処理ステップ303に戻って次の1命令を読込む。
【0026】他方、スタック・ポインタ・エラー判定処
理ステップ309および最小スタック・ポインタ判定処
理312においては、前述の第1の実施例における処理
ステップ208および211と同様の処理が行われる
が、最小スタック・ポインタ判定処理312において、
スタック・ポインタの値がSP MINの値よりも小さ
いと判定された場合には、最小スタック・ポインタ保存
処理ステップ313に移し、そうでない場合には命令実
行処理ステップ314移行する。最小スタック・ポイン
タ保存処理ステップ313における処理内容は、第1の
実施例における処理ステップ212と同様であり、処理
終了後、命令実行処理ステップ314に移行する。命令
実行処理ステップ314においては、当該命令が実行さ
れてメモリ/レジスタの内容が保存され、その処理終了
後に処理ステップ303に戻って、1命令を読込む。
理ステップ309および最小スタック・ポインタ判定処
理312においては、前述の第1の実施例における処理
ステップ208および211と同様の処理が行われる
が、最小スタック・ポインタ判定処理312において、
スタック・ポインタの値がSP MINの値よりも小さ
いと判定された場合には、最小スタック・ポインタ保存
処理ステップ313に移し、そうでない場合には命令実
行処理ステップ314移行する。最小スタック・ポイン
タ保存処理ステップ313における処理内容は、第1の
実施例における処理ステップ212と同様であり、処理
終了後、命令実行処理ステップ314に移行する。命令
実行処理ステップ314においては、当該命令が実行さ
れてメモリ/レジスタの内容が保存され、その処理終了
後に処理ステップ303に戻って、1命令を読込む。
【0027】
【発明の効果】以上説明したように、本発明は、プログ
ラムの実行時に、最もスタックを使用した時のメモリ領
域のアドレス値を検出して出力することにより、プログ
ラム実行時におけるスタック・サイズを一目にて確認す
ることが可能となり、当該スタック・サイズの確認に要
する手間および時間を排除することかできるとともに、
スタック・サイズの設定を正確に行うことができるとい
う効果がある。
ラムの実行時に、最もスタックを使用した時のメモリ領
域のアドレス値を検出して出力することにより、プログ
ラム実行時におけるスタック・サイズを一目にて確認す
ることが可能となり、当該スタック・サイズの確認に要
する手間および時間を排除することかできるとともに、
スタック・サイズの設定を正確に行うことができるとい
う効果がある。
【図1】本発明の一実施例を示すシステム構成図図であ
る。
る。
【図2】本発明の第1の実施例における処理手順のフロ
ーチャートを示す図である。
ーチャートを示す図である。
【図3】本発明の第2の実施例における処理手順のフロ
ーチャートを示す図である。
ーチャートを示す図である。
101 シミュレータ・プログラム実行手段 102 入力コンソール 103 入力部 104 コンソール 105 解析部 106 制御/表示部 107 シミュレート実行部 108 命令実行部 109 スタック情報検出部 110 スタック指定値保持部 111 スタック値保持部 112 メモリ/レジスタ内容保持部 201〜212、301〜314 処理ステップ
Claims (1)
- 【請求項1】 所定のファイルより言語処理プログラム
により作成された情報を入力するファイル情報入力部
と、前記情報の入力に対応する命令をシミュレートする
シミュレート実行部と、所定の監視制御用のコンソール
から入力される起動行上の文字列の内容を解析する解析
部と、前記解析部による文字列解析結果を受けて、前記
シミュレート実行部におけるプログラムの実行を制御す
るとともに、シミュレート実行状態を含む情報を表示す
る制御/表示部と、を少くとも備えて形成されるシミュ
レータ実行方式において、 前記シミュレート実行部におけるプログラム実行時に、
スタックの使用するメモリ領域情報を検出して出力する
スタック情報検出部と、 スタック・ポインタの指定値を保持するスタック指定値
保持部と、 命令実行時におけるスタック・ポインタ値を保持するス
タック値保持部と、 を、命令実行手段として前記シミュレート実行部に備え
ることを特徴とするシミュレータ実行方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4051165A JPH05250221A (ja) | 1992-03-10 | 1992-03-10 | シミュレータ実行方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4051165A JPH05250221A (ja) | 1992-03-10 | 1992-03-10 | シミュレータ実行方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05250221A true JPH05250221A (ja) | 1993-09-28 |
Family
ID=12879215
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4051165A Pending JPH05250221A (ja) | 1992-03-10 | 1992-03-10 | シミュレータ実行方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05250221A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07105019A (ja) * | 1993-10-07 | 1995-04-21 | Nec Corp | 命令シミュレータ処理方式 |
| JPH07129429A (ja) * | 1993-10-28 | 1995-05-19 | Toppan Printing Co Ltd | プリンターページ記述言語の出力エラー予測装置ならびにコード最適化装置 |
| JPH08263447A (ja) * | 1994-12-20 | 1996-10-11 | Sun Microsyst Inc | 分散型コンピュータシステム及びその動作方法 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03278135A (ja) * | 1990-03-20 | 1991-12-09 | Mitsubishi Electric Corp | スタックトレース装置 |
| JPH047755A (ja) * | 1990-04-26 | 1992-01-13 | Matsushita Electric Ind Co Ltd | ワンチップマイクロコンピュータ |
-
1992
- 1992-03-10 JP JP4051165A patent/JPH05250221A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03278135A (ja) * | 1990-03-20 | 1991-12-09 | Mitsubishi Electric Corp | スタックトレース装置 |
| JPH047755A (ja) * | 1990-04-26 | 1992-01-13 | Matsushita Electric Ind Co Ltd | ワンチップマイクロコンピュータ |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07105019A (ja) * | 1993-10-07 | 1995-04-21 | Nec Corp | 命令シミュレータ処理方式 |
| JPH07129429A (ja) * | 1993-10-28 | 1995-05-19 | Toppan Printing Co Ltd | プリンターページ記述言語の出力エラー予測装置ならびにコード最適化装置 |
| JPH08263447A (ja) * | 1994-12-20 | 1996-10-11 | Sun Microsyst Inc | 分散型コンピュータシステム及びその動作方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6286132B1 (en) | Debugging support apparatus, a parallel execution information generation device, a computer-readable recording medium storing a debugging support program, and a computer-readable recording medium storing a parallel execution information generation program | |
| EP0785510B1 (en) | Program debugging system for debugging a program having a graphical user interface | |
| US5987250A (en) | Transparent instrumentation for computer program behavior analysis | |
| JPH05505695A (ja) | 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法 | |
| JPH0748182B2 (ja) | プログラム・エラー検出方法 | |
| US20030177471A1 (en) | System and method for graphically developing a program | |
| US6611924B1 (en) | Reducing code size of debug output statements | |
| JPH05250221A (ja) | シミュレータ実行方式 | |
| JPH02275539A (ja) | デバッグ処理方式 | |
| JP3745968B2 (ja) | 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体 | |
| JP2803090B2 (ja) | Mpuシミュレーション方法及びmpuシミュレータ | |
| JPH08263130A (ja) | シミュレーション方式 | |
| JPH07253909A (ja) | マイクロプログラム検証方法 | |
| JPH07219980A (ja) | テスト実行方式 | |
| US7627859B2 (en) | Method for configuring non-script language library files to be run as scripts | |
| JPS6292034A (ja) | プログラムデバツグ装置 | |
| JPH06289919A (ja) | Nc装置のマンマシンインタフェース装置 | |
| Gladstone | Comparing Microcomputer Development System Capabilities | |
| JP2002073370A (ja) | デバッグ支援装置およびその装置によるデバッグ方法 | |
| JPH03294934A (ja) | 高級プログラム言語用デバッガ | |
| JP2002366378A (ja) | プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体 | |
| JPS6292032A (ja) | プログラムテスト方法 | |
| JPH0766343B2 (ja) | プログラムテスト装置 | |
| JP2002189613A (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
| JPH08185342A (ja) | プログラム評価装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19980203 |