JPH03246733A - 分散プログラムデバッグ方式 - Google Patents
分散プログラムデバッグ方式Info
- Publication number
- JPH03246733A JPH03246733A JP2045231A JP4523190A JPH03246733A JP H03246733 A JPH03246733 A JP H03246733A JP 2045231 A JP2045231 A JP 2045231A JP 4523190 A JP4523190 A JP 4523190A JP H03246733 A JPH03246733 A JP H03246733A
- Authority
- JP
- Japan
- Prior art keywords
- conditional expression
- control unit
- processes
- communication
- communication history
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、複数プロセスを有するシステムにおけるプロ
グラムを、稼働すべき対象計算機システム上で試験を行
う場合のデバッグ方式に関する。
グラムを、稼働すべき対象計算機システム上で試験を行
う場合のデバッグ方式に関する。
従来1分散プログラムを対象とするデバッガでは、以下
に述べる動作再現法が行われている。なお、これに関し
ては1例えばT−J、LeBlancand J 、
M、 Mellor−Crummey : “D eb
uggingParallel Programsw
ith In5tant Replay、 ”I
E E E Trans、 oncow+put、
、 vol、c −36。
に述べる動作再現法が行われている。なお、これに関し
ては1例えばT−J、LeBlancand J 、
M、 Mellor−Crummey : “D eb
uggingParallel Programsw
ith In5tant Replay、 ”I
E E E Trans、 oncow+put、
、 vol、c −36。
&4.pp、471−480 (April 1987
)において論じられている。
)において論じられている。
第1図から他プロセス制御部9を除いたものが一般的な
デバッガの構成である。第1図において。
デバッガの構成である。第1図において。
システム1は通信路で接続された複数のプロセスからな
る。これらの各プロセス2に対してその動作を制御する
ローカル制御部5をおく。全域制御部14がユーザのデ
バッガコマンドを受は付ける前に一度デバッグ対象とな
るプログラム3を実行する。その際、通信経歴管理部7
は自プロセスがメツセージの受信命令を行った場合に、
そのメツセージの送信プロセス名を内部記憶領域に第2
図のように順に格納する。
る。これらの各プロセス2に対してその動作を制御する
ローカル制御部5をおく。全域制御部14がユーザのデ
バッガコマンドを受は付ける前に一度デバッグ対象とな
るプログラム3を実行する。その際、通信経歴管理部7
は自プロセスがメツセージの受信命令を行った場合に、
そのメツセージの送信プロセス名を内部記憶領域に第2
図のように順に格納する。
デバッガコマンドを受は付けた後、再実行を行う。すな
わち、もう−度プログラム4を最初から実行する。
わち、もう−度プログラム4を最初から実行する。
この再実行の際、通信経歴管理部7はポインタ変数を設
ける。ポインタ変数は初期状態において通信経歴の最初
の要素を指す。この再実行時に、あるプロセスの次の命
令が受信命令であると、そのプロセスの通信経歴管理部
7はポインタ変数の指す通信経歴の要素を参照する。通
信経歴管理部7は次の命令が受信命令であり、かつポイ
ンタの差す名前のプロセスから通信路3を通じてメツセ
ージが到着していなければNOlそれ以外の場合にはY
esを出力する。
ける。ポインタ変数は初期状態において通信経歴の最初
の要素を指す。この再実行時に、あるプロセスの次の命
令が受信命令であると、そのプロセスの通信経歴管理部
7はポインタ変数の指す通信経歴の要素を参照する。通
信経歴管理部7は次の命令が受信命令であり、かつポイ
ンタの差す名前のプロセスから通信路3を通じてメツセ
ージが到着していなければNOlそれ以外の場合にはY
esを出力する。
動作制御部6は通信経歴管理部7からYesを受信すれ
ばE xecuteをプロセスに送り、次の命令を実行
させる。NOを受信すればYesとなる(すなわち、次
の受信命令で受信するプロセスからのメツセージが届く
)までE xecuteを出力せず、受信命令を実行さ
せない。また、それ以外のプロセスからメツセージが届
いた(すなわち、後の受信命令における受信メツセージ
が早く届いた)場合には対応する受信命令の実行までそ
のメツセージを内部記憶領域に記憶しておく。このよう
に、通信経歴が同一になるようにローカル制御部5がプ
ロセスを動作させる限り、何度実行しても同じ動作を再
現する。
ばE xecuteをプロセスに送り、次の命令を実行
させる。NOを受信すればYesとなる(すなわち、次
の受信命令で受信するプロセスからのメツセージが届く
)までE xecuteを出力せず、受信命令を実行さ
せない。また、それ以外のプロセスからメツセージが届
いた(すなわち、後の受信命令における受信メツセージ
が早く届いた)場合には対応する受信命令の実行までそ
のメツセージを内部記憶領域に記憶しておく。このよう
に、通信経歴が同一になるようにローカル制御部5がプ
ロセスを動作させる限り、何度実行しても同じ動作を再
現する。
再現を行うデバッガの多くは、ブレークポイント設定コ
マンドすなわちユーザが指定した条件式が成立した時点
で停止する機能および、トレース出力コマンドすなわち
ユーザが指定した条件式が成立した時点における、ユー
ザが指定した算術式の値を出力するコマンドなどを提供
している。従来のこの種のデバッグ方式では、ユーザが
入力したこれらのコマンドに対して、上記の再現時に以
下のような動作を行っていた。
マンドすなわちユーザが指定した条件式が成立した時点
で停止する機能および、トレース出力コマンドすなわち
ユーザが指定した条件式が成立した時点における、ユー
ザが指定した算術式の値を出力するコマンドなどを提供
している。従来のこの種のデバッグ方式では、ユーザが
入力したこれらのコマンドに対して、上記の再現時に以
下のような動作を行っていた。
条件式判定部8は自プロセスの変数の値、プログラムカ
ウンタの値などから自プロセスに関する条件式の判定を
行い、条件式が成立していればT rue、そうでなけ
ればFalseを出力する。動作制御部6は通信経歴管
理部7がYesを出力し、かつ条件式判定部8がFal
seを出力するときにExecuteを出力して次の命
令を実行させる。通信経歴管理部7がNOを出力してい
る間は何も出力せず、Yesとなるのを待つ。また、条
件式判定部8がT rueを出力すると1条件式が成立
したので再実行は中止し、全域制御部14を通じてユー
ザに条件式の成立を知らせる。
ウンタの値などから自プロセスに関する条件式の判定を
行い、条件式が成立していればT rue、そうでなけ
ればFalseを出力する。動作制御部6は通信経歴管
理部7がYesを出力し、かつ条件式判定部8がFal
seを出力するときにExecuteを出力して次の命
令を実行させる。通信経歴管理部7がNOを出力してい
る間は何も出力せず、Yesとなるのを待つ。また、条
件式判定部8がT rueを出力すると1条件式が成立
したので再実行は中止し、全域制御部14を通じてユー
ザに条件式の成立を知らせる。
このように、ローカル制御部5は自プロセスに関する条
件式のみから再現動作の制御を行い、他プロセスの条件
式の成立状況の情報を知らずに動作する。従って、コマ
ンドの条件式には単一プロセスに関する論理式のみが許
され、複数のプロセスに関する条件式による指定ができ
なかった。例えば、プロセス1およびプロセス2に関す
る論理式(V工=1)n(v2=1)(v工、v2はそ
れぞれプロセス1,2の変数とする)が成立したとき停
止することを考える。このとき、従来のデバッガではブ
レークポイントの条件式としてプロセス1の条件式判定
部にV□=1、プロセス2の条件式判定部にv2=1を
与えて実行することになる。
件式のみから再現動作の制御を行い、他プロセスの条件
式の成立状況の情報を知らずに動作する。従って、コマ
ンドの条件式には単一プロセスに関する論理式のみが許
され、複数のプロセスに関する条件式による指定ができ
なかった。例えば、プロセス1およびプロセス2に関す
る論理式(V工=1)n(v2=1)(v工、v2はそ
れぞれプロセス1,2の変数とする)が成立したとき停
止することを考える。このとき、従来のデバッガではブ
レークポイントの条件式としてプロセス1の条件式判定
部にV□=1、プロセス2の条件式判定部にv2=1を
与えて実行することになる。
プロセス1とプロセス2がそれぞれ第3図のプログラム
を実行する場合、従来のデバッガにおいては、プロセス
1が命令13を実行した直後、条件式が成立するため動
作制御部は再実行を停止する。
を実行する場合、従来のデバッガにおいては、プロセス
1が命令13を実行した直後、条件式が成立するため動
作制御部は再実行を停止する。
従って、プロセス2はv2=1が成立していないにもか
かわらず命令25を越えて再実行することができない。
かわらず命令25を越えて再実行することができない。
従って、ユーザがプロセス1に対する条件式V工=1を
一旦解除して動作させ、そのあと再び条件式を設定する
ことを繰り返す必要があった。トレース出力コマンドに
ついても同様に、ユーザの介在なしには複数のプロセス
に関する条件式が成立した時の算術式の値を求めること
ができない。
一旦解除して動作させ、そのあと再び条件式を設定する
ことを繰り返す必要があった。トレース出力コマンドに
ついても同様に、ユーザの介在なしには複数のプロセス
に関する条件式が成立した時の算術式の値を求めること
ができない。
また、ブレークポイントの条件式としてプロセス1のみ
の条件式V□=1が与えられたとき、従来の方法ではプ
ロセス1は命令13を実行した直後停止するが、プロセ
ス2は命令24まで動作し、条件式を成立させるため、
各プロセスが最小限の動作を行った時点の状態、すなわ
ち、エラーが顕在化した直後のシステム状態で停止する
ことはできない。トレース出力コマンドについても同様
に、条件式を成立させるために最小限の動作を行った時
点の算術式の値を求めることはできない。
の条件式V□=1が与えられたとき、従来の方法ではプ
ロセス1は命令13を実行した直後停止するが、プロセ
ス2は命令24まで動作し、条件式を成立させるため、
各プロセスが最小限の動作を行った時点の状態、すなわ
ち、エラーが顕在化した直後のシステム状態で停止する
ことはできない。トレース出力コマンドについても同様
に、条件式を成立させるために最小限の動作を行った時
点の算術式の値を求めることはできない。
本発明の目的は、ブレークポイント設定コマンドの条件
式に、プロセスに対する論理式を論理積で結合した、複
数プロセスに関する条件式による指定を許し、また、ト
レース出力コマンドの条件式に、プロセスに対する論理
式を論理積または論理和で結合した、複数プロセスに関
する条件式による指定を許して、条件式を成立させるた
めに最小限の動作を行った時点での停止および算術式の
値の出力を行い、ユーザによって自然な形でのデバッガ
コマンドの記述を可能とし、がっ、バグが顕在化した直
後のシステムの状態をユーザに認識させることができる
分散プログラムデバッグ方式を提供することにある。
式に、プロセスに対する論理式を論理積で結合した、複
数プロセスに関する条件式による指定を許し、また、ト
レース出力コマンドの条件式に、プロセスに対する論理
式を論理積または論理和で結合した、複数プロセスに関
する条件式による指定を許して、条件式を成立させるた
めに最小限の動作を行った時点での停止および算術式の
値の出力を行い、ユーザによって自然な形でのデバッガ
コマンドの記述を可能とし、がっ、バグが顕在化した直
後のシステムの状態をユーザに認識させることができる
分散プログラムデバッグ方式を提供することにある。
上記目的を達成するために、本発明のデバッグ方式では
、動作の再現時にローカル制御部が他プロセスのローカ
ル制御部に対して自プロセスに関する情報を通信する機
能を設けたことを特徴とする。
、動作の再現時にローカル制御部が他プロセスのローカ
ル制御部に対して自プロセスに関する情報を通信する機
能を設けたことを特徴とする。
本方式では、複数のプロセスに関する条件式が与えられ
、あるプロセスに関する条件式を満足させるために他の
プロセスを動作させる必要がある場合、そのプロセスの
動作を制御するローカル制御部に対してプロセスの駆動
要求を送ることができる。送られた駆動要求をもとに各
プロセスの動作を制御することによって、複数のプロセ
スに関する条件式による指定をユーザに許し、条件式を
成立させるための最小限の動作を行った時点を求めるこ
とができる。
、あるプロセスに関する条件式を満足させるために他の
プロセスを動作させる必要がある場合、そのプロセスの
動作を制御するローカル制御部に対してプロセスの駆動
要求を送ることができる。送られた駆動要求をもとに各
プロセスの動作を制御することによって、複数のプロセ
スに関する条件式による指定をユーザに許し、条件式を
成立させるための最小限の動作を行った時点を求めるこ
とができる。
以下、本発明の一実施例について図面により説明する。
第1図は本発明の一実施例を説明する構成図である。1
はデバッグ対象となる分散プログラムをIj!働させる
ため、通信路で接続された複数のプロセスから成るシス
テムで、2はその各プロセス、3はプロセス間を接続す
る通信路、4は各プロセスに対するデバッグ対象となる
プログラムである。
はデバッグ対象となる分散プログラムをIj!働させる
ため、通信路で接続された複数のプロセスから成るシス
テムで、2はその各プロセス、3はプロセス間を接続す
る通信路、4は各プロセスに対するデバッグ対象となる
プログラムである。
5はプロセスの動作を制御するローカル制御部。
6はプロセスに対して動作を命令するE xecute
信号を出力する動作制御部、7は動作時に通信経歴を保
存し、再実行時に次の命令を実行していい場合に信号Y
esを出力し、再実行時の通信経歴が同一になるよう制
御する通信経歴管理部、8は再実行時にユーザコマンド
の条件式の成立を判定し、成立している時に信号Tru
eを出力し、成立していない時に信号Falseを出力
する条件式判定部、9は再実行時に他のプロセスのロー
カル制御部との通信を行う他プロセス制御部、10は再
実行時の他プロセスとの通信状況を記録する通信状況管
理部、11は他プロセスを動作させる必要がある場合に
他プロセスのローカル制御部に対して駆動要求メツセー
ジを送信する他プロセス動作制御部、12は他プロセス
から受信した駆動要求メツセージを解析し、他プロセス
のために自プロセスが動作を行う必要がある場合に信号
E xecute Requestを出力する駆動要求
解析部である。13はローカル制御部相互の通信を行う
通信路である。14はユーザからのコマンド入力、およ
びデバッガからの出力を行う全域制御部である。
信号を出力する動作制御部、7は動作時に通信経歴を保
存し、再実行時に次の命令を実行していい場合に信号Y
esを出力し、再実行時の通信経歴が同一になるよう制
御する通信経歴管理部、8は再実行時にユーザコマンド
の条件式の成立を判定し、成立している時に信号Tru
eを出力し、成立していない時に信号Falseを出力
する条件式判定部、9は再実行時に他のプロセスのロー
カル制御部との通信を行う他プロセス制御部、10は再
実行時の他プロセスとの通信状況を記録する通信状況管
理部、11は他プロセスを動作させる必要がある場合に
他プロセスのローカル制御部に対して駆動要求メツセー
ジを送信する他プロセス動作制御部、12は他プロセス
から受信した駆動要求メツセージを解析し、他プロセス
のために自プロセスが動作を行う必要がある場合に信号
E xecute Requestを出力する駆動要求
解析部である。13はローカル制御部相互の通信を行う
通信路である。14はユーザからのコマンド入力、およ
びデバッガからの出力を行う全域制御部である。
プロセスに対する論理式を論理積により結合した、複数
プロセスに関する条件式を持つブレークポイント設定コ
マンドおよびトレース出力コマンドに対しては以下のよ
うに動作する。
プロセスに関する条件式を持つブレークポイント設定コ
マンドおよびトレース出力コマンドに対しては以下のよ
うに動作する。
ユーザが入力したコマンドの条件式をS P 1inS
PL、In・・・n5Plk(SP13はプロセX i
j Lニー関する論理式)とする、全域制御部14が
この論理式を単一プロセスに関する論理式に分割し、分
割された論理式SP□、をプロセスijの条件式判定部
8の記憶領域に格納する。
PL、In・・・n5Plk(SP13はプロセX i
j Lニー関する論理式)とする、全域制御部14が
この論理式を単一プロセスに関する論理式に分割し、分
割された論理式SP□、をプロセスijの条件式判定部
8の記憶領域に格納する。
再実行の際、ローカル制御部5は以下のように動作する
。
。
(1)通信状態管理部10は自プロセスがそれまでに送
信、受信したメツセージ数を相手プロセスごとに常に記
録する。
信、受信したメツセージ数を相手プロセスごとに常に記
録する。
(2)通信経歴管理部7は前述のように通信経歴を再現
するように制御する。次の命令が受信でかつメツセージ
が通信路3から届いていない場合にのみNOlそれ以外
の時にはYesを出力する。
するように制御する。次の命令が受信でかつメツセージ
が通信路3から届いていない場合にのみNOlそれ以外
の時にはYesを出力する。
(3)条件式判定部8は自プロセスに関する論理式が満
足されていないときにF alse、それ以外の時(論
理式が満足されている場合、およびこのプロセスに関す
る論理式が存在しない場合) Trueを出力する。
足されていないときにF alse、それ以外の時(論
理式が満足されている場合、およびこのプロセスに関す
る論理式が存在しない場合) Trueを出力する。
(4)動作制御部6は以下の条件が成立した場合に自プ
ロセスの次の命令の再実行を行う。
ロセスの次の命令の再実行を行う。
条件式判定部8がF alsoを出力するか駆動要求解
析部12がE xecute Requestを出力し
、かつ通信経歴管理部7がYesを出力する。
析部12がE xecute Requestを出力し
、かつ通信経歴管理部7がYesを出力する。
(5)他プロセス動作制御部11は他プロセスを動作さ
せることが必要である場合、すなわち条件式判定部8が
F alseを出力するか駆動要求解析部12がE x
ecuteを出力し、かつ通信経歴管理部7がNoを出
力する場合に、以下に示すプロセスに対し、以下のよう
な駆動要求メツセージを、通信路13を通じて送る。
せることが必要である場合、すなわち条件式判定部8が
F alseを出力するか駆動要求解析部12がE x
ecuteを出力し、かつ通信経歴管理部7がNoを出
力する場合に、以下に示すプロセスに対し、以下のよう
な駆動要求メツセージを、通信路13を通じて送る。
次の命令で受信するメツセージの送信プロセス(Qとす
る)に対して、Qから次に受信するメツセージの番号(
通信状態管理部10が管理している、Qからそれまでに
受信したメツセージ数に1を加えたもの)から成る駆動
要求メツセージを送る。
る)に対して、Qから次に受信するメツセージの番号(
通信状態管理部10が管理している、Qからそれまでに
受信したメツセージ数に1を加えたもの)から成る駆動
要求メツセージを送る。
(6)駆動要求解析部12は他プロセス(jとする)の
動作制御部から要求駆動メツセージを受信すると、以下
の操作を行う。
動作制御部から要求駆動メツセージを受信すると、以下
の操作を行う。
通信状態管理部10が記憶している、Jに送信したメツ
セージ数が駆動要求メツセージ内のメツセージ番号より
も小さい場合、E xecute Requestを出
力する。それ以外の場合には、何も出力しない。
セージ数が駆動要求メツセージ内のメツセージ番号より
も小さい場合、E xecute Requestを出
力する。それ以外の場合には、何も出力しない。
(7)すべてのプロセスの動作制御部が自プロセスを動
作させなくなった時が条件式が成立した時点であり、こ
れを全域制御部14が検出する。ブレークポイント設定
コマンドであれば停止したことをユーザに通知し、トレ
ース出力コマンドであれば各ローカル制御部に、算術式
に現れる変数の現在の値を問い合わせ、その答から算術
式の値を求めて出力したのち各ローカル制御部を再起動
する。
作させなくなった時が条件式が成立した時点であり、こ
れを全域制御部14が検出する。ブレークポイント設定
コマンドであれば停止したことをユーザに通知し、トレ
ース出力コマンドであれば各ローカル制御部に、算術式
に現れる変数の現在の値を問い合わせ、その答から算術
式の値を求めて出力したのち各ローカル制御部を再起動
する。
プロセスに対する論理式を論理和で結合した。
複数プロセスに関する条件式を持つトレース出力コマン
ドに対しては以下のように動作する。
ドに対しては以下のように動作する。
ユーザが入力したトレース出力コマンドの条件式をSP
よ、USP工2U・・・USP工、とする。全域制御部
14は条件式を単一プロセスに関する論理式に分割し、
分割された論理式SP、、をプロセスijの条件式判定
部8の記憶領域に格納する。また、出力する算術式に現
れる変数をプロセスごとに分け、プロセスlの変数名(
X’1.X”2.・・・、X”。
よ、USP工2U・・・USP工、とする。全域制御部
14は条件式を単一プロセスに関する論理式に分割し、
分割された論理式SP、、をプロセスijの条件式判定
部8の記憶領域に格納する。また、出力する算術式に現
れる変数をプロセスごとに分け、プロセスlの変数名(
X’1.X”2.・・・、X”。
とする)をプロセス1のローカル制御部の記憶領域に格
納する。
納する。
この分割された各単一プロセスに関する論理式は、前述
のプロセスに対する論理式を論理積で結合した条件式S
P□□nSP□2n・・・USPikにおいてに=1の
場合と考えることができる。従って、前記のブレークポ
イント設定コマンドの場合と同じ方法で条件を満足する
最小の動作をした地点を求めることができる。
のプロセスに対する論理式を論理積で結合した条件式S
P□□nSP□2n・・・USPikにおいてに=1の
場合と考えることができる。従って、前記のブレークポ
イント設定コマンドの場合と同じ方法で条件を満足する
最小の動作をした地点を求めることができる。
従って、再実行は各単一プロセスに関する論理式SPよ
、に対して前述のブレークポイント設定コマンドの手順
を行う。動作制御部6は、再実行を行っている個所を表
す実際のプログラムカウンタPCの他に、分割された単
一プロセスに関する論理式の数だけ仮想的なプログラム
カウンタを作る。
、に対して前述のブレークポイント設定コマンドの手順
を行う。動作制御部6は、再実行を行っている個所を表
す実際のプログラムカウンタPCの他に、分割された単
一プロセスに関する論理式の数だけ仮想的なプログラム
カウンタを作る。
第4図にプログラムカウンタおよび変数の値の組の格納
状況を示す。すなわち、各論理式SP□、に対するプロ
グラムカウンタPC,はSP□、を満足する最小限の動
作を行った時点を求めようとする。
状況を示す。すなわち、各論理式SP□、に対するプロ
グラムカウンタPC,はSP□、を満足する最小限の動
作を行った時点を求めようとする。
動作制御部6を除き、ローカル制御部はブレークポイン
ト設定コマンドに対する動作(1) (2) (3)
(4)(5) (6)を論理式の番号jをパラメータと
してm個独立に行う、動作制御部6は以下の(4’)、
(7’)を行う。
ト設定コマンドに対する動作(1) (2) (3)
(4)(5) (6)を論理式の番号jをパラメータと
してm個独立に行う、動作制御部6は以下の(4’)、
(7’)を行う。
(4′)動作制御部6は再実行時、送信命令を実行する
度に、その時の変数x’4.x”2.・・・、X″。の
値をプログラムカウンタPCの値とともに第4図のよう
に記憶領域に格納する。
度に、その時の変数x’4.x”2.・・・、X″。の
値をプログラムカウンタPCの値とともに第4図のよう
に記憶領域に格納する。
ここで、論理式sp、に対して(4)の条件が成立して
プロセスiに対する動作制御部6がプロセスiを動作さ
せる場合には記憶領域の最後の要素の値によって以下の
(A)もしくは(B)を行う。
プロセスiに対する動作制御部6がプロセスiを動作さ
せる場合には記憶領域の最後の要素の値によって以下の
(A)もしくは(B)を行う。
(A) 論理式SP□1に対するプログラムカウンタ
PC3の値が実プログラムカウンタPCの値と一致して
いる場合(第4図ではSF3の場合)にはプロセスiの
再実行を実際に行う。
PC3の値が実プログラムカウンタPCの値と一致して
いる場合(第4図ではSF3の場合)にはプロセスiの
再実行を実際に行う。
(B) 論理式SP、jに対するプログラムカウンタ
PC,の値が実プログラムPCの値よりも小さい場合(
第4図ではSPlの場合)、次の命令の再実行はすでに
行われているので、プログラムカウンタPC,の値を増
やして再実行を行ったものとみなす。但し、その命令が
送信命令である場合には実際にメツセージを送信する代
わりに論理式の番号をパラメータに持つ仮想的メツセー
ジを送信する。
PC,の値が実プログラムPCの値よりも小さい場合(
第4図ではSPlの場合)、次の命令の再実行はすでに
行われているので、プログラムカウンタPC,の値を増
やして再実行を行ったものとみなす。但し、その命令が
送信命令である場合には実際にメツセージを送信する代
わりに論理式の番号をパラメータに持つ仮想的メツセー
ジを送信する。
(7′) いずれかの論理式(sp、Jとする)が成
立した場合には、各プロセスの動作制御部6が記憶領域
からその論理式に対するプログラムカウンタPC3の値
のときの変数X’1.X’□、・・・、x゛ゎの値を全
域制御部14に送る。全域制御部14はそれらの値から
算術式の値を計算し、出力する。そのあと再実行を続行
する。
立した場合には、各プロセスの動作制御部6が記憶領域
からその論理式に対するプログラムカウンタPC3の値
のときの変数X’1.X’□、・・・、x゛ゎの値を全
域制御部14に送る。全域制御部14はそれらの値から
算術式の値を計算し、出力する。そのあと再実行を続行
する。
なお、プロセス間の通信の方法として、複数のプロセス
が読み書きできる共有メモリを用いる方法もあるが、こ
のようなシステムに対しては共有メモリに書く操作を送
信、共有メモリから読む操作を受信とみなすと上記の方
法を適用可能である。
が読み書きできる共有メモリを用いる方法もあるが、こ
のようなシステムに対しては共有メモリに書く操作を送
信、共有メモリから読む操作を受信とみなすと上記の方
法を適用可能である。
以上説明したように、本発明の分散プログラムデバッグ
方式では各プロセスのローカル制御部が動作再現時にプ
ロセス状態の情報を通信しあうことによって、複数のプ
ロセスに関する条件式による指定をユーザに許し、条件
式を満足する最小限の動作をした時点で停止あるいは算
術式の値の出力を行うことができる。
方式では各プロセスのローカル制御部が動作再現時にプ
ロセス状態の情報を通信しあうことによって、複数のプ
ロセスに関する条件式による指定をユーザに許し、条件
式を満足する最小限の動作をした時点で停止あるいは算
術式の値の出力を行うことができる。
第1図は本発明によるデバッガの一実施例を示す図、第
2図は第1図の通信経歴管理部7での通信経歴の格納状
況を示す図、第3図はプログラム例を示した図、第4図
は動作制御部6でのプログラムカウンタおよび変数の組
の格納状況を示す図である。 1・・・システム、 2・・・プロセス、 3・・・通
信路、4・・・デバッグ対象プログラム、 5・・・ローカル制御部、 6・・・動作制御部、7・
・・通信経歴管理部、 8・・・条件式判定部、9・・
・他プロセス制御部。 10・・・通信状況管理部、 11・・・他プロセス動作制御部。 12・・・駆動要求解析部。 13・・・ローカル制御部相互の通信路、14・・・全
域制御部。 10セス1 70ロセス2 変臥り値 ゾロ之゛′ラム力ウシ7f)漣
2図は第1図の通信経歴管理部7での通信経歴の格納状
況を示す図、第3図はプログラム例を示した図、第4図
は動作制御部6でのプログラムカウンタおよび変数の組
の格納状況を示す図である。 1・・・システム、 2・・・プロセス、 3・・・通
信路、4・・・デバッグ対象プログラム、 5・・・ローカル制御部、 6・・・動作制御部、7・
・・通信経歴管理部、 8・・・条件式判定部、9・・
・他プロセス制御部。 10・・・通信状況管理部、 11・・・他プロセス動作制御部。 12・・・駆動要求解析部。 13・・・ローカル制御部相互の通信路、14・・・全
域制御部。 10セス1 70ロセス2 変臥り値 ゾロ之゛′ラム力ウシ7f)漣
Claims (1)
- (1)複数のプロセスが各々プログラムを内蔵し、プロ
セス相互間で通信を行いながら処理を進めるシステムの
分散プログラムについて、実行時の通信経歴を保存し、
その経歴をもとに動作の再現を行う分散プログラムデバ
ッグ方式において、 動作時に通信の経歴を保存し、通信経歴に従うように再
現を制御する通信経歴管理手段と、再現時にユーザが指
定した条件式を判定する条件式判定手段と、 再現時に通信状況を管理する通信状況管理手段と、 再現時に他プロセスに対して駆動要求を行う他プロセス
動作制御手段と、 再現時に他プロセスからの駆動要求を解析する駆動要求
解析手段と、 プロセス動作を制御する動作制御手段とを含むことを特
徴とする分散プログラムデバッグ方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2045231A JPH03246733A (ja) | 1990-02-26 | 1990-02-26 | 分散プログラムデバッグ方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2045231A JPH03246733A (ja) | 1990-02-26 | 1990-02-26 | 分散プログラムデバッグ方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03246733A true JPH03246733A (ja) | 1991-11-05 |
Family
ID=12713488
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2045231A Pending JPH03246733A (ja) | 1990-02-26 | 1990-02-26 | 分散プログラムデバッグ方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03246733A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001502085A (ja) * | 1996-10-04 | 2001-02-13 | フィッシャー コントロールズ インターナショナル,インコーポレイテッド | 分散型制御機能を有するプロセス制御ネットワークをデバッグし、チューニングする方法および機器 |
-
1990
- 1990-02-26 JP JP2045231A patent/JPH03246733A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001502085A (ja) * | 1996-10-04 | 2001-02-13 | フィッシャー コントロールズ インターナショナル,インコーポレイテッド | 分散型制御機能を有するプロセス制御ネットワークをデバッグし、チューニングする方法および機器 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS62502151A (ja) | 大型コンピユ−タシステムのコンピユ−タ機能をシミユレ−トするための配列 | |
| US6289394B1 (en) | Agent management system capable of readily monitoring and controlling agent | |
| US6279104B1 (en) | Debugging system for parallel processed program and debugging method thereof | |
| JPH03246733A (ja) | 分散プログラムデバッグ方式 | |
| CN115543246B (zh) | 一种bmc和服务器 | |
| JP2005234617A (ja) | マルチプロセッサデバッガおよびデバッグ方法 | |
| US5457806A (en) | Computer system including LAN analyzer and method of analyzing communication procedure | |
| JP2807026B2 (ja) | 並列プログラムの実行再現方法 | |
| JPS6265147A (ja) | バストレ−ス方式 | |
| JPS644211B2 (ja) | ||
| JPS63177231A (ja) | 並列プログラムデバグ方式 | |
| JPH0281158A (ja) | 計算機間プログラムオンライン再配置方式 | |
| JPH03156613A (ja) | オンラインデバツグ方法 | |
| JPH04373036A (ja) | 計算機システムのソフトウェア試験装置 | |
| JPH0561717A (ja) | プログラムデバツグ装置 | |
| JPS58125154A (ja) | 状態履歴記憶方式 | |
| JP2000089976A (ja) | リモートプログラムのデバッグシステム、リモートプログラムのデバッグ方法およびリモートデバッグ用プログラムを記録した記録媒体 | |
| JPS58129561A (ja) | 状態履歴記憶方式 | |
| JP2005353092A (ja) | プロセス制御システム | |
| JPH0338613B2 (ja) | ||
| CN116775664A (zh) | 一种提高时间自由度的数据库回放方法、装置、系统及介质 | |
| JPS62103738A (ja) | プログラマブルコントロ−ラ | |
| SU1112361A2 (ru) | Адаптер канал-канал | |
| JPS6250855B2 (ja) | ||
| JPS62198942A (ja) | デ−タ処理システムの実行履歴トレ−ス方式 |