(57)【要約】【課題】本発明は、目標マシンにおいて実行されるデバッグ用ソフトウエアの方法及び装置に関する。【解決手段】追跡点位置及びホストマシンに返却される変数を形成するデバッグ設定スクリプトは、ホストマシンにおいて作り出される。この方法は、追跡点位置及び変数を目標マシンに送信し、目標マシンにおいては、そこで実行されるスタブ・プログラムが、追跡点にトラップを挿入することにより目標マシンのソフトウエア・プログラムの変更を達成する。追跡点が当てられた場合、データは、変数値を確認するためにスタブ・プログラムを使用して収集され、取得された変数データは、目標マシンの目標マシン・バッファ・メモリに記憶される。収集されたデータは、ホストマシンの要請により、又は、所定時刻の終わりに、又は、パス・カウントに到達した時、又は、目標マシンが設定した時刻に、目標システムの作動を停止又は中断することなく、ホストマシンに送信される。【選択図】図３
2006344249.tif 000002
【特許請求の範囲】
【請求項１】
目標マシンにおいて実行されるソフトウエアをデバッグする方法であって、
ホストマシンを使用して、前記ソフトウエアにおける追跡点位置及び前記ソフトウエアによって取得される変数を、記憶装置に記憶された記号表を使用して数式の形で決定する段階と、
前記ホストマシンにおける回路が、通信リンクを介して、前記追跡点位置及び変数をデバッグ・スクリプトの形で前記目標マシンに送信する段階であって、前記デバッグ・スクリプトは、前記目標マシンにおけるスタブ・プログラムにより実行される、送信する段階と、
前記目標マシンにおける回路が、前記スタブ・プログラムを実行することにより数式の値を求め、その数式の値に基づいて、前記ソフトウエアにおける前記追跡点位置にトラップを挿入する段階と、
前記目標マシンにおける回路が、前記ソフトウエアの実行の間にトラップに到達したと判断した場合、前記スタブ・プログラムを使用して、前記トラップにおける前記ホストマシンにより決定された前記変数を表すデータを収集する段階であって、その収集されたデータは前記目標マシンのバッファに記憶される、前記変数を表すデータを収集する段階と、
前記ソフトウエアを実行中である前記目標マシンの作動を停止することなく、前記通信リンクを介して、前記目標マシンにおける回路が、前記目標マシンの前記バッファに記憶されたデータをオンラインで前記ホストマシンに送信する段階と、
を含むことを特徴とする方法。
【請求項２】
前記目標マシンが前記スタブ・プログラムを使用して、各追跡点に対して、データが収集される各変数の位置を決定する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記識別されたデータを収集してそれを記憶バッファに配送するために、前記目標マシンにおいて前記スタブ・プログラムを使用する段階を更に含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記ホストマシンにおいて前記追跡点を自動的に選択する段階と、 前記ホストマシンにおいて前記変数を自動的に識別する段階と、を更に含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記目標マシンが前記スタブ・プログラムを使用して、前記追跡点において前記目標マシンの前記ソフトウエアにトラップを達成する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記目標マシン及びホストマシンのうちの１つにより設定された停止時刻まで前記目標マシンにおいてデータを収集する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
追跡点が所定回数だけ遭遇される場合、前記データ収集段階を終了する段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記目標マシンの前記バッファが満杯の場合、前記バッファを循環させる段階を更に含むことを特徴とする請求項６に記載の方法。
【請求項９】
ディスク駆動機構制御装置において実行されるソフトウエアをデバッグする方法であって、
ホストマシンを使用して、前記ソフトウエアにおける追跡点位置及び前記ソフトウエアによって取得される変数を、記憶装置に記憶された記号表を使用して数式の形で決定する段階と、
前記ホストマシンにおける回路が、通信リンクを介して、前記追跡点位置及び変数をデバック・スクリプトの形で前記ディスク駆動機構制御装置に送信する段階であって、前記デバッグ・スクリプトは、前記ディスク駆動機構制御装置におけるスタブ・プログラムにより実行される、送信する段階と、
前記ディスク駆動機構制御装置における回路が、前記スタブ・プログラムを実行することにより数式の値を求め、その数式の値に基づいて、前記ソフトウエアにおける前記追跡点位置にトラップを挿入する段階と、
前記ディスク駆動機構制御装置における回路が、前記ソフトウエアの実行の間にトラップに到達したと判断した場合、前記スタブ・プログラムを使用して、前記トラップにおける前記ホストマシンにより決定された前記変数を表すデータを収集する段階であって、その収集されたデータは前記ディスク駆動機構制御装置のバッファに記憶される、前記変数を表すデータを収集する段階と、
前記ソフトウエアを実行中である前記ディスク駆動機構制御装置の作動を停止することなく、前記通信リンクを介して、前記ディスク駆動機構制御装置における回路が、前記ディスク駆動機構制御装置の前記バッファに記憶されたデータをオンラインで前記ホストマシンに供給する段階と、
を含むことを特徴とする方法。
【請求項１０】
前記ディスク駆動機構制御装置がその通常の読み取り及び書き込み作動を実行する一方で、前記ディスク駆動機構制御装置が前記スタブ・プログラムを使用して、前記追跡点において前記ディスク駆動機構制御装置の前記ソフトウエアにトラップを達成する段階を更に含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記供給段階は、前記ディスク駆動機構制御装置の作動を中断することなく、前記収集されたデータを前記ホストマシンに供給する段階を含むことを更に特徴とする請求項１０に記載の方法。
【請求項１２】
追跡点が所定回数だけ遭遇された場合、前記データ収集段階を終了する段階を更に含むことを特徴とする請求項９に記載の方法。
【請求項１３】
目標マシンにおいて実行されるソフトウエアをデバッグする装置であって、
ホストマシンを使用して、前記ソフトウエアにおける追跡点位置及び前記ソフトウエアによって取得される変数を、記憶装置に記憶された記号表を使用して数式の形で決定する手段と、
前記ホストマシンに設けられ、通信リンクを介して、前記追跡点位置及び変数をデバック・スクリプトの形で前記目標マシンに送信する手段であって、前記デバック・スクリプトは、前記目標マシンにおけるスタブ・プログラムにより実行される、送信する手段と、
前記目標マシンに設けられ、前記スタブ・プログラムを実行することにより数式の値を求め、その数式の値に基づいて、前記ソフトウエアにおける前記追跡点位置にトラップを挿入する手段と、
前記目標マシンに設けられ、前記ソフトウエアの実行の間にトラップに到達したと判断した場合、前記スタブ・プログラムを使用して、前記トラップにおける前記ホストマシンにより決定された前記変数を表すデータを収集する手段であって、その収集されたデータは前記目標マシンのバッファに記憶される、前記変数を表すデータを収集する手段と、
前記目標マシンに設けられ、前記ソフトウエアを実行中である前記目標マシンの作動を停止することなく、前記通信リンクを介して、前記目標マシンの前記バッファに記憶されたデータをオンラインで前記ホストマシンに送信する手段と、
を含むことを特徴とする装置。
【請求項１４】
前記目標マシンに設けられ、前記スタブ・プログラムを使用して、各追跡点の遭遇に対して、データが収集される各変数の位置を決定する手段を更に含むことを特徴とする請求項１３に記載の装置。
【請求項１５】
前記ホストマシンにおいて前記追跡点を自動的に選択する手段と、前記ホストマシンにおいて前記変数を自動的に識別する手段と、を更に含むことを特徴とする請求項１３に記載の装置。
【請求項１６】
前記目標マシンに設けられ、前記スタブ・プログラムを使用して、前記追跡点において前記目標マシンの前記ソフトウエアにトラップを達成する手段を更に含むことを特徴とする請求項１３に記載の装置。
【請求項１７】
前記目標マシン及びホストマシンのうちの１つにより設定された停止時刻まで前記目標マシンにおいてデータを収集する手段を更に含むことを特徴とする請求項１３に記載の装置。
【請求項１８】
前記目標マシン及びホストマシンのうちの１つにより設定された停止時刻まで前記目標マシンにおいてデータを収集する手段を更に含むことを特徴とする請求項１７に記載の装置。
【請求項１９】
前記収集されたデータを前記目標マシンの前記バッファに記憶させる手段と、
前記目標マシンの前記バッファが満杯の場合、前記バッファを循環させる手段と、
を更に含むことを特徴とする請求項１７に記載の装置。
【請求項２０】
目標マシンにおいて実行されるソフトウエアをホストコンピュータからデバッグするコンピュータが実装された装置であって、
磁気媒体に記憶されたソフトウエア・プログラムを含み、
ホストコンピュータを使用して、前記ソフトウエアにおける追跡点位置及び前記ソフトウエアによって取得される変数を、記憶装置に記憶された記号表を使用して数式の形で決定する段階と、
前記ホストコンピュータにおける回路が、通信リンクを介して、前記追跡点位置及び変数をデバック・スクリプトの形で前記目標マシンに送信する段階であって、前記デバック・スクリプトは、前記目標マシンにおけるスタブ・プログラムにより実行される、送信する段階と、
前記目標マシンにおける回路が、前記スタブ・プログラムを実行することにより数式の値を求め、その数式の値に基づいて、前記ソフトウエアにおける前記追跡点位置にトラップを挿入する段階と、
前記目標マシンにおける回路が、前記ソフトウエアの実行の間にトラップに到達したと判断した場合、前記スタブ・プログラムを使用して、前記トラップにおける前記ホストコンピュータにより決定された前記変数を表すデータを収集する段階であって、その収集されたデータは前記目標マシンのバッファに記憶される、前記変数を表すデータを収集する段階と、
前記ソフトウエアを実行中である前記目標マシンの作動を停止することなく、前記通信リンクを介して、前記目標マシンにおける回路が、前記目標マシンの前記バッファに記憶されたデータをオンラインで前記ホストコンピュータに送信する段階と、
を必要とすることを特徴とする装置。
【請求項２１】
前記目標マシンが前記スタブ・プログラムを使用して、各追跡点に対して、データが収集される各変数の位置を決定する段階を含むソフトウエアを更に持つことを特徴とする請求項２０に記載の装置。
【請求項２２】
前記識別されたデータを収集してそれを記憶バッファに配送するために、前記目標マシンにおいて前記スタブ・プログラムを使用する段階を含むソフトウエアを更に持つことを特徴とする請求項２０に記載の装置。
【請求項２３】
前記ホストコンピュータにおいて前記追跡点を自動的に選択する段階と、
前記ホストコンピュータにおいて前記変数を自動的に識別する段階と、
を含むソフトウエアを更に持つことを特徴とする請求項２０に記載の装置。
【請求項２４】
前記目標マシンが前記スタブ・プログラムを使用して、前記追跡点において前記目標マシンの前記ソフトウエアにトラップを達成する段階を含むソフトウエアを更に持つことを特徴とする請求項２０に記載の装置。
【請求項２５】
前記目標マシン及びホストコンピュータのうちの１つにより設定された停止時刻まで前記目標マシンにおいてデータを収集する段階を含むソフトウエアを更に持つことを特徴とする請求項２０に記載の装置。
【請求項２６】
前記目標マシンの前記バッファが満杯の場合、前記バッファを循環させる段階を含むソフトウエアを更に持つことを特徴とする請求項２４に記載の装置。
【請求項２７】
追跡点が所定回数だけ遭遇される場合、前記データ収集段階を終了する段階を含むソフトウエアを更に持つことを特徴とする請求項２０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にソース・コードのデバッグ方法及び装置に関し、特に、デバッグ・ツールを用いて設定された追跡点を使用するソフトウエア・プログラムのデバッグ方法に関する。
【背景技術】
【０００２】
コンピュータ・プログラムが益々複雑になるにつれて、プログラムは、その本来の意図された性能及び作動を妨害するエラーすなわち「バグ」を包含する可能性が高まることになる。そこでプログラムは、そのプログラムにおけるエラーの所在を探し出し、修正を行う過程であるデバッグをされることになる。複雑なプログラムにおいて、デバッグを行う過程は極めて困難であるに違いなく、その結果、ソフトウエアをデバッグする１つのアプローチとしては、コード内の場所場所において区切り点挿入を使用することである。そうすると、ソース・コード・プログラムの実行は、区切り点に遭遇する度に停止し、プログラマがその区切り点におけるプログラムの特定の変数の状態、従って、その区切り点でのプログラムの挙動を観察することを可能にする。
【０００３】
特定のアプリケーションにおいて、区切り点でプログラムを停止させることは、システムに対して極めて阻害的であり得る。従って、例えばＥＭＣシンメトリクス・シリーズ製品などの大きな共有データ記憶サブシステムにおいてプログラムを停止させることは、事実上、全てのデータ読み取り、書き込み、及び、キャッシング処理を停止させる。この時点で、データの流れが約数分程度又はそれ以上に亘って阻害される可能性があるのみならず、例えば別の外部サブシステムが次に回復モードに入ってくる可能性があるため、システムの挙動、従ってエラー解析もシステムの停止によって完全に覆い隠される可能性がある。
【０００４】
後々の解析用に、シンメトリクス装置内バッファメモリに追跡イベントに関するデータを記憶することが知られてきた。このアプローチは、必要に応じて、後々の検査及び解析用に同時にデータ収集を行うが、システム割り込みを行わないという利点を有する。そのようなシステムは、一般に、ユーザがシステムのソフトウエア及び追跡点を動的に改める又は変更する、又は、プログラムが続いている時、同時発生的にシステム・ソフトウエアを解析することを可能にしない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この結果、本発明に従ってデバッグを行うシステム・ツール及び方法を提供することができ、例えば大きな共有データ記憶システムにおいてソフトウエア・プログラムが作動したままオンラインで即座のそして確実な対話を可能にする。更に、本発明の方法及び装置は、システムのデバッグを行うオンラインのアクセスを都合良く準備する一方で、同時にソース・コードの作動で生じる如何なるエラーをも覆い隠すように実質的にシステム作動を阻害することがない。
【課題を解決するための手段】
【０００６】
本発明は、目標のマシン上で実行されるオンライン・デバッグ・ソフトウエアの方法及び装置に関する。この方法は、追跡点位置（番地）及びそれら追跡点において収集されるデータ及び変数をホストマシンにおけるソフトウエアに形成する段階、追跡点位置及び変数を、例えばデバッグ・スクリプトの形で目標マシンに送信する段階、デバッグ・スクリプトを実行するために目標マシンにスタブ・プログラムを保持する段階、追跡点に到達した時にホストマシンのデバッグ・スクリプトによって識別される変数を表すデータ及び変数を所定の追跡点においてスタブ・プログラムを使用して収集する段階、及び、ホストマシンからの要求に応じて、収集されたデータをオンラインで目標マシンの作動に著しい割り込みや停止させたりすることなく送信する段階を特徴とする。特定の実施形態において、目標マシンはディスク駆動機構制御装置である。
【０００７】
他の態様において、本発明は、元来コンパイラの記号表からの数式の形でホストマシンのデバッグ・スクリプトによって指定され、追跡点に到達して通過する時にデータが収集される各変数の位置を、数式の値を求めて目標マシンにおいて判断する段階を特徴とする。別の態様において、追跡点は、ホストマシンにおいて自動的に設定されてもよく、変数は、ホストマシンにおいて自動的に識別される。
別の態様において、本発明によると収集されたデータは、記憶のために目標マシンのバッファに仕向けられ、バッファが溢れた場合、データがバッファを循環して古いデータを消去し、それを新しいデータと入れ替える。このようにして、データの最新フレームのみがバッファに保たれる。
【０００８】
別の態様において、本発明の装置は、目標マシンにおいて実行されるデバッグ用ソフトウエア（スタブ）を準備し、ホストマシンと、追跡点位置及びソフトウエアによって収集される変数をホストマシンにおいて形成する構成要素と、目標マシンに追跡点位置及び変数を送信する回路と、目標マシンにおいてスタブ・プログラムを実行する回路と、ホストマシン上のユーザによって選択された変数を表すデータをスタブ・プログラムを使用して収集する回路とを含む。追跡点に到達した時、回路は、目標マシンの作動を停止させることなく、収集されたデータをオンラインでホストマシンに送信する。
【０００９】
本発明の更に別の態様において、装置は、目標マシンで実行されるソフトウエアのデバッグをホストコンピュータから行う、コンピュータが実装された装置である。本発明は、目標マシン及びホストコンピュータの両方においてソフトウエア媒体を準備し、追跡点位置及び目標マシンのソフトウエアによって収集される変数をホストコンピュータにおいて形成する段階と、追跡点位置及び変数を目標マシンに送信する段階と、目標マシンにおいてスタブ・プログラムを実行する段階と、追跡点に到達して通過した時に、例えばホストコンピュータのユーザによって選択された変数を表すデータをスタブ・プログラムを使用して収集する段階と、目標マシンの作動を停止させることなく、収集されたデータをオンラインでホストコンピュータに供給する段階とを実行する。
【００１０】
本発明の方法及び装置は、従って、目標マシンの作動妨害を最小限度に抑えつつ、目標コンピュータ又は駆動機構制御装置のデバッグを都合良く可能にする。
【００１１】
本発明の他の形態及び利点は、本発明の以下の説明を図面と共に検討することにより、当業者には明らかになるであろう。
【発明を実施するための最良の形態】
【００１２】
図１を参照すると、本発明は、少なくとも１つ及びおそらくは複数のホスト１２ａ、１２ｂ、．．．、１２ｎがＥＭＣシンメトリクスのディスク・アレー・メモリ・システムなどのメモリ・モジュール・システム１４に接続されるコンピュータ・システムに関する。メモリ・モジュール１４は、ホストコンピュータと、例えばディスク駆動機構１６ａ、１６ｂ、．．．、１６ｋなどの複数の大量記憶装置との間のインタフェースとしての役目を果たす。ホストによって書き込まれた、又は、ディスク駆動機構構成要素によって読み出されたデータは、かなりの能力を有する２方向通信経路としての役目を果たすメモリ・モジュール・システムを通過する。例えば、あるシステムでは、ホストからのデータは、ディスク記憶装置の全て又は幾つかに亘って一様にストライプされ、また、別のシステムでは、ホストからのデータは、ディスク駆動機構１６上にＲＡＩＤ（遠隔アクセス対話式デバッギングプログラム）プロトコルに従って記憶される。本発明の更に別の実施形態において、特定のホストからのデータの全ては、データ及びホストの性質及びソース次第で、１つのディスク駆動機構、又は、同じ又は別のディスク駆動機構の異なる論理容量に記憶できる。ホストコンピュータはまた、１つ又はそれ以上のディスク駆動機構ユニットからデータを読み取ることができる。
【００１３】
例えば、回復不能なソフトウエア・エラー、処理量の減少、又は、新しくインストールされたソフトウエアの「バグ」などのシステムの性能を損なう問題が起きる場合、その問題は、ホスト、メモリ・モジュール、ディスク駆動機構構成要素、又は、それらの組合せのいずれかに起きる可能性がある。問題を解析して修正するためには、顧客コンピュータ（又は、複数のコンピュータ）又は制御装置の作動を下げないことが必要であり、もしそうなれば、それらがオフライン状態に置かれ、恐らくは顧客の業務能力を顕著に損なうことになる。本発明によれば、従って、例えばソフトウエアのバグが疑われる場合、又は、システム作動の選択されたイベント時刻においてシステム・パラメータを読み出すために、追跡点がソフトウエアに挿入され、顧客システムにおける如何なる実質的な性能低下をも強いることなくデータが収集される。次に、以下に説明されるように、データは、システム作動に対して実質的に低下、停止、又は、それ以外に干渉を与えることなく、解析用に遠隔操作的に収集することができる。
【００１４】
図２を参照すると、本発明による特定の実施形態において、ディスク制御装置は、全てのデータ及び指令がそれを通って流れる大域メモリ３２に接続される複数のチャネル・ディレクタ３０（ＳＣＳＩプロトコルに従って作動する場合、最も頻繁にはＳＣＳＩアダプタと呼ばれる）を持つように形成される。この大域メモリ３２は、ディスク駆動機構１６に接続する複数のディスク・ディレクタ３４（同様に、通常はＳＣＳＩアダプタ）に接続される。本発明のこの特定の実施形態によれば、各チャネル・ディレクタは、ＳＣＳＩプロトコルを使用してチャネル３６及び３８を通して作動する。各チャネル・ディレクタ３０は、バス３６を通して１つ又はそれ以上のホストコンピュータに接続できる（一般的に、ポート４０につき１つのホスト入出力制御装置）。図示された実施形態において、監視及び解析されることになるのは、ソフトウエアの作動である。
【００１５】
ここで図３を参照すると、概略的表現において、ホストマシン４００は、一般的に目標マシン４０２から遠く離れた場所に設置される。ホスト４００及び目標４０２は、モデム４０４及び４０６、及び、通信リンク４０８を通して通信する。ホストマシンは、ソースファイル４１４、及び、目標マシンで実行されるプログラムに対するコンパイルされた記号表４１６及びバイナリ実行可能ファイル４１８を包含する記憶装置４１２へのアクセスを有するソース・レベル・デバッガ４１０を含む。一般に、記憶装置４１２は、異なる目標マシンで実行される様々なバージョンのプログラムに対して多くのそのようなファイルの収集を包含する。バイナリファイルは、目標マシンにおけるバイナリ実行可能プログラムファイルと同一である。
【００１６】
ソース・レベル・デバッガは、ユーザ又は自動追跡点プログラムのうちのいずれかの制御の下で、追跡点が目標マシンで実行される実行可能プログラムに挿入されることになる番地のほか、変数に対する番地（又は、そのような番地を決めるための数式）を記号表４１６を使用して識別する。そのデータは、通信リンク４０８を通して目標マシンに送信される。スタブ・プログラムは、目標マシンにおいてそのデータを使用して追跡点番地でトラップを挿入し、それにより、各追跡点で必要データが収集されて追跡バッファ４２０に記憶される。スタブ・プログラム４２２は、その作動プログラムの一部として目標マシンに含まれる。従って、通常の作動においては、プログラムがコンパイルされ、リンクされ、バイナリの実行可能形式で目標マシンにロードされる一方で、バイナリファイル４１８及び記号ファイル４１６に記憶される。ユーザ又はシステムは、次に、追跡点及び収集されるデータを形成し、その設定情報を目標マシンに送信する。次に、追跡点に当たる度に適切なデータが収集され、追跡プログラムは、以下に説明されるように終了される。次に、追跡バッファに収集されたデータの全て又は一部について、「事後」解析が実行される。
【００１７】
ここで図４を参照すると、作動に際して、ソース・レベル・デバッグ・プログラムは、一般に目標マシンの場所から遠く離れているホストコンピュータにおいて開始される。このことは、９８で示されている。デバッグ・プログラムは、ユーザの制御の下、ソース・コード・ウインドウを開く。ホストコンピュータにおいて、それは画面上のウインドウであり、それによってデバッグ情報が作りだされる。このことは、段階１００で示されている。ユーザは、次に、ここでは制御装置システム１４である目標マシンで実行されるプログラムを識別し、デバッガは、デバッガが目標マシンで実行されているのと同じバージョンのプログラムを有することを確認する。このことは、１０１で示されている。ユーザは、デバッグされるプログラムに一連の追跡点を自動又は手動のいずれかにより設定する。このことは、段階１０２で示されている。追跡点の手動設定は、一般的にプログラムのソース・コード・レベルで実行される。ユーザは、各追跡点と共に変数を手動又は自動のいずれかで識別し、そのためのデータは、追跡点が到達すなわち「当たる」度に収集される。追跡点を自動で設定する場合、本明細書においてその内容が参照文献として援用されている１９９８年４月２９日提出で現在出願中の「ソース・コード・デバッグ用ツールの応用」という名称の米国特許出願番号第０９／０６９、６０８号に説明されているものなどの方法を使用できる。一旦デバッグの設定がユーザによって完了されると、ホストは、目標マシンに存在する実行可能コードにより追跡点の位置を目標マシンに送信する。伝送されたデータの書式は、数式が送信されることを可能にし、目標とする変数の位置をそこから目標マシンにおいて導き出すことができる。このことは、１０３で示されている。一般に、番地や式は、プログラムの実行可能コードを作り出す際にコンパイラによって普通に作成及び記憶される記号表に見出される変数から派生している。記号表は、ホストマシンで手に入れることができる。この番地及び式の情報は、スタブ・プログラムによりそこでの作動に使用するために１０４において目標マシンに伝送される（デバッグ設定データとして）。目標及びホストシステムは、例えばインターネットを通して、モデム又は高速通信バスによって接続できる。目標マシンにおいて、いわゆる「スタブ」は、１０５においてデバッグ設定データを実行するために作動し、デバッグされるソフトウエアの作動の間に関連データを収集する。この点で、スタブ・プログラムは、ホストシステムによって識別された追跡点番地でトラップを挿入し、「トラップ」に到達される、すなわち当たる度に必要データを収集する。
【００１８】
目標マシンでデバッグされるプログラムが進行するにつれ、スタブは、コードを捕獲するために各追跡点番地で作動し、必要データを収集する。このことは、１１０で示されている。追跡点が当てられた場合、スタブは、ホストによって供給された式の値を求めることにより目標からデータを獲得するために作動し（変数の物理的な番地は、時々刻々変わる可能性がある）、獲得されたデータを目標バッファに記憶する。このことは、１１２で示されている。目標バッファが満杯になった場合、図示された本発明の実施形態においては、古い以前に収集されたデータが上書きされるようにバッファが循環する。
【００１９】
スタブは、従って、例えそれが数値又は表式レベルで指定されても、デバッグ設定で指定される変数データを収集するように作動する。すなわち、スタブは、本発明の好ましい実施形態の書式の逆ポリッシュ表記で作業する表式エバリュエータを有し、それは、スタブが変数又は収集される変数の番地を、例え変数の番地が時々刻々プログラムにおいて変化し得るとしても、決めることを可能にする。
【００２０】
一旦、全てのプログラム変数が収集されたか、追跡点に対するパス・カウントが到達されたか、又は、ホスト又は目標システムによって指定された時間が経過した場合、又は、ユーザが発生させたアクセス指令が目標システムによって受領された時、収集及び記憶されたデータは、目標マシン又は監視されたプログラムの作動を実質的に中断することなく、すなわち、目標マシンが作動を継続しながら、ホストマシンによって指定されるように全部又は一部をオフ・ロードすることができる。特定の態様においては、追跡点に対するパス・カウントが到達される場合、データ収集が自動的に中断することになり、データは、自動的に又はホストにおけるユーザの制御の下で、ホストに利用可能にされることになる。例えば、パス・カウントが１の場合、特定の追跡点が最初に到達された時にデータが収集されることになり、検査及び解析用としてホストに即座に利用可能にすることができる。収集されたデータが追加のデータが収集されている間にホストに返却することができることも、同様に明白であるはずである。このことは、段階１２０で示されている。オフ・ロードする過程は、段階１３０で示されるように、ホストによって実行及び制御することができる。特定の実施形態において、ホストは、限定され明確に規定されたデータのダウンロードを得るために、目標に探索照会を送信する。
【００２１】
追跡点が到達される度にプログラムが捕獲され、適切な変数が収集及び記憶されることに注目することは重要である。このことは、例えば１ミリ秒程度を要する。これは、例えば区切り点に遭遇するや否や監視されているプログラムの停止を引き起こし、ユーザ入力を待ち続けて１分、１０分、又は、それ以上の中断を必要とする可能性のあるシステムと比較すると顕著な改善である。結果として、目標マシンの作動は、追跡点が実装されていないマシンのそれにより緊密に類似する。勿論、目標マシンのソフトウエアのバージョンは、ホストコンピュータが知っているものと同一でなければならない。
【００２２】
本発明の開示された好ましい実施形態における追加例、削除例、及び、他の変更例は当業者にとって明らかであろうし、また、添付請求項の技術内容に包含される。
【図面の簡単な説明】
【００２３】
【図１】本発明が特定の用途を有するシステムを示す一般的なブロック図である。
【図２】本発明による典型的な環境を更に詳細に示すブロック図である。
【図３】本発明による通常の作動を示す概略ブロック図である。
【図４】本発明による１つの実施形態の作動を示す流れ図である。
【図１】
2006344249.tif 000003
【図２】
2006344249.tif 000004
【図３】
2006344249.tif 000005
【図４】
2006344249.tif 000006