JPH09120366A - 分散アプリケーション・プログラムをデバッグする分散デバッグのためのシステムおよび方法 - Google Patents

分散アプリケーション・プログラムをデバッグする分散デバッグのためのシステムおよび方法

Info

Publication number
JPH09120366A
JPH09120366A JP8073240A JP7324096A JPH09120366A JP H09120366 A JPH09120366 A JP H09120366A JP 8073240 A JP8073240 A JP 8073240A JP 7324096 A JP7324096 A JP 7324096A JP H09120366 A JPH09120366 A JP H09120366A
Authority
JP
Japan
Prior art keywords
dbx
engine
debugger
distributed
remote
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8073240A
Other languages
English (en)
Inventor
Andrew E Davidson
アンドリュー・イ−・デビッドソン
Jon A Masamitsu
ジョン・エイ・マサミツ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH09120366A publication Critical patent/JPH09120366A/ja
Pending 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 分散アプリケーションのデバッグを容易に行
えるようにする。 【解決手段】 アプリケーションのプログラマ/開発者
が1台のホストマシンのところにおり、開発されるアプ
リケーションがプログラマ/開発者には未知の他のホス
トマシンにおかれていることのあるオブジェクトおよび
オブジェクト・インプリメンテーションを利用する分散
ターゲット・コンピュータ・アプリケーションをデバッ
グする分散デバッガ・システムにおいて、分散オブジェ
クト環境における要求及び応答は、オブジェクトの場所
及び状況を認識しているオブジェクト・リクエスト・ブ
ローカ(ORB)によって行われ、ORBを実施するの
に適している1つのアーキテクチャが、共通オブジェク
ト・リクエスト・ブローカ・アーキテクチャ仕様によっ
て与えられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は分散コンピューティ
ング・システム、クライアント・サーバ・コンピューテ
ィングおよびオブジェクト指向プログラミングの分野に
関する。具体的にいえば、本発明はプログラム開発者お
よびユーザに分散サーバ上にプログラムまたはオブジェ
クトを含んでいることのあるターゲット・アプリケーシ
ョンをデバッグする能力を与える方法および装置に関す
る。
【0002】
【従来の技術】コンピュータ・アプリケーション開発者
が作成中のアプリケーションをデバッグできることは必
須である。これはオブジェクト指向分散プロセッサ環境
においては、きわめて困難な問題となっている。このよ
うな現代の環境はアプリケーション開発者以外の人間が
開発したオブジェクトを呼び出すアプリケーションを含
んでおり、かつアプリケーション開発者から遠隔の、当
該開発者には未知のプロセッサで作動するオブジェクト
のインプリメンテーションを含んでいる可能性もある。
それにもかかわらず、アプリケーション開発者には、こ
のような遠隔で、未知のプロセッサに常駐するアプリケ
ーションの部分をデバッグする方法がなければならな
い。
【0003】たとえば、分散アプリケーションは2つ以
上の部分からなるアプリケーションである。これらの部
分はクライアントおよびそのサーバと呼ばれることがし
ばしばある。分散アプリケーションは何年も前から存在
しているものであり、それだけの年月の間、プログラム
・アプリケーション開発者は分散アプリケーションをデ
バッグする問題を抱えていた。分散アプリケーションの
典型的なデバッグ法は、デバッガの下でクライアントを
起動し、サーバにある機能に達するまでクライアントを
デバッガすることである。開発者が幸運であれば、サー
バがすでに既知のホストで作動している。開発者は次い
でサーバ・ホストへ進み、サーバ・プロセスを識別し、
デバッガをこれに接続し、デバッグ・セッションを継続
する。サーバがまだ作動していない場合には、開発者は
サーバを作動させる方法を見つけだし、自分が行ったこ
とで探しているバグが隠ぺいされないよう祈る他はなく
なる。サーバが起動されたら、開発者はデバッガをこれ
に接続する。あるいは、サーバの起動に干渉して、何か
興味深いことが起きる前にデバッガをサーバに接続する
方法を、開発者が見つけださなければならない。この方
法はエラーを起こしやすいものであり、手間がかかり、
またしばしばわかりにくく、単調なものである。
【0004】オブジェクト指向システムにおいて、オブ
ジェクトはデータと、データを処理するために呼び出す
ことのできる操作(オペレーション)とからなる構成要
素である。操作(「メソッド」とも呼ばれる)はオブジ
ェクトにコールを送ることによってオブジェクトに呼び
出される。各オブジェクトはオブジェクト・タイプを有
しており、このタイプはそのタイプのオブジェクトで行
うことのできる操作を定義している。あるオブジェクト
・タイプは他のオブジェクト・タイプについて定義さ
れ、実施されたオブジェクト操作を継承することができ
る。オブジェクト指向設計およびプログラミング技法の
詳細については、Bertrand Meyerの「O
bject−oriented Software C
onstruction」、Prentice−Hal
l、1988年を参照されたい。
【0005】クライアント・サーバ・コンピューティン
グにおいては、通常、コンピュータを接続しているネッ
トワークを介して互いに通信を行える1組のコンピュー
タがある。これらのコンピュータの中には、他のコンピ
ュータに対するサービスまたは機能のプロバイダとして
働くものがある。サービスまたは機能のプロバイダは
「サーバ」と呼ばれ、サービスまたは機能の消費者は
「クライアント」と呼ばれる。クライアント・サーバ・
モデルは、同一のコンピュータで作動している別個のプ
ログラムが何らかの保護機構を介して互いに通信を行
い、機能のプロバイダと消費者として働いているという
ケースに一般化することもできる。
【0006】クライアント・サーバ・モデルに基づくオ
ブジェクト指向分散システムにおいては、オブジェクト
指向インタフェースをクライアントに与えるサーバがあ
る。これらのサーバは、データと、このタイプのオブジ
ェクトで認められる操作にしたがってデータを処理する
関連ソフトウェアとからなるオブジェクトを、サポート
している。クライアントはこれらのオブジェクトに対す
るアクセスを取得し、コールをサーバに伝送することに
よってこれらのオブジェクトでコールを実行することが
できる。サーバ側では、これらのコールはオブジェクト
に関連するソフトウェアによって実行される。これらの
コールの結果はクライアントへ返送される。
【0007】従来技術のデバッガによる他の基本的な問
題は、現代の分散オブジェクト・システムで実施された
アプリケーションをデバッグしようとするときに生じ
る。オブジェクト管理グループ(「OMG」)によって
一般的に規定されたタイプの分散オブジェクト・システ
ムを考える。OMGは分散オブジェクト・システムのい
くつかの仕様およびプロトコルに合意した500社以上
の会社の団体である。このシステムの基本仕様は「Th
e Common Object Request B
roker:Architecture and Sp
ecification」(「CORBA」ともいう)
という題名の1993年12月29日付のOMG Do
cument No.93.xx.yy Revisi
on 1.2に記載されている(この基本仕様はここで
の引用によって本明細書の一部となる)。CORBA準
拠システムは既存のオブジェクトによってアプリケーシ
ョンを構築することに備えたものである。このようなア
プリケーションはオブジェクトの作成を要求し、かつそ
のオブジェクトで操作を行うことができる。オブジェク
トの作成およびその上での操作はこれらのオブジェクト
のサーバによって行われる。このようなアプリケーショ
ンはオブジェクトを作成しようとした場合、そのオブジ
ェクトの「ファクトリ」と呼ばれるサーバを探し出すロ
ケータ機構を透過的に利用する。同様に、このようなア
プリケーションが既存のオブジェクトを有している場合
には、ロケータ機構を透過的に利用して、そのオブジェ
クトでの操作を行うことのできるサーバを探し出す。
【0008】
【発明が解決しようとする課題】このようなCORBA
準拠システムにおいては、アプリケーション・プログラ
マがそのオブジェクトのサーバが作動している場所につ
いての知識なしにオブジェクトを使用するのを可能とす
る相当な量の機構(メカニズム)が各オブジェクトの背
後にある。クライアントの開発者がサーバの開発者でも
あるという特別な状況では、サーバがどこで作動するこ
とになるのか、またその名前が何かということをプログ
ラマが知るような構成をとることができる。しかしなが
ら、一般に、CORBA準拠システムのアプリケーショ
ン開発者は自分のオブジェクトに関連したサーバを探し
出すことができない。それ故、オブジェクトが同一のプ
ロセスに配置されているのか、遠隔のプロセスに配置さ
れているのかにかかわりなく、またオブジェクトがどこ
にあるのかにかかわりなく、アプリケーションが使用す
るオブジェクトのデバッグをサポートする必要がある。
さらに、このデバッグ手順が開発者に「単一プロセス」
であると思わせ、熟知したデバッグ・パラダイムを使用
して大規模な分散アプリケーションのデバッグを行える
ようにすることが好ましい。
【0009】いくつかの従来技術のデバッガの主な欠点
は、これらがデータおよびプロセスをサポートするの
に、通常は関連するコンパイラが生成する付加的なデー
タを含んでいる大きなオーバヘッドを必要とすることで
ある。したがって、遠隔デバッガの好ましい実施の形態
は、オブジェクトの実装者がオブジェクトを「デバッグ
可能」にするのに、サーバをコンパイルして、記号情報
を生成する以外の特別なことを何もする必要のないよう
にする必要がある(−gコンパイラ・オプションを使用
したCおよびC++の場合)。しかしながら、関連する
オーバヘッドが細分化されたオブジェクトのサイズおよ
びパフォーマンスに影響を及ぼさないように、サーバま
たはサーバントのいずれかでの付加的な挙動上の抽象化
やデータの抽象化を必要としてはならない。同様に、従
来技術のデバッギング・システムの他の制限は、これら
が特定のタイプのターゲット・アプリケーションおよび
/または特定のコンパイラ言語にリンクされていること
である。分散デバッガが実装言語と無関係にアプリケー
ションをデバッグできることが望ましい。すなわち、好
ましい分散デバッガはこれが作動するサーバおよびオブ
ジェクトの種類についていかなる想定もしてはならな
い。CORBA仕様は各種のオブジェクトの実装(イン
プリメンテーション)をサービスするのに使用される各
種の「オブジェクト・アダプタ」を記述している。望ま
しい分散デバッガは、これが作動するサーバやオブジェ
クトの種類について実際にいかなる想定もしないのであ
れば、「オブジェクト・アダプタ」に無関係な態様で作
動しなければならない。さらに、CORBA準拠システ
ムのインプリメンテーションがシステムの作動を容易と
するために使用することのあるボイラプレート・コード
を無視できる分散デバッガを得ることが望ましい。「ボ
イラプレート」コードとは開発環境によって作成され、
開発者にはわからない非プログラマ生成コードをいう。
分散デバッガは開発者がシステムを実装した抽象化と同
じ機能レベルでシステムをデバッグすることを可能とす
るものでなければならない。
【0010】「doeDebugger」と呼ぶ本発明
の分散デバッガはシームレスで、オーバヘッドが少な
く、わずらわしくない態様で分散デバッギングを達成
し、これによって開発者が「単一プロセス」のアプリケ
ーションをデバッグしているのだと思いこんで、分散オ
ブジェクト指向アプリケーションをデバッグすることを
可能とする装置および方法を提供する。
【0011】
【課題を解決するための手段】クライアント・アプリケ
ーションがローカル・ホストでデバッガを使用できると
ともに、オブジェクトを含んでいるアプリケーションお
よび未知の遠隔ホスト・コンピュータで作動するオブジ
ェクト・インプリメンテーションをシームレスにデバッ
グできる装置および方法を開示する。
【0012】一部がローカル・ホスト・コンピュータに
あり、一部が1つまたは複数の遠隔ホスト・コンピュー
タにある分散ターゲット・アプリケーション・システム
をデバッグする分散デバッガ・システムにおいて、ロー
カル・ホスト・コンピュータまたは遠隔ホスト・コンピ
ュータにおかれているデバッガGUIおよび1つまたは
複数のdbxエンジンと、dbxエンジンとデバッガG
UIが互いに会話を行うために使用する通信機構とを有
している分散デバッガ・システムを開示する。
【0013】特許請求の範囲に記載する本発明の他の態
様は、一部がローカル・ホスト・コンピュータにあり、
一部が遠隔ホスト・コンピュータにある分散ターゲット
・アプリケーション・システムをデバッグする分散デバ
ッガ・システムにおいて、ローカル・ホスト・コンピュ
ータまたは遠隔ホスト・コンピュータにおかれているデ
バッガGUIおよび1つまたは複数のdbxエンジン
と、dbxエンジンとデバッガGUIが互いに会話を行
うために使用する通信機構とを有しており、さらに希望
する遠隔デバッギング・サポートをもたらすため、必要
に応じ、遠隔ホスト・コンピュータに新しいdbxエン
ジンを作成するのにデバッガGUIが使用するdbxW
rapperFactory機構を有している分散デバ
ッガ・システムを含む。
【0014】本発明はこれらの操作を行う装置にも関す
る。この装置は必要とされる目的に合わせて特に構成さ
れたものであっても、コンピュータに記憶されているコ
ンピュータ・プログラムによって選択的に起動される
か、あるいは再構成される汎用コンピュータを備えたも
のであってもよい。本明細書に記載する作動は特定のコ
ンピュータまたはその他の装置に本質的に関連したもの
ではない。詳細にいえば、各種の汎用マシンを本発明の
教示にしたがって作成されたプログラムとともに使用し
てもよいし、あるいは必要とされる方法のステップを行
うための専用マシンの方が便利なこともある。各種のこ
れらのマシンに必要な構造は以下の説明から明かとなろ
う。
【0015】特許請求の範囲に記載する本発明の他の態
様は、ローカル・ホスト・コンピュータと1つまたは複
数の遠隔ホスト・コンピュータ装置におかれる分散・タ
ーゲット・アプリケーション・システムのデバッグ時に
分散デバッガ・システムで使用するdbxエンジンにお
いて、非プログラマ生成コードを無視するdstep機
構と、このような非プログラマ生成コード(IDL生成
コードともいう)を識別するテスト機構と、ターゲット
・アプリケーション・システムのセクションに遠隔ブレ
ークポイントをセットする機構と、呼び出されたオブジ
ェクトを実施するサーバのホストIDおよびプロセスI
D(pid)を識別するGetImplementat
ion機構(「サーバ検索」機構ともいう)と、dbx
エンジンが互いに通信を行えるようにする多重dbxエ
ンジン同期機構とからなるdbxエンジンを含んでい
る。
【0016】本願の特許請求の範囲には、上記の特性を
有するdbxエンジンを作成する方法、ならびに上記の
ような分散デバッガ・システムを作成する方法も記載す
る。
【0017】本発明の目的、特徴および利点は以下の説
明から明かとなろう。
【0018】
【発明の実施の形態】表記および用語以下の詳細な説明
はコンピュータまたはコンピュータのネットワークで実
行されるプログラム・プロシージャによって表される。
これらのプロシージャの記述および表現は当分野の技術
者が自分達の作業の主題を他の技術者に最も効率よく伝
えるために使用する手段である。
【0019】プロシージャは本明細書において、また一
般に、希望する結果にいたる一貫した一連のステップで
あると考えられる。これらのステップは物理量の物理的
取扱いを必要とするものである。必ずしもそうとは限ら
ないが、一般に、これらの量は記憶、転送、組合せ、比
較、あるいは処理を行える電気信号または磁気信号の形
態をしている。主として一般的に使用するため、これら
の信号をビット、値、要素、記号、文字、項、数値など
と呼ぶのが便利なこともある。ただし、これらや類似し
た用語が適切な物理量と関連しており、これらの量に適
用された都合のよいラベルに過ぎないことに留意すべき
である。
【0020】さらに、実行される処理は操作員が行う知
的な操作と一般に関連づけられている乗算や比較などの
用語で呼ばれることがしばしばある。本発明の一部を形
成する本明細書に記載する操作のいずれにおいても、操
作員のこのような能力は必要ではなく、またほとんどの
場合、望ましくない。操作はマシン操作である。本発明
の操作を行うのに有用なマシンとしては、汎用ディジタ
ル・コンピュータまたは類似の装置がある。
【0021】本発明はこれらの操作を行う装置にも関す
る。この装置は必要とされる目的に合わせて特に構成さ
れたものであっても、コンピュータに記憶されているコ
ンピュータ・プログラムによって選択的に活動化される
か、あるいは再構成される汎用コンピュータを備えたも
のであってもよい。本明細書に記載する作動は特定のコ
ンピュータまたはその他の装置に本質的に関連したもの
ではない。各種の汎用マシンを本発明の教示にしたがっ
て作成されたプログラムとともに使用してもよいし、あ
るいは必要とされる方法のステップを行うための専用マ
シンの方が便利なこともある。各種のこれらのマシンに
必要な構造は以下の説明から明かとなろう。
【0022】以下の開示はアプリケーションのプログラ
マ/開発者が1台のホストマシンのところにおり、開発
されるアプリケーションがプログラマ/開発者には未知
の他のホストマシンにおかれていることのあるオブジェ
クトおよびオブジェクト・インプリメンテーションを利
用する分散コンピュータ・アプリケーションをデバッグ
するシステムおよび方法に関する。このシステムおよび
方法は広く分散したオブジェクト指向クライアント・サ
ーバ・システムにおけるオブジェクトの使用に関連づけ
られた新しいアプリケーションをデバッグを試みる際に
遭遇する問題の解決策を提供する。分散オブジェクトは
これらが要求を他のオブジェクトへ送るのか、あるいは
クライアントからの要求に応答しているのかに応じてオ
ブジェクト・クライアントにも、オブジェクト・サーバ
にもなり得る。分散オブジェクト環境において、要求お
よび応答はオブジェクトの場所および状況を認識してい
るオブジェクト・リクエスト・ブローカ(ORB)によ
って行われる。ORBを実施するのに適している1つの
アーキテクチャが、共通オブジェクト・リクエスト・ブ
ローカ・アーキテクチャ(CORBA)仕様によって与
えられる。任意の関連した状況で使用できるものである
が、記載されているインプリメンテーションはSun
Microsystems,Inc.の分散オブジェク
ト環境(「DOE」)の拡張である。しかしながら、本
開示で記載するプロセスおよびシステムを理解し、実施
するのに、当分野の技術者がDOEシステムの詳細な知
識を必要とすることはない。
【0023】本発明はプログラマ/開発者のアプリケー
ションが呼び出したオブジェクトが遠隔で実施されてい
ることを、プログラマ/開発者が無視できるようにし、
また遠隔インプリメンテーションであることによる特別
なことを、プログラマ/開発者が行うことを要求せず、
しかも過度のオーバヘッド負荷を課すことがなく、安全
であり、プログラマ/開発者がシステムを実施したのと
同じ抽象化の機能レベルで、プログラマ/開発者がシス
テムをデバッグするのを可能とするdoeDebugg
erを作成し、使用するシステムおよび方法を開示す
る。他のインプリメンテーションは若干の言語非依存性
ももたらす。
【0024】I.定義 本明細書では、「分散オブジェクト」または「オブジェ
クト」という用語は、オブジェクトと関連づけられた定
義済みのインタフェースを介した操作によって処理でき
るコードおよびデータのカプセル化されたパッケージを
いう。それ故、当分野の技術者にとって、分散オブジェ
クトは従来のプログラミング・オブジェクトを定義して
いる基本特性を含むものとみなされる。しかしながら、
分散オブジェクトは従来のプログラミング・オブジェク
トとは、2つの重要な特徴を含んでいることによって相
違している。まず、分散オブジェクトは多言語のもので
ある。分散オブジェクトのインタフェースは各種の異な
るプログラミング言語にマップできるインタフェース定
義言語を使用して定義される。このようなインタフェー
ス定義言語の1つがOMG IDLである。第2に、分
散オブジェクトは場所に依存しない。すなわち、分散オ
ブジェクトはネットワーク内のどこにでもおける。これ
は単一のアドレス・スペース、すなわち「クライアン
ト」のアドレス・スペースに存在しているのが典型的な
従来のプログラミング・オブジェクトと明確に異なると
ころである。分散オブジェクトは他のオブジェクトに要
求を送っているのか、あるいは他のオブジェクトからの
要求に応答しているのかに応じてオブジェクト・クライ
アントにも、オブジェクト・サーバにもなり得る。要求
および応答はオブジェクトの場所および状況を認識して
いるオブジェクト・リクエスト・ブローカ(ORB)に
よって行われる。
【0025】「分散オブジェクト・システム」ないし
「分散オブジェクト・オペレーティング環境」とは、O
RBを介して通信を行う分散オブジェクトからなるシス
テムをいう。
【0026】「オブジェクト・リファレンス」ないし
「objref」とは、他のオブジェクトへのポインタ
を含んでいるデータ構造(従来のプログラミング言語オ
ブジェクトでもよい)をいう。オブジェクト・リファレ
ンスの作成および定義については、当分野の技術者は熟
知しているであろう。
【0027】本明細書で定義する「クライアント」と
は、オブジェクトに要求を送るエンティティである。こ
のモデルにおいて、オブジェクトは、サービスを与える
ものであり、「サーバ・オブジェクト」または「ターゲ
ット・オブジェクト」または「オブジェクト・インプリ
メンテーション」と呼ばれる。したがって、クライアン
トはサーバから操作、ないしインプリメンテーションを
呼び出す。場合によっては、クライアントはそれ自体で
オブジェクトである。分散オブジェクト環境において、
クライアントはインプリメンテーション・プログラミン
グ言語についての知識を持っていなくてもよく、あるい
は、このようなオブジェクトの多言語性の要件により、
インプリメンテーションがクライアントのプログラミン
グ言語の知識を持っていなくてもよい。分散オブジェク
ト・オペレーティング環境のクライアントおよびサーバ
に必要なのは、インタフェース定義言語によって通信を
行うことだけである。上述したように、クライアントに
よるサーバに対する要求およびクライアントに対するサ
ーバの応答は、ORBによって処理される。指摘してお
きたいのは、クライアントとサーバが同一のホスト・コ
ンピュータまたは2台の異なるホスト・コンピュータの
同一のプロセスに存在できることである。
【0028】「オブジェクト・インタフェース」はオブ
ジェクトがもたらす操作(オペレーション)、属性(ア
トリビュート)および例外事項(エクセプション)の仕
様である。分散オブジェクトのオブジェクト・インタフ
ェースは許可されているインタフェース定義言語(ID
L)を使用して作成することが好ましい。上記したよう
に、オブジェクトはそのインタフェースを介してトラン
ザクションを行う。したがって、インタフェースを使用
することによって、トランザクションにおけるオブジェ
クトのメソッドおよびデータを定義するのに使用された
プログラミング言語をクライアントが認識している必要
がなくなる。
【0029】情報のパケットを「マーシャル(mars
hal)」するとは、共用メモリ通信チャネル、あるい
はネットワーク通信回線のいずれかによってこの情報を
転送する準備を行うことである。これはしばしば、使用
されている通信プロトコルにしたがって特定のフォーマ
ットでデータを編成することをいう。
【0030】情報のパケットを「アンマーシャル(un
marshal)」するとは、本質的にマーシャル手順
を逆にすることであり、該当する環境で有意のフォーマ
ットでデータを作成することである。
【0031】「ToolTalk」とは、本願出願人S
un Microsystems,Inc.の子会社で
あるSunSoftが開発し、提供している通信システ
ムである。「ToolTalk」はあるアプリケーショ
ンが作成したメッセージを、そのメッセージを受け取る
ことを要求している他のものへ送出する通信サービスを
提供する。「ToolTalk」によって、独立したア
プリケーションが他のアプリケーションと、相互の直接
的な知識を要することなく、通信を行うことが可能とな
る。送信者は「ToolTalk」メッセージを特定の
プロセス、何らかの関心のあるプロセス、オブジェク
ト、あるいはオブジェクト・タイプにアドレス指定する
ことができる。「ToolTalk」の詳細については
「TheToolTalk Service:An I
nter−Operability Solutio
n,(ISBN013−088717−X)という題名
のSunSoft Press/PTR Prenti
ce Hallの書籍に記載されている。
【0032】II.作動環境 本発明が使用される環境には、汎用コンピュータ、ワー
クステーションあるいはパーソナル・コンピュータがさ
まざまなタイプの通信リンクを介して、クライアント・
サーバ構成で接続されており、プログラムやデータが多
くがオブジェクトの形式で、システムの各種のメンバに
よって、システムの他のメンバによる実効およびアクセ
スのために利用できる汎用分散コンピューティング・シ
ステムが含まれている。汎用ワークステーション・コン
ピュータの要素のいくつかを図1に示す。図において、
入出力(「I/O」)部2、中央処理装置(「CP
U」)3およびメモリ部4を有するコンピュータ1が示
されている。I/O部2はキーボード5、表示装置6、
ディスク記憶装置9、およびCD−ROM駆動装置7に
接続されている。CD−ROM装置7は、通常、プログ
ラム10やデータを含んでいるCD−ROM媒体8を読
み取ることができる。図2は典型的なマルチプロセッサ
分散コンピュータ・システムを示しており、個々のコン
ピュータ20、22および24が通信リンク26を介し
て互いに接続され、かつ恐らくは共用メモリ装置28に
接続されている。図3は典型的なオブジェクト指向クラ
イアント・サーバ構成を示しており、ユーザ30が第1
のコンピュータ32でクライアント・アプリケーション
34を起動できる。クライアント・アプリケーション3
4はコール40をオブジェクト・リファレンス36に出
し、このオブジェクト・リファレンスは第2のコンピュ
ータ(サーバ)50のオブジェクトのインプリメンテー
ション(「ターゲット・オブジェクト」ともいう)46
をポイントする。コール40は通信制御機構38に渡さ
れ、この機構38はコールをオブジェクト・インプリメ
ンテーション46が配置されているサーバ50に送る。
このオブジェクト・インプリメンテーション46は最初
にオブジェクト・リファレンス36を作成し、ユーザに
利用できるようにする。コールの処理の終了時に、オブ
ジェクト・インプリメンテーション46はメッセージま
たは希望した操作の結果を通信リンク42を介して起点
クライアント・アプリケーション34に返す。このクラ
イアント・サーバ・モデルは、通信機構の機能がオペレ
ーティング・システム(図4の62)によって行われる
単一プロセッサ装置でも機能する。
【0033】III.分散デバッガ−作成方法 個々で、図5を参照すると、SPARCworksデバ
ッガ・システムが示されている。SPARCworks
デバッガ(以下、「Debugger」と呼ぶ)はSu
n Microsystems,Inc.製のSPAR
Cworksツールセットの組込みコンポーネントであ
る。なお、SPARCworksツールセットはAna
lyzer、dbxエンジン、FileMergeツー
ル、Maketool、Manager、および、So
urceBrowserを含む。Debuggerの詳
細については、SunSoftが1994年8月にPa
rt No.801−7105−10として刊行した
「Debugging aProgram」という題名
の文献に記載されている(これは引用により本明細書の
一部とする)。
【0034】ここで、図5を参照すると、Debugg
erはdbxエンジン76とインタフェースする洗練さ
れたウィンドウ・ベースのツール72(Debugge
r・グラフィカル・ユーザ・インタフェース(GU
I))を含んでいる。dbxエンジン76は対話式のラ
イン指向ソースレベル記号デバッガである。dbxエン
ジン76はターゲット・プログラムがクラッシュした場
所を決定し、変数と式の値を調べ、コードにブレークポ
イント78をセットし、ターゲット・プログラムを実行
し、トレースすることを可能とする。プログラムの実行
中に、dbxエンジン76はターゲット・プログラムの
挙動に関する詳細な情報を取得し、ToolTalk通
信プロトコル74によってDebugger GUI7
2にこの情報を供給する。dbxエンジン76はコンパ
イラがコンパイラ・オプション−gを使用して生成した
デバッギング情報に依存して、ターゲット・プロセスの
状態を検査する。現行のSun Microsyste
ms,Inc.のオペレーティング・システム環境であ
るSolaris 2.xのデフォルトでは、各プログ
ラム・モジュールのデバッギング情報はモジュールの
.0ファイルに格納される。Solaris 2.x
における好ましい実施の形態において、dbxエンジン
76は必要に応じ、各モジュールに関する情報を読み込
む。「ブレークポイント設定」78の機能に加えて、d
bxエンジン76は「単一ステップ」80の機能、なら
びに上記の参照文献「Debugging a Pro
gram」に詳細が記載されている多くのその他の機能
82を有している。「ステップ」80機能はプログラマ
/開発者がターゲット・プログラム・コードをソース言
語レベルまたはマシン語レベルのいずれかで1行ずつ単
一のステップで実行し、ファンクションコールをステッ
プ「over」またはステップ「into」し、ファン
クション・コールをステップ「up」またはステップ
「out」してコール側ファンクション行に到達するこ
と(ただし、コール後に)を可能とする。ブレークポイ
ント78のコマンドには3つのタイプがある。
【0035】(1)stopタイプのブレークポイン
ト: ターゲット・プログラムがstopコマンドを使
用して作成されたブレークポイントに到達した場合、プ
ログラムは停止し、任意選択で1つまたは複数のデバッ
グ・コマンドを発行する。ターゲット・プログラムをレ
ジュームするには、他のデバッグ・コマンドを発行しな
ければならない。
【0036】(2)whenタイプのブレークポイン
ト: ターゲット・プログラムが停止し、dbxエンジ
ンが1つまたは複数のデバッグ・コマンドを発行し、そ
の後ターゲット・プログラムが継続する。
【0037】(3)traceタイプのブレークポイン
ト: ターゲット・プログラムが停止し、イベント固有
のtrace行が排除され、その後プログラムが継続す
る。
【0038】非分散システムにおける、Debugge
rの典型的な構成を図6に示す。図において、Tool
Talk通信リンク96によってdbxエンジン98に
接続されたデバッガGUI94を含んでいるホストマシ
ン92が示されており、dbxエンジン98はクライア
ント(ターゲット・プログラム)100にリンクされて
おり、クライアントはさらに付加的なターゲット・アプ
リケーション・コード(サーバ)102に接続されてい
る。分散システムにおいて、プログラマ/開発者は図7
に示したような状態に直面する。図7は複数のホスト上
にある複数のクライアントと複数のサーバを示してい
る。赤ホスト112にあるDebugger114を使
用して、クライアント1 116をデバッグするプログ
ラマ/開発者には、クライアント1 116が赤ホスト
112のサーバ118または青ホスト122のサーバ1
24によって実行できるオブジェクトで操作を行ってお
り、クライアント1 116の開発者としてのプログラ
マにはコールの実行にどのサーバが使用されるのかがわ
からないということが判明する。さらに、クライアント
1 116によって使用されるどのサーバも、白ホスト
130のクライアント2 128が使用できる。DOE
(本発明の好ましい実施の形態)などのCORBA準拠
の分散システムでは、かなりの量の機構(メカニズム)
が各オブジェクトの背後にあり、この機構によって、ア
プリケーション・プログラマがオブジェクトを、そのオ
ブジェクトのサーバがどこで作動しているのかの知識を
必要とせずに、使用できるようになる。このことはこの
ような状況の下では、分散アプリケーションのデバッグ
作業の重大な障害となる。さらに、すべてのDOEサー
バはマルチスレッド・サーバであり、サーバが異なるク
ライアントからの複数の要求に同時に応えることができ
る。したがって、本発明のdoeDebuggerはD
OE分散環境で生じるデバッグ上の問題の多くに対する
解決策となる。
【0039】本発明のdoeDebuggerを作成す
るのに必要なDebuggerの改変について説明する
前に、オブジェクトがCORBA準拠環境で互いに通信
するのを可能とするためにDOEが使用するボイラプレ
ート機構コードについて簡単に触れておくことが有用で
あろう。図8を参照すると、ユーザ・コードと基礎DO
E機構の間の分割が示されている。
【0040】図8において、ローカル・ホスト142
で、ユーザ・コードが機能、例えば、機能「foo」1
44を呼び出す。DOEシステムは機能fooとのイン
タフェースをもたらす生成コード148を備えており、
生成コード148はメッセージ機能150を呼び出し
て、適切なメッセージを作成し、これをサーバ152に
送る。これらのメッセージ154は該当するホスト15
6に到達し、サーバ側メッセージ・システム158によ
って受け取られ、このメッセージ・システムはメッセー
ジをDOEシステム160が生成したコードであるサー
バ側スタブに渡す。DOEシステム160は次いで機能
foo162のインプリメンテーション・コードを呼び
出し、この機能のインプリメンテーションのユーザ・コ
ードがコール164を処理する。アプリケーション・プ
ログラマはdoeサーバによってもたらされるオブジェ
クトを利用するコード144を書く。アプリケーション
・プログラマはインタフェース定義言語(IDL)を使
用してオブジェクトに対するインタフェースを定義す
る。IDLはクライアント側およびサーバ側のライブラ
リにコンパイルされ、これらのライブラリはクライアン
トにあるオブジェクトに対する操作をサーバで行うこと
を可能とする。クライアント側ライブラリは操作をサー
バに対する要求154に変換するスタブ機能148、1
50からなっている。サーバ側ライブラリ160、16
2はクライアントからの要求をその操作を実施するユー
ザ提供機能164に変換する。
【0041】たとえば、図8において、ユーザは機能f
ooをIDLに定義している。IDLコンパイラはスタ
ブ機能foo148、150を生成し、サーバに送られ
るメッセージを作成させる(152)。サーバ側では、
IDLが生成したコード160、162がクライアント
からのメッセージを取り入れ、これをプログラマによっ
て与えられる、fooの機能を実現する、機能fooに
対するコールに変換する(164)。この基礎コード1
48、150、152、158、160および162は
すべてプログラマ/開発者がデバッグしようと思ってお
らず、また正規のデバッグ・セッションにおいてデバッ
ガに調べさせようと思っていないコードである。したが
って、分散デバッギング・セッションがプログラマ/開
発差に関する限り、この基礎コードをすべて無視できる
ようにすることが望ましい。
【0042】図9はSPARCworksデバッガを本
発明のdoeDebuggerに変換するのに必要な改
変および拡張を示す。実際の拡張は共用ライブラリ「l
ibdoeDebugger.so」204にパッケー
ジされる。必要とされる基本的な拡張には次のようなも
のがある。
【0043】「dstep」コマンド206 「remote surrogate code te
st」機構208 「Remote Breakpoint」設定機構21
0 「GetImplementation」機構212 「IdentifyRemoteFunction」機
構214 「multiple dbx engine sync
hronizer」機構216
【0044】これらの拡張に加えて、doeDebug
gerの作動をサポートするためのDebugger
GUIおよびdbxエンジンの改変には、次のものがあ
る。
【0045】あるdbxエンジンが他のdbxエンジン
と通信を行うための通信機能 デバッガ−GUIからすべての活動dbxエンジンのリ
ストを取得する機能
【0046】これらの改変の好ましい実施の形態を総括
的に説明するが、当分野の技術者にはこれらの機能およ
び特徴が最も適切なものである部分に対するハードウェ
ア機構および装置を含む多くの形態で実現できることが
認識されよう。
【0047】「dstep」コマンドは分散システムの
どこに所与の機能のインプリメンテーションが実際にあ
るのかにかかわりなく、所与の機能のインプリメンテー
ションにシームレスに取りかかるために、プログラマ/
開発者によって使用される。「dstep」はまず正規
のdbx「step」コマンドを発行することによって
作動する。標準の「step」コマンドはデバッグされ
るプロセス(デバッギー)の実行をデバッギーの現行の
ソース・ラインから次のソース・ラインまで継続する。
現行ラインが機能を呼び出す点になると、次のソース・
ラインが呼び出される機能の最初のソース・ラインにな
る。stepコマンドのセマンティックスを分散アプリ
ケーションのデバッギングに拡張するため、拡張された
stepが図8のクライアントのfooなどの機能に入
ると(点A 146)、実行がサーバのfooのインプ
リメンテーションの最初のラインで停止する(点B 1
66)。拡張stepコマンド(「dstep」コマン
ドと呼ぶ)は以下の2つの状況以外では、標準のste
pコマンドと同じ作動を行う。
【0048】「dstep」コマンドがサーバでの呼出
しをもたらす機能の呼出し時に実行された場合、次のソ
ース・ラインがサーバで呼び出された機能の最初のライ
ンになる。
【0049】「dstep」コマンドがサーバで呼び出
された機能からの復帰時に実行された場合、次のソース
・ラインは遠隔呼出しをもたらしたファンクション呼出
し後にクライアントのソース・ラインとなる。DOEク
ライアントから見ると、「dstep」コマンドはユー
ザがIDL生成コードから戻ってきたときに、このコマ
ンドの特別な機能を開始する。DOEサーバから見る
と、「dstep」コマンドはユーザがIDL生成コー
ドから戻ってきたときに、このコマンドの特別な機能を
開始する。
【0050】doeDebuggerを透過的に遮断す
ることも必要である。遠隔デバッギングをサポートする
のに何を行ったのかをユーザが知らないのであるから、
ユーザがこれを取り消すことを期待すべきではない。
【0051】「dstep」コマンドが実行された後、
doeDebuggerは現行機能が「remote
surrogate code」であるかどうかを判定
しようとする。「remote surrogate
code」はIDL操作の遠隔呼出しを担当するコード
である(すなわち、図8の項目148、150)。DO
Eシステムでは現在、「remote surroga
te code」はすべてIDLコンパイラによって生
成されている。
【0052】クライアント側では、doeDebugg
erがIDL生成コードを下がっていっていることを認
識する必要がある。これを達成するため、DOEはID
L生成コードの最初の層で使用される変数に特別な名前
をつける。この変数が存在することが「dstep」機
能を開始するトリガとして役立つ。
【0053】考えられるとおり、呼び出されるクライア
ント側の機能の名前は、その機能を実施するサーバ側の
機能の名前と同じである。図8の例において、このこと
はプログラマがクライアント側で機能「foo」をコー
ルし、自分がサーバ側で書いた機能「foo」を得るこ
とを期待することに過ぎない。サーバは多くのクライア
ントにサービスを行えることがあり、したがって、その
機能「foo」の多くの呼出しがサーバで生じることも
ある。サーバでの関連する呼出しは、サーバのどのスレ
ッドがデバッグ対象クライアントのファンクション・コ
ールに対応しているかを判定することによって特定され
る。2つの機能(クライアント側のものと、サーバ側の
もの)をDOEのメッセージ通過層に追加して、サーバ
の特定のスレッドの識別を援助する。
【0054】あるオブジェクトに対するサーバを探し出
すために、「find server」機能がDOEベ
ース・クラスに追加されている。これは「GetImp
lementation」という機能を実行する。この
機能は任意のDOEオブジェクトによって呼び出すこと
ができ、サーバのホストidおよびサーバのプロセスi
d(pid)を返すこととなる。doeDebugge
rはクライアントの「find server」機能を
呼び出す。この機能はクライアントが使用しているオブ
ジェクトに一部でなければならないから、doeDeb
uggerに組み込まれた機能ではない。「find
server」機能が呼び出された時点で、サーバが作
動していなければ、サーバは起動される。
【0055】上述のように、特別な変数が存在している
ことが、機能に取りかかるときに「dstep」機能を
呼び出さなければならないことを通知する「trigg
er」として使用される。「dstep」がサーバから
戻る時期を通知するのには、次の2つの理由で、同様な
「trigger」は使用されない。
【0056】トリガ機構が復帰時に利用できなかった。
および
【0057】呼び出された復帰がすでにわかっているコ
ードを通って戻り(すなわち、このコードによってサー
バに入った)、この知識を使って、復帰をトリガでき
た。
【0058】サーバに初めて入ったとき、機能「fo
o」(図8のIDLが生成した機能)についてのユーザ
のインプリメンテーションを直接呼び出す機能のスタッ
ク・ポインタ(復帰トリガと呼ぶ)がセーブされる。サ
ーバからの復帰をチェックするときに、現行機能のスタ
ック・ポインタを復帰トリガに関してチェックする。一
致すれば、サーバから抜けることを継続する。
【0059】doeDebuggerが初めてサーバに
入るときには、新しいdbxエンジンをサーバで起動し
なければならない。このプロセスは「Identify
RemoteFunction」プロセスの一部であ
り、遠隔dbxエンジンを識別し、dbxWrappe
rFactoryオブジェクトを使用して遠隔dbxエ
ンジンを起動/作成する拡張機能として追加されたもの
である。これを行う方法を図14を参照して説明する。
図14はデバッガGUI502、dbxエンジン50
4、ヘルパ・プロセス506、クライアント側ラッパ・
サーバ510およびクライアント508を有するローカ
ル・ホスト520を示している。また、dbxエンジン
512、ヘルパ・プロセス514、サーバ側ラッパ・サ
ーバ518およびサーバ(呼び出された機能のインプリ
メンテーション)516を含んでいる遠隔ホスト522
も示されている。デバッガGUIへの接続およびサーバ
への接続を含む新しいdbxエンジンの初期化は、新し
いdbxエンジンを作成するコールを行うクライアント
側dbxエンジン504によって達成される。
【0060】ローカル・ホスト520のdbxエンジン
504はローカル・ホスト520のヘルパ・プロセス5
06を介したローカル・ホスト520のラッパ・サーバ
510への要求によって、遠隔ホスト522にdbxエ
ンジン512を作成する。ヘルパ・プロセス506は、
ラッパ・サーバ510と通信を行うDOEアプリケーシ
ョンである。dbxエンジン自体がマルチスレッド安全
(MTセーフ)ではなく、DOEアプリケーションに作
成することができない(すべてのDOEアプリケーショ
ンは元来マルチスレッド化されている)ため、これが必
要となる。dbxエンジンはヘルパ・プロセスを介して
ラッパ・サーバのサービスにアクセスする。ローカル・
ホスト520のラッパ・サーバ510は遠隔ホスト52
2のラッパ・サーバにメッセージを送ってdbxエンジ
ンを遠隔サーバ522に作成し、サーバ516に接続す
るよう命令することを要求する。遠隔ホスト522にd
bxエンジンを作成するようにというローカル・ホスト
520のdbxエンジン504による要求は、遠隔ホス
ト522のdbxエンジン512が完全に起動されるま
で完了しない。遠隔ホスト522のラッパ・サーバは分
岐し、遠隔ホスト522の新しいdbxエンジン512
を実行し、dbxエンジン512が終了するか、あるい
はdbxエンジン512が完全に起動されたことを示す
メッセージを(ラッパ・サーバ518に)送るかするの
を待つ。遠隔ホスト522のラッパ・サーバ518は2
つのスレッドを作成する。一方のスレッドは分岐した子
(dbxエンジン512)が終了するのを待機する。他
方のスレッドは完全に起動されたdbxエンジン512
からのメッセージを待つ。これらのスレッドの一方がレ
ジュームされると、子のスレッドは他方のスレッドを破
壊し、適切な応答をローカル・ホスト520のラッパ・
サーバ510に戻し、このラッパ・サーバは遠隔ホスト
522でのdbxエンジン512の作成要求を完了し、
適切な状況値(作成成功または失敗)をローカル・ホス
トのdbxエンジン504に返す。
【0061】サーバの新しいdbxエンジン512が起
動した(上述のようにして)後、クライアントのdbx
エンジン504は新しいdbxエンジン512にメッセ
ージを送って、サーバ516に適切なブレークポイント
をセットする。クライアントのdbxエンジン504は
サーバのdbxエンジン512が完全に起動するまで
(すなわち、デバッガGUIとの接続を含む初期化を終
わり、サーバに接続するまで)、このdbxエンジン5
12にブレークポイント・メッセージを送ることができ
ない。
【0062】競合状態(レイス・コンディション)の可
能性を回避するのに必要なdoeDebuggerの作
動に関する付加的な事項を、ある程度詳細に説明する。
【0063】「dstep」中に行われるステップの記
述はコマンドをサーバに接続されたdbxエンジンに送
って、サーバにブレークポイントをセットすることをい
う。コマンドはサーバの適正なスレッドにブレークポイ
ントをセットするのに十分な情報を含んでいる。ステッ
プがトリガ機能に入ると、トリガ機能のコールで生じた
コールを処理するサーバのスレッドを一意に識別できる
情報はまだ存在していない。実際の機構はトリガ機能の
コールによって生じる要求の識別子(要求id)が利用
できるポイントで、イベントがトランスポート層にセッ
トされる。このイベントはコマンドをサーバのdbxエ
ンジンに送る。メッセージは要求id、クライアントの
ホスト名、およびクライアントのプロセス間アドレスを
を含んでおり、これが要求を一意に識別する。遠隔ホス
トのdbxエンジンに送られたメッセージはサーバのメ
ッセージ通過層にセットされるブレークポイント・セッ
トをもたらす。このブレークポイントは要求id、クラ
イアントのホスト名、およびクライアントプロセス間ア
ドレスの一致についてチェックし、一致が見つかった場
合には、一致したスレッドがクライアントのトリガ機能
によって開始された要求を処理するスレッドとなる。次
いで、ブレークポイントが関数への進入時にそのスレッ
ドにセットされ、サーバは継続される。
【0064】クライアントのトリガ機能が「foo」で
ある場合、ブレークポイントがセットされるサーバの機
能も「foo」となる。しかしながら、クラス情報がサ
ーバで利用できないので、「stop in memb
er foo」コマンドが特定のスレッドのチェックで
使用される。場合によっては、自動的に生成されるID
Lコードに機能「foo」があり、生成コードを実行す
ると、ブレークポイントが決まる。ブレークポイントが
決まると、IDL生成コード内であるかどうかを判定す
るためのチェックが行われる。生成コード内にいる場
合、他のブレークポイントがセットされ、実行が継続さ
れる。
【0065】クライアントのトリガ機能が「foo」で
ある場合、サーバのブレークポイントが「foo」にな
ったとき、復帰トリガ・スタック・ポインタがセーブさ
れる。復帰トリガは「dstep」が「foo」の終わ
りで実行されたときに実行を継続するために使用され
る。ユーザは「cont」コマンドを使用して、サーバ
から明示的に継続することもできる。いずれの場合で
も、セーブされた復帰トリガ・スタック・ポインタを廃
棄し、これがサーバに対する他のコールで使用されない
ようにする。復帰時に実行されるように生成されたポイ
ントで、イベントがトランスポート層にセットされ、セ
ーブされた復帰トリガはそのイベントで廃棄される。イ
ベントがスレッドでフィルタされるので、適正な要求の
復帰だけが復帰トリガを廃棄する。
【0066】図14を参照して上述したように、メッセ
ージをローカル・ホスト520のdbxエンジン504
から、遠隔ホスト522のdbxエンジン512へ送っ
て、サーバ516にブレークポイントをセットする。ブ
レークポイント・メッセージが送られた後、クライアン
ト508が継続されるので、遠隔呼出しがクライアント
508からサーバ516へ進む。しかしながら、ブレー
クポイント・メッセージを遠隔ホスト522のdbxエ
ンジン512が受け取って、処理してから、遠隔呼出し
がサーバ516に到達するという保証はない。ブレーク
ポイントが実際にセットされてから、遠隔呼出しが行わ
れることを保証するために、ローカル・ホスト520の
dbxエンジン504は停止し、遠隔ホスト522のd
bxエンジン512からのメッセージを待つ。遠隔ホス
ト522のdbxエンジン512はサーバ516にブレ
ークポイントをセットすると、メッセージをローカル・
ホスト520のdbxエンジン504に送って、クライ
アント508を継続する。
【0067】上記で明らかにした付加的な変更/拡張を
説明する。
【0068】あるdbxエンジンが他のdbxエンジン
と通信することを可能とする変更は、メッセージを他の
dbxエンジン(ターゲットdbxエンジンと呼ぶ)へ
送るために、特定のToolTalkメッセージ(「r
cmd」メッセージと呼ぶ)をdbxエンジンからデバ
ッガGUIに渡すことができるようにするデバッガGU
Iおよびdbxエンジンの両方に対する変更を含んでい
る。デバッガGUIはユーザからのコマンドを受け入
れ、これを特定のdbxエンジンへ送る。「rcmd」
メッセージはターゲットdbxエンジンが作動している
ホストマシンの名前、ターゲットdbxエンジンがデバ
ッグしているプロセスのプロセス識別子(pid)、お
よびターゲットdbxエンジンに対するメッセージを含
んでいる。デバッガGUIはdbxエンジンのリストを
維持しており、このリストはdbxエンジンが作動して
いるホストの名前、およびデバッグされているプロセス
のpidを含んでいる。デバッガGUIは「rcmd」
メッセージを取得すると、指定されたホストマシンで作
動しており、所与のpidを有するプロセスをデバッグ
しているdbxエンジンに対するdbxエンジンのリス
トに到達する。ターゲットdbxエンジンに対するメッ
セージは次いで、そのdbxエンジンに送り出される。
【0069】デバッガGUIが特定のdbxエンジンに
フォーカスするのを可能とする変更は、デバッガGUI
に送信dbxエンジンに対するアテンションのフォーカ
スを変更させるために、特定のToolTalkメッセ
ージ(「attention」メッセージと呼ぶ)をd
bxエンジンからデバッガGUIに渡すことができるよ
うにするデバッガGUIおよびdbxエンジンの両方に
対する変更を含んでいる。デバッガGUIは特定のdb
xエンジンに関連する表示を維持している。たとえば、
特定のdbxエンジンがデバッグしているプロセスに対
するソース・プログラムがデバッガGUIによって表示
される。デバッガGUIは1組の表示を有しており、一
度に1つのdbxエンジンからの情報を示すことができ
る。「attention」メッセージはデバッガGU
Iがその表示を現行dbxエンジンに対する情報から
「attention」メッセージを送っているdbx
エンジンの情報に変更することを示す。
【0070】デバッガGUIからすべての活動dbxエ
ンジンのリストを取得できるようにするのに必要な変更
は、デバッガGUIに各dbxエンジンが作動している
ホスト名、およびそのdbxエンジンがデバッグしてい
るプロセスのプロセス識別子(pid)のリストを返さ
せるために、特定のToolTalkメッセージ(「g
et dbx engines」メッセージと呼ぶ)を
dbxエンジンからデバッガGUIに渡すことができる
ようにするデバッガGUIおよびdbxエンジンの両方
に対する変更を含んでいる。デバッガGUIはdbxエ
ンジンが作動しているホストの名前、およびそのdbx
エンジンがデバッグしているプロセスのpidを含んで
いるすべてのdbxエンジンのリストを維持している。
デバッガGUIは「get dbx engines」
メッセージを受け取ると、ホストの名前およびデバッグ
されているプロセスのpidを各dbxエンジンに関し
て実行し、それをget dbx enginesメッ
セージを送ったdbxエンジンに返送する。
【0071】IV.分散デバッガ−使用方法 本発明のdoeDebuggerを作成するのに必要な
SPARCworksデバッガ・システムに対する変更
/拡張を説明してきたが、doeDebuggerを使
用する方法をここで説明する。
【0072】図10を参照して、doeDebugge
rの作動220を説明する。まず、ローカルマシンのプ
ログラマ/開発者はdoeDebuggerを起動する
(222)。ターゲット・プログラムが示され(22
4)、「dstep」コマンドが希望する機能に対して
指定される(226)。doeDebuggerは標準
「step」コマンドを実行し(228)、doeDe
buggerはターゲット・インプリメンテーションが
ローカルか遠隔かを決定しようと試みる(230)。タ
ーゲットが遠隔であると認識すると(IDLが生成した
「remotesurrogate code」を認識
することによって)、「find server」機能
を実行して(232)、ターゲット・インプリメンテー
ションのホストidおよびpidを見つけだす。ローカ
ルdbxエンジンはコマンドを発行して、見つかったホ
ストにdbxエンジンを作成し(234)、ブロック
し、応答を待つ。見つかったホストはターゲット・イン
プリメンテーションに接続されているdbxエンジンが
あるかどうかを判定する(236)。すでにdbxエン
ジンが作動している場合には(250)、見つかったホ
ストのサーバは復帰メッセージを呼出し元クライアント
側dbxエンジンに送る(252)。クライアント側d
bxエンジンはメッセージを受け取って、ブロックを解
除する(254)。クライアント側エンジンは次いで、
メッセージをサーバのdbxエンジンに送って、指定さ
れた機能に一時ブレークポイントをセットする(26
2)(図11において)。図11を続けると、サーバd
bxエンジンはコマンドを実行して、ターゲット機能に
ブレークポイントをセットし(264)、復帰トリガ・
スタック・ポインタをセーブする(266)。サーバd
bxエンジンはターゲット・インプリメンテーションを
「継続」する(268)。その後、ターゲット・インプ
リメンテーションは指定されたブレークポイントにヒッ
トし(270)、サーバdbxエンジンはブレークポイ
ントを処理し、クライアント・ホストのデバッガGUI
にメッセージを送って、サーバdbxエンジンにフォー
カスする(272)。デバッガGUIを使用しているプ
ログラマはこれで、遠隔機能をこれがあたかもクライア
ント・ホストにあるような状態でデバッグできるように
なる(274)。その後、システムはデバッグ・セッシ
ョンが終わったかどうか(すなわち、quitコマンド
を受け取ったかどうか)を調べるためにチェックを行い
(276)、終わっていない場合には(278)、デバ
ッグ・セッションを継続する(282)。quitコマ
ンドを受け取っている場合には(280)、遠隔dbx
エンジンは終了し、ターゲット・プロセスを接続解除し
(284)、セッションを終わらせる(286)。
【0073】図10のブロック236に戻って、見つか
ったサーバ・ホストで作動しているdbxエンジンがな
い場合には(238)、サーバはクライアント・ホスト
のdbxエンジンに、dbxエンジンが作動していない
ことを伝える(240)。ヘルパ・オブジェクトを使用
しているクライアントdbxエンジンはクライアント側
dbxWrapperFactoryに対する要求を処
理し、見つかったホストのサーバにdbxエンジンを作
成する(242)。クライアント側dbxWrappe
rFactoryオブジェクトはサーバ側dbxWra
pperFactoryインプリメンテーションをコー
ルし(244)、dbxエンジンが見つかったホストの
サーバに作成され、ターゲット機能のインプリメンテー
ションに接続する(246)。作成され、ターゲット機
能に接続したばかりのこのdbxエンジンが起動され
(248)、復帰メッセージがクライアント側dbxエ
ンジンに送られ(252)、ブロック254および図1
1のブロックに関して上述したように、プロセスがこの
ポイントから継続する。
【0074】図10のブロック246に示した「遠隔d
bxエンジン作成および接続」プロセスを図12を参照
して詳細に説明する。図12において、「作成」プロセ
スが開始され(302)、クライアント側dbxエンジ
ンがローカル・ヘルパ・プロセスをコールする(30
4)。ローカル・ヘルパ・プロセスは「create」
コマンドをdbxWrapperFactoryオブジ
ェクトに対して発行する(306)。dbxWrapp
erFactoryオブジェクトはメッセージを見つか
ったホスト308のdbxWrapperFactor
yインプリメンテーションに送り、このインプリメンテ
ーションは「create」コマンドを実行する(31
0)。dbxWrapperFactoryインプリメ
ンテーションはdbxエンジンに対して「fork」お
よび「exec」を行い(316)、新たに作成された
dbxエンジンからのメッセージを待つ(318)。新
しいdbxエンジンが何らかの理由で完全に起動されて
いない場合(324)、「Failed_to_sta
rt」メッセージが返され(326)、dbxWrap
perFactoryインプリメンテーションは終了す
る(320)。新しいdbxエンジンが完全に起動され
ている場合には(322)、新しいdbxエンジンはタ
ーゲット機能に接続するよう指示される(328)。新
しいdbxエンジンが接続できない場合には(33
4)、メッセージ「Failed_to_attac
h」が返され(336)、dbxWrapperFac
toryインプリメンテーションは終了する(32
0)。新しいdbxエンジンが接続できる場合には(3
32)、メッセージ「Attached_and_ru
nning」が返され、dbxWrapperFact
oryインプリメンテーションは終了する(320)。
ターゲット・サーバへの「接続の失敗」が要件に接続す
るそれ自体の許可を有しているサーバによって生じるこ
とがあり、この場合、接続のための他の機構が必要とな
ることがあることに留意されたい。
【0075】図11のブロック284に示した「遠隔d
bxエンジン終了および接続解除」プロセスを、図13
を参照して詳細に説明する。図13において、プログラ
マ/開発者がデバッガGUIに対して「Quit」コマ
ンドを発行し(402)、デバッガGUIがこのコマン
ドをローカルdbxエンジンに渡すことによって「終
了」プロセスが開始される(404)。ローカルdbx
エンジンは「QuitSession」メッセージをヘ
ルパ・プロセスを介してdbxWrapperFact
oryに送り、デバッグ・セッションを終了する(40
6)。「QuitSession」コマンドにより、関
与しているホストの各々のdbxWrapperFac
toryオブジェクトは各dbxエンジンに信号を送る
が(408)、このdbxエンジンはデバッグ・セッシ
ョンの一部である(410)。各dbxエンジンは送ら
れた信号に対する信号ハンドラを有しており、このハン
ドラは信号がdbxWrapperFactoryから
送られているのかどうかを調べ、そうである場合には、
dbxエンジンはデバッグしているプロセスとの接続を
解除し(412)、終了する。他の実施の形態はdbx
エンジンをそのターゲット機能から接続解除するステッ
プ(414)や、「dbx_debugger_det
ached_and_deleted」などのメッセー
ジをクライアント側dbxエンジンに返すステップ(4
16)などの付加的なステップを含んでいることができ
る。
【0076】dbxWrapperを実施するインタフ
ェースを図15に示す。当分野の技術には、各種のイン
プリメンテーションがこの機能に対して行えることが認
識されよう。
【0077】本発明を特定のオペレーティング・システ
ム、プログラム・コード、ならびにオブジェクトおよび
オブジェクト・リファレンスの定義に関して説明してき
たが、本発明を所与のオペレーティング環境内の、ある
いは異なるオペレーティング・システムまたはオブジェ
クト・システム環境の各種の変形のうちの任意のもので
実施できることが当分野の技術者には理解されよう。同
様に、図示の特定のクライアントおよびサーバの構成ま
たは組合せは、本発明を使用することのできるクライア
ントとサーバの多くのこのような構成、ならびにオブジ
ェクトとサブオブジェクトの関係の代表的なものに過ぎ
ない。さらに、図面が説明のためのものに過ぎず、本発
明の限定事項と取るべきではないことが理解されよう。
遠隔dbxエンジンの他の機能を備えたクライアント側
デバッガGUIとの付加的な組合せは、ターゲット・オ
ブジェクトにフレンドリ・ユーザ・インタフェースをも
たらすグラフィカル・ユーザ・インタフェース(GU
I)エージェントとのdbxエンジンの組合せ、ユーザ
の既知の選択に基づいて遠隔要求を変更する人工知能エ
ージェントとの遠隔dbxエンジンの組合せ、遠隔要求
に対する回答をキャッシュするキャッシュ・プログラム
との遠隔dbxエンジンの組合せ、数人のユーザからの
入力をマージして、これをターゲットに送るテレコンフ
ァレンス・アプリケーションとの遠隔dbxエンジンの
組合せ、あるいはマルチメディア・システムの多数のオ
ーディオおよびビデオ・アクセス・エージェントとの遠
隔dbxエンジンの組合せを含んでいる。これらの考え
られるdbxエンジンとデバッガGUIの組合せは本明
細書で開示した遠隔デバッガ機能の可能な用途を限定す
ることを意図したものではなく、当分野の技術者が例と
認識する例を表しているに過ぎない。doeDebug
gerの発明の範囲は、したがって、首記の特許請求の
範囲、ならびに特許請求の範囲の対象となる同等物の全
範囲を参照することによって決定されるものである。
【図面の簡単な説明】
【図1】汎用コンピュータおよび関連装置を示す図であ
る。
【図2】分散コンピュータ・システムを示す図である。
【図3】ユーザ、クライアント・アプリケーション、オ
ブジェクト・リファレンス、オブジェクト・インプリメ
ンテーション、およびオブジェクト・リファレンス作成
プログラムの関係を示す、複数のマシンを備えたクライ
アント・サーバ・システム構成の図である。
【図4】単一のマシンを使用したクライアント・サーバ
構成の図である。
【図5】SPARCworksデバッガを示す図であ
る。
【図6】クライアント・アプリケーション、オブジェク
ト・リファレンスおよびSPARCworksデバッガ
の間の関係を示す図である。
【図7】複数のサーバにアクセスする必要のある分散オ
ブジェクト環境(DOE)クライアント・アプリケーシ
ョンの例を示す図である。
【図8】ユーザ・コードとDOEクライアントまたはサ
ーバの基礎DOE機構の間の分割を示す図である。
【図9】doeDebugger構成を示す図である。
【図10】分散環境のdoeDebuggerの作動を
示す流れ図である。
【図11】dbxエンジン間プロセスを示す流れ図であ
る。
【図12】doeDebugger作成および接続プロ
セス(図10の流れ図のブロック246)の作動を示す
流れ図である。
【図13】doeDebugger終了および接続解除
プロセス(図11の流れ図のブロック284)の作動を
示す流れ図である。
【図14】doeDebugger、dbxエンジン、
ラッパ・サービスおよびクライアント・アプリケーショ
ンおよびサーバ・オブジェクト・インプリメンテーショ
ンの間の関係を示す図である。
【図15】dbxWrapperの典型的なインタフェ
ースを示す図である。
【符号の説明】
1 コンピュータ、 2 入出力(「I
/O」)部 3 中央処理装置(「CPU」)、 4 メモリ部 5 キーボード、 6 表示装置 7 CD−ROM駆動装置、 8 CD−ROM
媒体 9 ディスク記憶装置、 10 プログラム 20、22、24 コンピュータ 26 通信リンク 28 共用メモリ装置 30 ユーザ 34 クライアント・アプリケーション 36 オブジェクト・リファレンス 46 オブジェクト・インプリメンテーション 50 サーバ 92 ホストマシン 96 ToolTalk通信リンク 98 dbxエンジン 112 赤ホスト 130 白ホスト 142 ローカル・ホスト 144 機能「foo」 148 生成コード 502 デバッガGUI 506 ヘルパ・プロセス 510 ラッパ・サーバ 522 遠隔ホスト
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・エイ・マサミツ アメリカ合衆国 94550 カリフォルニア 州・リバモア・クリーク ロード・1873

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 ローカル・ホスト・コンピュータおよび
    1つまたは複数の遠隔ホスト・コンピュータにある分散
    ターゲット・アプリケーション・システムをデバッグす
    る分散デバッガ・システムにおいて、 デバッガGUIおよび1つまたは複数のデバッガ・エン
    ジン(以下、「dbxエンジン」と呼ぶ)であって、前
    記デバッガGUIが前記dbxエンジンと通信し、かつ
    前記デバッガ・システムのユーザと通信するためのイン
    タフェース機構を備えており、前記dbxエンジンが前
    記ローカルおよび遠隔のコンピュータに常駐できるデバ
    ッガGUIおよび1つまたは複数のdbxエンジンと、 メッセージを互いに送受信するために前記dbxエンジ
    ンと前記デバッガGUIが使用する通信機構と、 前記の1つまたは複数のdbxエンジンの1つであり、
    前記ローカル・ホスト・コンピュータから離隔したホス
    ト・コンピュータにあり、前記通信機構によって前記デ
    バッガGUIに接続されている遠隔dbxエンジンとを
    備えている分散デバッガ・システム。
  2. 【請求項2】 ローカル・ホスト・コンピュータおよび
    1つまたは複数の遠隔ホスト・コンピュータにある分散
    ターゲット・アプリケーション・システムをデバッグす
    る分散デバッガ・システムにおいて、 デバッガGUIおよび1つまたは複数のデバッガ・エン
    ジン(以下、「dbxエンジン」と呼ぶ)であって、前
    記デバッガGUIが前記dbxエンジンと通信し、かつ
    前記デバッガ・システムのユーザと通信するためのイン
    タフェース機構を備えており、前記dbxエンジンが前
    記ローカルおよび遠隔のコンピュータに常駐できるデバ
    ッガGUIおよび1つまたは複数のdbxエンジンと、 メッセージを互いに送受信するために前記dbxエンジ
    ンと前記デバッガGUIが使用する通信機構と、 遠隔ホスト・コンピュータにある前記ターゲット・アプ
    リケーション・システムの一部をデバッグする際に使用
    される新しいdbxエンジンを前記遠隔ホスト・コンピ
    ュータに作成するために前記デバッガGUIが使用する
    dbxWrapperFactory機構とを備えてい
    る分散デバッガ・システム。
  3. 【請求項3】 前記dbxエンジンの1つが前記dbx
    エンジンの他のものと、これらのdbxエンジンが異な
    るホスト・コンピュータにあるかどうかにかかわりな
    く、通信することを可能とする第1の通信機構をさらに
    含んでいることを特徴とする、請求項2に記載の分散デ
    バッガ・システム。
  4. 【請求項4】 前記デバッガGUIが前記dbxエンジ
    ンの1つに、前記dbxエンジンがどのホスト・コンピ
    ュータにあるかにかかわりなく、フォーカスすることを
    可能とする第2の通信機構をさらに含んでいることを特
    徴とする、請求項2に記載の分散デバッガ・システム。
  5. 【請求項5】 前記ユーザが、前記dbxエンジンがど
    のホスト・コンピュータにあるかにかかわりなく、すべ
    ての活動dbxエンジンのリストを前記デバッガGUI
    から取得できるようにする第3の通信機構をさらに含ん
    でいることを特徴とする、請求項2に記載の分散デバッ
    ガ・システム。
  6. 【請求項6】 ローカル・ホスト・コンピュータおよび
    1つまたは複数の遠隔ホスト・コンピュータにある分散
    ターゲット・アプリケーション・システムをデバッグす
    る分散デバッガ・システムで使用するdbxエンジンに
    おいて、前記ターゲット・アプリケーション・システム
    のローカル部分と遠隔部分とを接続するが、前記ターゲ
    ット・アプリケーション・システム自体の一部ではない
    中間インタフェース定義言語(「IDL」)生成コード
    機構を無視する(すなわち、「ステップ・オーバーす
    る」)dstep機構を備えているdbxエンジン。
  7. 【請求項7】 前記ターゲット・アプリケーション・シ
    ステムのローカル部分と遠隔部分とを接続する中間イン
    タフェース定義言語(「IDL」)生成コード機構のど
    れを無視すべきかを決定するremote surro
    gate code test機構をさらに含んでいる
    ことを特徴とする、請求項6に記載の分散ターゲット・
    アプリケーション・システムをデバッグする分散デバッ
    ガ・システムで使用するdbxエンジン。
  8. 【請求項8】 指定されたオブジェクトのホストIDお
    よびプロセスID(PID)を探し出すGetImpl
    ementation機構をさらに含んでいることを特
    徴とする、請求項6に記載の分散ターゲット・アプリケ
    ーション・システムをデバッグする分散デバッガ・シス
    テムで使用するdbxエンジン。
  9. 【請求項9】 遠隔dbxエンジンが作動しているかど
    うかを判定し、作動していない場合には、dbxWra
    pperFactoryオブジェクトの機能を使用して
    dbxエンジンを作成し、遠隔ターゲット機能に接続す
    るIdentifyRemoteFunction機構
    をさらに含んでいることを特徴とする、請求項6に記載
    の分散ターゲット・アプリケーション・システムをデバ
    ッグする分散デバッガ・システムで使用するdbxエン
    ジン。
  10. 【請求項10】 dbxエンジンが互いに通信を行える
    ようにする多重dbxエンジン同期機構をさらに含んで
    いることを特徴とする、請求項6に記載の分散ターゲッ
    ト・アプリケーション・システムをデバッグする分散デ
    バッガ・システムで使用するdbxエンジン。
  11. 【請求項11】 ローカル・ホスト・コンピュータおよ
    び1つまたは複数の遠隔ホスト・コンピュータにある分
    散ターゲット・アプリケーション・システムをデバッグ
    する分散デバッガ・システムで使用するdbxエンジン
    において、 前記ターゲット・アプリケーション・システムのローカ
    ル部分と遠隔部分とを接続するが、前記ターゲット・ア
    プリケーション・システム自体の一部ではない中間イン
    タフェース定義言語(「IDL」)生成コード機構を無
    視する(すなわち、「ステップ・オーバーする」)ds
    tep機構と、 前記ターゲット・アプリケーション・システムのローカ
    ル部分と遠隔部分とを接続する中間インタフェース定義
    言語(「IDL」)生成コード機構のどれを無視すべき
    かを決定するremote surrogate co
    de test機構と、 ローカル・ホスト・コンピュータのユーザが実際には遠
    隔ホスト・コンピュータで実施されている分散ターゲッ
    ト・アプリケーション・システムの機能にブレークポイ
    ントをセットすることを可能とする遠隔ブレークポイン
    ト設定機構と、 指定されたオブジェクトのホストIDおよびプロセスI
    D(PID)を探し出すGetImplementat
    ion機構と、 遠隔dbxエンジンが作動しているかどうかを判定し、
    作動していない場合には、dbxWrapperFac
    toryオブジェクトの機能を使用してdbxエンジン
    を作成し、遠隔ターゲット機能に接続するIdenti
    fyRemoteFunction機構と、 dbxエンジンが互いに通信を行えるようにする多重d
    bxエンジン同期機構とを備えているdbxエンジン。
  12. 【請求項12】 ローカル・ホスト・コンピュータおよ
    び1つまたは複数の遠隔ホスト・コンピュータにある分
    散ターゲット・アプリケーション・システムをデバッグ
    する分散デバッガ・システムで使用する標準dbxエン
    ジンを修正するコンピュータ実行方法において、 SPARCworks dbxエンジンのものと同等な
    機能を有する前記標準dbxエンジンを設けるステップ
    と、 コンピュータの制御の下で、前記標準dbxエンジン
    に、前記ターゲット・アプリケーション・システムのロ
    ーカル部分と遠隔部分とを接続するが、前記ターゲット
    ・アプリケーション・システム自体の一部ではない中間
    インタフェース定義言語(「IDL」)生成コード機構
    を無視する(すなわち、「ステップ・オーバーする」)
    dstep機構を設けるステップとを備えているコンピ
    ュータ実行方法。
  13. 【請求項13】 コンピュータの制御の下で前記dbx
    エンジンに、前記ターゲット・アプリケーション・シス
    テムのローカル部分と遠隔部分とを接続する中間インタ
    フェース定義言語(「IDL」)生成コード機構のどれ
    を無視すべきかを決定するremote surrog
    ate code test機構を追加する付加的なス
    テップをさらに含んでいることを特徴とする、請求項1
    2に記載の分散ターゲット・アプリケーション・システ
    ムをデバッグする分散デバッガ・システムで使用する標
    準dbxエンジンを修正するコンピュータ実行方法。
  14. 【請求項14】 コンピュータの制御の下で前記dbx
    エンジンに、ローカル・ホスト・コンピュータのユーザ
    が実際には遠隔ホスト・コンピュータで実施されている
    分散ターゲット・アプリケーション・システムの機能に
    ブレークポイントをセットすることを可能とする遠隔ブ
    レークポイント設定機構を追加する付加的なステップを
    さらに含んでいることを特徴とする、請求項12に記載
    の分散ターゲット・アプリケーション・システムをデバ
    ッグする分散デバッガ・システムで使用する標準dbx
    エンジンを修正するコンピュータ実行方法。
  15. 【請求項15】 コンピュータの制御の下で前記dbx
    エンジンに、指定されたオブジェクトのホストIDおよ
    びプロセスID(PID)を探し出すGetImple
    mentation機構を追加する付加的なステップを
    さらに含んでいることを特徴とする、請求項12に記載
    の分散ターゲット・アプリケーション・システムをデバ
    ッグする分散デバッガ・システムで使用する標準dbx
    エンジンを修正するコンピュータ実行方法。
  16. 【請求項16】 コンピュータの制御の下で前記dbx
    エンジンに、遠隔dbxエンジンが作動しているかどう
    かを判定し、作動していない場合には、dbxWrap
    perFactoryオブジェクトの機能を使用してd
    bxエンジンを作成し、遠隔ターゲット機能に接続する
    IdentifyRemoteFunction機構を
    追加する付加的なステップをさらに含んでいることを特
    徴とする、請求項12に記載の分散ターゲット・アプリ
    ケーション・システムをデバッグする分散デバッガ・シ
    ステムで使用する標準dbxエンジンを修正するコンピ
    ュータ実行方法。
  17. 【請求項17】 コンピュータの制御の下で前記dbx
    エンジンに、dbxエンジンが互いに通信を行えるよう
    にする多重dbxエンジン同期機構を追加する付加的な
    ステップをさらに含んでいることを特徴とする、請求項
    12に記載の分散ターゲット・アプリケーション・シス
    テムをデバッグする分散デバッガ・システムで使用する
    標準dbxエンジンを修正するコンピュータ実行方法。
  18. 【請求項18】 ローカル・ホスト・コンピュータおよ
    び1つまたは複数の遠隔ホスト・コンピュータにある分
    散ターゲット・アプリケーション・システムをデバッグ
    する分散デバッガ・システムで使用する標準dbxエン
    ジンを修正するコンピュータ実行方法において、 SPARCworks dbxエンジンのものと同等な
    機能を有する前記標準dbxエンジンを設けるステップ
    と、 コンピュータの制御の下で、前記標準dbxエンジン
    に、前記ターゲット・アプリケーション・システムのロ
    ーカル部分と遠隔部分とを接続するが、前記ターゲット
    ・アプリケーション・システム自体の一部ではない中間
    インタフェース定義言語(「IDL」)生成コード機構
    を無視する(すなわち、「ステップ・オーバーする」)
    dstep機構を設けるステップと、 前記標準dbxエンジンに、前記ターゲット・アプリケ
    ーション・システムのローカル部分と遠隔部分とを接続
    する中間インタフェース定義言語(「IDL」)生成コ
    ード機構のどれを無視すべきかを決定するremote
    surrogate code test機構を設け
    るステップと、 前記標準dbxエンジンに、ローカル・ホスト・コンピ
    ュータのユーザが実際には遠隔ホスト・コンピュータで
    実施されている分散ターゲット・アプリケーション・シ
    ステムの機能にブレークポイントをセットすることを可
    能とする遠隔ブレークポイント設定機構を設けるステッ
    プと、 前記標準dbxエンジンに、指定されたオブジェクトの
    ホストIDおよびプロセスID(PID)を探し出すG
    etImplementation機構を設けるステッ
    プと、 前記標準dbxエンジンに、遠隔dbxエンジンが作動
    しているかどうかを判定し、作動していない場合には、
    dbxWrapperFactoryオブジェクトの機
    能を使用してdbxエンジンを作成し、遠隔ターゲット
    機能に接続するIdentifyRemoteFunc
    tion機構を設けるステップと、 前記標準dbxエンジンに、dbxエンジンが互いに通
    信を行えるようにする多重dbxエンジン同期機構を設
    けるステップとを備えているコンピュータ実行方法。
  19. 【請求項19】 ローカル・ホスト・コンピュータおよ
    び1つまたは複数の遠隔ホスト・コンピュータにある分
    散ターゲット・アプリケーション・システムをデバッグ
    する分散デバッガ・システムを作成するコンピュータ実
    行方法において、 ローカル・ホスト・コンピュータに、デバッガGUIお
    よび1つまたは複数のデバッガ・エンジン(以下、「d
    bxエンジン」と呼ぶ)であって、前記デバッガGUI
    が前記dbxエンジンと通信し、かつ前記デバッガ・シ
    ステムのユーザと通信するためのインタフェース機構を
    備えているデバッガGUIおよび1つまたは複数のdb
    xエンジンを設けるステップと、 メッセージを互いに送受信するために前記dbxエンジ
    ンと前記デバッガGUIが使用する通信機構を設けるス
    テップと、 前記の1つまたは複数のdbxエンジンの1つであり、
    前記ローカル・ホスト・コンピュータから離隔したホス
    ト・コンピュータにあり、前記通信機構によって前記デ
    バッガGUIに接続されている遠隔dbxエンジンを設
    けるステップとを備えており、前記遠隔dbxエンジン
    が前記デバッガGUIからの指示の下で、前記遠隔ホス
    ト・コンピュータにある前記分散ターゲット・アプリケ
    ーション・システムの部分に接続して、前記遠隔ホスト
    ・コンピュータにある前記分散ターゲット・アプリケー
    ション・システムの前記部分をデバッグする分散デバッ
    ガ・システムを作成するコンピュータ実行方法。
  20. 【請求項20】 ローカル・ホスト・コンピュータおよ
    び1つまたは複数の遠隔ホスト・コンピュータにある分
    散ターゲット・アプリケーション・システムをデバッグ
    する分散デバッガ・システムを作成するコンピュータ実
    行方法において、 デバッガGUIおよび1つまたは複数のデバッガ・エン
    ジン(以下、「dbxエンジン」と呼ぶ)であって、前
    記デバッガGUIが前記dbxエンジンと通信し、かつ
    前記デバッガ・システムのユーザと通信するためのイン
    タフェース機構を備えており、前記dbxエンジンが前
    記ローカルおよび遠隔のコンピュータにあることができ
    るデバッガGUIおよび1つまたは複数のdbxエンジ
    ンを設けるステップと、 メッセージを互いに送受信するために前記dbxエンジ
    ンと前記デバッガGUIが使用する通信機構を設けるス
    テップと、 遠隔ホスト・コンピュータにある前記ターゲット・アプ
    リケーション・システムの一部をデバッグする際に使用
    される新しいdbxエンジンを前記遠隔ホスト・コンピ
    ュータに作成するために前記デバッガGUIが使用する
    dbxWrapperFactory機構を設けるステ
    ップとを備えている分散デバッガ・システムを作成する
    コンピュータ実行方法。
  21. 【請求項21】前記ターゲット・アプリケーション・シ
    ステムのローカル部分と遠隔部分とを接続するが、前記
    ターゲット・アプリケーション・システム自体の一部で
    はない中間インタフェース定義言語(「IDL」)生成
    コード機構を無視する(すなわち、「ステップ・オーバ
    ーする」)dstep機構を設けるステップをさらに含
    んでいることを特徴とする、請求項20に記載の分散タ
    ーゲット・アプリケーション・システムをデバッグする
    分散デバッガ・システムを作成するコンピュータ実行方
    法。
  22. 【請求項22】 前記dbxエンジンの1つが前記db
    xエンジンの他のものと、これらのdbxエンジンが異
    なるホスト・コンピュータにあるかどうかにかかわりな
    く、通信することを可能とする第1の通信機構を設ける
    ステップをさらに含んでいることを特徴とする、請求項
    20に記載の分散ターゲット・アプリケーション・シス
    テムをデバッグする分散デバッガ・システムを作成する
    コンピュータ実行方法。
  23. 【請求項23】 前記デバッガGUIが前記dbxエン
    ジンの1つに、前記dbxエンジンがどのホスト・コン
    ピュータにあるかにかかわりなく、フォーカスすること
    を可能とする第2の通信機構を設けるステップをさらに
    含んでいることを特徴とする、請求項20に記載の分散
    ターゲット・アプリケーション・システムをデバッグす
    る分散デバッガ・システムを作成するコンピュータ実行
    方法。
  24. 【請求項24】 前記ユーザが、前記dbxエンジンが
    どのホスト・コンピュータにあるかにかかわりなく、す
    べての活動dbxエンジンのリストを前記デバッガGU
    Iから取得できるようにする第3の通信機構を設けるス
    テップをさらに含んでいることを特徴とする、請求項2
    0に記載の分散ターゲット・アプリケーション・システ
    ムをデバッグする分散デバッガ・システムを作成するコ
    ンピュータ実行方法。
  25. 【請求項25】 プロセスを作成し、分散コンピューテ
    ィング環境において前記プロセスと通信する分散コンピ
    ューティング環境におけるコンピュータ実行方法におい
    て、 a.クライアント・プロセスが要求されているサービス
    が遠隔であるかどうかを判定するステップと、 b.前記サービスが遠隔であると前記クライアント・プ
    ロセスが判定した場合に、前記サービスがおかれている
    遠隔ロケーションを決定するステップと、 c.前記クライアント・プロセスが前記遠隔ロケーショ
    ンにおいて前記サービスを有しているサーバ・プロセス
    にメッセージを送って、前記サーバに前記クライアント
    ・プロセスとの通信を確立するよう指示するステップ
    と、 d.前記サーバ・プロセスが前記クライアント・プロセ
    スと通信するインタフェース・プロセスを作成するステ
    ップと、 e.前記インタフェース・プロセスが前記サーバ・プロ
    セスに接続するまで、前記サーバ・プロセスが操作を中
    断するステップと、 f.前記インタフェース・プロセスが前記サーバ・プロ
    セスへの接続を試みるステップと、 g.前記インタフェース・プロセスが前記サーバ・プロ
    セスに接続できない場合に、前記インタフェース・プロ
    セスが前記クライアント・プロセスにアラートし、そう
    でない場合には、前記クライアント・プロセスが前記サ
    ーバ・プロセスに接続して、前記接続が成功した旨を前
    記クライアント・プロセスにアラートするステップと、 h.前記クライアント・プロセスが前記インタフェース
    ・プロセスを介して前記サーバ・プロセスと通信するス
    テップと を備えている分散コンピューティング環境におけるコン
    ピュータ実行方法。
