JPH03158937A - プログラム実行制御方式 - Google Patents
プログラム実行制御方式Info
- Publication number
- JPH03158937A JPH03158937A JP1297315A JP29731589A JPH03158937A JP H03158937 A JPH03158937 A JP H03158937A JP 1297315 A JP1297315 A JP 1297315A JP 29731589 A JP29731589 A JP 29731589A JP H03158937 A JPH03158937 A JP H03158937A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- instruction
- program
- executed
- address
- 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
- 238000000034 method Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 abstract description 13
- 238000012545 processing Methods 0.000 abstract description 5
- 239000000725 suspension Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 238000011084 recovery Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 102100021579 Enhancer of filamentation 1 Human genes 0.000 description 1
- 101100494761 Homo sapiens NEDD9 gene Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、プログラム開発におけるテスト作業に係り、
プログラムを実行させ、テストを行う時の効率向上の方
式に関する。
プログラムを実行させ、テストを行う時の効率向上の方
式に関する。
従来の方式は、特開昭57−201152号に記載の様
に、一定時間の間隔で情報を蓄積し、異常が起こった時
は、一番新しく蓄積された情報を回復し、その回復した
地点より実行を再開するものであった。
に、一定時間の間隔で情報を蓄積し、異常が起こった時
は、一番新しく蓄積された情報を回復し、その回復した
地点より実行を再開するものであった。
上記従来技術では、テスト中に予想に反した現象が発生
した時、一番新しく蓄積された情報から現象発生までの
情報が失われる。また実行手順や環境を正確に再現しな
いと現象が再現しないことや原因追求に多大な工数を要
することがある。
した時、一番新しく蓄積された情報から現象発生までの
情報が失われる。また実行手順や環境を正確に再現しな
いと現象が再現しないことや原因追求に多大な工数を要
することがある。
本発明の目的は予想に反した現象が発生したらその場で
逆実行、再実行をして、即、再現できるテスト・デバッ
ガを実現し、プログラムの開発効率および製品の品質を
向上させることにある。
逆実行、再実行をして、即、再現できるテスト・デバッ
ガを実現し、プログラムの開発効率および製品の品質を
向上させることにある。
上記目的を達成するために、本発明では、プログラムの
命令実行毎に書き変えられる情報のみを蓄積する手段と
、蓄積した情報から命令実行前の状態に回復する手段と
を発明したものである。
命令実行毎に書き変えられる情報のみを蓄積する手段と
、蓄積した情報から命令実行前の状態に回復する手段と
を発明したものである。
また、回復するために必要な情報とは、(1)上書きさ
れる時のレジスタ、領域名と、その値もしくは、 (2)分岐命令によって分岐した時のアドレスである。
れる時のレジスタ、領域名と、その値もしくは、 (2)分岐命令によって分岐した時のアドレスである。
(1) プログラムの一命令実行毎に命令コードを解析
し、命令実行により上書きされるレジスタ、領域とその
値もしくは分岐した時のアドレス値を蓄積する。
し、命令実行により上書きされるレジスタ、領域とその
値もしくは分岐した時のアドレス値を蓄積する。
(2)情報蓄積した情報を取出し、アドレスやレジスタ
、領域を回復する。
、領域を回復する。
上記(1)を繰り返すことによりプログラムを実行し、
中断の後、上記(2)を繰り返すことにより逆実行がで
きる。さらに逆実行後、上記(1)を繰り返すことによ
り再実行ができる。
中断の後、上記(2)を繰り返すことにより逆実行がで
きる。さらに逆実行後、上記(1)を繰り返すことによ
り再実行ができる。
以下、本発明の一実施例を図面により詳細に説明する。
本実施例では、プログラムのデス1〜方式について適用
されるものとして以下の説明を行う。またテスト全体の
説明は省略し、本発明の特徴的な機第1図は、本発明の
一実施例としてデバッガに組込まれた機能構成図である
。1は端末からの指令を解析し、実行制御部へ渡たすユ
ーザインタフェース部、2は実行、逆実行、再実行の時
、各機能の制御を司どる実行制御部、3はテストされる
プログラムが格納されている記憶部、4は実行制御部よ
り送られてきた命令を解析し、上書きされるレジスタや
領域を判断する実行情報解析部、5は命令を実行(シミ
ュレート)する命令実行部。
されるものとして以下の説明を行う。またテスト全体の
説明は省略し、本発明の特徴的な機第1図は、本発明の
一実施例としてデバッガに組込まれた機能構成図である
。1は端末からの指令を解析し、実行制御部へ渡たすユ
ーザインタフェース部、2は実行、逆実行、再実行の時
、各機能の制御を司どる実行制御部、3はテストされる
プログラムが格納されている記憶部、4は実行制御部よ
り送られてきた命令を解析し、上書きされるレジスタや
領域を判断する実行情報解析部、5は命令を実行(シミ
ュレート)する命令実行部。
6は情報蓄積部に蓄積されている情報を取込み、上書き
されたレジスタや領域を回復する逆実行環境回復部、7
は逆実行に必要な情報を、一定量蓄積する情報蓄積部で
ある。
されたレジスタや領域を回復する逆実行環境回復部、7
は逆実行に必要な情報を、一定量蓄積する情報蓄積部で
ある。
第5図は第1図において記憶部に記憶されているプログ
ラムの一例である。本例は公知のハードウェアCOME
T (情報処理技術者試験用の仮想計算機)で動作する
アセンブラ言語CA S T、で記述されている。また
、プログラムはインタプリタ方式で動作するものとする
。
ラムの一例である。本例は公知のハードウェアCOME
T (情報処理技術者試験用の仮想計算機)で動作する
アセンブラ言語CA S T、で記述されている。また
、プログラムはインタプリタ方式で動作するものとする
。
第4図は命令コードを解析するための命令解析テーブル
の構造例を示す図である。これ−は本実施例の例題プロ
グラムの記述言語CASLの言語仕様により作成したも
のである。フィールド30は命令コード、フィールド3
1からフィールド35は蓄積する情報の種類を表わし、
フィールドの値が1のとき当該フィールドの意味する情
報を蓄積することを示す。例えばLD命令はフィールド
31が1であるので第1オペランドが蓄積情報である。
の構造例を示す図である。これ−は本実施例の例題プロ
グラムの記述言語CASLの言語仕様により作成したも
のである。フィールド30は命令コード、フィールド3
1からフィールド35は蓄積する情報の種類を表わし、
フィールドの値が1のとき当該フィールドの意味する情
報を蓄積することを示す。例えばLD命令はフィールド
31が1であるので第1オペランドが蓄積情報である。
また、フィールド31からフィールド34はレジスタま
たは領域の値を情報蓄積部に蓄積するものであり、フィ
ールド35はアドレスを情報蓄積部に蓄積するものであ
る。
たは領域の値を情報蓄積部に蓄積するものであり、フィ
ールド35はアドレスを情報蓄積部に蓄積するものであ
る。
第6図は本例題プログラムのフロチャートである。以下
、このプログラムを例として詳細に説明する。
、このプログラムを例として詳細に説明する。
まず、実行(順方向)と蓄積を説明する。
第2図は実行と蓄積の実行手順でありこれに従って説明
する。ユーザインタフェース部から実行の指令が来ると
、実行制御部は記憶部から命令を解析テーブルにより命
令を解析する(12)と第5図アドレス1oの5TAR
Tは蓄積情報がないため、何も蓄積せずに処理を通過す
る。次にアドレス20のLEA命令を第4図より解析す
る(12)と第1オペランドのGRIが蓄積情報である
ことが分かる(13)のでGRIの内容を退避しておく
(14)。退避後命令を実行しく15)退避した値と
GRIの値を比較しく16)、同じ値でなければ情報蓄
積部へGRIの内容を蓄積する(17)。以下同様に記
憶部から被テストプログラムの命令を取出し、命令を実
行しながら逆実行に必要な情報を情報蓄積部に蓄積する
。
する。ユーザインタフェース部から実行の指令が来ると
、実行制御部は記憶部から命令を解析テーブルにより命
令を解析する(12)と第5図アドレス1oの5TAR
Tは蓄積情報がないため、何も蓄積せずに処理を通過す
る。次にアドレス20のLEA命令を第4図より解析す
る(12)と第1オペランドのGRIが蓄積情報である
ことが分かる(13)のでGRIの内容を退避しておく
(14)。退避後命令を実行しく15)退避した値と
GRIの値を比較しく16)、同じ値でなければ情報蓄
積部へGRIの内容を蓄積する(17)。以下同様に記
憶部から被テストプログラムの命令を取出し、命令を実
行しながら逆実行に必要な情報を情報蓄積部に蓄積する
。
以上の様に第2図に従い第5図を実行し続けると情報蓄
積部に第7図の様に蓄積される。第7図はアドレス70
が8回目の処理をする直前に中断する様にブレークポイ
ントを設定し実行した時の情報蓄積部の状態である。以
下、この状態から説明する。
積部に第7図の様に蓄積される。第7図はアドレス70
が8回目の処理をする直前に中断する様にブレークポイ
ントを設定し実行した時の情報蓄積部の状態である。以
下、この状態から説明する。
次に、逆実行を説明する。
て説明する。ユーザインタフェース部から逆実行の指令
が来ると、実行制御部から逆実行環境回復部へ制御が移
る。逆実行環境回復部は第7図の様になっている情報蓄
積部から情報を取出してくる(18)。今、第7図N0
.71まで処理しているのでNO,71を情報蓄積部か
ら取出してくる。
が来ると、実行制御部から逆実行環境回復部へ制御が移
る。逆実行環境回復部は第7図の様になっている情報蓄
積部から情報を取出してくる(18)。今、第7図N0
.71まで処理しているのでNO,71を情報蓄積部か
ら取出してくる。
被テストプログラムのプログラムカウンタは、現在第5
図アドレス70を指しているが、No、71の内容をみ
ると、アドレスの所が180となついるので(19)プ
ログラムカウンタに180を代入してアドレス180を
指すようにする(21)。
図アドレス70を指しているが、No、71の内容をみ
ると、アドレスの所が180となついるので(19)プ
ログラムカウンタに180を代入してアドレス180を
指すようにする(21)。
これで1ステップ逆火行したことになる。次にNo、7
0を情報蓄積部から取出してくる(18)。
0を情報蓄積部から取出してくる(18)。
NO,70は、アドレス欄に値が無いので(19)第5
図アドレス180の一つ前の170をプログラムカウン
タに入れる(20)。その命令を調べると、CPAは第
4図よりFRが上書きの対象となるが蓄積されているの
は、GRIであったので4きは行われなかったと見なし
FRはそのまままだ回復していないのでそのまま逆実行
環境回復部は第7図N0.70を持っていて、第5図の
アドレス170の一つ前の160をプログラムカウンタ
に入れる(20)。その命令を調べるとLEAは第4図
より第1オペランドのG R1の上書きを行う可能性が
ある。現時点のGRIは3になっていて、蓄積されてい
るGRIは2であるから、GRIは、このLEA命令に
よって上書きされたことになり(22)、GRIの値に
蓄積されていた値、2を代入する(23)。というよう
に逆方向に実行して行くことができる。また逆実行の中
断は、実行と同様にブレークポイン1−で行う。
図アドレス180の一つ前の170をプログラムカウン
タに入れる(20)。その命令を調べると、CPAは第
4図よりFRが上書きの対象となるが蓄積されているの
は、GRIであったので4きは行われなかったと見なし
FRはそのまままだ回復していないのでそのまま逆実行
環境回復部は第7図N0.70を持っていて、第5図の
アドレス170の一つ前の160をプログラムカウンタ
に入れる(20)。その命令を調べるとLEAは第4図
より第1オペランドのG R1の上書きを行う可能性が
ある。現時点のGRIは3になっていて、蓄積されてい
るGRIは2であるから、GRIは、このLEA命令に
よって上書きされたことになり(22)、GRIの値に
蓄積されていた値、2を代入する(23)。というよう
に逆方向に実行して行くことができる。また逆実行の中
断は、実行と同様にブレークポイン1−で行う。
次に、再実行を説明する。再実行とは、中断した地点か
ら指定した所まで逆実行したのち、実行するものである
。第7図の状態から第5図アドレス70に、2回通過し
たのち3回目で中断する様にセットして逆実行すると、
すでに説明した逆実行手順(第3図)に従い情報蓄積部
は、第7図N0゜44まで処理を行う。ここで、例えば
G ROの値5710Hを0にして実行すると、すでに
説明した実行手順(第2図)に従い情報蓄積部は第8図
の様になる。この様に再実行により値を変えることで多
様なテストを行える。
ら指定した所まで逆実行したのち、実行するものである
。第7図の状態から第5図アドレス70に、2回通過し
たのち3回目で中断する様にセットして逆実行すると、
すでに説明した逆実行手順(第3図)に従い情報蓄積部
は、第7図N0゜44まで処理を行う。ここで、例えば
G ROの値5710Hを0にして実行すると、すでに
説明した実行手順(第2図)に従い情報蓄積部は第8図
の様になる。この様に再実行により値を変えることで多
様なテストを行える。
本実施例によれば実行のみならず、逆火行、再実行も行
うことが可能となり、プログラム開発においてテスト期
間短縮及び品質向−Lに効果がある。
うことが可能となり、プログラム開発においてテスト期
間短縮及び品質向−Lに効果がある。
本発明によれば、テスト中に予想に反した現象が発生し
たり実行内容を詳しく調べたい時などに即、再現できる
ようになり、プログラム開発の品質向上、テスト工数の
低減に寄与し得えるツールを提供できる。
たり実行内容を詳しく調べたい時などに即、再現できる
ようになり、プログラム開発の品質向上、テスト工数の
低減に寄与し得えるツールを提供できる。
第1図は機能構成図、第2図は実行と蓄積実行手順を示
す図、第3図は逆実行の実行手順を示す図、第4図は命
令解析テーブルを示す図、第5図は例題プログラムを示
す図、第6図は例題プログラムの手順を示す図、第7図
は実行を行った時の情報蓄積部の例を示す図、第8図は
逆火行後、再実行を行った時の情報蓄積部の例を示す図
である。 1・・・ユーザインタフェース部、2・・・実行制御部
。 3・・・記憶部、4・・・実行情報解析部、5・・・命
令実行部、6・・・逆実行環境回復部、7・・・情報蓄
積部。 特開平3 158937 (5) 特開平3 158937 (6) 吊 ワ 国 ?1オ不定仮
す図、第3図は逆実行の実行手順を示す図、第4図は命
令解析テーブルを示す図、第5図は例題プログラムを示
す図、第6図は例題プログラムの手順を示す図、第7図
は実行を行った時の情報蓄積部の例を示す図、第8図は
逆火行後、再実行を行った時の情報蓄積部の例を示す図
である。 1・・・ユーザインタフェース部、2・・・実行制御部
。 3・・・記憶部、4・・・実行情報解析部、5・・・命
令実行部、6・・・逆実行環境回復部、7・・・情報蓄
積部。 特開平3 158937 (5) 特開平3 158937 (6) 吊 ワ 国 ?1オ不定仮
Claims (1)
- 1、計算機システム中のプログラムにおいて、命令を実
行する毎に、命令実行前のレジスタや領域またはアドレ
スを蓄積する機能と、蓄積した情報から環境を再現する
機能をもつことで、命令実行前の環境を回復することが
でき、1命令毎の逆実行と逆実行後の再実行が可能とな
ることを特徴とするプログラム実行制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1297315A JPH03158937A (ja) | 1989-11-17 | 1989-11-17 | プログラム実行制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1297315A JPH03158937A (ja) | 1989-11-17 | 1989-11-17 | プログラム実行制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03158937A true JPH03158937A (ja) | 1991-07-08 |
Family
ID=17844920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1297315A Pending JPH03158937A (ja) | 1989-11-17 | 1989-11-17 | プログラム実行制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03158937A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0581075A (ja) * | 1991-09-19 | 1993-04-02 | Mitsubishi Electric Corp | ソフトウエア開発装置 |
US5428618A (en) * | 1993-01-27 | 1995-06-27 | Kabushiki Kaisha Toshiba | Debugger apparatus and method having an event history recording capability |
JPH07191875A (ja) * | 1993-12-27 | 1995-07-28 | Nec Corp | デバッガー |
US5469550A (en) * | 1992-01-28 | 1995-11-21 | Cezzar; Ruknet | Reversible computer apparatus and methods of constructing and utilizing same |
JPH08320813A (ja) * | 1995-05-26 | 1996-12-03 | Nec Corp | プログラムシミュレータ装置及びプログラムデバッグ方法 |
JP2015072551A (ja) * | 2013-10-02 | 2015-04-16 | 富士通セミコンダクター株式会社 | 半導体装置および半導体装置の動作制御方法 |
-
1989
- 1989-11-17 JP JP1297315A patent/JPH03158937A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0581075A (ja) * | 1991-09-19 | 1993-04-02 | Mitsubishi Electric Corp | ソフトウエア開発装置 |
US5469550A (en) * | 1992-01-28 | 1995-11-21 | Cezzar; Ruknet | Reversible computer apparatus and methods of constructing and utilizing same |
US5428618A (en) * | 1993-01-27 | 1995-06-27 | Kabushiki Kaisha Toshiba | Debugger apparatus and method having an event history recording capability |
JPH07191875A (ja) * | 1993-12-27 | 1995-07-28 | Nec Corp | デバッガー |
JPH08320813A (ja) * | 1995-05-26 | 1996-12-03 | Nec Corp | プログラムシミュレータ装置及びプログラムデバッグ方法 |
JP2015072551A (ja) * | 2013-10-02 | 2015-04-16 | 富士通セミコンダクター株式会社 | 半導体装置および半導体装置の動作制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6003143A (en) | Tool and method for diagnosing and correcting errors in a computer program | |
JP2749528B2 (ja) | エラー解析用のトレーサシステム | |
US6981243B1 (en) | Method and apparatus to debug a program from a predetermined starting point | |
US20030208746A1 (en) | Conditional breakpoint encountered indication | |
CN115328796A (zh) | 一种用于arm架构的软件漏洞辅助定位方法和系统 | |
JPH03158937A (ja) | プログラム実行制御方式 | |
JPH04229340A (ja) | 共用メモリマルチプロセッサコンピュータのデバッグシステム | |
JPH09212385A (ja) | 並列プログラムデバッグ装置 | |
US20030018957A1 (en) | Debugger monitor with anticipatory highlights | |
EP2587380B1 (en) | Runtime environment and method for non-invasive monitoring of software applications | |
JPH0581070A (ja) | プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法 | |
JP3339708B2 (ja) | イベント記録方式 | |
JPH06282462A (ja) | 半導体試験装置制御プログラムデバッグ方式 | |
JPH03127234A (ja) | 計算機システムのプログラムデバッグ装置 | |
JP2743860B2 (ja) | 利用者プログラムのデバッグ処理システム | |
JPH0468446A (ja) | デバッグ支援装置 | |
JPH04328644A (ja) | デバッグ支援装置 | |
JPH0561717A (ja) | プログラムデバツグ装置 | |
JPH05108404A (ja) | デバツガシステム | |
JPS63289654A (ja) | プログラム分岐命令モニタ方式 | |
JPH02219136A (ja) | プログラム改造時のバグ検査方法 | |
JPS63217431A (ja) | プログラム実行解析監視方式 | |
JPH04273342A (ja) | ソフトウェア障害時の障害箇所出力方式 | |
JPH05127945A (ja) | プログラム実行状況解析方式 | |
JPS62237533A (ja) | デ−タ処理装置 |