JP2753500B2 - 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法 - Google Patents

多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法

Info

Publication number
JP2753500B2
JP2753500B2 JP4509670A JP50967092A JP2753500B2 JP 2753500 B2 JP2753500 B2 JP 2753500B2 JP 4509670 A JP4509670 A JP 4509670A JP 50967092 A JP50967092 A JP 50967092A JP 2753500 B2 JP2753500 B2 JP 2753500B2
Authority
JP
Japan
Prior art keywords
code
area
instruction
execution
region
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 - Lifetime
Application number
JP4509670A
Other languages
English (en)
Other versions
JPH05505695A (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.)
DEIJITARU EKUITSUPUMENTO CORP
Original Assignee
DEIJITARU EKUITSUPUMENTO 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 DEIJITARU EKUITSUPUMENTO CORP filed Critical DEIJITARU EKUITSUPUMENTO CORP
Publication of JPH05505695A publication Critical patent/JPH05505695A/ja
Application granted granted Critical
Publication of JP2753500B2 publication Critical patent/JP2753500B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 背景技術 本発明は、ソフトウェアをデバッグする方法とシステ
ムに関し、更に詳しくは、多重アーキテクチャ環境内で
多重コードを実行するシステム内で特にコードのデバッ
グを行うデバッグの方法とシステムに関する。
ソフトウェアのデバッガは、正しく実行されているか
どうかをテスト中の新しく開発したプログラムまたは変
更した既存のプログラム内の不具合を検出し、補正する
ために一般的に使用する機構である。従来のデバッガで
は、ユーザはプログラムを単独のステップで実行する
か、または停止点または区切り点を設定することが可能
である。停止点または区切り点は、ユーザがメモリの内
容またはプログラムの状態の情報を検討し、または変更
するために対話を行うようにプログラムを停止するプロ
グラム内の点である。
もしデバッグすべきソフトウェアがプログラムを実行
するために入手することのできない新しいハードウェア
のアーキテクチャで使用するように設定されていれば、
固有のアーキテクチャまたは異なったアーキテクチャを
有する入手可能なコンピュータである種のソフトウェア
を実行するため、ソフトウェアのシュミレータを使用す
ることができる。プログラムのデバッグは、次にシュミ
レーションを行ったアーキテクチャによって行われる。
しかし、ユーザのソフトウェアまたは他のより水準の
高いソフトウェアは通常外部実行時間に対する依存性を
有し、このため、固有のアーキテクチャでこのようなソ
フトウェアを実行し、デバッグするために従来のシュミ
レータとデバッガを使用することは、非現実的または不
可能である。例えば、新しいアーキテクチャのための実
行時間のライブラリと動作システム自身を入手するこが
できないかもしれない。入手することのできない外部依
存性を取り除くため、新しいプログラムで広範な変更を
行わなければ、ライブラリと動作システムの呼び出しを
行う新しいプログラムは、固有のアーキテクチャ内でデ
バッグを行うシュミレータによって実行することはでき
ない。
従って、例え実際の新しいハードウェア、このハード
ウェア用の新しい動作システム及び(または)サポート
用のソフトウェアが入手できなくても、この新しいハー
ドウェアのアーキテクチャ用に設計された新しいソフト
ウェアを実行し、テストし、デバッグする必要性が存在
する。引用した特許出願番号1870−0411とその他の引用
した出願で開示されている新しいシステムと方法は、多
重アーキテクチャ環境内で多重コードを実行することに
よってこの必要性及び関連する必要性を満足するように
している。新しい多重アーキテクチャ・システムで使用
することのできる新しい呼び出し可能なシュミレータは
引用した出願番号1870−0420で開示されている。
多重アーキテクチャ環境内でデバッグを行うという見
地から、例えコードが2つのアーキテクチャの異なった
機能を利用していても、ユーザは、いずれのアーキテク
チャでもプログラムのコードと対話することができるこ
とが必要である。従って、多重アーキテクチャのデバッ
ガは多重アーキテクチャに同時にアクセスする必要があ
る。
本発明は、多重アーキテクチャ環境内に於いて多重コ
ード実行システムの多重アーキテクチャに同時にアクセ
スすることによって、プログラムのコードをデバッグす
るために使用することのできる新しい改良型デバッガ・
システムと方法に関する。
発明の開示 第1ハードウェア(X)のアーキテクチャを実施し、
第2(Y)アーキテクチャと定義域間の呼び出しを取り
扱う環境管理プログラムを有する多重コードを実行して
デバッグするシステム用のメモリ・システムと少なくと
も1つのシュミレータを有するコンピュータ・システム
に於いて、多重アーキテクチャ環境で上記の多重コード
を実行しデバッグするシステムの一部として、各領域内
でコードをデバッグするシステムが設けられる。
上記のデバッグ・システムは、X領域またはY領域か
らデバッガの動作に対する呼び出しを受け取る手段を有
する。呼び出しに応答して、デバッグ命令を発生してデ
バッグ動作の行われている領域に加える。
図面の簡単な説明 本明細書に含まれ本明細書の一部を構成する添付図
は、本発明の1実施例を図示し、明細書の記述と共に本
発明の目的、利点及び原理を説明する。上記の添付図に
於いて: 第1図は、多重アーキテクチャ環境内で多重コードを
実行してデバッグするシステムの機能ブロック図であ
る。
第2図は、第1図のシステムで使用するソフトウェア
・システムのより詳細な機能ブロック図を示し、本発明
に従って構成したデバッガを含む。
第3図は、第2図のデバッガのソフトウェア及びハー
ドウェア構造及び関連するシステムの構成要素を表す機
能ブロック図を示す。
第4図は、第3図のデバッガの一部として含まれるデ
バッガ・プログラム用の一般的なフローチャートを示
す。
第5図は、第3図のデバッガのための制御と調整を行
う環境管理プログラムの一部として含まれるシュミレー
タ/デバッガ用のドライブ・ループのフローチャートを
示す。
第6図は、マシン状態をSTEPに設定するためのデバッ
ガのプログラムによって実行されるマシン状態設定ルー
チンのフローチャートを示す。
第7図は、マシン状態をRUNに設定するためにデバッ
ガのルーチンによって実行されるマシン状態設定ルーチ
ンのフローチャートを示す。
第8A−8D図は、領域依存命令を実行するためのデバッ
ガのプログラムによって使用されるルーチンのそれぞれ
のフローチャートを示す。
第9図は、デバッガをサポートする場合、環境管理プ
ログラムによって与えられる定義域間プリチェック・ル
ーチンのフローチャートを示す。
第10図は、他のルーチンからの要求によってメモリ・
アドレスの領域を判定するルーチンのフローチャートを
示す。
発明を実施するための最良の形態 更に詳しく説明すれば、第1図は、多重アーキテクチ
ャ環境内で多重コードを実行してデバッグするように構
成したシステム10を示す。Xプロッセサ12は、Xコード
を含む多重コードを実行するための実Xアーキテクチャ
の一部を形成する。Xコードは、Xアーキテクチャ内で
動作するように設計したプログラムされた命令を含む。
一般的に、システム10は多重コードを処理して実行す
るように動作することができるが、好適な実施例では、
システム10は、2つのコード、即ちXコード及びYコー
ドで示す他のコードを実行するように構成されている。
Yコードは、そのアーキテクチャがXプロセッサ12によ
ってシュミレーションされているマシン上で実行するよ
うに設計したプログラムされた命令を有する。好適な実
施例では、システム10は、Yコードにコンパイルされた
即ち変換された新しいユーザの水準のプログラムまたは
他の水準のプログラムを直接実行することができ、これ
を実行する場合、X動作システムとサポート用ソフトウ
ェアを利用する。
変換したXプログラム・コードにシステム10を商業的
に適用する例として、Xコードはハードウェアの実行が
必要である複雑命令セット・コード(CISC)であり、Y
コードは実RISC(実縮小命令セット・コード)用のハー
ドウェアが必要でない縮小命令セット・コードである。
実現可能なCISCシステムは、本出願の譲受人の製作した
VAX(登録商標)コンピュータ・システムである。引用
した出願番号1870−0409及び0410、0411、0416、0419、
0420、0421、0422及び0423を参照するが、これらはCISC
からRISCへの変換システムに関するものである。
システム10は、第1図に示すようなプログラムとデー
タの構成要素に対する一般的なレイアウトを有するメモ
リ・システム14を有する。引用した出願番号1870−0411
で更に十分説明するように、Xローダ16はメモリ・シス
テム14に対してプログラム・コードの入力を行う。
第2図は、システム10によって実行することのできる
ソフトウェア・システム100のアーキテクチャを示す。
呼び出し可能なシュミレータ104は、第2アーキテクチ
ャ(領域、これはXハードウェア内で実施されたYアー
キテクチャであるのが好ましい)内でソフトウェア・シ
ステム100(第2図)の一部として機能する。シュミレ
ータ104は開発中であって入手することのできない可能
性のあるXハードウェアでYハードフェアをエミュレー
トするように構成される。一般的に、シュミレータ104
は、環境管理プログラム102を介してXコードからの呼
び出しによってY命令を実行する。Xコードを実行する
ための環境管理プログラム102を介して、またYコード
から呼び出しを行うこともできる。例えば、Yコードは
ユーザの水準のアプリケーション・プログラムを表し、
Xライブラリ内に位置するルーチンの実行を要求しても
よく、またはX領域内で動作システムの処理を要求する
呼び出しを行ってもよい。シュミレータ104の構造と動
作の詳細な説明については、引用した出願番号1870−04
20を参照すること。
システムの動作が多重コードの実行に限定されている
場合には、システム10にデバッグ能力を含める必要はな
い。しかし、システム10をコードのテストに使用しなけ
ればならない場合にはデバッグ能力が設けられる。
デバッガ・システム110は、環境管理プログラム102に
よって制御されてY領域内でデバッグ動作を行う。動作
全体の中で、デバッガ・システム110はいずれかの領域
内でコードを実行する場合の制御をユーザに提供し、そ
の結果、全体の実行プロセスを検討して変更し、不具合
を補正することができる。一般的に、X領域とY領域の
両方で区切り点を設定するようなデバッグ動作に必要な
手順を、このデバッガ・システムは提供する。デバッガ
110は、システム100内で呼び出し可能なシュミレータ10
4と対話を行うように構成される。
環境管理プログラム102は、定義域間検出システム106
を使用し、XコードまたはYコードのいずれかの実行中
に、何時定義域間の呼び出しが行われるかを判定する。
X−Yジャケット・システム108は、環境管理プログラ
ム・システム102内で動作し、ルーチンの間で定義域間
の呼び出しを実行する必要のあるXとYで実行可能な命
令のインターフェースを与える。検出装置及びジャッケ
ト・システム106と108のより詳細な開示については1870
−0421と1870−0422を参照すること。
環境管理プログラム102は、ドライバ・ループ112を実
行することによって呼び出し可能なシュミレータ104と
デバッカ110に対する監視制御を実行する。サポート・
ルーチン114は、特にデバッガ110からの要求に応じて種
々のサービスを提供する。
引用した出願番号1870−0409と1870−0410で開示した
コードの変換システムと方法を使用することによって、
CISCのユーザ水準のプログラムと他のXプログラムは機
能的に等価なRISC Yプログラムに変換することがで
き、これらのプログラムは、例え動作可能なRISC Yハ
ードウェアが入手できなくても、実CISC Xハードウェ
アでテスト及びデバック目的のためにシステム10によっ
て実行することが可能である。
有利なことは、Xプログラムを部分的にYプログラム
・コードに変換することができ、または新しいプログラ
ムを部分的にYコードで書いてサポート用または他のX
プログラム・コードによって実行することができ、かつ
XとYをミックスしたプログラム・コードはXコードと
Yコードの両方をテストしデバッグするためにシステム
10によって実行することができることである。Yコード
は、シュミレーションされたアーキテクチャ上で実行、
テスト及びデバッグされ、残りのXコードは固有のアー
キテクチャ上で実行、テスト及びデバッグされる。既存
のYコードのテストに成功すると、Xコードを完全に変
換してYコードのテストとデバッグを完了するまで、X
コードの他の部分を変換して段階的にYコードをテスト
しデバッグするこができる。階段状に前進するテストと
デバッグを使用することにより、テストとデバッグのプ
ロセスの全体を容易に行うことができる。
全体として、YアーキテクチャをYコードに変換する
即ちコンパイルし、多重アーキテクチャ・システムに含
まれているX即ち固有のハードウェアのアーキテクチャ
上で実行される動作システムと実行時間ライブラリによ
って与えられているYコード用の実行時間環境を有する
呼び出し可能なシステムのシュミレータ上でこのYコー
ドを実行することによって、プログラムをYアーキテク
チャに対して実行しテストすることができる。従って、
複合ソフトウェアは、X(実)アーキテクチャとY(シ
ュミレーションを行った)アーキテクチャとの組み合わ
せ上で適切に実行されるXコードとYコードを有してい
る。ここで説明する好適な実施例では、複合ソフトウェ
ア・システム用の動作システムは構造上Xアーキテクチ
ャに含まれている。
実アーキテクチャとシュミレーションされたアーキテ
クチャの間のコードの境界は、一般的にシステムのユー
ザのニーズに対して開放されている。例えば、コードの
境界は入出力中のプログラムとX動作システムの間に存
在することが可能であり、または上で示したように入出
力中のプログラム内に存在してもよい。
ソフトウェア・システム100は、一般的に広い範囲で
異なったアーキテクチャに対するアプリケーションを有
している。システム100は、また異なった動作システム
と異なった呼び出しシステムを有するアーキテクチャ実
行システムに対するアプリケーションを有しているが、
もしアーキテクチャ実行システムが同じ動作システムと
同じ呼び出し規格を有していれば、このようなアプリケ
ーションを容易に使用することができる。呼び出しシス
テムとこれらのシステムの間の相違点に関する他の背景
情報については引用した出願番号1870−0422を参照する
こと。
ドライバ・ループ 第5図は、シュミレーション/デバッグ動作を駆動す
るドライバ・ループ112のフローチャートを示す。ジャ
ケット・システム108を介してYルーチンを実行するた
めに呼び出しがXコード、しばしばXアプリケーション
・コードから行われると、ブロック118でループ112に入
る。ジャケットによって、XコードとYコードの間にイ
ンターフェースをとり、呼び出し基準の差を調整する。
ブロック120で、パラメータをジャケット・プロセス
の一部として設定し、特にXパラメータを適当なYのロ
ケーションに載置し、Yコードの実行中に使用する。従
って、通常のジャケットしたルーチンの呼び出しでは、
ジャケット・テーブルをジャケット・システム108内で
参照し、X領域内ではどこからパラメータが得られたか
ということと対応する値をY領域内のどこに載置すべき
かを判定する。自動的にジャケットしたルーチンの呼び
出しの場合には、ジャケット・システム108内でこの目
的のために標準呼び出し規則が特別のコードの中に含ま
れている。特に、領域のインターフェース目的のために
ジャケットを行うことに関しては、引用した出願番号18
70−0422に説明されている。
特別の即ち特に他から区別したリターン・アドレス
が、標準のリターン−アドレス・レジスタ内に設けられ
ている。この特に他から区別したリターン・アドレス
は、Yコードを含むものとして以前に設定したアドレス
の範囲の外部に存在する。これは、またY−X呼び出し
を符号化するために使用することのできるアドレスと異
なっていなければならない。
機能ブロック122では、ENV_CMDと名付けた列の変数が
デホルトによってRUNモード(連続的な命令の実行)に
設定され、またこれはデバッガ110からのユーザの選択
によってSTEPモード(命令毎の実行)にセットすること
もできる。例えば、ユーザはXコード・ルーチンによっ
て呼び出された特定のYルーチンに対してメンテナンス
を実行することを決定する場合があり、従って、このユ
ーザはY領域に対してSTEP MODEの選択を行うことがで
きる。
シュミレータ104はブロック124で呼び出され、選択さ
れたモードと現在のYマシンの状態に従ってYマシンの
シュミレーションを行う。次にXハードウェアによって
Y領域内で1つ以上のY命令が実行される。
ブロック126は、次にシュミレータ104の動作が終了し
た後、このシュミレータから戻された検出状態に応じて
ドライバ・ループを終了しリターンする。ブロック126
で示すように、もしYプログラムのカウンタがYコード
とデータを含むものとして以前に設定した範囲から外れ
ていると判定されれば、テスト・ブロック130はYプロ
グラム・カウンタが呼び出した側のXプログラムにリタ
ーンしているかどうかを判定する。
もしYプログラム・カウンタが特に他から区別したリ
ターン・アドレスとブロック130で一致していれば、Y
ルーチンの実行が完了し、そのXの呼び出した側にリタ
ーンする。ブロック132は、次にジャケット・サービス
を行う、即ち、このブロック132はYリザルト・レジス
タ(複数)からの適当な値をX領域にコピーする。通
常、ジャケットされた呼び出しは最初の呼び出しを開始
するのに使用するジャケット・テーブルによって処理さ
れる。自動ジャケット呼び出しには、以前に参照した特
別のジャケット・コードを使用する。出口ブロック134
で示すように、シュミレーションはこの点で終了する。
もしテスト・ブロック130で、Yプログラム・カウン
タがジャケット・テーブルの入り口に対応し、特に他か
ら区別したリターン・アドレスと一致していないと判定
されれば、Y領域内の現在の実行プロセス内でXルーチ
ンを実行するように呼び出しが行われる(プログラムの
エラーが存在しない場合)。次に、ブロック136はジャ
ケット・サービスを行う、即ち、このブロック136はY
−X呼び出しを開始、ジャケット・システム108はジャ
ケット・テーブルにアクセスしてY領域からX領域にパ
ラメータをコピーするのに必要な情報を取得し、また呼
び出し中のXルーチンのアドレスを得る等々を行う。呼
び出されたXルーチンからブロック136へのリターンが
行われるとリターン値がY領域にコピーされ、経路137
によって示すようにシュミレーションを再会する。
再びブロック126を参照し、もしSTEPモードが要求さ
れ、シュミレーションの終了がこれに従ってブロック13
8で示すようにステップ・ダン(Step Done)と呼ぶケー
スであると判定されれば、機能ブロック140はデバッガ1
10を呼び出して要求されたステップの動作の終了を指示
し、以前にリターンした状態と変数ENV_CMDを引き渡
す。シュミレータにリターンすることにより、デバッガ
110が直接的なシュミレータの再呼び出しを要求するこ
となく、シュミレーションを再開することができる。
デバッガ110は状態を解釈し、ユーザに報告を行うこ
とができる。以前に設定した内部スクリプトに従ってま
たはユーザの選択によってデバッガ110は別のシュミレ
ータのステップの動作を要求することができる。デバッ
ガの要求に従って、ドライバの変数ENV_CMDをRUNまたは
STEPに設定する。
デバッガ110は環境管理プログラム102を呼び出し、他
の照会と状態制御機能(BREAKPOINTのような)を実行す
る。本実施例では、シュミレーションはドライバ112に
よってのみ制御される。
もしシュミレーションの終了がアボート142または区
切り点144またはYのエラー146に起因するものであれ
ば、ブロック148はデバッガ110を呼び出し、ブロック14
0で説明したのと同じ方法で動作する。
デバッガ デバッガ110はX領域とY領域の両方でデバッグ動作
を行うものであり、第3図にその詳細を示す。更に、デ
バッガの動作に最も大きな関係を有する共通多重アーキ
テクチャ・メモリ、とソフトウェア・システム100の他
の構成要素内に内臓されているデバッガと関連するルー
チンを第3図に示す。
デバッガの実行プログラム200は、ブロック202で示す
ようにユーザと対話を行うように構成されている。従っ
て、ユーザは多重コードの実行とデバッグ・システムに
よって実行されているXプログラム・コードまたはYプ
ログラム・コード内の不具合を検出して補正することが
できる。
基本的なデバッグ機能は、一般的にX領域とY領域の
両方に対してデバッガ110によって与えられる。以下で
更に十分説明するように、基本的なデバッグ機能を実行
する手順と機構はX領域とY領域で異なっている。
プログラムの不具合の検出と補正を行うため、デバッ
ガ・プログラム200は、領域に依存したサポートまたは
サービス・ルーチン204と一般的なサポート・ルーチン2
06によって命令を実行するように更に構成されている。
ブロック208で示すように動作中のマシン(Xまたは
Y)の状態は、実行中のコード内でSTEP命令またはRUN
命令のいずれかに設定されている。
種々のデバッガサポート・ルーチン210がシュミレー
タ104内に内蔵され、環境管理プログラム102を制御する
ことによってアクセスされる。従って、アドレス領域ル
ーチン212と定義域間プリチェック・ルーチン214は、環
境管理プログラム102内でアクセスされ、デバッガの動
作に対して更にサポートを行う。
第10図のフローチャートに示すアドレス領域212は、
シュミレータ/デバッグ動作に必要であるので、命令ア
ドレスがY領域内に存在するかまたはX領域内に存在す
るかを判定する。好適な実施例では、ルーチン212(第1
0図)はY領域内に存在するアドレスの範囲のリスト213
を使用する。このリストのアドレスの範囲の1つである
全ての要求されたアドレス215はブロック217によってY
領域として戻され、このリストに存在しない全ての要求
されたアドレスはブロック219によってX領域として戻
される。ルーチン212はブロック221に存在する。3つ以
上のアーキテクチャに対してサービスを行う必要のある
場合、適当なリストと論理の変更を行う。
定義域間プリチェック・ルーチン214(第3図)によ
って、デバッガ200は(現在のプログラム・カウンタ)
を実行することに関する命令がコードの実行領域をXか
らYまたはYからXへの変更を引き起こすかどうかを判
定することができる。シューミレータ/デバッガ駆動ル
ープ112(第2図及び第5図)は環境管理プログラム102
によって実行され、Yコードの実行に対して基本的な制
御を行うと共に要求に従ってY領域をデバッグするデバ
ッガの動作を行わせる。メモリ・システム14は、固有の
(X)アーキテクチャとシュミレーションされた(Y)
アーキテクチャによって実行されているXとYのプログ
ラム・コード218と220を有している。デバッガの動作に
関連する他のメモリの内容には、Y領域のアドレス・リ
スト213、シュミレータ104の使用する区切り点テーブル
217及びYアーキテクチャ・プログラムの状態219(即
ち、シュミレーションされたプロッセサのレジスタの状
態)が含まれている。
この発明の本実施例では、各領域に対してプログラム
・カウンタが設けられている。特に、Xプログラム・カ
ウンタとYプログラム・カウンタが設けられ、これらの
X及びYプログラム・カウンタは基本的に相互に独立し
ている。Xプログラム・カウンタは、Xハードウェアに
よってXコードのメモリ命令のリストから取り出される
次の命令のアドレスを含むレジスタである。Yプログラ
ム・カウンタは、Yシュミレータの一部として構成され
たXハードウェア内のレジスタであり、同様にYコード
のメモリの命令リストからシュミレータによって取り出
された次のY命令を含んでいる。
デバッガのフローチャート デバッガのプログラム200は、第4図に示すフローチ
ャートに従ってその説明した機能を実行する。もし環境
管理プログラム102内のドライバ・ループ112(第2図と
第5図)がY領域の呼び出しを検出すれば、デバッガ・
プログラム200はブロック220でX領域またはY領域から
開始される。
デバッガ110が動作可能な場合、デバッガ・プログラ
ム200はこれに従って、XコードまたはYコードから開
始することができる。XコードまたはYコードのいずれ
かから開始されるのは、下記の場合である。
1.コードの実行がスタートし、デバッタのプロンプトが
最初のタスクの実行である場合。
2.区切り点に達した場合。
3.デバッガによって発生されたSTEP命令が終了した場
合。
4.XコードまたはYコードが例外条件を発生する場合。
5.コードの実行が終了する場合。
本実施例では、Xコードからの開始は標準のXハード
ウェアと標準のX動作システムによって行われる。Yコ
ードからの開始は、環境管理プログラム102内のドライ
バ・ループ216(第5図)によって行われる。
Yコードに対するデバッグの開始時点で、ドライバ・
ループ112(第2図、及び第4図で216で示す)はデバッ
ガ・プログラム200を呼び出し、これに現在のプログラ
ム状態と命令バッファに転送し、デバッガ・プログラム
200からリターンした場合に実行すべき命令をこの命令
バッファに入力する。命令バッファの名称はENV_CMDで
あり、その目的は、シュミレータ104の実行状態を制御
することである。
ユーザとの対話ブロック222では、現在のYプログラ
ム状態がユーザに報告され、命令がユーザから要求され
る。ユーザがサポート命令または実行状態命令を入力す
ると、ブロック222はこの命令を分析して実行する。
好適な実施例では、各々の一般的なサポート命令はブ
ロック206内の関連するルーチン(特に図示せず)によ
って実行され、次にユーザとの対話ブロック222に戻
る。一般的なサポート命令は、領域と関係なく同じ方法
で常に実行されている従来の命令である。本実施例では
このような命令には下記のものが含まれている。
1.スクリーンまたはウインドに対する表示の制御、 2.数字によって表示したデフォルト基数の2進法から16
進法への変更のような表示情報の形態の制御、及び 3.本譲受人の出版したVAX(登録商標)/VMS動作システ
ム用の注文番号AA−LA59A−TEのVMSのデバッガのマニュ
アルに説明されている他の機能の設定 プログラムの領域に依存するサポート命令EXAMINE、D
EPOSIT、SET BREAK、及びCANCEL BREAKは、ブロック2
04内のそれぞれのルーチンによって実行される。これら
のルーチンは、以下で詳細に説明する。全ての領域に依
存するサポート命令を実行した後、ユーザとの対話ブロ
ック222に戻る。
もしユーザがマシンの状態をブロック222で設定する
ように要求すれば、現在のプログラム領域に依存してブ
ロック224によってSTEP命令を実行するか、または現在
のプログラム領域に依存してブロック226によってRUN命
令を実行する。
STETまたはRUN命令の後、デバッガ・プログラム200は
ブロック227に示すように、適当な条件を設定して命令
をデバッガの制御下でその領域に加え、制御をYユーザ
・プログラムに戻し、次にこのプログラムは、これが呼
び出しによって中断された点からデバッガ110に対する
呼び出しを実行するステップに進む。
ブロック224のSETPルーチンに設定されたマシンの状
態を、第6図に詳細に示す。これの実行経路は、ここで
「デバッグ領域」と呼ぶSTEP命令を加えてデバッグ制御
下で動作されるべき領域によって決まる。一般的に、ST
EP命令によって、デバッガ110はコードを実行すべき領
域内で1つの命令が実行されることを指示し、次にブロ
ック220でデバッガに再びエントリすることによってユ
ーザから別の命令を要求する。
機能ブロック230は、定義域間プリチェック・ルーチ
ン214(第3図)を呼び出して実行する。ルーチン214
は、現在の命令が領域の変更を引き起こすかどうか、即
ち、1つの領域から他の領域への実行の切り換えを引き
起こすかどうかを判定する。もしそうであれば、新しい
領域で実行される第1命令のアドレスをまた判定する。
もし領域の変更を検出すれば、ブランチ231が続く。
ブロック232は新しい領域で実行される第1命令のアド
レスに区切り点を設定する。次に、マシンの状態はブロ
ック234によってRUNに設定され、その結果、今設定した
区切り点に達するまでコードを実行することができる。
最後に、参照番号236によって示すように、ブランチ231
からユーザ・プログラムに抜ける。
ブランチ231を介してブロック224から抜けた後、ジャ
ケット・コードは領域の変更を実行する。このことは引
用した出願番号1870−0422に更に詳しく開示されてい
る。新しいコードの実行が区切り点に達した後、デバッ
ガは再スタートしてSTEPルーチンが終了したことを示
す。
引き続きブランチ233が実行され、ブロック230で領域
のクロスが検出されない場合にはブロック235が動作可
能になる。STEP動作はX領域とY領域で異なった方法で
実行されるので、ブロック235は、現在の領域がXであ
るかYであるかを判定する。アドレス領域ルーチン212
(第3図)が環境管理プログラム102から呼び出され、
現在の命令実行アドレスに基づいて領域を判定する。も
しこの領域がシュミレーションされた(Y)領域である
と判定されれば、ブロック238は、デバッガのプログラ
ムの入力を受けたバッファ内のENV_CMDに対するSTEP命
令を発生する。このようにして、命令が環境管理プログ
ラム102に対して行われ、Y領域内で1つの命令を実行
する。これに応答して、ドライバ・ループ216(第5
図)は、Y領域のシュミレータ104のデバッグ・サポー
ト・ブロック210(第3図)内のSTEPルーチンを介して
この命令の実行を容易に行う。引用した出願番号1870−
0420でこのシュミレータ104のSTEPサポートをより詳細
に説明している。
もし領域が固有の(X)アーキテクチャであると判定
されれば、ブロック240は、標準のXハードウェアを使
用してXの状態をSTEPに設定し、STEPを実行する。例え
ば、VAX(登録商標)のシステムでは、SINGLE STEPモ
ードはプロッセサの状態の4バイト・データ内の1ビッ
トによって設定される。
ブロック238またはブロック240によってプログラム・
ブランチ233を実行した後、ルーチンはブロック236から
抜け、ブロック227を介してユーザ・プログラムに戻る
(第4図)。
マシンの状態を第4図のユーザまたは第6図のプログ
ラムによってRUNに設定すべきである場合、ブロック226
は第7図に示すルーチンを実行し、この実行経路は、RU
N命令を加えるべき領域にまた依存する。ブロック250に
入った後、機能ブロック252は、第6図でブロック235に
付いて説明した方法で現在のドメインを判定する。
もしY領域が検出されれば、ブロック254は、ENV_CMD
内のRUN命令を環境管理プログラム102によって与えられ
るバッファ内に載置する。次に、ドライバ・ループ216
はシュミレータ104に命令を加える。
もしX領域が検出されれば、ブロック256は、Xプロ
グラムの実行に戻ることによってXの状態をRUNに設定
する。ブロック254または256を実行した後、ルーチンは
ブロック258を抜けて呼び出しルーチンに進む。
第8A−8D図は、領域に依存するルーチンの内の選択し
たルーチンを示す。各ルーチンに入った後、現在の領域
は、第6図のブロック235で説明するように、それぞれ
ブロック270A、270B、270C、または270Dによって先ず判
定される。
第8A図の領域に依存するルーチン272はEXAMINE命令を
実行し、これによってユーザはメモリのロケーションを
検討することができる。もしターゲットのメモリのアド
レスがX領域内にあれば、ブロック274は、Xハードウ
ェアの動作によって共通メモリ内のX領域のロケーショ
ンの読み取りを実行する。
もしターゲットのアドレスがY領域内にあれば、ブロ
ック276は環境管理プログラム107にEXAMINE命令を処理
するように要求する。次に、環境管理プログラム102は
シュミレータ104によって動作し、共通メモリ内のY領
域のアドレスを読出し、このデータをユーザに提供す
る。
EXAMINEルーチン272は出口ブロック278で終了し、デ
バッガ・プログラム200は次にユーザとの対話ブロック2
2からの他の命令を待機する(第4図)。
他の領域に依存するルーチン、即ち、第8B図に示すDE
POSITルーチン280はDEPOSIT命令を実行し、この命令に
よって、ユーザはメモリのロケーションに書き込みを行
うことができる。もしターゲット・メモリのアドレスが
X領域内にあれば、ブロック282は共通メモリ内のX領
域のロケーションに直接書き込みを行う。
もしターゲットのメモリのアドレスがY領域内にあれ
ば、ブロック284は環境管理プログラム102にDEPOSIT命
令を処理するように要求する。次に、環境管理プログラ
ム102は、シュミレータ104によって動作し、共通メモリ
内のY領域ロケーションに書き込みを行う。
DEPOSITルーチン280は出口ブロック286で終了し、デ
バッガ・プログラム200はユーザとの対話ブロック222か
らの他の命令を待機する(第4図)。
第8C図内のSET BREAKPOINTルーチン290は、また領域
に依存し、ユーザとの対話ブロック222を介してユーザ
によって行われたSET BREAKPOINT命令またはブロック2
32がSTEP命令を実行した場合の現在の命令による領域の
クロスの結果として、この命令を実行する(第6図)。
前に指摘したように、区切り点は、STEP命令を実行する
場合の領域の変更命令のターゲット・アドレスに設定す
る必要がある。
もし区切り点のターゲット・アドレスがX領域内であ
れば、機能ブロック292は直接Xプログラムのコードに
区切り点を書き込む。もしアドレスがY領域内にあれ
ば、ブロック294は環境管理プログラム102に命令を処理
するように要求し、次に区切り点はシュミレータ104の
動作によってYプログラムのコード内に設定される。
命令された区切り点がプログラムのコードに入力され
た後、ブロック296は区切り点テーブルに項目を加えて
後で適当なSHOWまたはCANCELルーチンを使用するように
する。区切り点テーブルを使用することにより、デバッ
ガ・プログラム200は、後で区切り点のリストを表示
し、または選択的に区切り点を削除することができる。
テーブルに項目を加えた後、SET BREAKPOINTルーチ
ン290は出口ブロック298で終了し、要求を行っているル
ーチンに戻る。
これもまた領域に依存するCANCEL BREAKPOINTルーチ
ン300は、ユーザとの対話ブロック222でユーザが設けた
CANCEL BREAKPOINTを実行する(第4図)。この命令に
よって、あるプログラム・コードのアドレスにデバッガ
・プログラム200が以前に書き込んだ区切り点がキャン
セルされる。
もし区切り点に対するターゲット・アドレスがX領域
内にあれば、ブロック302はこれが以前にXプログラム
・コードに書き込んだ特定の区切り点を削除する。もし
ターゲット・アドレスがY領域であれば、ブロック304
は環境管理プログラム102に命令を処理するように要求
し、次に、シュミレータ104を動作して特定の区切り点
をYコードから取り除く。
キャンセル動作が終了した後、ブロック306はキャン
セルされた区切り点を区切り点リストから取り除く。ブ
ロック308でCANCEL BREAKPOINTルーチン300を抜け、ユ
ーザの他の命令を待機する。
第9図は、定義域間プリチェック・ルーチン214のフ
ローチャートを示し(第3図)、これは環境管理プログ
ラム102内に依存している。ルーチン214に入り、命令に
よって領域の変更が引き起こされるかどうかを判定す
る。
機能ブロック312は、先ず前に説明したような方法
で、現在のプログラム・カウンタのアドレス領域ルーチ
ン212(第10図)の動作によって現在の領域を判定す
る。もし現在の領域がY領域であれば、ブランチ314が
続き、もし現在の領域がX領域であれば、ブランチ316
が続く。
ブランチ314では、ブロック318でY命令を復号し、次
の命令を判定する。次に、次の命令のターゲット・アド
レスをアドレス領域ルーチン212を実行することによっ
てブロック320で判定する(第10図)。もしターゲット
のアドレスがY領域であれば、ブロック321はこの命令
によって領域を変更しないという指示を呼び出した側に
対して発生する。しかし、もしターゲット・アドレスが
X領域内にあれば、ブロック325は、命令によって領域
が変更されるという指示を呼び出した側に対して発生
し、更に次の命令のアドレスを発生して区切り点を入力
する。
ブランチ316では、X命令をブロック322によって復号
し、次の命令を判定する。次に、次の命令のターゲット
・アドレスはアドレス領域ルーチン212を実行すること
によって、ブロック324によって判定される(第10
図)。もしターゲット・アドレスがX領域であれば、ブ
ロック323は、命令によって領域が変更されないという
指示が呼び出した側に対して発生する。もしターゲット
・アドレスがY領域内にあれば、ブロック325は前に説
明したように領域の変更の指示を発生する。
定義域間プリチェック・ルーチン214は、ブロック326
によって示すように、呼び出した側に戻ることによって
終了する。
本発明の多重アーキテクチャ環境内で特にコードのデ
バッグを行う上記の改良したソフトウェアのデバッグ・
システムと方法には本発明の範囲と精神から逸脱するこ
となく当業者によって種々の変形と変更を行うことがで
きる。従って、本発明はこれらの変形と変更を添付の請
求の範囲とその等価物の範囲にあるものとして包含する
ことを意図するものである。
フロントページの続き (72)発明者 グリーブ ヘンリー エヌ ザ サード アメリカ合衆国 ニューハンプシャー州 03049 ホリス クレストウッド ド ライヴ 47 (56)参考文献 特開 平2−187830(JP,A) 特開 平2−22737(JP,A) 特開 平2−5140(JP,A) 特開 平2−5139(JP,A) 特開 平2−5138(JP,A) 特開 平4−302329(JP,A) 特表 平6−502736(JP,A) 特表 平5−508503(JP,A) 特表 平5−505694(JP,A) 特表 平5−505693(JP,A) 特表 平5−505692(JP,A) 米国特許5218699(US,A) 米国特許5548717(US,A) 米国特許5210874(US,A) 米国特許5210832(US,A) 米国特許5167023(US,A) 米国特許5291497(US,A) 米国特許5408650(US,A) 米国特許5142622(US,A) 米国特許5280617(US,A) 米国特許5613116(US,A) 米国特許5652869(US,A)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】Xコードに関係するX領域を与える第1の
    Xアーキテクチャを含み、前記X領域とY領域の双方と
    関係するコードを実行してデバッグするコンピュータシ
    ステムにおいて、 選択された領域でコードをデバッグする呼び出しを受け
    取る手段であって、前記選択された領域が前記X領域又
    は前記Y領域の一つであり、前記呼び出しが前記X領域
    及び前記Y領域から受け取られる、手段と、 Yコードに関係する前記Y領域を与える少なくとも1つ
    の第2のYアーキテクチャをシュミレートするシュミレ
    ータと、 前記Xコードと前記Yコードを記憶するメモリシステム
    と、 前記呼び出しを受け取る手段に応答して前記選択された
    領域でデバッグを開始する手段と、 前記開始手段に応答して設定命令を発生する手段であっ
    て、前記設定命令が、デバッグされる前記コードの実行
    の間に使用されて前記選択された領域で前記コンピュー
    タシステムの複数の所定のマシン実行状態の1つを設定
    する、手段と、 前記開始手段に応答してサポート命令を発生する手段で
    あって、前記サポート命令が、デバッグが開始された後
    前記X領域及び前記Y領域の各々においてデバッグをサ
    ポートするように用いられる、手段と、 を備えるコンピュータシステム。
  2. 【請求項2】前記複数の所定のマシン実行状態が、コー
    ドの実行がステップ状であるSTEP状態と、コードの実行
    が連続しているRUN状態を含み、前記コンピュータシス
    テムが、前記2のシュミレートされたYアーキテクチャ
    を実施するYハードウェアをエミュレートするシュミレ
    ータを有し、前記シュミレータが、X領域で前記Xハー
    ドウェアについて実行するXコードを有することを特徴
    とする請求項1に記載のシステム。
  3. 【請求項3】前記設定命令を発生する手段は、 命令が現在の領域から新しい領域への定義域間の実行の
    切り換えを必要とするかどうかを検出する手段と、 定義域間の実行の切り換えが要求されれば、新しい領域
    で実行されるべき第1命令のアドレスに区切り点を設定
    する手段と、 新しい領域に切り換わると、STEP命令実行を生じる手段
    と、 を有することを特徴とする請求項2に記載のシステム。
  4. 【請求項4】コードが実行されている現在の領域を決定
    する手段と、 前記決定する手段に応答して、Y領域が現在の領域であ
    り定義域間の実行の切り換えが要求されなければ、前記
    シュミレータとともに使用されるSTEP命令を発生する手
    段と、 X領域が現在の領域であり定義域間の実行の切り換えが
    要求されなければ、Xハードウェアとともに作用するST
    EP命令を発生する手段と、 を有することを特徴とする請求項3に記載のシステム。
  5. 【請求項5】コンピュータシステムでコードを実行して
    デバッグする方法において、 X領域でXコードをY領域でYコードを実行するステッ
    プであって、前記コンピュータシステムが、Xコードに
    関係する前記X領域を与える第1のXアーキテクチャ
    と、Yコードに関係する前記Y領域を与える少なくとも
    1つの第2のYアーキテクチャをシュミレートするシュ
    ミレータと、前記Xコードと前記Yコードとを記憶する
    メモリシステムとを有する、ステップと、 前記X領域とY領域で実行するコードから呼び出しを受
    け取るステップであって、前記呼び出しが選択された領
    域で実行する前記コードのデバッグの間に発生され、前
    記選択された領域が前期X領域又はY領域の1つであ
    る、ステップと、 前記呼び出しの1つを受け取るのに応答して前記選択さ
    れた領域で前記コードのデバッグを開始するステップ
    と、 選択された領域でマシン実行状態を設定するステップで
    あって、前記マシン実行状態が、コードがステップ状に
    実行されるSTEP状態とコードの実行が連続してRUNを含
    む所定のセット状態の1つである、ステップと、 コンピュータシステムを制御して前記X領域とY領域の
    各々でデバッグをサポートするステップと、 を含む方法。
  6. 【請求項6】コード命令が現在の領域から新しい領域へ
    の定義域間の実行の切り換えを要求しているかどうかを
    検出するステップと、 定義域間の実行の切り換えが要求されれば、新しい領域
    で実行されるべき命令のアドレスに区切り点を設定する
    ステップと、 新しい領域に切り換わると、コードのSTEP実行を生じる
    ステップと、 を含むことを特徴とする請求項5に記載の方法。
  7. 【請求項7】現在の領域を決定するステップと、 現在の領域がY領域又はX領域のいずれかであり、定義
    域間の実行の切り換えが要求されなければ、各命令の実
    行後コードの実行が停止されるステップと、を含むこと
    を特徴とする請求項6に記載の方法。