JP8073240A 1995-03-03 1996-03-04 分散アプリケーション・プログラムをデバッグする分散デバッグのためのシステムおよび方法 Pending JPH09120366A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/399120 1995-03-03
US08/399,120 US5819093A (en) 1995-03-03 1995-03-03 System and method for a distributed debugger for debugging distributed application programs

Publications (1)

Publication Number Publication Date
JPH09120366A true JPH09120366A (ja) 1997-05-06

Family

ID=23578227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8073240A Pending JPH09120366A (ja) 1995-03-03 1996-03-04 分散アプリケーション・プログラムをデバッグする分散デバッグのためのシステムおよび方法

Country Status (5)

Country Link
US (2) US5819093A (ja)
EP (1) EP0730227B1 (ja)
JP (1) JPH09120366A (ja)
CA (1) CA2170724A1 (ja)
DE (1) DE69621494T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051871A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd リモートデバッグ装置
US6868454B1 (en) 1999-05-06 2005-03-15 Fujitsu Limited Distributed-object development system and computer-readable recording medium recorded with program for making computer execute distributed-object development
US6961926B2 (en) 1999-12-15 2005-11-01 Nec Corporation System and method for distributed debugging and recording medium on which control programs are recorded
JP2006268858A (ja) * 2005-03-23 2006-10-05 Microsoft Corp アプリケーションホスト環境においてユニットテストを実行する方法および装置
US11301364B2 (en) 2016-10-25 2022-04-12 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting

