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
Application number
JP1297315A
Other languages
English (en)
Inventor
Toshihide Harada
原田 利英
Toshio Hagiwara
利男 萩原
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
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1297315A priority Critical patent/JPH03158937A/ja
Publication of JPH03158937A publication Critical patent/JPH03158937A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラム開発におけるテスト作業に係り、
プログラムを実行させ、テストを行う時の効率向上の方
式に関する。
〔従来の技術〕
従来の方式は、特開昭57−201152号に記載の様
に、一定時間の間隔で情報を蓄積し、異常が起こった時
は、一番新しく蓄積された情報を回復し、その回復した
地点より実行を再開するものであった。
〔発明が解決しようとする課題〕
上記従来技術では、テスト中に予想に反した現象が発生
した時、一番新しく蓄積された情報から現象発生までの
情報が失われる。また実行手順や環境を正確に再現しな
いと現象が再現しないことや原因追求に多大な工数を要
することがある。
本発明の目的は予想に反した現象が発生したらその場で
逆実行、再実行をして、即、再現できるテスト・デバッ
ガを実現し、プログラムの開発効率および製品の品質を
向上させることにある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明では、プログラムの
命令実行毎に書き変えられる情報のみを蓄積する手段と
、蓄積した情報から命令実行前の状態に回復する手段と
を発明したものである。
また、回復するために必要な情報とは、(1)上書きさ
れる時のレジスタ、領域名と、その値もしくは、 (2)分岐命令によって分岐した時のアドレスである。
〔作用〕
(1) プログラムの一命令実行毎に命令コードを解析
し、命令実行により上書きされるレジスタ、領域とその
値もしくは分岐した時のアドレス値を蓄積する。
(2)情報蓄積した情報を取出し、アドレスやレジスタ
、領域を回復する。
上記(1)を繰り返すことによりプログラムを実行し、
中断の後、上記(2)を繰り返すことにより逆実行がで
きる。さらに逆実行後、上記(1)を繰り返すことによ
り再実行ができる。
〔実施例〕
以下、本発明の一実施例を図面により詳細に説明する。
本実施例では、プログラムのデス1〜方式について適用
されるものとして以下の説明を行う。またテスト全体の
説明は省略し、本発明の特徴的な機第1図は、本発明の
一実施例としてデバッガに組込まれた機能構成図である
。1は端末からの指令を解析し、実行制御部へ渡たすユ
ーザインタフェース部、2は実行、逆実行、再実行の時
、各機能の制御を司どる実行制御部、3はテストされる
プログラムが格納されている記憶部、4は実行制御部よ
り送られてきた命令を解析し、上書きされるレジスタや
領域を判断する実行情報解析部、5は命令を実行(シミ
ュレート)する命令実行部。
6は情報蓄積部に蓄積されている情報を取込み、上書き
されたレジスタや領域を回復する逆実行環境回復部、7
は逆実行に必要な情報を、一定量蓄積する情報蓄積部で
ある。
第5図は第1図において記憶部に記憶されているプログ
ラムの一例である。本例は公知のハードウェアCOME
T (情報処理技術者試験用の仮想計算機)で動作する
アセンブラ言語CA S T、で記述されている。また
、プログラムはインタプリタ方式で動作するものとする
第4図は命令コードを解析するための命令解析テーブル
の構造例を示す図である。これ−は本実施例の例題プロ
グラムの記述言語CASLの言語仕様により作成したも
のである。フィールド30は命令コード、フィールド3
1からフィールド35は蓄積する情報の種類を表わし、
フィールドの値が1のとき当該フィールドの意味する情
報を蓄積することを示す。例えばLD命令はフィールド
31が1であるので第1オペランドが蓄積情報である。
また、フィールド31からフィールド34はレジスタま
たは領域の値を情報蓄積部に蓄積するものであり、フィ
ールド35はアドレスを情報蓄積部に蓄積するものであ
る。
第6図は本例題プログラムのフロチャートである。以下
、このプログラムを例として詳細に説明する。
まず、実行(順方向)と蓄積を説明する。
第2図は実行と蓄積の実行手順でありこれに従って説明
する。ユーザインタフェース部から実行の指令が来ると
、実行制御部は記憶部から命令を解析テーブルにより命
令を解析する(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図の様になっている情報蓄
積部から情報を取出してくる(18)。今、第7図N0
.71まで処理しているのでNO,71を情報蓄積部か
ら取出してくる。
被テストプログラムのプログラムカウンタは、現在第5
図アドレス70を指しているが、No、71の内容をみ
ると、アドレスの所が180となついるので(19)プ
ログラムカウンタに180を代入してアドレス180を
指すようにする(21)。
これで1ステップ逆火行したことになる。次にNo、7
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−で行う。
次に、再実行を説明する。再実行とは、中断した地点か
ら指定した所まで逆実行したのち、実行するものである
。第7図の状態から第5図アドレス70に、2回通過し
たのち3回目で中断する様にセットして逆実行すると、
すでに説明した逆実行手順(第3図)に従い情報蓄積部
は、第7図N0゜44まで処理を行う。ここで、例えば
G ROの値5710Hを0にして実行すると、すでに
説明した実行手順(第2図)に従い情報蓄積部は第8図
の様になる。この様に再実行により値を変えることで多
様なテストを行える。
本実施例によれば実行のみならず、逆火行、再実行も行
うことが可能となり、プログラム開発においてテスト期
間短縮及び品質向−Lに効果がある。
〔発明の効果〕
本発明によれば、テスト中に予想に反した現象が発生し
たり実行内容を詳しく調べたい時などに即、再現できる
ようになり、プログラム開発の品質向上、テスト工数の
低減に寄与し得えるツールを提供できる。
【図面の簡単な説明】
第1図は機能構成図、第2図は実行と蓄積実行手順を示
す図、第3図は逆実行の実行手順を示す図、第4図は命
令解析テーブルを示す図、第5図は例題プログラムを示
す図、第6図は例題プログラムの手順を示す図、第7図
は実行を行った時の情報蓄積部の例を示す図、第8図は
逆火行後、再実行を行った時の情報蓄積部の例を示す図
である。 1・・・ユーザインタフェース部、2・・・実行制御部
。 3・・・記憶部、4・・・実行情報解析部、5・・・命
令実行部、6・・・逆実行環境回復部、7・・・情報蓄
積部。 特開平3 158937 (5) 特開平3 158937 (6) 吊 ワ 国 ?1オ不定仮

Claims (1)

    【特許請求の範囲】
  1. 1、計算機システム中のプログラムにおいて、命令を実
    行する毎に、命令実行前のレジスタや領域またはアドレ
    スを蓄積する機能と、蓄積した情報から環境を再現する
    機能をもつことで、命令実行前の環境を回復することが
    でき、1命令毎の逆実行と逆実行後の再実行が可能とな
    ることを特徴とするプログラム実行制御方式。
JP1297315A 1989-11-17 1989-11-17 プログラム実行制御方式 Pending JPH03158937A (ja)

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)

* Cited by examiner, † Cited by third party
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 富士通セミコンダクター株式会社 半導体装置および半導体装置の動作制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
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) デ−タ処理装置