JP4509670A 1991-03-07 1992-03-05 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法 Expired - Lifetime JP2753500B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US66588891A 1991-03-07 1991-03-07
US665,888 1991-03-07
PCT/US1992/001612 WO1992015947A1 (en) 1991-03-07 1992-03-05 Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment

Publications (2)

Publication Number Publication Date
JPH05505695A JPH05505695A (ja) 1993-08-19
JP2753500B2 true JP2753500B2 (ja) 1998-05-20

Family

ID=24671965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4509670A Expired - Lifetime JP2753500B2 (ja) 1991-03-07 1992-03-05 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法

Country Status (8)

Country Link
US (1) US5548717A (ja)
EP (1) EP0532744B1 (ja)
JP (1) JP2753500B2 (ja)
AU (1) AU651453B2 (ja)
CA (1) CA2082066C (ja)
DE (1) DE69216020T2 (ja)
IE (1) IE79073B1 (ja)
WO (1) WO1992015947A1 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992015947A1 (en) 1991-03-07 1992-09-17 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5410648A (en) * 1991-08-30 1995-04-25 International Business Machines Corporation Debugging system wherein multiple code views are simultaneously managed
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
US5778230A (en) * 1995-11-13 1998-07-07 Object Technology Licensing Corp. Goal directed object-oriented debugging system
US6091897A (en) 1996-01-29 2000-07-18 Digital Equipment Corporation Fast translation and execution of a computer program on a non-native architecture by use of background translator
US6535903B2 (en) 1996-01-29 2003-03-18 Compaq Information Technologies Group, L.P. Method and apparatus for maintaining translated routine stack in a binary translation environment
US5826005A (en) * 1996-03-22 1998-10-20 Sun Microsystems, Inc. System and method for diagnosing computer program faults through the provision of program probe points and referenceable diagnostic program probes
US5901315A (en) * 1997-06-13 1999-05-04 International Business Machines Corporation Method for debugging a Java application having native method dynamic load libraries
US6631514B1 (en) * 1998-01-06 2003-10-07 Hewlett-Packard Development, L.P. Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations
US6141635A (en) * 1998-06-12 2000-10-31 Unisys Corporation Method of diagnosing faults in an emulated computer system via a heterogeneous diagnostic program
US6247172B1 (en) * 1998-07-02 2001-06-12 Hewlett-Packard Company Method for a translation system that aggressively optimizes and preserves full synchronous exception state
US6480818B1 (en) * 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US7464044B2 (en) 1998-12-08 2008-12-09 International Business Machines Corporation Method and system for using emulation objects for developing point of sale
US6230313B1 (en) * 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
ATE309548T1 (de) * 1999-05-07 2005-11-15 Infineon Technologies Ag System auf einem chip mit reprogrammierbarem testgerät, fehlerbeseitiger und busüberwachung
DE10036387A1 (de) * 1999-08-16 2001-03-01 Advantest Corp Halbleitertestprogramm-Diagnosevorrichtung
US6543049B1 (en) * 1999-09-03 2003-04-01 International Business Machines Corporation Ranked break points and method for debugging a computer program
US6785884B1 (en) * 1999-09-29 2004-08-31 Unisys Corporation Symbolic debug interface for register transfer simulator debugger
WO2001063416A1 (en) * 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for scalable array processor interrupt detection and response
US7613599B2 (en) * 2000-06-02 2009-11-03 Synopsys, Inc. Method and system for virtual prototyping
US20040111707A1 (en) * 2000-12-15 2004-06-10 Bliss Andrew L. Debugger for multiple processors and multiple debugging types
US20020083421A1 (en) * 2000-12-22 2002-06-27 Hitachi America, Ltd. Assembly language code compilation for an instruction-set architecture containing new instructions using the prior assembler
US6826746B2 (en) 2001-03-08 2004-11-30 International Business Machines Corporation Debugger probe for object oriented programming
US6931631B2 (en) * 2001-06-27 2005-08-16 International Business Machines Corporation Low impact breakpoint for multi-user debugging
US7007268B2 (en) * 2001-08-20 2006-02-28 Sun Microsystems, Inc. Method and apparatus for debugging in a massively parallel processing environment
US7200839B2 (en) * 2001-12-11 2007-04-03 International Business Machines Corporation Debugging transactions across multiple processors
US7168067B2 (en) * 2002-02-08 2007-01-23 Agere Systems Inc. Multiprocessor system with cache-based software breakpoints
TW588238B (en) * 2003-02-13 2004-05-21 Micro Star Int Co Ltd Program debugging method
US7496895B1 (en) * 2004-12-29 2009-02-24 The Mathworks, Inc. Multi-domain unified debugger
US7849450B1 (en) * 2005-01-28 2010-12-07 Intel Corporation Devices, methods and computer program products for reverse execution of a simulation
US7685593B2 (en) * 2005-05-12 2010-03-23 Microsoft Corporation Systems and methods for supporting multiple gaming console emulation environments
US20070011431A1 (en) * 2005-06-27 2007-01-11 Microsoft Corporation ROM software breakpoints
US8104019B2 (en) * 2006-03-31 2012-01-24 Microsoft Corporation Debugging in an operating system with multiple subsystems
US20070250814A1 (en) * 2006-04-21 2007-10-25 Microsoft Corporation Debugging in an operating system with multiple subsystems
US20080098359A1 (en) * 2006-09-29 2008-04-24 Ventsislav Ivanov Manipulation of trace sessions based on address parameters
US9317636B1 (en) * 2006-12-11 2016-04-19 Synopsys, Inc. System and method for stopping integrated circuit simulation
US8255203B2 (en) * 2007-04-26 2012-08-28 Hewlett-Packard Development Company, L.P. Method of debugging an executable computer program having instructions for different computer architectures
US20100024030A1 (en) * 2008-07-23 2010-01-28 Microsoft Corporation Restartable transformation automaton
JP2010140240A (ja) * 2008-12-11 2010-06-24 Renesas Electronics Corp プロセッサ、マルチプロセッサ、及び、デバッグ方法
US20100153693A1 (en) * 2008-12-17 2010-06-17 Microsoft Corporation Code execution with automated domain switching
US20130132063A1 (en) * 2011-11-18 2013-05-23 Michael J. Rieschl Systems and methods for debugging just-in-time static translation in an emulated system
US9262305B1 (en) * 2013-05-31 2016-02-16 Cadence Design Systems, Inc. Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US10339229B1 (en) 2013-05-31 2019-07-02 Cadence Design Systems, Inc. Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US9690686B1 (en) 2014-03-31 2017-06-27 Cadence Design Systems, Inc. Method for setting breakpoints in automatically loaded software
US11487561B1 (en) 2014-12-24 2022-11-01 Cadence Design Systems, Inc. Post simulation debug and analysis using a system memory model
US10802852B1 (en) 2015-07-07 2020-10-13 Cadence Design Systems, Inc. Method for interactive embedded software debugging through the control of simulation tracing components

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142622A (en) 1989-01-31 1992-08-25 International Business Machines Corporation System for interconnecting applications across different networks of data processing systems by mapping protocols across different network domains
US5167023A (en) 1988-02-01 1992-11-24 International Business Machines Translating a dynamic transfer control instruction address in a simulated CPU processor
US5210832A (en) 1986-10-14 1993-05-11 Amdahl Corporation Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle
US5210874A (en) 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US5218699A (en) 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5280617A (en) 1988-09-20 1994-01-18 Digital Equipment Corporation Automatic program code generation in a compiler system for an instantiation of a generic program structure and based on formal parameters and characteristics of actual parameters
US5291497A (en) 1991-02-01 1994-03-01 Digital Equipment Corporation Method for testing, debugging, and comparing computer programs using concurrent simulation of program paths
US5408650A (en) 1993-06-29 1995-04-18 Digital Equipment Corporation Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program
US5548717A (en) 1991-03-07 1996-08-20 Digital Equipment Corporation Software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5613116A (en) 1989-07-12 1997-03-18 Digital Equipment Corporation System for specifying interactions among objects in a digital data processing system
US5652869A (en) 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253425A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253430A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253435A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4084235A (en) * 1975-04-14 1978-04-11 Honeywell Information Systems Inc. Emulation apparatus
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4253145A (en) * 1978-12-26 1981-02-24 Honeywell Information Systems Inc. Hardware virtualizer for supporting recursive virtual computer systems on a host computer system
JPS6010665B2 (ja) * 1979-07-20 1985-03-19 沖電気工業株式会社 マイクロコンピユ−タ
GB2060225B (en) * 1979-09-29 1983-05-25 Plessey Co Ltd Multi-programming data processing system process suspension
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
US4533996A (en) * 1982-02-23 1985-08-06 International Business Machines Corporation Peripheral systems accommodation of guest operating systems
US4454580A (en) * 1981-09-16 1984-06-12 International Business Machines Corporation Program call method and call instruction execution apparatus
US4672532A (en) * 1982-06-14 1987-06-09 Tektronix, Inc. Software/hardware integration control system
US4509122A (en) * 1982-11-18 1985-04-02 International Business Machines Corporation Method for controlling the file transfer capability of an interactive text processing system that is emulating a host processing system terminal
JPS59140666A (ja) * 1983-01-31 1984-08-13 Victor Co Of Japan Ltd 回転記録媒体再生装置
US4727480A (en) * 1984-07-09 1988-02-23 Wang Laboratories, Inc. Emulation of a data processing system
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
JPS6273333A (ja) * 1985-09-26 1987-04-04 Nec Corp エミュレーション制御装置
US4794522A (en) * 1985-09-30 1988-12-27 International Business Machines Corporation Method for detecting modified object code in an emulator
EP0218979B1 (en) * 1985-10-03 1991-04-24 Mitsubishi Denki Kabushiki Kaisha Computer program debugging system
US4825354A (en) * 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
JPS62182939A (ja) * 1986-02-07 1987-08-11 Hitachi Ltd 情報処理装置の論理シミユレ−シヨン方法
JPS62214443A (ja) * 1986-03-17 1987-09-21 Fanuc Ltd エミユレ−シヨン実行方法
JPS6376028A (ja) * 1986-09-19 1988-04-06 Fujitsu Ltd 仮想計算機システムにおける命令ステツプ実行制御方式
US4841476A (en) * 1986-10-06 1989-06-20 International Business Machines Corporation Extended floating point operations supporting emulation of source instruction execution
US4802165A (en) * 1986-10-08 1989-01-31 Enteleki, Inc. Method and apparatus of debugging computer programs
US5133072A (en) * 1986-11-13 1992-07-21 Hewlett-Packard Company Method for improved code generation in reduced instruction set computers
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US4811345A (en) * 1986-12-16 1989-03-07 Advanced Micro Devices, Inc. Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
JPS6491228A (en) * 1987-09-30 1989-04-10 Takeshi Sakamura Data processor
US5067072A (en) * 1987-11-06 1991-11-19 Visystems, Inc. Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies
US4951195A (en) * 1988-02-01 1990-08-21 International Business Machines Corporation Condition code graph analysis for simulating a CPU processor
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
JP2666847B2 (ja) * 1988-06-06 1997-10-22 日本電気株式会社 異種言語間連絡方式
US5038348A (en) * 1988-07-01 1991-08-06 Sharp Kabushiki Kaisha Apparatus for debugging a data flow program
US5051893A (en) * 1988-07-11 1991-09-24 Digital Equipment Corporation System for processing data to facilitate the creation of executable images
WO1990001738A1 (en) * 1988-07-29 1990-02-22 Hunter Systems Software, Inc. Machine process for translating programs in binary machine language into another binary machine language
US4949255A (en) * 1988-09-07 1990-08-14 International Business Machines Corp. Message interface and method for recursive calling between interpretive and compiled computer processes
JPH02135545A (ja) * 1988-11-16 1990-05-24 Fujitsu Ltd デバッガの実行制御処理方式
US5313614A (en) * 1988-12-06 1994-05-17 At&T Bell Laboratories Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems
US5063499A (en) * 1989-01-09 1991-11-05 Connectix, Inc. Method for a correlating virtual memory systems by redirecting access for used stock instead of supervisor stock during normal supervisor mode processing
US5146593A (en) * 1989-03-06 1992-09-08 International Business Machines Corporation Procedure call interface
JPH02277146A (ja) * 1989-04-18 1990-11-13 Nec Corp プログラム・デバッグ方式
JPH0314040A (ja) * 1989-06-12 1991-01-22 Toshiba Corp プログラム移植支援装置
JPH0362202A (ja) * 1989-07-31 1991-03-18 Japan Electron Control Syst Co Ltd 制御プログラム開発装置
US5093917A (en) * 1990-01-17 1992-03-03 Ag Communication Systems Corporation Method for passing data parameters between a calling program and a called subroutine in a command analysis table of a computer stored data base system
US5307504A (en) * 1991-03-07 1994-04-26 Digital Equipment Corporation System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events
US5339422A (en) * 1991-03-07 1994-08-16 Digital Equipment Corporation System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210832A (en) 1986-10-14 1993-05-11 Amdahl Corporation Multiple domain emulation system with separate domain facilities which tests for emulated instruction exceptions before completion of operand fetch cycle
US5167023A (en) 1988-02-01 1992-11-24 International Business Machines Translating a dynamic transfer control instruction address in a simulated CPU processor
US5210874A (en) 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
US5280617A (en) 1988-09-20 1994-01-18 Digital Equipment Corporation Automatic program code generation in a compiler system for an instantiation of a generic program structure and based on formal parameters and characteristics of actual parameters
US5142622A (en) 1989-01-31 1992-08-25 International Business Machines Corporation System for interconnecting applications across different networks of data processing systems by mapping protocols across different network domains
US5613116A (en) 1989-07-12 1997-03-18 Digital Equipment Corporation System for specifying interactions among objects in a digital data processing system
US5218699A (en) 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5291497A (en) 1991-02-01 1994-03-01 Digital Equipment Corporation Method for testing, debugging, and comparing computer programs using concurrent simulation of program paths
US5548717A (en) 1991-03-07 1996-08-20 Digital Equipment Corporation Software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5652869A (en) 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5408650A (en) 1993-06-29 1995-04-18 Digital Equipment Corporation Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program