Families Citing this family (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819093A (en) * 1995-03-03 1998-10-06 Sun Microsystems, Inc. System and method for a distributed debugger for debugging distributed application programs
EP0830611A4 (en) * 1995-06-02 2007-05-09 Cisco Systems Inc TELECONTROL OF COMPUTER PROGRAMS
US6950991B2 (en) 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US5956479A (en) * 1995-11-13 1999-09-21 Object Technology Licensing Corporation Demand based generation of symbolic information
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US7555529B2 (en) 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US6718550B1 (en) 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
US6513154B1 (en) 1996-10-21 2003-01-28 John R. Porterfield System and method for testing of computer programs in programming effort
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US5881219A (en) * 1996-12-26 1999-03-09 International Business Machines Corporation Random reliability engine for testing distributed environments
US6353923B1 (en) * 1997-03-12 2002-03-05 Microsoft Corporation Active debugging environment for debugging mixed-language scripting code
US6275868B1 (en) * 1997-03-12 2001-08-14 Microsoft Corporation Script Engine interface for multiple languages
US6061517A (en) 1997-03-31 2000-05-09 International Business Machines Corporation Multi-tier debugging
US5892941A (en) * 1997-04-29 1999-04-06 Microsoft Corporation Multiple user software debugging system
CA2205096C (en) * 1997-05-09 2001-10-09 Ibm Canada Limited-Ibm Canada Limitee A system for remote debugging of client/server applications
US7082553B1 (en) * 1997-08-25 2006-07-25 At&T Corp. Method and system for providing reliability and availability in a distributed component object model (DCOM) object oriented system
US6219695B1 (en) * 1997-09-16 2001-04-17 Texas Instruments Incorporated Circuits, systems, and methods for communicating computer video output to a remote location
US6002871A (en) * 1997-10-27 1999-12-14 Unisys Corporation Multi-user application program testing tool
KR100249797B1 (ko) * 1997-12-09 2000-03-15 정선종 알피씨 기반 분산처리 프로그램의 통신 이벤트/메시지 추적 방법
US6510460B1 (en) 1997-12-18 2003-01-21 Sun Microsystems, Inc. Method and apparatus for enforcing locking invariants in multi-threaded systems
US6249803B1 (en) * 1997-12-18 2001-06-19 Sun Microsystems, Inc. Method and apparatus for executing code during method invocation
US6516354B2 (en) 1997-12-18 2003-02-04 Sun Microsystems, Inc. Method and apparatus for efficient representation of variable length identifiers in a distributed object system
US6438616B1 (en) 1997-12-18 2002-08-20 Sun Microsystems, Inc. Method and apparatus for fast, local corba object references
US6405264B1 (en) 1997-12-18 2002-06-11 Sun Microsystems, Inc. Marshaling and unmarshaling framework for supporting filters in a distributed object system
WO1999034290A1 (en) * 1997-12-30 1999-07-08 Alcatel Usa Sourcing, L.P. Debugging system
US6249907B1 (en) 1998-03-24 2001-06-19 International Business Machines Corporation Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6119247A (en) * 1998-06-22 2000-09-12 International Business Machines Corporation Remote debugging of internet applications
US6202175B1 (en) * 1998-08-05 2001-03-13 International Business Machines Corporation Debuggin client server programs from third party workstations
US6219804B1 (en) * 1998-08-05 2001-04-17 International Business Machines Corporation Debugging client server programs from third party workstations
US6223307B1 (en) * 1998-08-05 2001-04-24 International Business Machines Corporation Debugging client server programs from third party workstations
US6754891B1 (en) 1998-08-31 2004-06-22 Red Hat, Inc. Debugger system using tracepoints for computer software
US6480818B1 (en) * 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6343371B1 (en) * 1999-01-14 2002-01-29 Compaq Computer Corporation System and method for statically detecting potential race conditions in multi-threaded computer programs
US6374399B1 (en) * 1999-04-21 2002-04-16 Advanced Micro Devices, Inc. Apparatus and method for providing list and read list capability for a host computer system
US6412106B1 (en) * 1999-06-16 2002-06-25 Intervoice Limited Partnership Graphical system and method for debugging computer programs
US6356933B2 (en) * 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
US6546547B1 (en) * 1999-09-22 2003-04-08 Cisco Technology, Inc. Method and system for an automated net booting tool
US9916134B2 (en) * 1999-10-05 2018-03-13 Dietrich Charisius Methods and systems for accessing distributed computing components through the internet
AU1405100A (en) * 1999-12-15 2001-06-25 Sun Microsystems, Inc. Open debugging environment
US7409318B2 (en) * 2000-02-14 2008-08-05 Nextnine Ltd. Support network
US7076400B2 (en) * 2000-02-14 2006-07-11 Nextnine Ltd. Support network
WO2001059971A2 (en) * 2000-02-14 2001-08-16 Nextnine Ltd. Embedded device monitoring agent
JP2001356934A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> ハードウェアシステムとインタラクトするソフトウェアシステムの構成方法およびデジタルシステム
AU2001255808A1 (en) * 2000-03-15 2001-09-24 Arc Cores, Inc. Method and apparatus for debugging programs in a distributed environment
US6742177B1 (en) * 2000-03-31 2004-05-25 International Business Machines Corporation Method and system for secure debugging of a secure software module
US20020032768A1 (en) * 2000-04-10 2002-03-14 Voskuil Erik K. Method and system for configuring remotely located applications
US7010586B1 (en) 2000-04-21 2006-03-07 Sun Microsystems, Inc. System and method for event subscriptions for CORBA gateway
US7478403B1 (en) 2000-04-21 2009-01-13 Sun Microsystems, Inc. Secure access to managed network objects using a configurable platform-independent gateway providing individual object-level access control
US6839748B1 (en) 2000-04-21 2005-01-04 Sun Microsystems, Inc. Synchronous task scheduler for corba gateway
US6813770B1 (en) 2000-04-21 2004-11-02 Sun Microsystems, Inc. Abstract syntax notation to interface definition language converter framework for network management
US6950935B1 (en) 2000-04-21 2005-09-27 Sun Microsystems, Inc. Pluggable authentication modules for telecommunications management network
US7779390B1 (en) * 2000-04-21 2010-08-17 Oracle America, Inc. Thread-safe remote debugger
US7228346B1 (en) 2000-04-21 2007-06-05 Sun Microsystems, Inc. IDL event and request formatting for corba gateway
US7206843B1 (en) 2000-04-21 2007-04-17 Sun Microsystems, Inc. Thread-safe portable management interface
US7783720B1 (en) 2000-04-21 2010-08-24 Oracle America, Inc. CORBA metadata gateway to telecommunications management network
US6915324B1 (en) 2000-04-21 2005-07-05 Sun Microsystems, Inc. Generic and dynamic mapping of abstract syntax notation (ASN1) to and from interface definition language for network management
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6857085B1 (en) * 2000-05-15 2005-02-15 Microsoft Corporation Method and system for handling an unexpected exception generated by an application
EP1161048A3 (en) * 2000-05-19 2005-02-16 Attachmate Corporation System and method for secure duplex browser communication over disparate networks
AU2001268194A1 (en) * 2000-06-05 2001-12-17 Altoweb Systems, Inc. System and method for accessing, organizing, and presenting data
US6915509B1 (en) * 2000-06-28 2005-07-05 Microsoft Corporation Method and system for debugging a program
US6671875B1 (en) 2000-09-21 2003-12-30 International Business Machines Corporation Manipulation of an object-oriented user interface process to provide rollback of object-oriented scripts from a procedural business logic debugger
US6604209B1 (en) * 2000-09-29 2003-08-05 Sun Microsystems, Inc. Distributed component testing in an enterprise computer system
US6968540B2 (en) * 2000-10-25 2005-11-22 Opnet Technologies Inc. Software instrumentation method and apparatus
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US7562350B2 (en) * 2000-12-15 2009-07-14 Ricoh Company, Ltd. Processing system and method using recomposable software
KR20020049789A (ko) * 2000-12-20 2002-06-26 오길록 파워피시 마이크로프로세서에서 실행되는 병행 프로그램디버깅을 위한 스태핑 제어방법
WO2002069173A1 (en) * 2001-02-23 2002-09-06 Altoweb Systems, Inc. System and method to transfer an application to a destination server module in a predetermined storage format
US20020147860A1 (en) * 2001-04-05 2002-10-10 International Business Machines Corporation Method, apparatus, and program for generating Java full thread dumps from a remote JVM
AU2002329611A1 (en) * 2001-07-20 2003-03-03 Altaworks Corporation System and method for adaptive threshold determination for performance metrics
US7302675B2 (en) * 2001-08-14 2007-11-27 National Instruments Corporation System and method for analyzing a graphical program using debugging graphical programs
US7219034B2 (en) 2001-09-13 2007-05-15 Opnet Technologies, Inc. System and methods for display of time-series data distribution
US6836857B2 (en) * 2001-10-18 2004-12-28 Sun Microsystems, Inc. Mechanism for debugging a computer process
US6928449B2 (en) 2001-10-18 2005-08-09 Sun Microsystems, Inc. Mechanism for facilitating backtracking
US7257805B2 (en) * 2001-11-09 2007-08-14 International Business Machines Corporation Restoring debugging breakpoints subsequent to program code modifications
US6825846B2 (en) * 2001-12-10 2004-11-30 American Megatrends, Inc. Systems and methods for capturing screen displays from a host computing system for display at a remote terminal
US7200839B2 (en) * 2001-12-11 2007-04-03 International Business Machines Corporation Debugging transactions across multiple processors
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US20030204644A1 (en) * 2002-04-29 2003-10-30 International Business Machines Corporation System and method for developing, deploying, and debugging software agents
US7055140B2 (en) * 2002-05-01 2006-05-30 Seiko Epson Corporation Software breakpoints implementation via specially named function
US7228175B2 (en) 2002-05-15 2007-06-05 Cardiac Pacemakers, Inc. Cardiac rhythm management systems and methods using acoustic contractility indicator
US20030217353A1 (en) * 2002-05-15 2003-11-20 Bebout Don W. Method and system for an adaptable user interface in a debugger
US7451206B2 (en) * 2002-05-20 2008-11-11 Siemens Communications, Inc. Send of software tracer messages via IP from several sources to be stored by a remote server
US7165240B2 (en) * 2002-06-20 2007-01-16 International Business Machines Corporation Topological best match naming convention apparatus and method for use in testing graphical user interfaces
CA2393196C (en) * 2002-07-11 2005-10-04 Corel Corporation System and method for preflighting documents
US7379978B2 (en) * 2002-07-19 2008-05-27 Fiserv Incorporated Electronic item management and archival system and method of operating the same
US7260624B2 (en) * 2002-09-20 2007-08-21 American Megatrends, Inc. Systems and methods for establishing interaction between a local computer and a remote computer
US7415698B2 (en) * 2002-12-09 2008-08-19 International Business Machines Corporation Testing and debugging framework for application builders
TW588238B (en) * 2003-02-13 2004-05-21 Micro Star Int Co Ltd Program debugging method
US7418141B2 (en) * 2003-03-31 2008-08-26 American Megatrends, Inc. Method, apparatus, and computer-readable medium for identifying character coordinates
US7412625B2 (en) * 2003-05-27 2008-08-12 American Megatrends, Inc. Method and system for remote software debugging
US7546584B2 (en) * 2003-06-16 2009-06-09 American Megatrends, Inc. Method and system for remote software testing
US7162664B2 (en) * 2003-06-20 2007-01-09 Microsoft Corporation Debugging breakpoints on pluggable components
US7543277B1 (en) 2003-06-27 2009-06-02 American Megatrends, Inc. Method and system for remote software debugging
US7383539B2 (en) 2003-09-18 2008-06-03 International Business Machines Corporation Managing breakpoints in a multi-threaded environment
US7299456B2 (en) * 2003-09-18 2007-11-20 International Business Machines Corporation Run into function
US8090564B1 (en) 2003-11-03 2012-01-03 Synopsys, Inc. Automatic generation of transaction level bus simulation instructions from bus protocol
US7827258B1 (en) * 2004-03-01 2010-11-02 American Megatrends, Inc. Method, system, and apparatus for communicating with a computer management device
US7222264B2 (en) * 2004-03-19 2007-05-22 Intel Corporation Debug system and method having simultaneous breakpoint setting
US7519749B1 (en) * 2004-08-25 2009-04-14 American Megatrends, Inc. Redirecting input and output for multiple computers
US7882492B2 (en) 2004-09-17 2011-02-01 Oracle America, Inc. Intelligent computer program debugger, and system and method for implementing the same
US7457793B2 (en) * 2004-10-14 2008-11-25 Sap Ag Investigating execution of a customized transaction process in a computer application
US7457794B2 (en) * 2004-10-14 2008-11-25 Sap Ag Searching for customized processing rules for a computer application
US7716031B2 (en) * 2005-02-25 2010-05-11 Coware, Inc. Interface converter for unified view of multiple computer system simulations
US7742905B2 (en) 2005-02-25 2010-06-22 Coware, Inc. Method and system for dynamically adjusting speed versus accuracy of computer platform simulation
US8015549B2 (en) * 2005-05-10 2011-09-06 Novell, Inc. Techniques for monitoring application calls
US20060265387A1 (en) * 2005-05-20 2006-11-23 International Business Machines Corporation Method and apparatus for loading artifacts
US7730246B2 (en) * 2005-06-30 2010-06-01 Intel Corporation Opportunistic transmission of software state information within a link based computing system
US7844854B2 (en) * 2005-06-30 2010-11-30 Intel Corporation Opportunistic transmission of computing system state information within a link based computing system
WO2007028227A1 (en) * 2005-09-09 2007-03-15 Ibm Canada Limited - Ibm Canada Limitee Integrating different programming language debug tools for observing thread execution
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment
US8010843B2 (en) 2005-12-14 2011-08-30 American Megatrends, Inc. System and method for debugging a target computer using SMBus
US20070143795A1 (en) * 2005-12-20 2007-06-21 Duong-Han Tran Application trace for distributed systems environment
US7849445B2 (en) * 2005-12-20 2010-12-07 Sap Ag Remote user interface for external connections
US20070168997A1 (en) * 2005-12-20 2007-07-19 Duong-Han Tran Debugging of remote application software on a local computer
EP1818812B1 (en) * 2006-01-25 2016-01-06 Brandt Technologies Limited System and method for effecting simultaneous control of remote computers
US7899661B2 (en) 2006-02-16 2011-03-01 Synopsys, Inc. Run-time switching for simulation with dynamic run-time accuracy adjustment
US8543367B1 (en) 2006-02-16 2013-09-24 Synopsys, Inc. Simulation with dynamic run-time accuracy adjustment
US7827537B2 (en) * 2006-05-26 2010-11-02 Oracle America, Inc Searching computer programs that use different semantics
US7653881B2 (en) 2006-06-19 2010-01-26 Microsoft Corporation Failure handling and debugging with causalities
US7664997B2 (en) * 2006-06-19 2010-02-16 Microsoft Corporation Failure handling and debugging with causalities
US8019584B2 (en) * 2006-07-31 2011-09-13 Nec Laboratories America, Inc. Method and system for modeling likely invariants in distributed systems
US9231858B1 (en) 2006-08-11 2016-01-05 Dynatrace Software Gmbh Completeness detection of monitored globally distributed synchronous and asynchronous transactions
US7783799B1 (en) 2006-08-31 2010-08-24 American Megatrends, Inc. Remotely controllable switch and testing methods using same
US7761559B2 (en) * 2006-10-13 2010-07-20 International Business Machines Corporation System and method of remotely managing and loading artifacts
US7720931B2 (en) 2006-10-13 2010-05-18 International Business Machines Corporation System and method of remotely managing and loading artifacts
US8683444B1 (en) 2006-12-11 2014-03-25 Synopsys, Inc. System and method of debugging multi-threaded processes
US20080209405A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation Distributed debugging for a visual programming language
CN101266570B (zh) * 2007-03-15 2011-05-11 中兴通讯股份有限公司 软件系统的测试方法及装置
US8239832B2 (en) * 2007-05-25 2012-08-07 Microsoft Corporation In-process debugging using external debugging infrastructure
US7925487B2 (en) 2007-06-29 2011-04-12 Microsoft Corporation Replaying distributed systems
US8006232B1 (en) * 2007-07-30 2011-08-23 Nvidia Corporation Serialization of function calls to a graphics API for debugging a remote device
US8001531B1 (en) * 2007-07-30 2011-08-16 Nvidia Corporation Translation of a shader assembly language binary for debugging a graphics application running on a remote device
US8832665B2 (en) * 2007-08-14 2014-09-09 Dynatrace Software Gmbh Method and system for tracing individual transactions at the granularity level of method calls throughout distributed heterogeneous applications without source code modifications including the detection of outgoing requests
US20090064092A1 (en) * 2007-08-29 2009-03-05 Microsoft Corporation Visual programming language optimization
US20090063623A1 (en) * 2007-08-31 2009-03-05 International Business Machines Corporation Determining connection information to use to access an artifact from an application on a remote server
US8543683B2 (en) * 2007-09-26 2013-09-24 Microsoft Corporation Remote monitoring of local behavior of network applications
US8060866B2 (en) * 2007-10-19 2011-11-15 GE Intelligent Platforms, Inc Systems and methods for debugging multiple workflow instances
US8527961B2 (en) * 2007-11-14 2013-09-03 Oracle America, Inc. Expression-level debugging without format changes
US8468498B2 (en) * 2008-03-04 2013-06-18 Apple Inc. Build system redirect
US7933759B2 (en) * 2008-03-28 2011-04-26 Microsoft Corporation Predicate checking for distributed systems
US9405658B1 (en) * 2008-05-27 2016-08-02 Oracle America, Inc. Method and apparatus for debugging applications in development environments
US8149431B2 (en) 2008-11-07 2012-04-03 Citrix Systems, Inc. Systems and methods for managing printer settings in a networked computing environment
US7984332B2 (en) * 2008-11-17 2011-07-19 Microsoft Corporation Distributed system checker
KR101060181B1 (ko) * 2009-08-03 2011-08-29 강원대학교산학협력단 원격 디버깅을 위한 웹 기반 소프트웨어 디버깅 장치 및 그 방법
US8321454B2 (en) * 2009-09-14 2012-11-27 Myspace Llc Double map reduce distributed computing framework
US8171346B2 (en) * 2010-03-10 2012-05-01 Microsoft Corporation Client session based debugging
US8972953B2 (en) * 2010-04-16 2015-03-03 Salesforce.Com, Inc. Methods and systems for internally debugging code in an on-demand service environment
US9116778B2 (en) 2010-04-29 2015-08-25 Microsoft Technology Licensing, Llc Remotable project
US20110321017A1 (en) * 2010-06-29 2011-12-29 International Business Machines Corporation Computer code debugging method and apparatus providing exception breakpoints
US8904356B2 (en) 2010-10-20 2014-12-02 International Business Machines Corporation Collaborative software debugging in a distributed system with multi-member variable expansion
US8671393B2 (en) 2010-10-21 2014-03-11 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific dynamic breakpoints
US8972945B2 (en) 2010-10-21 2015-03-03 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific access control
US9009673B2 (en) 2010-10-21 2015-04-14 International Business Machines Corporation Collaborative software debugging in a distributed system with collaborative step over operation
US9411709B2 (en) 2010-11-10 2016-08-09 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific event alerts
US8990775B2 (en) 2010-11-10 2015-03-24 International Business Machines Corporation Collaborative software debugging in a distributed system with dynamically displayed chat sessions
US8850397B2 (en) * 2010-11-10 2014-09-30 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific display of local variables
US8806438B2 (en) 2011-04-20 2014-08-12 International Business Machines Corporation Collaborative software debugging in a distributed system with variable-specific messages
US8739127B2 (en) 2011-04-20 2014-05-27 International Business Machines Corporation Collaborative software debugging in a distributed system with symbol locking
US8656360B2 (en) 2011-04-20 2014-02-18 International Business Machines Corporation Collaborative software debugging in a distributed system with execution resumption on consensus
US9274919B2 (en) 2011-04-29 2016-03-01 Dynatrace Software Gmbh Transaction tracing mechanism of distributed heterogenous transactions having instrumented byte code with constant memory consumption and independent of instrumented method call depth
US8972955B2 (en) * 2011-05-27 2015-03-03 Microsoft Technology Licensing Llc Reducing network trips for remote expression evaluation
US8683267B2 (en) 2011-06-07 2014-03-25 International Business Machines Corporation Virtual debugging sessions
US8756577B2 (en) 2011-06-28 2014-06-17 International Business Machines Corporation Collaborative software debugging in a distributed system with private debug sessions
US8600915B2 (en) 2011-12-19 2013-12-03 Go Daddy Operating Company, LLC Systems for monitoring computer resources
US8719196B2 (en) 2011-12-19 2014-05-06 Go Daddy Operating Company, LLC Methods for monitoring computer resources using a first and second matrix, and a feature relationship tree
US9251039B2 (en) 2012-02-17 2016-02-02 Microsoft Technology Licensing, Llc Remote debugging as a service
US8832664B2 (en) * 2012-07-20 2014-09-09 Intel Mobile Communications GmbH Method and apparatus for interconnect tracing and monitoring in a system on chip
CN103973741B (zh) 2013-01-31 2018-02-09 国际商业机器公司 用于在云系统中进行远程调试的方法和装置
US9122798B2 (en) 2013-03-07 2015-09-01 Oracle International Corporation Debugger with method restart capability
US10664384B2 (en) * 2013-03-15 2020-05-26 Microsoft Technology Licensing, Llc Javascript debugging using just my code
US9659012B2 (en) * 2013-05-17 2017-05-23 Oracle International Corporation Debugging framework for distributed ETL process with multi-language support
US9740593B2 (en) * 2015-01-08 2017-08-22 International Business Machines Corporation Comparative program execution through control of two or more debug sessions to automatically determine execution differences
US9575869B2 (en) 2015-02-25 2017-02-21 Red Hat, Inc. Service implementation based debugger for service oriented architecture projects
CN106407061B (zh) * 2015-07-27 2020-06-16 中兴通讯股份有限公司 一种北向接口测试装置和北向接口的测试方法
US9870207B2 (en) 2015-12-22 2018-01-16 Sap Se Software development using re-usable software components
US9798526B2 (en) * 2015-12-22 2017-10-24 Sap Se Software development using multi-domain decision management
US10120779B1 (en) * 2016-11-08 2018-11-06 Amazon Technologies, Inc. Debugging of hosted computer programs
US10223236B2 (en) 2017-02-03 2019-03-05 International Business Machines Corporation Dynamic crash detection and debugging assistance
US10579501B2 (en) 2018-04-04 2020-03-03 International Business Machines Corporation Testing and reproduction of concurrency issues
US10691581B1 (en) 2019-08-16 2020-06-23 Sas Institute Inc. Distributed software debugging system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589068A (en) * 1983-10-03 1986-05-13 Digital Equipment Corporation Segmented debugger
JPH07113912B2 (ja) * 1991-05-31 1995-12-06 富士ゼロックス株式会社 分散型情報処理システムのデバッグ方式
US5452437A (en) * 1991-11-18 1995-09-19 Motorola, Inc. Methods of debugging multiprocessor system
US5325530A (en) * 1993-01-29 1994-06-28 International Business Machines Corporation Controller for sequential programming tools executed in a parallel computing environment
US5490134A (en) * 1993-06-29 1996-02-06 Southern California Edison Company Versatile communications controller
US5781778A (en) * 1994-09-29 1998-07-14 International Business Machines Corporation Method and system for debugging parallel and distributed applications
US5802371A (en) * 1994-09-29 1998-09-01 International Business Machines Corporation Method of walking-up a call stack for a client/server program that uses remote procedure call
US5630049A (en) * 1994-11-30 1997-05-13 Digital Equipment Corporation Method and apparatus for testing software on a computer network
US5819093A (en) * 1995-03-03 1998-10-06 Sun Microsystems, Inc. System and method for a distributed debugger for debugging distributed application programs
US5787245A (en) * 1995-11-13 1998-07-28 Object Technology Licensing Corporation Portable debugging service utilizing a client debugger object and a server debugger object
US5815653A (en) * 1995-11-13 1998-09-29 You; Lawrence L. Debugging system with portable debug environment-independent client and non-portable platform-specific server
US5933639A (en) * 1996-05-17 1999-08-03 International Business Machines Corporation System and method for debugging distributed programs

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868454B1 (en) 1999-05-06 2005-03-15 Fujitsu Limited Distributed-object development system and computer-readable recording medium recorded with program for making computer execute distributed-object development
JP2001051871A (ja) * 1999-08-09 2001-02-23 Ricoh Co Ltd リモートデバッグ装置
US6961926B2 (en) 1999-12-15 2005-11-01 Nec Corporation System and method for distributed debugging and recording medium on which control programs are recorded
JP2006268858A (ja) * 2005-03-23 2006-10-05 Microsoft Corp アプリケーションホスト環境においてユニットテストを実行する方法および装置
US11301364B2 (en) 2016-10-25 2022-04-12 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting

Also Published As

Publication number Publication date
EP0730227A1 (en) 1996-09-04
US6042614A (en) 2000-03-28
EP0730227B1 (en) 2002-06-05
DE69621494D1 (de) 2002-07-11
US5819093A (en) 1998-10-06
CA2170724A1 (en) 1996-09-04
DE69621494T2 (de) 2003-02-13

Similar Documents

Publication Publication Date Title
JPH09120366A (ja) 分散アプリケーション・プログラムをデバッグする分散デバッグのためのシステムおよび方法
US6011920A (en) Method and apparatus for debugging applications on a personality neutral debugger
Shapiro Structure and encapsulation in distributed systems: The proxy principle
US5737607A (en) Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats
US6826746B2 (en) Debugger probe for object oriented programming
US5339422A (en) System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
US5794046A (en) Method and system for debugging parallel and distributed applications
US5630049A (en) Method and apparatus for testing software on a computer network
US6915509B1 (en) Method and system for debugging a program
US7203926B2 (en) Active debugging environment for applications containing compiled and interpreted programming language code
EP1508858A2 (en) A method and system for executing software on non-native platforms
US20030233634A1 (en) Open debugging environment
US20080066059A1 (en) Computer readable storage medium for multi-language debugging
JPH0827769B2 (ja) 通信インターフェースの生成システム及びその方法
US20090125888A1 (en) Expression-level debugging without format changes
US6799320B1 (en) Providing binding options for component interfaces
US7200839B2 (en) Debugging transactions across multiple processors
Cargill Pi: A case study in object-oriented programming
Bacon et al. Distributed computing with RPC: The Cambridge approach
KR20010038205A (ko) 내장형 실시간 소프트웨어의 원격 디버깅을 위한 디버그 에이전트 장치 및 그 운용 방법
Alkassar et al. Proving the correctness of client/server software
Duarte et al. SUPPORTING ON–LINE DISTRIBUTED MONITORING AND DEBUGGING
Montague et al. UCSC Java Network Computer Procedures
McDonald Annotation and Diagnosis Using The Standard C Library
JPH08147189A (ja) 並列計算機のオペレーティングシステムのデバッグ方法