JP2908446B1 - コンピュータシミュレータ及びシミュレーション方法 - Google Patents

コンピュータシミュレータ及びシミュレーション方法

Info

Publication number
JP2908446B1
JP2908446B1 JP10209145A JP20914598A JP2908446B1 JP 2908446 B1 JP2908446 B1 JP 2908446B1 JP 10209145 A JP10209145 A JP 10209145A JP 20914598 A JP20914598 A JP 20914598A JP 2908446 B1 JP2908446 B1 JP 2908446B1
Authority
JP
Japan
Prior art keywords
memory
storage unit
simulation
data
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.)
Expired - Fee Related
Application number
JP10209145A
Other languages
English (en)
Other versions
JP2000040018A (ja
Inventor
浩 安藤
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.)
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Original Assignee
NIPPON DENKI AISHII MAIKON SHISUTEMU KK
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 NIPPON DENKI AISHII MAIKON SHISUTEMU KK filed Critical NIPPON DENKI AISHII MAIKON SHISUTEMU KK
Priority to JP10209145A priority Critical patent/JP2908446B1/ja
Application granted granted Critical
Publication of JP2908446B1 publication Critical patent/JP2908446B1/ja
Publication of JP2000040018A publication Critical patent/JP2000040018A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

【要約】 【課題】不正データを書き込んだアドレスの特定を容易
化し不正データの発生原因を検出可能とすると共に少な
い記憶容量でシミュレーション状態を復元可能とするコ
ンピュータシミュレータ装置の提供。 【解決手段】プログラムの不正データの書き込みアドレ
スを解析する際に、入力手段より、不正データが書き込
まれたアドレスとクロック数を受け取りプログラムを再
実行し、メモリへデータが書き込みがなされた際に不正
データアドレスである場合にはレジスタ情報保存部のデ
ータを更新しメモリ更新履歴保存部のデータを初期化し
てからメモリのアドレスと更新前の値を保存し前記クロ
ックになった場合実行処理を終了しレジスタ情報保存部
と前記メモリ更新履歴保存部のデータを使って、最後に
不正データを書き込んだ状態に戻す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ開発
支援システムに関し、特にコンピュータ上で実行され
る、プログラムのデバッグ等に用いて好適なシミュレー
タ装置及び方法に関する。
【0002】
【従来の技術】コンピュータシステムの開発設計におい
て、プログラムのデバッグや障害解析を行う際に、指定
したイベントによるトレースや、ブレークポイントを設
定する等して、プログラムの実行履歴を解析するため、
デバッグ機能を有するシミュレータ装置が用いられる。
このシミュレータ装置は、ターゲットの計算機をコンピ
ュータ上でシミュレートするもので、ソースプログラム
をコンパイル・リンクした実行モジュールの命令実行を
シミュレートし、ステップ実行、ブレークポイント設
定、トレース、ダンプ等の各種解析機能を備える。この
種のシミュレータについては、例えば文献(David.A.
Patterson and John L.Hennessy,“Computer Org
anigeition & Design THE HARDWARE/SOFTWARE I
NTERFACE”,Morgan Kaufman,1998、Appendix
A.9)等が参照される。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
シミュレータ装置においては、コンピュータ上でのプロ
グラム実行時、不正データの書き込まれた場所を特定し
ようとした場合、次のような問題点があった。
【0004】第1の問題点は、不正データの書き込まれ
た場所を特定するのに時間がかかり、デバッグ効率が悪
い、ということである。
【0005】その理由は、プログラムが特定のメモリに
書き込む頻度は一般に高いので、不正データの書き込み
場所を先頭から検索したのではデータの書き換えが多
く、特定が困難である、ためである。
【0006】第2の問題点は、少ない記憶容量でシミュ
レーション状態を復元することができない、ということ
である。
【0007】その理由は、シミュレーション状態を復元
するには、通常は多くの情報を復元情報として保存して
おく必要があり、この復元情報を削除するための情報が
与えられないことから、削除できず、そのまま保管して
おくことが必要とされる、ためである。
【0008】したがって本発明は、上記問題点に鑑みて
なされたものであって、その目的は、不正データを書き
込んだアドレスの特定を容易化し不正データの発生原因
を検出可能とすると共に、少ない記憶容量でシミュレー
ション状態を復元可能とするコンピュータシミュレータ
装置を提供することにある。
【0009】
【課題を解決するための手段】前記目的を達成する本発
明は、イベントによるトレースや、ブレークといったデ
バッグ機能を具備したコンピュータシミュレータにおい
て、不正なデータを書き込んだ場所を検索し、当該不正
データを書き込んだ場所にシミュレーション状態を復元
できるようにしたものである。すなわち、ユーザプログ
ラム実行中にメモリ書き込みエラーが発生したとき、エ
ラー発生アドレスを指定してユーザプログラムを再実行
し、エラー発生個所ではエラー要因を取り除いて次のエ
ラー発生個所まで実行を継続させるようにしたものであ
る。
【0010】本発明は、メモリの更新履歴情報を保存す
るメモリ更新履歴保存部と、レジスタ情報を保存する情
報保存部と、プログラムの不正データの書き込みアドレ
スを解析する際に、入力手段より、不正データが書き込
まれたアドレスと、それまでに実行したシミュレーショ
ンクロック数を受け取り前記プログラムを最初から再実
行し、前記プログラム再実行中に、前記プログラムの命
令によりメモリへデータが書き込みがなされた際に、前
記書き込みアドレスが不正データが存在したアドレスで
ある場合には前記レジスタ情報保存部のデータを更新
し、この時点までに書き込まれていた前記メモリ更新履
歴保存部のデータを初期化してから、前記メモリ更新履
歴保存部にメモリのアドレスと更新前の値を保存し、前
記プログラム再実行前に、取得したシミュレーションク
ロックと現在のシミュレーションクロックとを比較し、
等しいクロックになった場合には実行処理を終了するシ
ミュレーション実行手段と、シミュレーション実行手段
でのシミュレーション実行処理の終了後、前記レジスタ
情報保存部と前記メモリ更新履歴保存部のデータを使っ
て、最後に不正データを書き込んだ状態に戻す復元手段
と、を備える。
【0011】
【発明の実施の形態】本発明の実施の形態について説明
する。ユーザプログラムのデバッグにおいて、コンピュ
ータシミュレータによるシミュレーション中に、ユーザ
プログラムのデータが不正になっている部分を検出した
場合、ユーザが指定する不正データのアドレスと、それ
までにシミュレーションしたクロック数によって、最後
に不正データを書き込んだ場所を検索し、シミュレータ
の状態を、当該不正データが書き込まれた前の状態に復
元する。
【0012】本発明の実施の形態において、図1を参照
すると、シミュレーション実行部(21)は、入力手段
(1)より、不正データが書き込まれたアドレスとそれ
までに実行したシミュレーションクロック数を受け取
り、レジスタ情報保存部(31)とメモリ更新履歴保存
部(32)を初期化して、ユーザプログラムの最初から
再実行する。
【0013】再実行中に任意のメモリへデータが書き込
まれた場合、シミュレーション実行部(21)はメモリ
更新履歴保存部(32)へメモリのアドレスと更新前の
値を保存するが、書き込みのあったアドレスが不正デー
タが存在したアドレスの場合には、レジスタ情報保存部
(31)のデータを更新し、この時点までに書き込まれ
ていたメモリ更新履歴保存部(32)のデータを初期化
してから、メモリ更新履歴保存部(32)にメモリのア
ドレスと更新前の値を保存する。
【0014】さらに、シミュレーション実行部(21)
では、再実行前に取得したシミュレーションクロックと
現在のシミュレーションクロックとを比較し、等しいク
ロックになった場合には実行処理を終了する。
【0015】実行処理終了後は、復元部(22)におい
て、レジスタ情報保存部(31)とメモリ更新履歴保存
部(32)のデータを使って、最後に不正データを書き
込んだ状態に戻し、全体の処理を終了する。
【0016】本発明は、その好ましい実施の形態におい
て、(a)プログラムがエラー発生した際、不正メモリ
アドレスとシミュレーション終了クロック数を入力して
前記プログラムを再実行し、(b−1)前記プログラム
についてシミュレーション実行する命令を解析し、(b
−2)該命令がメモリ書き込み命令であり、その書き込
みアドレスが、前記不正メモリアドレスに一致する場合
には、メモリ更新履歴保存部を初期化すると共に、レジ
スタ内容をレジスタ情報保存部に保存し、(b−3)前
記書き込み命令実行前の前記書き込みアドレスのメモリ
の内容を前記メモリ更新履歴保存部に保存した後、(b
−4)前記命令をシミュレーション実行し、(b−5)
現在のクロック数が前記シミュレーション終了クロック
数と等しくなるまで、上記(b−1)〜(b−4)の1
命令毎のシミュレーションを実行し、(c)現在のクロ
ックが前記シミュレーション終了クロックに等しい時に
前記メモリ更新履歴保存部によりメモリ内容を復元し、
前記レジスタ情報保存部からレジスタ内容を復元する。
【0017】本発明の実施の形態において、上記(a)
乃至(c)の各ステップの処理はコンピュータで実行さ
れるプログラム制御で実現され、本発明は、プログラム
を記録した記録媒体からコンピュータにプログラムをロ
ードして実行することで実施可能である。また、本発明
は、インサーキットエミュレータ等の開発支援システム
に組み込むこともできる。
【0018】本発明の実施の形態においては、このよう
にして、シミュレーション状態の復元情報のための記憶
容量を増大することなく、不正データの書き込まれた場
所を検索してシミュレーション状態を戻すことを可能に
する。以下実施例に即して説明する。
【0019】
【実施例】図1は、本発明の一実施例の構成を示す図で
ある。図1を参照すると、本発明のコンピュータシミュ
レータシステムの一実施例は、不正データの存在するア
ドレスを入力する入力手段1と、プログラム制御により
動作するシミュレーション処理部2と、シミュレーショ
ン状態を復元する情報を保存する情報保存部3と、を備
えて構成されている。
【0020】情報保存部3は、レジスタ情報保存部31
と、メモリ更新履歴保存部32と、を備えている。レジ
スタ情報保存部31は、記憶容量の少ない情報をまとめ
て保存する部分であり、再実行時に初期化され、不正な
データの存在したアドレスへの書き込みが発生するたび
に、保存データがすべて更新される。
【0021】メモリ更新履歴保存部32は、記憶容量の
大きなデータの一部だけを復元情報として保存する部分
であり、再実行時と不正なデータの存在したアドレスへ
の書き込みが発生した場合に初期化され、復元すべき情
報が発生するたびに保存データが追加される。
【0022】シミュレーション処理部2は、シミュレー
ション実行部21と復元部22と、を備えている。
【0023】シミュレーション実行部21は、入力手段
1から受け取った不正メモリのアドレスとシミュレーシ
ョンクロックにしたがって、再実行をしながら情報保存
部3へ復元情報を保存する。
【0024】復元部22は、シミュレーション実行部2
1の処理終了後、情報保存部3の復元情報を使って、シ
ミュレーション状態を不正データを書き込んだ最後の状
態に戻す。
【0025】図2は、本発明の一実施例の処理フローを
示す流れ図である。図1及び図2を参照して、本発明の
一実施例の動作について説明する。
【0026】本発明の一実施例の動作の前提として、不
正なデータが発生するまでユーザがプログラムのシミュ
レーションを実行している必要がある。これは、入力手
段1で、ユーザが不正データの存在するアドレスを入力
するために、どのアドレスに不正データが発生している
かを知る必要があることと、不正アドレスを入力した時
に、シミュレータが検索終了のための情報として、現在
のクロック値を取得するためである。
【0027】入力手段1により、ユーザが指定した不正
データの存在するメモリアドレスと検索終了用のクロッ
ク値および検索を指示するコマンドが、シミュレーショ
ン実行部21に渡される(図2のステップA1およびA
2)。
【0028】次にシミュレーション実行部21は、情報
保存部3の初期化とユーザプログラムを最初から再実行
するためのリスタート処理を行う(ステップA3)。
【0029】リスタート後、シミュレーション実行部2
1は1命令ずつのシミュレーションを、最初に取得した
検索終了クロック数に等しくなるまで繰り返す(ステッ
プA4およびA5)。
【0030】1命令ずつのシミュレーションは、さらに
図2のステップA41〜A46の処理に分かれ、シミュ
レーション実行中に情報保存部3を更新するための処理
を行う。
【0031】ステップA41では、これから実行する命
令の内容を解析する。
【0032】ステップA42では、解析した命令がメモ
リ書き込みの命令かどうかを判断する。メモリ書き込み
の命令でなければ、情報保存部3を更新する必要はない
ため、1命令の実行を行うステップA46へ処理を移し
て、1命令のシミュレーションを終了する。
【0033】ステップA42で、メモリ書き込み命令と
判断した場合、さらにステップA43で書き込むメモリ
アドレスが、最初に取得した不正メモリのアドレスと等
しいか判断する。
【0034】ステップA43で、書込アドレスが不正メ
モリアドレスに等しくなければ、メモリ更新履歴部32
のみを更新するだけなので、ステップA45で、書込命
令実行前のメモリ内容をメモリ更新履歴部32に保存す
る処理を行い、ステップA46で書込命令を実行して、
1命令のシミュレーションを終了する。
【0035】ステップA43で、不正メモリアドレスに
等しいと判断された場合には、それ以前の状態に復元す
る必要はないため、ステップA44で、レジスタ情報保
存部31の更新と、メモリ更新履歴部32の初期化を行
い、ステップA45で書込命令実行前のメモリ内容をメ
モリ更新履歴部32に保存する処理を行い、ステップA
46で該書込命令を実行して、1命令のシミュレーショ
ンを終了する。
【0036】ステップA5で、終了クロックに等しいと
判断された場合、復元部22にてレジスタ情報保存部3
1によるレジスタ情報の復元と、メモリ更新履歴32の
メモリ内容の復元を行う。
【0037】レジスタ情報保存部31には最後に更新し
たレジスタ情報が存在するだけなので、この情報のまま
レジスタ情報を復元できる。
【0038】メモリ更新履歴32には、最後に不正メモ
リアドレスにデータを書き込んだ命令以降のメモリアド
レスと更新前のメモリの内容とが順番に記録されている
ので、記録した順番とは逆順に復元することにより、最
後に不正メモリアドレスに書き込んだ前の状態にメモリ
内容を復元することができる。
【0039】復元部22でレジスタ内容とメモリ内容を
復元することにより、シミュレーションの状態を、不正
メモリアドレスに書き込んだ前の状態に戻すことができ
るので、これで全体の処理を終了する(ステップA
6)。
【0040】次に、図2のステップA4の動作を具体例
を用いて説明する。
【0041】図3は、あるシミュレーションモデルの機
械語プログラム例である。図3のプログラム例におい
て、r10、r11、r12はレジスタを、XXXX、YYYY、ZZZZは
メモリのアドレスを示すシンボルを表す。
【0042】また、st.bは、レジスタからメモリへの書
き込みを行う命令、ld.bは、メモリからレジスタへの読
み込みを行い命令、movは、レジスタや即値をレジスタ
へ代入する命令である。
【0043】図3において、不正メモリアドレスをXXXX
とし、命令108までシミュレーションをしていた場合
の図2のステップA41〜A46の動作は次のようにな
る。
【0044】図3の命令101がステップA41で解析
される。命令101は、メモリ書き込み命令ではないた
め、ステップA42でNoと判断され、ステップA46
で1命令実行して1シミュレーションを終了する。
【0045】次に図3の命令102は、ステップA41
で解析された後、ステップA42でメモリ書き込み命令
(Yes)と判断され、ステップA43に進む。
【0046】ステップA43で書き込みアドレスが不正
メモリアドレスXXXXと等しい(Yes)と判断さ
れ、ステップA44に進む。
【0047】ステップA44では、メモリ更新履歴保存
部32を初期化し、レジスタ情報保存部31を更新す
る。
【0048】続いてステップA45で、命令102によ
り、メモリXXXXに書き込む前の値がメモリ更新履歴
保存部32に保存され、ステップA46で、メモリ書き
込みを実行して、1シミュレーションを終了する。
【0049】次の命令103では、ステップA42まで
は命令102と同じだが、ステップA43で不正メモリ
アドレスと等しくない(No)と判断され、ステップA
45でメモリYYYYに書き込む前の値がメモリ更新履
歴保存部32に保存され、ステップA46でメモリ書き
込みを実行して1シミュレーションを終了する。
【0050】命令104はメモリからの読み込みである
が、メモリへの書き込みではないため命令101と同じ
処理となり、情報保存部3には何も保存されない。命令
105も命令101と同じため説明を省略する。
【0051】命令106は、命令102と同じ処理であ
るため詳細は省略するが、ステップA44でメモリ更新
履歴保存部32を初期化するため、命令102と命令1
03で保存されたXXXXとYYYYの以前のデータは
失われ、新たに命令106で書き込む前のデータが保存
される。
【0052】命令107も命令101と同じため説明を
省く。
【0053】命令108は、命令103と同じ処理にな
るため、ステップA45でメモリZZZZに書き込む前
の値がメモリ更新履歴保存部32に保存されることにな
る。結局命令101〜108をシミュレーションする
と、命令106(st.b r12,XXXX)を実行する前のレ
ジスタ値がレジスタ情報保存部31に、命令106以降
に書き換わったXXXXとZZZZのメモリの内容がメ
モリ更新履歴保存部32に残ることになる。
【0054】命令108まで再実行すると、検索終了の
クロックに等しくなるので、再実行を終了し、情報保存
部3の情報を復元することにより、最後に、メモリXX
XXへ書き込んだ命令106の状態へ復元できる。
【0055】次に、本発明の第2の実施例について説明
する。
【0056】図4は、本発明の第2の実施例の構成を示
す図である。図4を参照すると、本実施例は、前記第1
の実施例に、バックトレース情報保存部4を備えて構成
されている。
【0057】このバックトレース情報保存部4は、シミ
ュレーション実行後に、1命令ずつ逆実行を行うための
情報を、通常のシミュレーション実行中にシミュレーシ
ョン実行部21で保存する。
【0058】図5は、本発明の第2の実施例の処理フロ
ーを示す流れ図である。図4及び図5を参照して、本発
明の第2実施例の動作について説明する。
【0059】まず、図5のステップA1、A2、A3〜
A6およびA41〜A46の各処理は、図2の対応する
ステップと同じであるため、説明を省略する。
【0060】ステップB1では、不正データのメモリア
ドレスへの書き込みがバックトレース情報に残っている
か否かを検索し、情報が残っている場合には、ステップ
B2へ、情報が残っていない場合にはステップB3へ分
岐する。
【0061】ステップB2では、バックトレース情報に
したがって、不正データのメモリアドレス書き込み前ま
で逆実行を行い、この時点で復元が終了するので検索処
理を終了する。
【0062】ステップB3では、バックトレース情報を
初期化し、ステップA3〜A6の処理を実行して処理を
終了する。
【0063】十分な量のバックトレース情報が存在すれ
ば、ステップB3以降は不要であるが、バックトレース
情報はデータ保存量が大きいので、通常はデータの総保
存量が制限されるため、十分な量のバックトレース情報
が存在するとは限らない。
【0064】このため、バックトレース情報にデータが
残っていない場合の処理として、ステップB3以降が必
要である。
【0065】本発明の第2の実施例によれば、バックト
レース情報にデータが残っていれば再実行を行う必要が
なくなるため、検索処理を速めることができる。
【0066】本発明の第3の実施例について説明する。
本発明の第3の実施例の構成は、図1に示した構成と同
じである。図6は、本発明の第3の実施例の処理フロー
を示す流れ図である。図6を参照すると、ステップC1
が、図2の流れ図と相違している。
【0067】図6のステップA1、A2、A3〜A6お
よびA41〜A46の各処理は、図1及び図2と同じた
め、説明を省略する。
【0068】ステップC1は、メモリ更新履歴保存部3
2にデータを保存する前に、すでに同じアドレスのデー
タがメモリ更新履歴保存部32に存在するか検索し、デ
ータが存在する場合には新たにデータを保存しないよう
にする。メモリ更新履歴保存部32は復元情報を保存す
る記憶部であり、同じアドレスのデータであれば、最古
のデータを保存するだけで、復元情報として十分だから
である。
【0069】本発明の第3の実施例では、ステップC1
の追加により、検索処理は遅くなるが、メモリ更新履歴
保存部32をより少ない記憶容量で実現することができ
る。
【0070】
【発明の効果】以上説明したように、本発明によれば下
記記載の効果を奏する。
【0071】本発明の第1の効果は、不正なデータに着
目し、不正データがメモリに書き込まれた部分を繰り返
し検索することにより、不正データの発生原因をすばや
く探し出すことができる、ということである。
【0072】その理由は、本発明においては、データが
最後に目的のメモリへ書き込まれた場所を自動的に検索
し、データを書き込む前の状態に戻しているので、不正
データがメモリに書き込まれた部分の検索が続けて行え
る、ためである。
【0073】本発明の第2の効果は、記憶すべき情報量
を削減することができる、ということである。
【0074】その理由は、本発明においては、記憶すべ
き情報の少ない情報と多い情報に分け、記憶すべき情報
が多いものは、復元用の差分情報だけを保存するととも
に、保存情報が不要になった時点で削除している、ため
である。
【図面の簡単な説明】
【図1】本発明の第1の実施例の構成を示すブロック図
である。
【図2】本発明の第1の実施例の処理フローを示す流れ
図である。
【図3】本発明の第1の実施例を説明するための図であ
り、プログラムの一例を示す図である。
【図4】本発明の第2の実施例の構成を示すブロック図
である。
【図5】本発明の第2の実施例の処理フローを示す流れ
図である。
【図6】本発明の第3の実施例の処理フローを示す流れ
図である。
【符号の説明】
1 入力手段 2 シミュレーション処理部 21 シミュレーション実行部 3 情報保存部 31 レジスタ情報保存部 32 メモリ更新履歴保存部 4 バックトレース情報保存部

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】不正データが書き込まれたアドレスを少な
    くとも入力して、エラーの発生したプログラムを再実行
    し、不正データの書き込み命令に至った際に、エラー発
    生前の状態に復元して、次のエラー発生箇所まで命令の
    実行を継続する、ことを特徴とするコンピュータシミュ
    レーション方法。
  2. 【請求項2】メモリの更新履歴情報を保存するメモリ更
    新履歴保存部と、 レジスタ情報を保存する情報保存部と、 プログラムの不正データの書き込みアドレスを解析する
    際に、入力手段より、不正データが書き込まれたアドレ
    スと、それまでに実行したシミュレーションクロック数
    を受け取り前記プログラムを最初から再実行し、 前記プログラム再実行中に、前記プログラムの命令によ
    りメモリへのデータの書き込みがなされた際に、前記書
    き込みアドレスが不正データが存在したアドレスである
    場合には前記レジスタ情報保存部のデータを更新し、こ
    の時点までに書き込まれていた前記メモリ更新履歴保存
    部のデータを初期化してから、前記メモリ更新履歴保存
    部にメモリのアドレスと更新前の値を保存し、 前記プログラム再実行前に、取得したシミュレーション
    クロックと現在のシミュレーションクロックとを比較し
    これらが一致した場合には実行処理を終了するシミュレ
    ーション実行手段と、 前記シミュレーション実行手段でのシミュレーション実
    行処理の終了後、前記レジスタ情報保存部と前記メモリ
    更新履歴保存部のデータを用いて、最後に不正データを
    書き込む前の状態に戻す復元手段と、 を備えたことを特徴とするコンピュータシミュレータ装
    置。
  3. 【請求項3】前記レジスタ情報保存部が、前記プログラ
    ムの再実行時に初期化され不正なデータの存在したアド
    レスへの書き込みが発生するたびに保存データが更新さ
    れ、前記メモリ更新履歴保存部がプログラム再実行時と
    不正なデータの存在したアドレスへの書き込みが発生し
    た場合に初期化され、復元すべき情報が発生するたびに
    保存データが追加される、ことを特徴とする請求項1記
    載のコンピュータシミュレータ装置。
  4. 【請求項4】シミュレーション実行後に、1命令ずつ逆
    実行を行うためのバックトレース情報を保存するバック
    トレース情報保存部をさらに備えたことを特徴とする請
    求項1記載のコンピュータシミュレータ装置。
  5. 【請求項5】(a)プログラムがエラー発生した際、不
    正メモリアドレスとシミュレーション終了クロック数を
    入力して前記プログラムを再実行し、 (b−1)前記プログラムについてシミュレーション実
    行する命令を解析し、 (b−2)該命令がメモリ書き込み命令であり、その書
    き込みアドレスが、前記不正メモリアドレスに一致する
    場合には、メモリ更新履歴保存部を初期化すると共に、
    レジスタ内容をレジスタ情報保存部に保存し、 (b−3)前記書き込み命令実行前の前記書き込みアド
    レスのメモリの内容を前記メモリ更新履歴保存部に保存
    した後、 (b−4)前記命令をシミュレーション実行し、 (b−5)現在のクロック数が前記シミュレーション終
    了クロック数と等しくなるまで、上記(b−1)〜(b
    −4)の1命令毎のシミュレーションを実行し、 (c)現在のクロックが前記シミュレーション終了クロ
    ックに等しい時に前記メモリ更新履歴保存部によりメモ
    リ内容を復元し、前記レジスタ情報保存部からレジスタ
    内容を復元する、 ことを特徴とする、コンピュータシミュレーション方
    法。
  6. 【請求項6】(a−1)ユーザが指定する不正メモリア
    ドレスとシミュレーション終了クロック数を入力手段か
    ら入力して、前記プログラムを再実行するに当たり、バ
    ックトレース情報がある場合には、前記バックトレース
    情報から、前記メモリ更新履歴保存部によりメモリ内容
    を復元し、前記レジスタ情報保存部からレジスタ内容を
    復元し、 (a−2)バックトレース情報が存在しない場合には、
    バックトレース情報を初期化し、 請求項5の前記ステップ(b−1)からの処理を行う、 ことを特徴とする、コンピュータシミュレーション方
    法。
  7. 【請求項7】(a)プログラムがエラー発生した際、不
    正メモリアドレスとシミュレーション終了クロック数を
    入力して前記プログラムを再実行し、 (b−1)前記プログラムについてシミュレーション実
    行する命令を解析し、 (b−2)前記命令がメモリ書込命令であり、その書き
    込みアドレスが、前記不正メモリアドレスに一致する場
    合、メモリ更新履歴保存部を初期化すると共にレジスタ
    内容をレジスタ情報保存部に保存し、 (b−3)その後、前記メモリ更新履歴保存部にデータ
    があるか否か判定し、前記メモリ更新履歴保存部にデー
    タがある場合にはステップ(b−5)へ処理を移し、 (b−4)前記メモリ更新履歴保存部にデータがない場
    合には、前記書込命令実行前の前記書込アドレスのメモ
    リの内容を前記メモリ更新履歴保存部に保存し、 (b−5)前記命令をシミュレーション実行し、 (b−6)現在のクロック数が前記シミュレーション終
    了クロック数と等しくなるまで、上記(b−1)〜(b
    −5)の1命令毎のシミュレーションを実行し、 (c)現在のクロックが前記シミュレーション終了クロ
    ックに等しい時に前記メモリ更新履歴保存部によりメモ
    リ内容を復元し、前記レジスタ情報保存部からレジスタ
    内容を復元する、 ことを特徴とする、コンピュータシミュレーション方
    法。
  8. 【請求項8】(a)不正メモリアドレスとシミュレーシ
    ョン終了クロック数を入力手段から入力してプログラム
    を再実行させる処理、 (b−1)シミュレーション実行する命令を解析する処
    理、 (b−2)該命令がメモリ書き込み命令であり、その書
    き込みアドレスが、前記不正メモリアドレスに一致する
    場合には、メモリ更新履歴保存部を初期化すると共に、
    レジスタ内容をレジスタ情報保存部に保存する処理、 (b−3)前記書き込み命令実行前の前記書き込みアド
    レスのメモリの内容を前記メモリ更新履歴保存部に保存
    する処理、 (b−4)前記命令をシミュレーション実行する処理、 (b−5)現在のクロック数が前記シミュレーション終
    了クロック数と等しくなるまで、上記(b−1)〜(b
    −4)の1命令毎のシミュレーションを実行する処理、 (c)現在のクロックが前記シミュレーション終了クロ
    ックに等しい時に前記メモリ更新履歴保存部によりメモ
    リ内容を復元し、前記レジスタ情報保存部からレジスタ
    内容を復元する処理、 の上記(a)乃至(c)の各処理をコンピュータで実行
    させるためのプログラムを記録した記録媒体。
