JPH0231241A - プログラム逆順復元方式 - Google Patents

プログラム逆順復元方式

Info

Publication number
JPH0231241A
JPH0231241A JP63180388A JP18038888A JPH0231241A JP H0231241 A JPH0231241 A JP H0231241A JP 63180388 A JP63180388 A JP 63180388A JP 18038888 A JP18038888 A JP 18038888A JP H0231241 A JPH0231241 A JP H0231241A
Authority
JP
Japan
Prior art keywords
command
instruction
request signal
restoration
information
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
JP63180388A
Other languages
English (en)
Inventor
Nobuhiko Kishigami
岸上 信彦
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 JP63180388A priority Critical patent/JPH0231241A/ja
Publication of JPH0231241A publication Critical patent/JPH0231241A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラムのデバグ処理方式に関し。
特に利用者がプログラム上の不正動作をする部分を究明
するためのデバグ処理方式における。プログラムを命令
の逆順に復元させるためのプログラム逆順復元方式に関
する。
〔従来の技術〕
従来、この種のプログラム中の不正動作をする部分を究
明するデバグ処理方式は、デバグ支援プログラムを利用
して不正動作をすると思われる部分の近辺に複数個の中
断点を設定したうえでプログラムを起動し、設定した中
断点での値を出力することにより、プログラムの最初か
ら中断点までまたはひとつの中断点から次の中断点まで
のプログラムの妥当性を検証する方法をとっていた。
〔発明が解決しようとする課題〕
上述した従来のグログラム中の不正動作をする部分を究
明するデバグ処理方式は、デバグ支援!ログラムを利用
して不正動作をすると思われる部分の近辺に複数個の中
断点を設定してその中断点での値を出力することによシ
、プログラムの最初から中断点までまたはひとつの中断
点から次の中断点までのプログラムの妥当性を検証する
方法をとっていたため、−回では問題となる部分を特定
することが困難であり、少しずつ中断点を設定する範囲
を狭くすることにより目的の場所を捜すため、何回もプ
ログラムを最初から実行しなくてはならないという欠点
がある。
〔課題を解決するための手段〕
本発明によるプログラム逆順復元方式は、プログラム上
の不正動作をする部分を発見するデバグ処理方式におけ
る。プログラムを命令の逆順に復元させるだめのプログ
ラム逆順復元方式であって。
命令の逆順に結果を復元させるために必要なデータを退
避することを指示する退避指令と、命令の逆r=に結果
を復元させることを指示する復元指令とを有する指令を
読み込んで、該指令の内容を解析し、該指令が退避指令
であるときには退避指示を発生し、該指令が復元指令で
あるときには復元指示を発生する指令入力手段と。
該指令入力手段に結合され、前記退避指示に応答して退
避要求信号と一命令実行要求信号を発生し、前記復元指
示に応答して復元要求信号を発生する指令実行手段と。
該指令実行手段に結合され、前記退避要求信号に応答し
てメモリ参照要求信号を発生し、メモリ参照情報よシ前
記命令の逆順に結果を復元するために必要なデータを退
避情報として組み立て、テーブル設定要求信号を発生す
るデータ退避手段と。
該データ退避手段に結合され、前記メモリ参照費求信号
に応答して次に行う命令の内容とその命令が作用する部
分を利用者メモリ空間より取り込み、この取シ込まれた
情報を前記メモリ参照情報として前記データ退避手段へ
供給するメモリ参照手段と。
前記データ退避手段に結合され、前記テーブル設定要求
信号に応答して前記退避情報を再現情報格納テーブルに
設定し、前記退避情報を前記再現情報格納テーブルに格
納情報として格納させるテーブル設定手段と。
前記指令実行手段に結合され、前記復元要求信号に応答
してテーブル参照要求信号を発生し、テーブル参照情報
より一命令前の状態を復元するだめの命令を復元命令と
して組み立て、メモリ復元要求信号を発生するデータ復
元手段と。
該データ復元手段及び前記再現情報格納テーブルに結合
され、前記テーブル参照要求信号に応答して前記再現情
報格納テーブルに格納された前記格納情報の中から一命
令前の状態を復元するために必要な情報を読み込み、こ
の読み込まれた情報を前記テーブル参照情報として前記
データ復元手段へ供給するテーブル参照手段と。
前記データ復元手段及び前記利用者メモリ空間に結合さ
れ、前記メモリ復元要求信号に応答して前記復元命令を
前記利用者メモリ空間上に設定することにより一命令前
の状態を復元するメモリ復元手段と。
前記指令実行手段及び前記利用者メモリ空間に結合され
、前記一命令実行要求信号に応答して前記利用者メモリ
空間上にある実行すべき命令のうち1次に実行する命令
を一つだけ実行する一命令実行手段とを有する。
〔実施例〕
次に1本発明について図面を参照して説明する。
第1図は1本発明の一実施例の構成を示すブロック図で
ある。本実施例のプログラム逆順復元方式は、指令入力
手段1.指令実行手段2.データ退避手段3.メモリ参
照手段4.テーブル設定手段5.データ復元手段6.メ
モリ復元手段7.テーブル参照手段8.再現情報格納テ
ーブル9.利用者メモリ空間10.−命令実行手段11
.デバグ・コマンド12.デバグeコマンド入力手段1
3、及びデバグ・コマンド実行手段14で構成されてい
る。
第2図には、テーブル設定手段5で設定され。
テーブル参照手段8で参照される再現情報格納テーブル
9の詳細を示す。再現情報格納テーブル9は9次に実行
する命令がある場所を示す命令アドレスを格納するだめ
の領域91と、その命令が作用する対象を示す作用対象
を格納するための領域92と、その作用対象の大きさを
示す作用対象サイズを格納するための領域93と9作用
対象に格納されている値を示す作用対象値を格納するた
めの領域94とで構成されている。
次に本実施例の全体的な動作について具体的に説明する
デバグ・コマンド入力手段13は、利用者が指定したデ
バグ・コマンド12を入力して、コマンドの内容を解析
する。解析したコマンドが、命令の逆順に結果を復元さ
せるために次の命令で変化する部分を退避することを指
示する指令(退避指令)か、あるいは命令の逆順に結果
を復元させることを指示する指令(復元指令)であれば
デバグ・コマンド入力手段13は指令入力手段1を起動
し、それ以外のコマンドであればデバグ・コマンド実行
手段14を起動、すなわち、デバダ・コマンド指示をデ
バグ、コマンド実行手段14へ送出する。
指令入力手段1は、デバグ・コマンド入力手段13に与
えられたコマンドが命令の逆順に結果を復元させるため
に次の命令で変化する部分を退避することを指示する指
令、すなわち退避指令d−命令の逆順に結果を復元させ
ることを指示する指令。
すなわち復元指令である場合にデバグ・コマンド入力手
段13より起動され、入力した指令を実行するために指
令実行手段2を起動する。すなわち。
指令入力手段は、コマンドが退避指令であるときには退
避指示を、復元指令であるときには復元指示を指令実行
手段2へ供給する。
指令実行手段2は、命令の逆順に結果を復元させるため
に次の命令で変化する部分を退避するため、あるいは命
令の逆順に結果を復元するために指令入力手段1より起
動され、すなわち、退避指示あるいは復元指示に応答す
る。指令実行手段2は、命令の逆順に結果を復元させる
ために利用者メモリ空間10上の次の命令で変化する部
分を退避する必要があるときには、すなわち、退避指示
に応答して利用者メモリ空間IO上の次の命令で変化す
る部分を再現情報格納テーブル9に格納するためにデー
タ退避手段3を起動、すなわち退避要求信号をデータ退
避手段に送出後、−命令のみ実行するために一命令実行
手段11を起動、すなわち、一命令実行要求信号を一命
令実行手段11に送出するという一連の動作を命令の逆
順に結果を復元させるのに必要な範囲にある限り繰り返
す。
又、指令実行手段2は、命令の逆順に結果を復元する必
要があるときには、すなわち、復元指示に応答して、再
現情報格納テーブル9に格納された情報から一命令前の
状態を復元するためにデータ復元手段6を起動、すなわ
ち、復元要求信号をデータ復元手段6へ送出するという
動作を命令の逆順に結果を復元することが必要な範囲に
ある限シ繰り返す。
デ〜り退避手段3は、命令の逆順に結果を復元させるた
めに利用者メモリ空間10上の次の命令で変化する部分
を退避する必要があるときに、指令実行手段2より起動
され、すなわち、退避要求信号に応答して9次に行う命
令の内容とその命令が作用する部分を利用者メモリ空間
10より取り込むためにメモリ参照手段4を起動、すな
わち。
メモリ参照要求信号をメモリ参照手段4へ送出し。
その結果得た情報(メモリ参照情報)より命令の逆順に
結果を復元するために必要なデータを退避情報として組
み立てた上で、その退避情報を再現情報格納テーブル9
に格納するためにテーブル設定手段5を起動、すなわち
、テーブル設定要求信号をテーブル設定手段5へ送出す
る。
メモリ参照手段4は、命令の逆IIIに結果を復元要求
信号に応答して9次に行う命令の内容とその命令が作用
する部分を利用者メモリ空間10より取り込む。メモリ
参照手段4は、この取り込まれた情報をメモリ参照情報
としてデータ退避手段3へ供給する。
テーブル設定手段5は、メモリ参照手段4で得た情報、
すなわち、メモリ参照情報からデータ退避手段3が組み
立てた命令の逆順に結果を復元するために必要なデータ
、すなわち、退避情報を再現情報格納テーブル9に格納
するために起動され。
すなわち、テーブル設定要求信号に応答して、再現情報
格納テーブル9の中の命令アドレス、作用対象9作用対
象サイズ、作用対象値の各々を設定する。すなわち、テ
ーブル設定手段5は、退避情報を再現情報格納テーブル
9に格納情報として格納させる。
データ復元手段6は、命令の逆順に結果を復元させる必
要があるときに指令実行手段2よシ起動され、すなわち
、復元要求信号に応答して、−命令前の状態を復元する
だめの情報を再現情報格納テーブル9より得るためにテ
ーブル参照手段8を起動すなわち、テーブル参照要求信
号をテーブル参照手段8へ送出し、その結果得た情報(
テーブル参照情報)より一命令前の状態を復元するだめ
の命令を復元命令として組み立てた上でその内容を利用
者メモリ空間10に設定するためにメモリ設定手段7を
起動、すなわち、メモリ復元要求信号をメモリ復元手段
7へ送出する。
テーブル参照手段8は、再現情報格納テーブル9に格納
されている命令の逆順に結果を復元するための情報を取
り込むためにデータ復元手段6より起動され、すなわち
、テーブル参照要求信号に応答して、再現情報格納テー
ブル9の中の命令アドレス、作用対象1作用対象サイズ
、作用対象値の各々を読み込む。テーブル参照手段8は
、この読み込まれた情報をテーブル参照情報としてデー
タ復元手段6へ供給する。
メモリ復元手段7は、テーブル参照手段8で得た情報か
らデータ復元手段6が組み立てた。命令の逆順に結果を
復元するための命令、すなわち。
復元命令を実行するためにデータ復元手段6よシ起動さ
れ、すなわち、メモリ復元要求信号に応答して、利用者
メモリ空間10に復元命令を設定することにより一茄令
前の状態を復元する。
−命令実行手段11は、命令の逆順に結果を復元させる
ために利用者メモリ空間10上の次の命令で変化する部
分を退避する必要があるときに指令実行手段2より起動
され、すなわち、一命令実行要求信号に応答して、利用
者メモリ空間10上にある実行すべき命令のうち9次に
実行する命令を一つだけ実行する。
デバグ・コマンド実行手段14は、デバグ・コマンド入
力手段13が解析したコマンドが命令の逆順に結果を復
元させるために利用者メモリ空間10上の次の命令で変
化する部分を退避することを指示するもの、すなわち、
退避指令でも命令の逆順に結果を復元することを指示す
るもの、すなわち、復元指令でもない場合に、デバコゝ
・コマンド入力手段13より起動され、すなわち、デバ
グ、コマンド指示に応答して、デバグ・コマンドを実行
する。
〔発明の効果〕
以上説明したように1本発明はプログラム上の不正動作
をする部分を発見するデバグ処理方式において、プログ
ラムの最初から中断点までまたはひとつの中断点から次
の中断点までの利用者メモリ空間上の次の命令で変化す
る部分を一命令毎に退避する手段と退避した情報より一
命令前の状態を復元する手段を備えることにより、ある
中断点で不正動作が確認された場合に、その部分が原因
かどうかを判断するために、直前の中断点との間に新た
な中断点を設定して範囲を狭くした上で。
新たに設定した中断点までプログラムを一命令ずつ前の
状態に復元することが可能となるために。
従来の何回もプログラムを最初から実行しなくてはなら
ない方式と比較して、不正動作をする部分を発見するま
でのプログラムの実行命令数を削減することができるた
め、プログラムのデバグ効率を向上させることができる
効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例によるプログラム逆順復元方
式の構成を示すブロック図、第2図は第1図中の再現情
報格納テーブルの構成図である。 1・・・指令入力手段、2・・・指令実行手段、3・・
・データ退避手段、4・・・メモリ参照手段、5・・・
テーブル設定手段、6・・・データ復元手段、7・・・
メモリ復元手段、8・・・テーブル参照手段、9・・・
再現情報格納テーブル、10・・・利用者メモリ空間、
11・・・−命令実行手段、12・・・デバグ・コマン
ド、13・・・デバグ・コマンド入力手段、14・・・
デバグ・コマンド実行手段。 第2図