Also Published As

Publication number Publication date
AU1761992A (en) 1992-10-06
CA2082066A1 (en) 1992-09-08
AU651453B2 (en) 1994-07-21
JPH05505695A (ja) 1993-08-19
WO1992015947A1 (en) 1992-09-17
DE69216020D1 (de) 1997-01-30
DE69216020T2 (de) 1997-07-10
EP0532744A1 (en) 1993-03-24
IE79073B1 (en) 1998-04-08
CA2082066C (en) 1998-04-21
EP0532744B1 (en) 1996-12-18
IE920746A1 (en) 1992-09-09
US5548717A (en) 1996-08-20

Similar Documents

Publication Publication Date Title
JP2753500B2 (ja) 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
US5652869A (en) System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5680584A (en) Simulator system for code execution and debugging within a multi-architecture environment
US5613098A (en) Testing and debugging new Y architecture code on existing X architecture system by using an environment manager to switch between direct X code execution and simulated Y code execution
US5621886A (en) Method and apparatus for providing efficient software debugging
US5740413A (en) Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US8789023B2 (en) Backward post-execution software debugger
US5751942A (en) Trace event detection during trace enable transitions
US8584097B2 (en) Post-execution software debugger with event display
JPH0769835B2 (ja) 多重アーキテクチャ環境で多重コードの実行とデバッグを行うシステムで定義域間の呼び出しをジャケットする改良したシステムと方法
JP5905911B2 (ja) シングルステップ実行を用いる診断コード
US6425122B1 (en) Single stepping system and method for tightly coupled processors
EP0530351B1 (en) Improved system and method for detecting cross-domain instruction calls and data references especiallly adapted for code interface jacketing in a multi-code execution and debugging system within a multi-architecture environment
JPH0157375B2 (ja)
Berthaud et al. Coupling virtual machines and system construction
CN116974945A (zh) 一种基于qemu仿真的硬件调试***及调试方法
JPH11296408A (ja) 組み込み機器用ソフトウエア論理シミュレータ
JPS59202546A (ja) デバツグ装置
JP2001209555A (ja) 入出力エミュレーション装置、入出力装置のエミュレーション方法および入出力装置エミュレーションプログラムを記録した記録媒体
JPS63289653A (ja) インサ−キツトエミユレ−タ
JPH05204698A (ja) デバッガ処理方式
JP2001051873A (ja) デバッグ装置
JPS5995658A (ja) プログラム開発援助装置
JPH0566961A (ja) 情報処理装置のソフトウエアデバツグ方式
JPS59158449A (ja) デバツグ装置