JP10209145A 1998-07-24 1998-07-24 コンピュータシミュレータ及びシミュレーション方法 Expired - Fee Related JP2908446B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10209145A JP2908446B1 (ja) 1998-07-24 1998-07-24 コンピュータシミュレータ及びシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10209145A JP2908446B1 (ja) 1998-07-24 1998-07-24 コンピュータシミュレータ及びシミュレーション方法

Publications (2)

Publication Number Publication Date
JP2908446B1 true JP2908446B1 (ja) 1999-06-21
JP2000040018A JP2000040018A (ja) 2000-02-08

Family

ID=16568063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10209145A Expired - Fee Related JP2908446B1 (ja) 1998-07-24 1998-07-24 コンピュータシミュレータ及びシミュレーション方法

Country Status (1)

Country Link
JP (1) JP2908446B1 (ja)

Also Published As

Publication number Publication date
JP2000040018A (ja) 2000-02-08

Similar Documents

Publication Publication Date Title
EP3785124B1 (en) Memory validity states in time-travel debugging
CN106951345B (zh) 一种虚拟机磁盘数据的一致性测试方法及装置
US8079022B2 (en) Simulation of software
US6148417A (en) Method for determining a source of failure during a file system access
EP3577564B1 (en) Efficient retrieval of memory values during trace replay
CN110168507B (zh) 可执行代码的推测重放
CN110955598B (zh) 一种内核态程序的断点处理方法及装置
CN114245892A (zh) 基于在时间旅行调试期间更改函数内部加载的数据竞争分析
JP3206641B2 (ja) マイコンシステムのデバッグ方法、デバッグ装置及びデバッグプログラムを記録した記録媒体
JP2908446B1 (ja) コンピュータシミュレータ及びシミュレーション方法
CN115712397A (zh) 缓存验证装置、方法及系统
US11803317B2 (en) Interrupted replicated write recognition
CN114780409A (zh) 基于程序运行进程的断点设置方法、电子设备和存储介质
JP3833626B2 (ja) テストケース生成装置及びテストケース生成方法
JP3110391B2 (ja) プログラム再実行方法
US6986110B1 (en) Automated method and system for backtracing of instruction parameters from specified instruction in test cases
JP2552738B2 (ja) データ処理装置
JP3728368B2 (ja) リソース競合チェック装置、アセンブル装置、リンク装置、命令パイプラインシミュレーション装置、リソース競合チェック方法、およびリソース競合チェックプログラムを記録した媒体
JPH10334125A (ja) Cadソフト自動試験装置、cadソフト自動試験システム及び方法並びに記録媒体
JP2001256079A (ja) ソフトウェアのデバッグ方法および論理回路のデバッグ方法
JP3059505U (ja) 記録されているプログラムの修復をおこなう修復システム
JP2001249906A (ja) SymmetricMultiプロセッサの試験実行方式
JP2001051864A (ja) データ処理装置の試験実行方式
JP2021111004A (ja) 情報処理プログラム、情報処理方法及び情報処理システム
JPH11149489A (ja) シミュレーション装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990302

LAPS Cancellation because of no payment of annual fees