Claims (1)

  1. 【特許請求の範囲】 1、プログラム上の不正動作をする部分を発見するデバ
    グ処理方式における、プログラムを命令の逆順に復元さ
    せるためのプログラム逆順復元方式であって、 命令の逆順に結果を復元させるために必要なデータを退
    避することを指示する退避指令と、命令の逆順に結果を
    復元させることを指示する復元指令とを有する指令を読
    み込んで、該指令の内容を解析し、該指令が退避指令で
    あるときには退避指示を発生し、該指令が復元指令であ
    るときには復元指示を発生する指令入力手段と、 該指令入力手段に結合され、前記退避指示に応答して退
    避要求信号と一命令実行要求信号を発生し、前記復元指
    示に応答して復元要求信号を発生する指令実行手段と、 該指令実行手段に結合され、前記退避要求信号に応答し
    てメモリ参照要求信号を発生し、メモリ参照情報より前
    記命令の逆順に結果を復元するために必要なデータを退
    避情報として組み立て、テーブル設定要求信号を発生す
    るデータ退避手段と、該データ退避手段に結合され、前
    記メモリ参照要求信号に応答して次に行う命令の内容と
    その命令が作用する部分を利用者メモリ空間より取り込
    み、この取り込まれた情報を前記メモリ参照情報として
    前記データ退避手段へ供給するメモリ参照手段と、 前記データ退避手段に結合され、前記テーブル設定要求
    信号に応答して前記退避情報を再現情報格納テーブルに
    設定し、前記退避情報を前記再現情報格納テーブルに格
    納情報として格納させるテーブル設定手段と、 前記指令実行手段に結合され、前記復元要求信号に応答
    してテーブル参照要求信号を発生し、テーブル参照情報
    より一命令前の状態を復元するための命令を復元命令と
    して組み立て、メモリ復元要求信号を発生するデータ復
    元手段と、 該データ復元手段及び前記再現情報格納テーブルに結合
    され、前記テーブル参照要求信号に応答して前記再現情
    報格納テーブルに格納された前記格納情報の中から一命
    令前の状態を復元するために必要な情報を読み込み、こ
    の読み込まれた情報を前記テーブル参照情報として前記
    データ復元手段へ供給するテーブル参照手段と、 前記データ復元手段及び前記利用者メモリ空間に結合さ
    れ、前記メモリ復元要求信号に応答して前記復元命令を
    前記利用者メモリ空間上に設定することにより一命令前
    の状態を復元するメモリ復元手段と、 前記指令実行手段及び前記利用者メモリ空間に結合され
    、前記一命令実行要求信号に応答して前記利用者メモリ
    空間上にある実行すべき命令のうち、次に実行する命令
    を一つだけ実行する一命令実行手段と を有することを特徴とするプログラム逆順復元方式。
