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

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

Info

Publication number
JPH05505695A
JPH05505695A JP92509670A JP50967092A JPH05505695A JP H05505695 A JPH05505695 A JP H05505695A JP 92509670 A JP92509670 A JP 92509670A JP 50967092 A JP50967092 A JP 50967092A JP H05505695 A JPH05505695 A JP H05505695A
Authority
JP
Japan
Prior art keywords
debug
instruction
command
area
run
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.)
Granted
Application number
JP92509670A
Other languages
English (en)
Other versions
JP2753500B2 (ja
Inventor
ウールドリッジ ジェイムズ エイ
ブレンダー ロナルド エフ
グリーブ ヘンリー エヌ ザ サード
Original Assignee
デジタル イクイプメント コーポレーション
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 デジタル イクイプメント コーポレーション filed Critical デジタル イクイプメント コーポレーション
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)

Abstract

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

Description

【発明の詳細な説明】 多重アーキテクチャ環境内で特にフードのデバッグを行う改良したソフトウェア ・デバッグ・システムと方法背景技術 本発明は、ソフトウェアをデバッグする方法とシステムに関し、更に詳しくは、 多重アーキテクチャ環境内で多重コードを実行するシステム内で特にコードのデ バッグを行うデバッグの方法とシステムに関する。
ソフトウェアのデバッガは、正しく実行されているかどうかをテスト中の新しく 開発したプログラムまたは変更した既存のプログラム内の不具合を検出し、補正 するために一般的に使用する機構である。従来のデバッガでは、ユーザはプログ ラムを単独のステップで実行するか、または停止点または区切り点を設定するこ とが可能である。停止点または区切り点は、ユーザがメモリの内容またはプログ ラムの状態の情報を検討し、または変更するために対話を行うようにプログラム を停止するプログラム内の点である。
もしデバッグすべきソフトウェアがプログラムを実行するために入手することの できない新しいハードウェアのアーキテクチャで使用するように設計されていれ ば、固有のアーキテクチャまたは異なったアーキテクチャを育する入手可能なコ ンピュータである種のソフトウェアを実行するため、ソフトウェアのシュミレー タを使用することができる。プログラムのデバッグは、次にシュミレーシヨンを 行ったアーキテクチャによって行われる。
しかし、ユーザのソフトウェアまたは他のより水準の高いソフトウェアは通常外 部実行時間に対する依存性を有し、このため、固有のアーキテクチャでこのよう なソフトウェアを実行し、デバッグするために従来のシュミレータとデバッガを 使用することは、非現実的または不可能である。例えば、新しいアーキテクチャ のための実行時間のライブラリと動作システム自身を人手するこができないかも しれない。入手することのできない外部依存性を取り除くため、新しいプログラ ムで広範な変更を行わなければ、ライブラリと動作システムの呼び出しを行う新 しいプログラムは、固有のアーキテクチャ内でデバッグを行うシュミレータによ って実行することはできない。
従って、例え実際の新しいハードウェア、このハードウェア用の新しい動作シス テム及び(または)サポート用のソフトウェアが入手できなくても、この新しい ハードウェアのアーキテクチャ用に設計された新しいソフトウェアを実行し、テ ストし、デバッグする必要性が存在する。引用した特許出願番号1870−04 11とその他の引用した出願で開示されている新しいシステムと方法は、多重ア ーキテクチャ環境内で多重コードを実行することによってこの必要性及び関連す る必要性を満足するようにしている。新しい多重アーキテクチャ・システムで使 用することのできる新しい呼び出し可能なシュミレータは引用した出願番号l8 70−0420で開示されている。
多重アーキテクチャ環境内でデバッグを行うという見地から、例えコードが2つ のアーキテクチャの異なった機能を利用していても、ユーザは、いずれのアーキ テクチャでもプログラムのコードと対話することができることが必要である。
従って、多重アーキテクチャのデバッガは多重アーキテクチャに同時にアクセス する必要がある。
本発明は、多重アーキテクチャ環境内に於いて多重コード実行システムの多重ア ーキテクチャに同時にアクセスすることによって、プログラムのコードをデバッ グするために使用することのできる新しい改良型デバッガ・システムと方法に関 する。
発明の開示 第1ハードウエア(X)のアーキテクチャを実施し、第2(Y)アーキテクチャ と定義域間の呼び出しを取り扱う環境管理プログラムを有する多重コードを実行 してデバッグするシステム用のメモリ・システムと少なくとも1つのシュミレー タを有するコンピュータ・システムに於いて、多重アーキテクチャ環境で上記の 多重コードを実行しデバッグするシステムの一部として、各領域内でコートをデ バッグするシステムが設けられる。
上記のデバッグ・システムは、X領域またはX領域からデバッガの動作に対する 呼び出しを受け取る手段を育する。呼び出しに応答して、デバッグ命令を発生し てデバッグ動作の行われている領域に加える。
図面の簡単な説明 本明細書に含まれ本明細書の一部を構成する添付図は、本発明の1実施例を図示 し、明細書の記述と共に本発明の目的、利点及び原理を説明する。上記の添付図 に於いて: 第」図は、多重アーキテクチャ環境内で多重コードを実行してデバッグするシス テムの機能ブロック図である。
第2図は、第」図のシステムで使用するソフトウェア・システムのより詳細な機 能ブロック図を示し、本発明に従って構成したデバッガを含む。
第3図は、第2図のデバッガのソフトウェア及びハードウェア構造及び関連する システムの構成要素を表す機能ブロック図を示す。
第4図は、第3図のデバッガの一部として含まれるデバッガ・プログラム用の一 般的なフローチャートを示す。
第5図は、第3図のデバッガのために制御と調整を行う環境管理プログラムの一 部として含まれるシュミレータ/デバッガ用のドライバ・ループのフローチャー トを示す。
第6図は、マシン状態を5TEPに設定するためにデバッガのプログラムによっ て実行されるマシン状態設定ルーチンのフローチャートを示す。
第7図は、マシン状態をRUNに設定するためにデバッガのルーチンによって実 行されるマシン状態設定ルーチンのフローチャートを示す。
第8A−8D図は、領域依存命令を実行するためにデバッガのプログラムによっ て使用されるルーチンのそれぞれのフローチャートを示す。
第9図は、デバッガをサポートする場合、環境管理プログラムによって与えられ る定義域間ブリチェック・ルーチンのフローチャートを示す。
第10図は、他のルーチンからの要求によってメモリ・アドレスの領域を判定す るルーチンのフローチャートを示す。
発明を実施するための最良の形感 更に詳しく説明すれば、第1図は、多重アーキテクチャ環境内で多重コートを実 行してデバッグするように構成したシステムIOを示す。Xブロツセサ12は、 Xコードを含む多重コードを実行するための実Xアーキテクチャの一部を形成す る。Xコートは、Xアーキテクチャ内で動作するように設計したプログラムされ た命令を含む。
一般的に、システムIOは多重コードを処理して実行するように動作することが できるが、好適な実施例では、システムlOは、2つのコード、即ちXコード及 びXコートで示す他のコードを実行するように構成されている。Xコートは、そ のアーキテクチャがXプロセッサ12によってシュミレーションされているマシ ン上で実行するように設計したプログラムされた命令を育する。好適な実施例で は、システム10は、Xコートにコンパイルされた即ち変換された新しいユーザ の水準のプログラムまたは他の水準のプログラムを直接実行することができ、こ れを実行する場合、X動作システムとサポート用ソフトウェアを利用する。
変換したXプログラム・コードにシステム10を商業的に適用する例として、X コードはハードウェアの実行が必要である複雑命令セット・コード(CISC) であり、Xコートは実RISC(実縮小命令セット・コード)用のハードウェア が必要でない縮小命令セット・コードである。実現可能なCl5Cシステムは、 本出願の鐘受入の製作したVAX (登録商標)コンピュータ・システムである 。
引用した出願番号1870−0409及び0410.0411.0416.04 I9.0420,0421.0422及び0423を参照するが、これらはCl 5CからRISCへの変換システムに関するものである。
システム10は、第」図に示すようなプログラムとデータの構成要素に対する一 般的なレイアウトを有するメモリ・システム14を有する。引用した出願番号1 870−0411で更に十分説明するように、Xローダニ6はメモリ・システム 14に対してプログラム・コードの入力を行う。
第2図は、システム10によって実行することのてきるソフトウェア・システム 100のアーキテクチャを示す。呼び出し可能なシュミレータ104は、′@2 アーキテクチャ(領域、これはXハードウェア内で実施されたYアーキテクチャ であるのが好ましい)内でソフトウェア・システム100 (第2図)の一部ト シて機能する。シュミレータ+04は開発中であって入手することのできない可 能性のあるXハードウェアてYハードウェアをエミュレートするように構成され る。
一般的に、シュミレータ104は、環境管理プログラム102を介してXコード からの呼び出しによってY命令を実行する。Xコードを実行するための環境管理 プログラム102を介して、またXコートから呼び出しを行うこともできる。例 えば、Xコートはユーザの水準のアプリケーション・プログラムを表し、Xライ ブラリ内に位置するルーチンの実行を要求してもよく、またはX領域内で動作シ ステムの処理を要求する呼び出しを行ってもよい。シュミレータ104の構造と 動作の詳細な説明については、引用した出願番号+870−0420を参照する こと。
システムの動作が多重コードの実行に限定されている場合には、システム10に デバッグ能力を含める必要はない。しかし、システムlOをコードのテストに使 用しなければならない場合にはデバッグ能力が設けられる。
デバッガ・システム110は、環境管理プログラム102によって制御されてX 領域内でデバッグ動作を行う。動作全体の中で、デバッガ・システム+10は全 体の実行プロセスを検討して変更し、不具合を補正することができる。一般的に 、X領域とY@域の両方で区切り点を設定するようなデバッグ動作に必要な手順 を、このデバッガ・システムは提供する。デバッガ110は、システム100内 で呼び出し可能なシュミレータ+04と対話を行うように構成される。
環境管理プログラム102は、定義域量検出システム+06を使用し、Xコード またはXコートのいずれかの実行中に、何時定義域間の呼び出しが行われるかを 判定する。X−Yジャケット・システム108は、環境管理プログラム・システ ム+02内で動作し、ルーチンの間で定義域間の呼び出しを実行する必要のある XとYで実行可能な命令のインターフェースを与える。検出装置及びジャッケト ・システム106と108のより詳細な開示については1870−0421と1 870−0422を参照すること。
環境管理ブ0グラム102は、ドライバ・ループ112を実行することによって 呼び出し可能なシュミレータ104とデバッガ110に対する監視制御を実行す る。サポート・ルーチン114は、特にデバッガ110からの要求に応じて種々 のサービスを提供する。
引用した出願番号1870−0409と1870−0410で開示したコードの 変換システムと方法を使用することによって、Cl5Cのユーザ水準のプログラ ムと他のXプログラムは機能的に等価なRISCYプログラムに変換することが でき、これらのプログラムは、例え動作可能なRISCYハードウェアが入手で きなくても、実crsc xハードウェアでテスト及びデバッグ目的のためにシ ステムlOによって実行することが可能である。
有利なことは、Xプログラムを部分的にYプログラム・コードに変換することが でき、または新しいプログラムを部分的にYコードで書いてサポート用または他 のXプログラム・コートによって実行することができ、かつXとYをミックスし たプログラム・コートはXコードとYコードの両方をテストしデバッグするため にシステムlOによって実行することができることである。Yコードは、シュミ レーションされたアーキテクチャ上で実行、テスト及びデバッグされ、残りのX コードは固有のアーキテクチャ上で実行、テスト及びデバッグされる。既存のY コードのテストに成功すると、Xコードを完全に変換してYコードのテストとデ バッグを完了するまで、Xコードの他の部分を変換して階段的にYコードをテス トしデバッグするこができる。階段状に前進するテストとデバッグを使用するこ とにより、テストとデバッグのプロセスの全体を容易に行うことができる。
全体として、YアーキテクチャをYコードに変換する即ちコンパイルし、多重ア ーキテクチャ・システムに含まれているX即ち固有のハードウェアのアーキテク チャ上で実行される動作システムと実行時間ライブラリによって与えられている Yコード用の実行時間環境を有する呼び出し可能なシステムのシュミレータ上で このYコートを実行することによって、プログラムをYアーキテクチャに対して 実行しテストすることができる。従って、複合ソフトウェアは、X(実)アーキ テクチャと)′(シュミレーションを行った)アーキテクチャとの組み合わせ上 で適切に実行されるXコードとYコードを有している。ここで説明する好適な実 施例では、複合ソフトウェア・システム用の動作システムは構造上Xアーキテク チャに含まれている。
実アーキテクチャとシュミレーションされたアーキテクチャの間のコードの境界 は、一般的にシステムのユーザのニーズに対して開放されている。例えば、コー ドの境界は入出力中のプログラムとX動作システムの間に存在することが可能で あり、または上で示したように入出力中のプログラム内に存在してもよい。
ソフトウェア・システム100は、一般的に広い範囲で異なったアーキテクチャ に対するアプリケーションを有している。システム100は、また異なった動作 システムと異なった呼び出しシステムを育するアーキテクチャ実行システムに対 するアプリケーションを有しているが、もしアーキテクチャ実行システムが同じ 動作システムと同じ呼び出し規格を有していれば、このようなアプリケーション を容易に使用することができる。呼び出しシステムとこれらのシステムの間の相 違点に関する他の背景情報については引用した出願番号1870−0422を参 照すること。
ドライバ・ループ 第5図は、シュミレーション/デバッグ動作を駆動するドライバ・ループ1】2 のフローチャートを示す。ジャケット・システム108を介してXルーチンを実 行するために呼び出しがXコード、しばしばXアプリケーション・コードから行 われると、ブロック118でループ112に入る。ジャケットによって、Xコー ドとYコードの間のインターフェースをとり、呼び出し基準の差を調整する。
ブロック+20で、パラメータをジャケット・プロセスの一部として設定し、特 にXパラメータを適当なYのロケーションに載置し、Yコードの実行中に使用す る。従って、通常のジャケットしたルーチンの呼び出しでは、ジャケット・テー ブルをジャケント・システム108内で参照し、X領域内てはとこからパラメー タか得られたかということと対応する値をX領域内のどこに載置すべきかを判定 する。自動的にジャケットしたルーチンの呼び出しの場合には、ジャケット・シ ステム108内てこの目的のために標準呼び出し規則か特別のコードの中に含ま れている。特に、領域のインターフェース目的のためにジャケットを行うことに 関しては、引用した出願番号+870−0422に説明されている。
特別の即ち特に他から区別したリターン・アドレスが、標準のリターン−アドレ ス・レンスタ内に設けられている。この特に他から区別したリターン・アドレス は、Yコートを含むものとして以前に設定したアドレスの範囲の外部に存在する 。これは、またY−X呼び出しを符号化するために使用することのできるアドレ スと異なっていなければならない。
機能ブロック122では、ENV CMDと名付けた列の変数がデホルトによっ てRUNモード(連続的な命令の実行)に設定され、またこれはデバッガ110 からのユーザの選択によって5TEPモード(命令毎の実行)にセットすること もてきる。例えば、ユーザはXコード・ルーチンによって呼び出された特定のX ルーチンに対してメンテナンスを実行することを決定する場合かあり、従って、 このユーザはX領域に対して5TEP MODEの選択を行うことかできる。
シュミレータ104はブロック+24で呼び出され、選択されたモードと現在の Yマシンの状態に従ってYマシンのシュミレーションを行う。次にXノλ−ドウ エアによってX領域内で1つ以上のY命令が実行される。
ブロック126は、次にンユミレータ104の動作が終了した後、このシュミレ ータから戻された検出状態に応じてドライバ・ループを終了しリターンする。
ブロック126で示すように、もしYプログラムのカウンタがYコートとデータ を含むものとして以前に設定した範囲から外れていると判定されれば、テスト・ ブロック130はYプログラム・カウンタが呼び出した側のXプログラムにリタ ーンしているかどうかを判定する。
もしYプログラム・カウンタが特に他から区別したリターン・アドレスとブロッ ク130で一致していれば、Xルーチンの実行が完了し、そのXの呼び出した側 にリターンする。ブロック132は、次にジャケット・サービスを行う、即ち、 このプロ、・り132はYリザルト・レジスタ(複数)からの適当な値をX領域 にコピーする。通常、ジャケットされた呼び出しは最初の呼び出しを開始するの に使用するジャケット・テーブルによって処理される。自動ジャケット呼び出し には、以前に参照した特別のジャケット・コードを使用する。出口ブロック13 4で示すように、シュミレーションはこの点て終了する。
もしテスト・ブロック130で、Yプログラム・カウンタがジャケット・テーブ ルの入り口に対応し、特に他から区別したリターン・アドレスと一致していない と判定されれば、X領域内の現在の実行プロセス内でXルーチンを実行するよう に呼び出しが行われる(プログラムのエラーが存在しない場合)。次に、ブロッ ク136はジャケット・サービスを行う、即ち、このブロック136はY−x呼 び出しを開始し、ジャケット・システム108はジャケット・テーブルにアクセ スしてX領域からX領域にパラメータをコピーするのに必要な情報を取得し、ま た呼び出し中のXルーチンのアドレスを得る等々を行う。呼び出されたXルーチ ンからブロック136へのリターンが行われるとリターン値がX領域にコピーさ れ、経路137によって示すようにシュミレーションを再会する。
再びブロック126を参照して、もし5TEPモードが要求され、シュミレーシ ョンの終了がこれに従ってブロック138で示すようにステップ・ダン(Ste p Done)と呼ぶケースであると判定されれば、機能ブロック140はデバ ッガ110を呼び出して要求されたステップの動作の終了を指示し、以前にリタ ーンした状態と変数ENV CMDを引き渡す。シュミレータにリターンするこ とにより、デバッガ110が直接的なシュミレータの再呼び出しを要求すること なく、シュミレーションを再開することができる。
デバッガ!10は状態を解釈し、ユーザに報告を行うことができる。以前に設定 した内部スクリプトに従ってまたはユーザの選択によってデバッガ+10は別の シュミレータのステップの動作を要求することができる。デバッガの要求に従っ て、ドライバの変数ENV CMDをRUNまたは5TEPに設定する。
デバッガ110は環境管理プログラム102を呼び出し、他の照会と状態制御機 能(BREAKPOINTのような)を実行する。本実施例では、シュミレーシ ョンはドライバ112によってのみ制御される。
もしシュミレーションの終了がアポート】42または区切り点+44またはYの エラー146に起因するものであれば、ブロック148はデバッガ110を呼び 出し、ブロック140で説明したのと同じ方法で動作する。
デバッガ デバッガ110はX領域とX領域の両方でデバッグ動作を行うものであり、第3 図にその詳細を示す。更に、デバッガの動作に最も大きな関係を有する共通多重 アーキテクチャ・メモリ、とソフトウェア・システム+00の他の構成要素内に 内臓されているデバッガと関連するルーチンを第3図に示す。
デバッガの実行プログラム200は、ブロック202で示すようにユーザと対話 を行うように構成されている。従って、ユーザは多重コードの実行とデバッグ・ システムによって実行されているXプログラム・コードまたはXプログラム・コ ード内の不具合を検出して補正することができる。
基本的なデバッグ機能は、一般的にX領域とX領域の両方に対してデバッガ11 0によって与えられる。以下で更に十分説明するように、基本的なデバッグ機能 を実行する手順と機構はX領域とX領域で異なっている。
プログラムの不具合の検出と補正を行うため、デバッガ・プログラム200は、 領域に依存したサポートまたはサービス・ルーチン204と一般的なサポート・ ルーチン206によって命令を実行するように更に構成されている。ブロック2 08で示すように動作中のマシン(XまたはY)の状態は、実行中のコート内で 5TEP命令またはRUN命令のいずれかに設定されている。
種々のデバッガサポート・ルーチン210がシュミレータ104内に内蔵され、 環境管理プログラム102を制御することによってアクセスされる。従って、ア ドレス領域ルーチン212と定義域間プリチェック・ルーチン214は、環境管 理プログラム+02内でアクセスされ、デバッガの動作に対して更にサポートを 行う。
第」0図のフローチャートに示すアドレス領域212は、シュミレータ/デバッ グ動作に必要であるので、命令アドレスがX領域内に存在するかまたはX領域内 に存在するかを判定する。好適な実施例では、ルーチン212(第40図)はX 領域内に存在するアドレスの範囲のりスト213を使用する。このリストのアド レスの範囲の1つにある全ての要求されたアドレス215はブロック217によ ってX領域として戻され、このリストに存在しない全ての要求されたアドレスは ブロック219によってX領域として戻される。ルーチン2+2はブロック22 1に存在する。3つ以上のアーキテクチャに対してサービスを行う必要のある場 合、適当なリストと論理の変更を行う。
定義域間ブリチェック・ルーチン214(第3UjJ)によって、デバッガ20 0は(現在のプログラム・カウンタ)を実行することに関する命令がコードの実 行領域をXからYまたはYからXへの変更を引き起こすかどうかを判定すること ができる。シュミレータ/デバッガ駆動ループ112(第2図及び第5図)は環 境管理プログラム102によって実行され、Xコードの実行に対して基本的な制 御を行うと共に要求に従ってX領域をデバッグするデバッガの動作を行わせる。
メモリ・システム14は、固有の(X)アーキテクチャとシュミレーションされ た(Y)アーキテクチャによって実行されているXとYのプログラム・コード2 18と220を有している。デバッガの動作に関連する他のメモリの内容には、 X領域のアドレス・リスト213、シュミレータ104の使用する区切り点テー ブル217及びYアーキテクチャ・プログラムの状態219(即ち、シュミレー ションされたブロツセサのレジスタの状態)が含まれている。
この発明の本実施例では、各領域に対してプログラム・カウンタが設けられてい る。特に、Xプログラム・カウンタとXプログラム・カウンタが設けられ、これ らのX及びXプログラム・カウンタは基本的に相互に独立している。Xプログラ ム・カウンタは、XハードウェアによってXコードのメモリ命令のリストから取 り出される次の命令のアドレスを含むレジスタである。Xプログラム・カウンタ は、Yシュミレータの一部として構成されたXハードウェア内のレジスタであり 、同様にXコードのメモリの命令リストからシュミレータによって取り出された 次のY命令を含んでいる。
デバッガのフローチャート デバッガのプログラム200は、第4図に示すフローチャートに従ってその説明 した機能を実行する。もし環境管理プログラム102内のドライバ・ループ11 2(第2図と第5図)がX領域の呼び出しを検出すれば、デバッガ・プログラム 200はブロック220でX領域またはX領域から開始される。
デバッガ110が動作可能な場合、デバッガ・プログラム200はこれに従って 、XフードまたはXコードから開始することができる。XコードまたはXコード のいずれかから開始されるのは、下記の場合である。
l コートの実行かスタートし、デバッグのブ0ンブトか最初のタスクの実行で ある場合。
2 区切り点に達した場合。
3、デバッガによって発生された5TEP命令が終了した場合。
4、XコードまたはXコードが例外条件を発生する場合。
5 コードの実行が終了する場合。
本実施例では、Xコードからの開始は標準のXハードウェアと標準のX動作シス テムによって行われる。Xコードからの開始は、環境管理プログラム102内の ドライバ・ループ216(第5図)によって行われる。
Xコードに対するデバッグの開始時点て、ドライバ・ループ112(第2図、及 び第4図で216で示す)はデバッガ・プログラム200を呼び出し、これに現 在のプログラム状態と命令バッファに転送し、デバッガ・プログラム200から リターンした場合に実行す一部き命令をこの命令バッファに入力する。命令バッ ファの名称はENV CMDてあり、その目的は、シュミレータ+04の実行状 態を制御することである。
ユーザとの対話ブ0ツク222ては、現在のYプログラム状態かユーザに報告さ れ、命令がユーザから要求される。ユーザがサポート命令または実行状態命令を 入力すると、ブロック222はこの命令を分析して実行する。
好適な実施例では、各々の一般的なサポート命令はブロック206内の関連する ルーチン(特に図示せず)によって実行され、次にユーザとの対話ブロック22 2に戻る。一般的なサポート命令は、領域と関係なく同じ方法で常に実行されて いる従来の命令である。本実施例ではこのような命令には下記のものが含まれて いる。
1、スクリーンまたはウィンドに対する表示の制御、2、数字によって表示した デフォルト基数の2進法から16進法への変更のような表示情報の形感の制御、 及び 3 本護受入の出版したVAX (登録量’l’)/VMS動作システム用の注 文番号AA−LA59A−TEのVMSのデバッガのマニュアルに説明されてい る他の機能の設定 プログラムの領域に依存するサポート命令EXAIv(INE、DEPOS I T、SET BREAK、及びCANCEL BREAKは、ブロック204内 のそれぞれのルーチンによって実行される。これらのルーチンは、以下で詳細に 説明する。全ての領域に依存するサポート命令を実行した後、ユーザとの対話ブ ロック222に戻る。
もしユーザがマシンの状態をブロック222で設定するように要求すれば、現在 のプログラム領域に依存してブロック224によって5TEP命令を実行するか 、または現在のプログラム領域に依存してブロック226によってRUN命令を 実行する。
5TETまたはRUN命令の後、デバッガ・プログラム200はブロック227 に示すように、適当な条件を設定して命令をデバッガの制御下でその領域に加え 、制御をYユーザ・プログラムに戻し、次にこのプログラムは、これが呼び出し によって中断された点からデバッガ110に対する呼び出しを実行するステップ に進む。
ブロック224の5TEPルーチンに設定されたマシンの状態を、第6図に詳細 に示す。これの実行経路は、ここで「デバッグ領域」と呼ぶ5TEP命令を加え てデバッグ制御下で動作されるべき領域によって決まる。一般的に、5TEP命 令によって、デバッガ110はコードを実行すべき領域内で1つの命令が実行さ れることを指示し、次にブロック220でデバッガに再びエントリすることによ ってユーザから別の命令を要求する。
機能ブロック230は、定義域間ブリチェック・ルーチン214(第3図)を呼 び出して実行する。ルーチン214は、現在の命令が領域の変更を引き起こすか どうか、即ち、1つの領域から他の領域への実行の切り換えを引き起こすかどう かを判定する。もしそうであれば、新しい領域で実行される第」命令のアドレス をまた判定する。
もし領域の変更を検出すれば、ブランチ231か続く。ブロック232は新しい 領域で実行される第1命令のアドレスに区切り点を設定する。次に、マシンの状 態はブロック234によってRUNに設定され、その結果、今設定した区切りて 示すように、ブランチ231からユーザ・プログラムに抜ける。
ブランチ231を介してブロック224から抜けた後、ジャケット・コードは領 域の変更を実行する。このことは引用した出願番号1870−0422に更に詳 しく開示されている。新しいコードの実行が区切り点に達した後、デバッガは再 スタートして5TEPルーチンが終了したことを示す。
引き続きブランチ233が実行され、ブロック230で領域のクロスが検出され ない場合にはブロック235が動作可能になる。5TEP動作はX領域とX領域 で異なった方法で実行されるので、ブロック235は、現在の領域がXであるか Yであるかを判定する。アドレス領域ルーチン212(第3図)が環境管理プロ グラム102から呼び出され、現在の命令実行アドレスに基づいて領域を判定す る。もしこの領域がシュミレーションされた(Y)領域であると判定されれば、 ブロック238は、デバッガのプログラムの入力を受けたバッファ内のENV− CMDに対する5TEP命令を発生する。このようにして、命令か環境管理プロ グラム102に対して行われ、X領域内で1つの命令を実行する。これに応答し て、ドライバ・ループ216(第5図)は、X領域のシュミレータ104のデバ ッグ・サポート・ブロック21O(第3図)内の5TEPルーチンを介してこの 命令の実行を容易に行う。引用した出願番号1870−0420でこのシュミレ ータ104の5TEPサポートをより詳細に説明している。
もし領域が固有の(X)アーキテクチャであると判定されれば、ブロック240 は、標準のXハードウェアを使用してXの状態を5TEPに設定し、5TEPを 実行する。例えば、VAX (登録1ff)のシステムでは、5INGLE 5 TEPモードはブロツセサの状態の4バイト・データ内の1ビツトによって設定 される。
ブロック238またはブロック240によってプログラム・ブランチ233を実 行した後、ルーチンはブロック236から抜け、ブロック227を介してユーザ ・プログラムに戻る(第4図)。
マシンの状態を第4図のユーザまたは4IZ6図のプログラムによってRUNに 設定すべきである場合、ブロック226は第7図に示すルーチンを実行し、この 実行経路は、RUN命令を加えるべき領域にまた依存する。ブロック250に入 った後、機能ブロック252は、第6図でブロック235に付いて説明した方法 で現在のドメインを判定する。
もしX領域が検出されれば、ブロック254は、ENV CMD内のRUN命令 を環境管理プログラム102によって与えられるバッファ内に載置する。次に、 ドライバ・ループ216はシュミレータ104に命令を加える。
もしX@域が検出されれば、ブロック256は、Xプログラムの実行に戻ること によってXの状態をRUNに設定する。ブロック254または256を実行した 後、ルーチンはブロック258を抜けて呼び出しルーチンに進む。
第8A−8D図は、領域に依存するルーチンの内の選択したルーチンを示す。
各ルーチンに入った後、現在の領域は、第6図のブロック235で説明するよう に、それぞれブロック270A、270B、270C1または270Dによって 先ず判定される。
第8A図の領域に依存するルーチン272はEXAMINE命令を実行し、これ によってユーザはメモリのロケーションを検討することができる。もしターゲッ トのメモリのアドレスがX領域内にあれば、ブロック274は、Xハードウェア の動作によって共通メモリ内のX領域のロケーションの読み取りを実行する。
もしターゲットのアドレスがX領域内にあれば、ブロック276は環境管理プロ グラム107にEXAMINE命令を処理するように要求する。次に、環境管理 プログラム102はシュミレータ104によって動作し、共通メモリ内のX領域 のアドレスを読出し、このデータをユーザに提供する。
EXAMINEルーチン272は出口ブロック278で終了し、デバッガ・プロ グラム200は次にユーザとの対話ブロック222からの他の命令を待機する( 1■4図ン 。
他の領域に依存するルーチン、即ち、第8B図に示すDEPOS ITシル−ン 280はDEPOS ITX命令実行し、この命令によって、ユーザはメモリの ロケーションに書き込みを行うことができる。もしターゲット・メモリのアドレ スがX領域内にあれば、ブロック282は共通メモリ内のX領域のロケーション に直接書き込みを行う。
もしターゲットのメモリのアドレスがX領域内にあれば、ブロック284は環境 管理プログラム102にDEPOS ITX命令処理するように要求する。次に 、環境管理プログラム102は、ソユミレータ104によって動作し、共通メモ リ内のX領域ロケーションに書き込みを行う。
DEPO3ITルーチン280は出口ブロック286で終了し、デバッガ・プロ グラム200はユーザとの対話ブロック222からの他の命令を待機する(第4 図)。
第8C図内のSET BREAKPOINTルーチン290は、また領域に依存 し、ユーザとの対話ブロック222を介してユーザによって行われた5ETBR EAKPOINT命令またはブロック232が5TEP命令を実行した場合の現 在の命令による領域のクロスの結果として、この命令を実行する(第6図)。
前に指摘したように、区切り点は、5TEP命令を実行する場合の領域の変更命 令のターゲット・アドレスに設定する必要がある。
もし区切り点のターゲット・アドレスがX領域内にあれば、機能ブロック292 は直接Xプログラムのコードに区切り点を書き込む。もしアドレスがX領域内に あれば、ブロック294は環境管理プログラム102に命令を処理するように要 求し、次に区切り点はシュミレータ104の動作によってYプログラムのコード 内に設定される。
命令された区切り点がプログラムのコードに入力された後、ブロック296は区 切り点テーブルに項目を加えて後で適当な5HOWまたはCANCELルーチン を使用するようにする。区切り点テーブルを使用することにより、デバッガ・プ ログラム200は、後で区切り点のリストを表示し、または選択的に区切り点を 削除することができる。
テーブルに項目を加えた後、SET BREAKPOINTルーチン290は出 口ブロック298で終了し、要求を行っているルーチンに戻る。
これもまた領域に依存するCANCEL BREAKP○INTルーチン300 は、ユーザとの対話ブロック222でユーザが設けたCANCEL BREAK POINTを実行する(第4図)。この命令によって、あるプログラム・コード のアドレスにデバッガ・プログラム200か以前に畜き込んだ区切り点かキャン セルされる。
もし区切り点に対するターゲット・アドレスがX領域内にあれば、ブロック30 2はこれか以前にXプログラム・コートに書き込んだ特定の区切り点を削除する 。もしターゲット・アドレスがYffl域内にあれば、ブロック304は環境管 理プログラム+02に命令を処理するように要求し、次に、シュミレータ104 を動作して特定の区切り点をYコードから取り除く。
キャンセル動作が終了した後、ブロック306はキャンセルされた区切り点を区 切り点リストから取り除く。ブロック308てCANCEL BREAKPOI NTルーチン300を抜け、ユーザの他の命令を待機する。
第9図は、定義域間ブリチェック・ルーチン214のフローチャートを示しく第 3図)、これは環境管理プログラム102内に存在している。ルーチン214に 入り、命令によって領域の変更が引き起こされるかどうかを判定する。
機能ブロック312は、先ず前に説明したような方法で、現在のプログラム・カ ウンタのアドレス領域ルーチン212(第10図)の動作によって現在の領域を 判定する。もし現在の領域がX領域であれば、ブランチ314が続き、もし現在 の領域かX領域であれば、ブランチ316が続く。
ブランチ314ては、ブロック318でX命令を復号し、次の命令を判定する。
次に、次の命令のターゲット・アドレスをアドレス領域ルーチン212を実行す ることによってブロック320で判定する(第10図)。もしターゲットのアド レスがX領域にあれば、ブロック321はこの命令によって領域を変更しないと いう指示を呼び出した側に対して発生する。しかし、もしターゲット・アドレス がX領域内にあれば、ブロック325は、命令によって領域が変更されるという 指示を呼び出した側に対して発生し、更に次の命令のアドレスを発生して区切り 点を入力する。
ブランチ316では、X命令をブロック322によって復号し、次の命令を判定 する。次に、次の命令のターゲット・アドレスはアドレス領域ルーチン212を 実行することによって、ブロック324によって判定される(第10図)。もし ターゲット・アドレスがX領域内にあれば、ブロック323は、命令によって領 域か変更されないという指示を呼び出した側に対して発生する。もしターゲット ・アドレスがX領域内(こあれば、ブロック325は薪に説明したように領域の 変更の指示を発生する。
定義域間ブリチェック・ルーチン214は、ブロック326によって示すように 、呼び出した側に戻ることによって終了する。
本発明の多重アーキテクチャ環境内で特にコードのデバッグを行う上記の改良し たソフトウェアのデバッグ・システムと方法には本発明の範囲と精神から逸脱す ることなく当業者によって種々の変形と変更を行うことができる。従って、本発 明はこれらの変形と変更を添付の請求の範囲とその等価物の範囲にあるものとし て包含することを意図するものである。
FIGURE 8B 要 約 書 第1ハードウエア(X)を実施し、メモリ・システムと、第2(Y)アーキテク チャ用の少なくとも1つのシュミレータと、定義域間の呼び出しを取り扱う環境 管理プログラムを有する多重コードを実行しデバッグするシステムを有するコン ピュータ・システムに於いて、マルチアーキテクチャ環境で上記のマルチコード を実行しデバッグするシステムの一部として各領域内でフードをデバッグするシ ステムを設ける。このデバッグ・システムは、X(i域またはY領域からデバッ ガの動作を呼び出す手段を有する。デバッグ動作用の命令は、いずれかの領域で 発生する。ユーザの発生することのできる命令には、デバッグ頭載に於けるマシ ンの状態のためのRUN命令と5TEPを含む。一般的なサポート命令とデバッ グ動作サポート命令をまた発生することができる。デバッグ動作サポート命令に は、EXAMINE、DEPO3IT、SET BREAKPOINT、及びC ANCEL BREAKPOINTが含まれる。後者の命令は、領域が異なると 異なった方法で実行する。

Claims (46)

    【特許請求の範囲】
  1. 1.第1(X)ハードウェアのアーキテクチャを実施し、第2(Y)アーキテク チャと定義域間の呼び出しを取り扱う環境管理プログラムを有する多重コードを 実行しデバッグするシステム用のメモリ・システムと少なくとも1つのシュミレ ータ、及び多重アーキテクチャ環境内で上記の多重コードを実行しデバッグする システムの一部として各領域内でコードをデバッグするシステムを有するコンピ ュータ・システムの上記のデバッグ・システムに於いて、上記のデバッグ・シス テムは: X領域からデバッガの動作に対する呼び出しを受け取る手段;Y領域からデバッ ガの動作に対する呼び出しを受け取る手段;呼び出しによってデバッガの動作を 開始した後、上記のX領域とY領域に対してユーザのデバッグ命令を発生する手 段;及び上記のデバッグ命令を上記のデバッグ領域に加える手段;によって構成 されることを特徴とするデバッグ・システム。
  2. 2.上記の発生手段は、上記のデバッグ領域にマシンの実行状態を設定する命令 を発生する手段を有することを特徴とする請求の範囲第1項記載のデバッグ・シ ステム。
  3. 3.上記のマシン状態設定命令は、STEP状態の設定とRUN STATEの 設定を有することを特徴とする請求の範囲第2項記載のデバッグ・システム。
  4. 4.STEP命令の要求が終了し、上記のSTEP設定命令発生手段と上記の付 加手段は: 定義域間の実行の切り替えが現在の命令によって要求されるかどうかを検出する 手段;もし定義域間の実行の切り替えが要求されれば、新しい領域で実行される べき第1命令のアドレスに区切り点を設定する手段;及び上記の新しい領域の実 行に入ると、新しい領域のマシンに加えてSTEPを実行するためにRUN設定 命令を発生する手段;を有することを特徴とする請求の範囲第3項記載のデバッ グ・システム。
  5. 5.STEP命令の要求が終了し、上記のSTEP設定命令発生手段と上記の付 加手段は: 現在の実行領域を判定する手段; もし上記のY領域が実行中であり、領域の変更が要求されていないなら、上記の タに加える出力設定STEP命令を発生する手段;及びもし上記のX領域が実行 中であり、領域の変更が要求されていないなら、上記のXのハードウェアに加え る出力設定STEP命令を発生する手段;を有することを特徴とする請求の範囲 第4項記載のデバッグ・システム。
  6. 6.上記のシュミレータのSTEP命令は、上記のシュミレータに加えるために 上記の環境管理プログラムに出力されることを特徴とする請求の範囲第3項、第 4項、または第5項記載のデバッグ・システム。
  7. 7.RUN命令の要求が終了し、上記のRUN設定命令発生手段と上記の付加手 段は; 現在の実行領域を判定する手段; もし上記のY領域が実行中であれば、上記のシュミレータに加える出力設定RU N命令を発生する手段;及び もし上記のX領域が実行中であれば、上記のXのハードウェアに加える出力設定 RUN命令を発生する手段; を有することを特徴とする請求の範囲第項3記載のデバッグ・システム。
  8. 8.上記のシュミレータのRUN命令は、上記のシュミレータに加えるために上 記の環境管理プログラムに出力されることを特徴とする請求の範囲第7項記載の デバッグ・システム。
  9. 9.上記の命令発生手段は、デバッグ動作のたのサポート命令を発生する手段を 有することを特徴とする請求の範囲第1項記載のデバッグ・システム。
  10. 10.上記のサポート命令は、異なった手段によって異なった領域に加えられる ため、領域に依存することを特徴とする請求の範囲第9項記載のデバッグ・シス テム。
  11. 11.上記のサポート命令は、同様の手段によって異なった領域に加えられる命 令を更に有することを特徴とする請求の範囲第10項記載のデバッグ・システム 。
  12. 12.上記の領域に依存する命令は、メモリ・アクセス命令と区切り点処理命令 を有することを特徴とする請求の範囲第10項記載のデバッグ・システム。
  13. 13.上記のメモリ・アクセス命令は、検討命令と保管命令を有することを特徴 とする請求の範囲第12項記載のデバッグ・システム。
  14. 14.上記の命令発生手段と上記の付加手段は:現在の実行領域を判定する手段 ; もし読み取りまたは書き込み命令のターゲット・アドレスが上記のY領域内にあ れば、上記のシュミレータが処理する上記の読み取りまたは書き込み命令を発生 する手段;及び もし読み取りまたは書き込み命令のターゲット・アドレスが上記のX領域内にあ れば、上記のXのハードウェアが直接実行する上記の読み取りまたは書き込み命 令を発生する手段; を有することを特徴とする請求の範囲第13項記載のデバッグ・システム。
  15. 15.上記のシュミレータの読み取りまたは書き込み命令は、上記の環境管理プ ログラムに出力されて上記のシュミレータに加えられることを特徴とする請求の 範囲第14項記載のデバッグ・システム。
  16. 16.上記の区切り点処理命令は、区切り点設定命令と区切り点破棄命令を有す ることを特徴とする請求の範囲第12項記載のデバッグ・システム。
  17. 17.命令発生手段は、設定した区切り点を加へ破棄した区切り点を取り除く区 切り点テーブルを発生する手段を更に有することを特徴とする請求の範囲第16 項記載のデバッグ・システム。
  18. 18.上記の命令発生手段と上記の付加手段は:上記のターゲット区切り点のア ドレスの実行領域を判定する手段;上記のシュミレータに加えの区切り点アドレ スの設定または破棄命令を発生する手段;及び 上記のXのハードウェアが直接実行する区切り点アドレス設定または破棄命令を 発生する手段; を有することを特徴とする請求の範囲第16項記載のデバッグ・システム。
  19. 19.上記のシュミレータの区切り点アドレス設定または破棄命令は、上記のシ ュミレータに加えるために上記の環境管理プログラムに出力されることを特徴と する請求の範囲第18項記載のデバッグ・システム。
  20. 20.第1(X)ハードウェアのアーキテクチャを実施し、第2(Y)アーキテ クチャと定義域間の呼び出しを取り扱う環境管理プログラムを有する多重コード を実行しデバッグするシステム用のメモリ・システムと少なくとも1つのシュミ レータ、及び多重アーキテクチャ環境内で上記の多重コードを実行しデバッグす るシステムの一部として各領域内でコードをデバッグするシステムを有するコン ピュータ・システムの上記のデバッグ・システムに於いて、上記のデバッグ・シ ステムは: X領域からデバッガの動作に対する呼び出しを受け取る手段;Y領域からデバッ ガの動作に対する呼び出しを受け取る手段;デバッガの動作を開始した後、デバ ッグ動作が行われている領域内のマシンの実行状態を設定する命令を発生する手 段;及びデバッガの動作を開始した後、デバッグ動作のためのサポート命令を発 生する手段; によって構成されることを特徴とするデバッグ・システム。
  21. 21.上記のマシン状態の設定命令は、STEPの状態の設定とRUN STA TEの設定を有することを特徴とする請求の範囲第20項記載のデバッグ・シス テム。
  22. 22.STEP設定命令の発生を終了すると、上記の設定命令発生手段は:定義 域間の実行の切り替えが現在の命令によって要求されるかどうかを検出する手段 ; もし定義域間の実行の切り替えが要求されれば、新しい領域で実行されるべき第 1命令のアドレスに区切り点を設定する手段;及び上記の新しい領域の実行に入 ると、新しい領域のマシンに加えてSTEPを実行するためにRUN設定命令を 発生する手段;現在の実行領域を判定する手段; もし上記のY領域が実行中であり、領域の変更が要求されていないなら、上記の シュミレータに加える出力設定STEP命令を発生する手段;及びもし上記のX 領域が実行中であり、領域の変更が要求されていないなら、上記のXのハードウ ェアに加える出力設定STEP命令を発生する手段;を有することを特徴とする 請求の範囲第21項記載のデバッグ・システム。
  23. 23.RUN命令の選択を終了すると、上記のRUN設定命令発生手段は:上記 の現在の実行領域判定手段; もし上記のY領域が実行中であれば、上記のシュミレータに加える出力設定RU N命令を発生する手段;及び もし上記のX領域が実行中であれば、上記のXのハードウェアに加える出力設定 RUN命令を発生する手段; を有することを特徴とする請求の範囲第20項または第21項または第22項記 載のデバッグ・システム。
  24. 24.上記のサポート命令発生手段は、メモリ・アクセス命令と区切り点処理命 令を有することを特徴とする請求の範囲第20項または第21項または第22項 または第23項記載のデバッグ・システム。
  25. 25.上記のサポート命令発生手段は:もし読み取りまたは書き込み命令のター ゲット・アドレスが上記のY領域内にあれば、上記のシュミレータが処理する上 記の読み取りまたは書き込み命令を発生する手段;及び もし読み取りまたは書き込み命令のターゲット・アドレスが上記のX領域内にあ れば、上記のXのハードウェアが直接実行する上記の読み取りまたは書き込み命 令を発生する手段; を有することを特徴とする請求の範囲第24項記載のデバッグ・システム。
  26. 26.上記のサポート命令発生手段は、区切り点設定命令と区切り点破棄命令を 有することを特徴とする請求の範囲第24項または第25項記載のデバッグ・シ ステム。
  27. 27.上記のサポート命令発生手段は:上記のシュミレータに加える区切り点ア ドレス設定または破棄命令を発生する手段;及び 上記のXのハードウェアが直接実行する区切り点アドレス設定または破棄命令を 発生する手段; を有することを特徴とする請求の範囲第26項記載のデバッグ・システム。
  28. 28.メモリを有し、第1(X)ハードウェアのアーキテクチャと第2(Y)ア ーキテクチャ用の少なくとも1つのシュミレータを実施するコンピュータ・シス テムの動作方法であって、定義域間の呼び出しを取り扱う環境管理プログラムを 使用する多重コードを実行しデバッグするプロセスと多重アーキテクチャ環境内 で上記の多重コード実行及びデバッグ・プロセスの一部として各領域内でコード をデバッグするサブプロセスを有する上記の動作方法の上記のサブプロセスに於 いて、上記のデバッグ・サブプロセスは:X領域からデバッガの動作の呼び出し を受け取るステップ;Y領域からデバッガの動作の呼び出しを受け取るステップ ;呼び出しによってデバッガの動作を開始した後、上記のX領域とY領域に対し てユーザのデバッグ命令を発生するステップ;及び上記のデバッグ命令をデバッ グ領域に加えるステップ;によって構成されることを特徴とするデバッグ・サブ プロセス。
  29. 29.上記の発生ステップは、上記のデバッグ領域にマシンの実行状態を設定す る命令を発生するステップを有することを特徴とする請求の範囲第28項記載の デバッグ・サブプロセス。
  30. 30.上記のマシン状態設定命令は、STEP状態を設定するステップとRUN  STATEを設定するステップを有することを特徴とする請求の範囲第29項 記載のデバッグ・サブプロセス。
  31. 31.STEP命令の要求が終了し、上記のSTEPを設定する命令を発生する ステップと上記の付加ステップは: 定義域間の実行の切り替えが現在の命令によって要求されるかどうかを検出する ステップ; もし定義域間の実行の切り替えが要求されると、新しい領域で実行されるべき第 1命令のアドレスに区切り点を設定するステップ;及び上記の新しい領域の実行 に入ると、新しい領域のマシンに加えてSTEPを実行するためにRUN設定命 令を発生するステップ;を有することを特徴とする請求の範囲第30項記載のデ バッグ・サブプロセス。
  32. 32.STEP命令の要求が終了し、上記のSTEP設定命令を発生するステッ プと上記の付加ステップは: 現在の実行領域を判定するステップ; もし上記のY領域が実行中であり、領域の変更が要求されていないなら、上記の シュミレータに加える出力設定STEP命令を発生するステップ;及びもし上記 のX領域が実行中であり、領域の変更が要求されていないなら、上記のXのハー ドウェアに加える出力設定STEP命令を発生するステップ;を有することを特 徴とする請求の範囲第31項記載のデバッグ・サブプロセス。
  33. 33.上記のシュミレータのSTEP命令は、上記のシュミレータに加えるため に上記の環境管理プログラムに出力されることを特徴とする請求の範囲第30項 または第31項または第32項記載のデバッグ・サブプロセス。
  34. 34.RUN命令の要求が終了し、上記のRUNを設定する命令を発生するステ ップと上記の付加ステップは: 現在の実行領域を判定するステップ; もし上記のY領域が実行中であれば、上記のシュミレータに加える出力設定RU N命令を発生するステップ;及び もし上記のX領域が実行中であれば、上記のXのハードウェアに加える出力設定 RUN命令を発生するステップ; を有することを特徴とする請求の範囲第30項記載のデバッグ・サブプロセス。
  35. 35.上記のシュミレータのRUN命令は、上記のシュミレータに加えるために 上記の環境管理プログラムに出力されることを特徴とする請求の範囲第34項記 載のデバッグ・サブプロセス。
  36. 36.上記の命令を発生するステップは、デバッグ動作のためのサポート命令を 発生するステップを有することを特徴とする請求の範囲第1項記載のデバッグ・ サブプロセス。
  37. 37.上記のサポート命令は、異なった方法によって異なった領域に加えられる ため、領域に依存することを特徴とする請求の範囲第36項記載のデバッグ・サ ブプロセス。
  38. 38.上記の領域に依存する命令は、メモリ・アクセス命令と区切り点処理命令 を有することを特徴とする請求の範囲第37項記載のデバッグ・サブプロセス。
  39. 39.上記の区切り点処理命令は、区切り点設定命令と区切り点破棄命令を有す ることを特徴とする請求の範囲第38項記載のデバッグ・サブプロセス。
  40. 40.上記の命令を発生するステップは、設定区切り点を加へ破棄区切り点を取 り除く区切り点テーブルを発生するステップを更に有することを特徴とする請求 の範囲第39項記載のデバッグ・サブプロセス。
  41. 41.メモリを有し、第1(X)ハードウェアのアーキテクチャと第2(Y)ア ーキテクチャ用の少なくとも1つのシュミレータを実施するコンピュータ・シス テムの動作方法であって、定義域間の呼び出しを取り扱う環境管理プログラムを 使用する多重コードを実行しデバッグするプロセスと多量アーキテクチャ環境内 で上記の多重コード実行及びデバッグ・プロセスの一部として各領域内でコード をデバッグするサブプロセスを有する上記の動作方法の上記のサブプロセスに於 いて、上記のデバッグ・サブプロセスは:X領域からデバッガの動作の呼び出し を受け取るステップ;Y領域からデバッガの動作の呼び出しを受け取るステップ ;デバッガの動作を開始した後、デバッグ動作を行っている領域内のマシンの実 行状態を設定する命令を発生するステップ;及びデバッガの動作を開始した後、 各領域内でデバッグ動作のサポート命令を発生するステップ; によって構成されることを特徴とするデバッグ・サブプロセス。
  42. 42.上記のマシン状態設定命令は、STEP状態を設定するステップとRUN  STATEを設定するステップを有することを特徴とする請求の範囲第41項 記載のデバッグ・サブプロセス。
  43. 43.STEP設定命令の発生を終了すると、上記の設定命令発生ステップは: 定義域間の実行の切り替えが現在の命令によって要求されるかどうかを検出する ステップ; もし定義域間の実行の切り替えが要求されれば、新しい領域で実行されるべき第 1命令のアドレスに区切り点を設定するステップ;上記の新しい領域の実行に入 ると、新しい領域のマシンに加えてSTEPを実行するためにRUN設定命令を 発生するステップ;現在の実行領域を判定するステップ; もし上記のY領域が実行中であり、領域の変更が要求されていないなら、上記の シュミレータに加える出力設定STEP命令を発生するステップ;及びもし上記 のX領域が実行中であり、領域の変更が要求されていないなら、上記のXのハー ドウェアに加える出力設定STEP命令を発生するステップ;を有することを特 徴とする請求の範囲第42項記載のデバッグ・サブプロセス。
  44. 44.RUN命令の選択を終了すると、上記のRUN設定命令発生手段は:上記 の現在の実行領域を判定するステップ;もし上記のY領域が実行中であれば、上 記のシュミレータに加える出力設定RUN命令を発生するステップ;及び もし上記のX領域が実行中であれば、上記のXのハードウェアに加える出力設定 RUN命令を発生するステップ; を有することを特徴とする請求の範囲第41項または第42項または第43項記 載のデバッグ・サブプロセス。
  45. 45.上記のサポート命令を発生するステップは、アクセス命令と区切り点処理 命令を発生するステップを有することを特徴とする請求の範囲第40項または第 42項または第43項または第44項記載のデバッグ・サブプロセス。
  46. 46.上記のサポート命令を発生するステップは、区切り点設定命令と区切り点 破棄命令を発生するステップを有することを特徴とする請求の範囲第45項記載 のデバッグ・サブプロセス。
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 true JPH05505695A (ja) 1993-08-19
JP2753500B2 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
CA2082066C (en) 1991-03-07 1998-04-21 James A. Wooldridge 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
WO2000068698A1 (en) * 1999-05-07 2000-11-16 Morphics Technology Inc. Apparatus and method for implementing a wireless system-on-a-chip with a reprogrammable tester, debugger, and bus monitor
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5617446A (en) * 1979-07-20 1981-02-19 Oki Electric Ind Co Ltd Microcomputer
JPS6376028A (ja) * 1986-09-19 1988-04-06 Fujitsu Ltd 仮想計算機システムにおける命令ステツプ実行制御方式
JPH02135545A (ja) * 1988-11-16 1990-05-24 Fujitsu Ltd デバッガの実行制御処理方式
JPH02277146A (ja) * 1989-04-18 1990-11-13 Nec Corp プログラム・デバッグ方式
JPH0314040A (ja) * 1989-06-12 1991-01-22 Toshiba Corp プログラム移植支援装置

Family Cites Families (55)

* 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
FR2253435A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253430A5 (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
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 エミユレ−シヨン実行方法
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
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
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
US5167023A (en) 1988-02-01 1992-11-24 International Business Machines Translating a dynamic transfer control instruction address in a simulated CPU processor
US4945480A (en) * 1988-02-10 1990-07-31 International Business Machines Corporation Data domain switching on program address space switching and return
US5210874A (en) 1988-03-22 1993-05-11 Digital Equipment Corporation Cross-domain call system in a capability based digital data processing system
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
JPH04500132A (ja) * 1988-07-29 1992-01-09 ハンター・システムズ・ソフトウェア・インク 2進符号の機械語のプログラムを別の2進符号の機械語に翻訳する機械処理
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
JPH0731606B2 (ja) 1988-09-20 1995-04-10 ディジタル イクイプメント コーポレーション デジタルデータ処理システム用総称コード共用化装置及び方法
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
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
US5146593A (en) * 1989-03-06 1992-09-08 International Business Machines Corporation Procedure call interface
US5613116A (en) 1989-07-12 1997-03-18 Digital Equipment Corporation System for specifying interactions among objects in a digital data processing system
JPH0362202A (ja) * 1989-07-31 1991-03-18 Japan Electron Control Syst Co Ltd 制御プログラム開発装置
US5218699A (en) 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
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
WO1992014202A1 (en) 1991-02-01 1992-08-20 Digital Equipment Corporation Method for testing and debugging computer programs
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
CA2082066C (en) 1991-03-07 1998-04-21 James A. Wooldridge Software debugging system and method especially adapted for code debugging within a multi-architecture environment
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5617446A (en) * 1979-07-20 1981-02-19 Oki Electric Ind Co Ltd Microcomputer
JPS6376028A (ja) * 1986-09-19 1988-04-06 Fujitsu Ltd 仮想計算機システムにおける命令ステツプ実行制御方式
JPH02135545A (ja) * 1988-11-16 1990-05-24 Fujitsu Ltd デバッガの実行制御処理方式
JPH02277146A (ja) * 1989-04-18 1990-11-13 Nec Corp プログラム・デバッグ方式
JPH0314040A (ja) * 1989-06-12 1991-01-22 Toshiba Corp プログラム移植支援装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH05505695A (ja) 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
US5652869A (en) System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
JP4950454B2 (ja) テスト自動化のスタック階層化
US6067639A (en) Method for integrating automated software testing with software development
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
US5680584A (en) Simulator system for code execution and debugging within a multi-architecture environment
JP2000122886A (ja) 半導体試験装置のプログラム作成方式
JPH03188535A (ja) プログラム・エラー検出方法
WO2020039900A1 (ja) 情報処理装置およびプログラム
JPH05265802A (ja) ソフトウェアデバッグ装置
KR950012113B1 (ko) 멀티 아키텍춰 환경내의 다중 코드 실행 및 디버깅 시스템에서 코드 인터페이스 자케팅에 특히 적합한 크로스-도메인 명령 호출 및 데이타 참조를 검출하기 위한 시스템 및 방법
JP2001195275A (ja) 半導体試験装置のプログラム実行方式
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
US20020162095A1 (en) Method and system for using emulation objec6ts for developing point ofsale application
JPH05250221A (ja) シミュレータ実行方式
JPH07219980A (ja) テスト実行方式
JPH11296408A (ja) 組み込み機器用ソフトウエア論理シミュレータ
Berthaud et al. Coupling virtual machines and system construction
JPH04123144A (ja) デバッグ装置
JP2002366378A (ja) プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体
CN116974945A (zh) 一种基于qemu仿真的硬件调试***及调试方法
JPH08185326A (ja) インタープリタ言語処理装置
JPH0567164A (ja) 論理シミユレーシヨン方式
JPH0883198A (ja) プログラムシミュレーション装置
JPH05233363A (ja) エミュレータのトレース装置