JP63180388A 1988-07-21 1988-07-21 プログラム逆順復元方式 Pending JPH0231241A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63180388A JPH0231241A (ja) 1988-07-21 1988-07-21 プログラム逆順復元方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63180388A JPH0231241A (ja) 1988-07-21 1988-07-21 プログラム逆順復元方式

Publications (1)

Publication Number Publication Date
JPH0231241A true JPH0231241A (ja) 1990-02-01

Family

ID=16082361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63180388A Pending JPH0231241A (ja) 1988-07-21 1988-07-21 プログラム逆順復元方式

Country Status (1)

Country Link
JP (1) JPH0231241A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903719A (en) * 1997-02-27 1999-05-11 Mitsubishi Electric Semiconductor Software Co., Ltd. Emulator apparatus and emulation method for efficiently analyzing program faults

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903719A (en) * 1997-02-27 1999-05-11 Mitsubishi Electric Semiconductor Software Co., Ltd. Emulator apparatus and emulation method for efficiently analyzing program faults

Similar Documents

Publication Publication Date Title
JPH1078889A (ja) マイクロコンピュータ
JPH0728670A (ja) 情報処理装置
JPH1078887A (ja) デバッグシステム及びデバッグ方法
JPH0231241A (ja) プログラム逆順復元方式
US20030188225A1 (en) Extended "run to" function
JPH0981405A (ja) コンピュータシステムのリトライ処理装置
JP2663895B2 (ja) Cpuシミュレータ
CN111611161B (zh) 一种应用于航空电子软件的轻量级调试工具的实现方法
JP2715988B2 (ja) プログラムシミュレータ装置及びプログラムデバッグ方法
JPH0675957A (ja) 編集中障害の復旧機構
KR100426308B1 (ko) 인증된 응용 프로그램을 획득하기 위한 트레이스 재실행시스템 및 방법
JPH0561717A (ja) プログラムデバツグ装置
JP2000181748A (ja) マルチメモリ空間プログラムのデバッグシステムおよびそのデバッグ方法
JP2000353109A (ja) エミュレータ及びエミュレーションシステム
JPH0816431A (ja) 利用者プログラムのデバッグ処理システム
JPH05108404A (ja) デバツガシステム
JPH04328644A (ja) デバッグ支援装置
JPH0468446A (ja) デバッグ支援装置
JPH05250208A (ja) プログラム再実行処理方式
JP3039450B2 (ja) スタック領域の切替方法、方式およびスタック領域切替プログラムを記録した記憶媒体
JPH0652013A (ja) トレース回路
JPH0287237A (ja) Execute命令制御方式
JPS62290942A (ja) デバツガ起動方式
JPH05204710A (ja) イベントトレース装置
JPH05324392A (ja) デバッグ装置