JPH03246733A - Distributed program debugging system - Google Patents

Distributed program debugging system

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
processes
control unit
conditional
communication
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
JP2045231A
Other languages
Japanese (ja)
Inventor
Yoshibumi Manabe
真鍋 義文
Makoto Imase
真 今瀬
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2045231A priority Critical patent/JPH03246733A/en
Publication of JPH03246733A publication Critical patent/JPH03246733A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

PURPOSE:To permit designation for conditional equations relating to plural processes to a user and to stop processing or output the value of an arithmetic equation at a time when the minimum number of times of an operation to satisfy the conditional equation is performed by enabling the local control part of each process to communicate the information of a process state with each other when the operation is reproduced. CONSTITUTION:A function to communicate the information relating to its own process 2 with the local control part of another process by the local control part 5 in the reproduction of the operation is provided. When the conditional equations relating to the plural processes are supplied and it is required to operate another process to satisfy the conditional equation of a certain process, the driving requirement of the process is sent to the local control part 11 which controls the operation of the process. The operation of each process 2 can be controlled by a sent driving requirement. Thereby, the designation by the conditional equations relating to the plural processes can be permitted, and stoppage and the output of the arithmetic equation can be performed at a time when the minimum number of times of the operation to satisfy the conditional equation are performed.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数プロセスを有するシステムにおけるプロ
グラムを、稼働すべき対象計算機システム上で試験を行
う場合のデバッグ方式に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a debugging method for testing a program in a system having multiple processes on a target computer system to be run.

〔従来の技術〕[Conventional technology]

従来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。
Conventionally, in a debugger that targets a single distributed program, the following behavior reproduction method has been used. Regarding this, see 1, for example, T-J, LeBlancand J,
M. Mellor-Crummey: “Deb.
uggingParallel Programsw
ith In5tant Replay, “I
E E E Trans, oncow+put,
, vol, c-36.

&4.pp、471−480 (April 1987
)において論じられている。
&4. pp, 471-480 (April 1987
) is discussed in

第1図から他プロセス制御部9を除いたものが一般的な
デバッガの構成である。第1図において。
The configuration of a general debugger is shown in FIG. 1 with the other process control section 9 removed. In FIG.

システム1は通信路で接続された複数のプロセスからな
る。これらの各プロセス2に対してその動作を制御する
ローカル制御部5をおく。全域制御部14がユーザのデ
バッガコマンドを受は付ける前に一度デバッグ対象とな
るプログラム3を実行する。その際、通信経歴管理部7
は自プロセスがメツセージの受信命令を行った場合に、
そのメツセージの送信プロセス名を内部記憶領域に第2
図のように順に格納する。
System 1 consists of a plurality of processes connected through communication paths. A local control unit 5 is provided for controlling the operation of each of these processes 2. Before the global control unit 14 accepts or accepts a user's debugger command, it once executes the program 3 to be debugged. At that time, communication history management department 7
When the own process issues a message reception command,
The name of the process that sent the message is stored in the second internal storage area.
Store in order as shown in the figure.

デバッガコマンドを受は付けた後、再実行を行う。すな
わち、もう−度プログラム4を最初から実行する。
After accepting the debugger command, re-execute. That is, program 4 is executed again from the beginning.

この再実行の際、通信経歴管理部7はポインタ変数を設
ける。ポインタ変数は初期状態において通信経歴の最初
の要素を指す。この再実行時に、あるプロセスの次の命
令が受信命令であると、そのプロセスの通信経歴管理部
7はポインタ変数の指す通信経歴の要素を参照する。通
信経歴管理部7は次の命令が受信命令であり、かつポイ
ンタの差す名前のプロセスから通信路3を通じてメツセ
ージが到着していなければNOlそれ以外の場合にはY
esを出力する。
At the time of this re-execution, the communication history management unit 7 provides a pointer variable. The pointer variable initially points to the first element of the communication history. During this re-execution, if the next command of a certain process is a receive command, the communication history management unit 7 of that process refers to the element of the communication history pointed to by the pointer variable. The communication history management unit 7 returns NO if the next command is a receive command and the message has not arrived via the communication path 3 from the process with the name pointed to by the pointer, otherwise it returns Y.
Output es.

動作制御部6は通信経歴管理部7からYesを受信すれ
ばE xecuteをプロセスに送り、次の命令を実行
させる。NOを受信すればYesとなる(すなわち、次
の受信命令で受信するプロセスからのメツセージが届く
)までE xecuteを出力せず、受信命令を実行さ
せない。また、それ以外のプロセスからメツセージが届
いた(すなわち、後の受信命令における受信メツセージ
が早く届いた)場合には対応する受信命令の実行までそ
のメツセージを内部記憶領域に記憶しておく。このよう
に、通信経歴が同一になるようにローカル制御部5がプ
ロセスを動作させる限り、何度実行しても同じ動作を再
現する。
When the operation control unit 6 receives Yes from the communication history management unit 7, it sends Execute to the process and causes it to execute the next command. If NO is received, Execute is not output and the receive command is not executed until it becomes Yes (that is, a message from the process to be received by the next receive command arrives). Furthermore, if a message arrives from a process other than that (that is, a received message for a subsequent receive command arrives earlier), the message is stored in the internal storage area until the corresponding receive command is executed. In this way, as long as the local control unit 5 operates the process so that the communication history is the same, the same operation will be reproduced no matter how many times it is executed.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

再現を行うデバッガの多くは、ブレークポイント設定コ
マンドすなわちユーザが指定した条件式が成立した時点
で停止する機能および、トレース出力コマンドすなわち
ユーザが指定した条件式が成立した時点における、ユー
ザが指定した算術式の値を出力するコマンドなどを提供
している。従来のこの種のデバッグ方式では、ユーザが
入力したこれらのコマンドに対して、上記の再現時に以
下のような動作を行っていた。
Many of the debuggers that perform reproduction use breakpoint setting commands, which stop when a user-specified conditional expression is met, and trace output commands, which perform user-specified arithmetic operations when a user-specified conditional expression is met. It provides commands to output the value of an expression. In this type of conventional debugging method, the following operations are performed when reproducing the above commands in response to the commands input by the user.

条件式判定部8は自プロセスの変数の値、プログラムカ
ウンタの値などから自プロセスに関する条件式の判定を
行い、条件式が成立していればT rue、そうでなけ
ればFalseを出力する。動作制御部6は通信経歴管
理部7がYesを出力し、かつ条件式判定部8がFal
seを出力するときにExecuteを出力して次の命
令を実行させる。通信経歴管理部7がNOを出力してい
る間は何も出力せず、Yesとなるのを待つ。また、条
件式判定部8がT rueを出力すると1条件式が成立
したので再実行は中止し、全域制御部14を通じてユー
ザに条件式の成立を知らせる。
The conditional expression determination unit 8 determines the conditional expression regarding the own process based on the values of the variables of the own process, the value of the program counter, etc., and outputs True if the conditional expression holds, otherwise outputs False. The operation control unit 6 outputs Yes when the communication history management unit 7 outputs Yes, and the conditional expression determination unit 8 outputs False.
When outputting se, Execute is output to execute the next instruction. While the communication history management section 7 is outputting NO, it does not output anything and waits for it to become Yes. Further, when the conditional expression determining unit 8 outputs True, one conditional expression has been established, so re-execution is stopped, and the user is notified through the area control unit 14 that the conditional expression has been established.

このように、ローカル制御部5は自プロセスに関する条
件式のみから再現動作の制御を行い、他プロセスの条件
式の成立状況の情報を知らずに動作する。従って、コマ
ンドの条件式には単一プロセスに関する論理式のみが許
され、複数のプロセスに関する条件式による指定ができ
なかった。例えば、プロセス1およびプロセス2に関す
る論理式(V工=1)n(v2=1)(v工、v2はそ
れぞれプロセス1,2の変数とする)が成立したとき停
止することを考える。このとき、従来のデバッガではブ
レークポイントの条件式としてプロセス1の条件式判定
部にV□=1、プロセス2の条件式判定部にv2=1を
与えて実行することになる。
In this way, the local control unit 5 controls the reproduction operation only from the conditional expressions related to its own process, and operates without knowing information about the fulfillment status of the conditional expressions of other processes. Therefore, only logical expressions relating to a single process are allowed as conditional expressions for commands, and specification using conditional expressions relating to multiple processes is not possible. For example, the logical formula related to process 1 and process 2 (V = 1) N (V2 = 1) (V2, V2, each is a variable in process 1 and 2) is considered. At this time, in the conventional debugger, V□=1 is given to the conditional expression determination section of process 1 and v2=1 is given to the conditional expression determination section of process 2 as the conditional expression of the breakpoint and executed.

プロセス1とプロセス2がそれぞれ第3図のプログラム
を実行する場合、従来のデバッガにおいては、プロセス
1が命令13を実行した直後、条件式が成立するため動
作制御部は再実行を停止する。
When process 1 and process 2 each execute the program shown in FIG. 3, in the conventional debugger, the conditional expression is satisfied immediately after process 1 executes instruction 13, so the operation control unit stops re-execution.

従って、プロセス2はv2=1が成立していないにもか
かわらず命令25を越えて再実行することができない。
Therefore, process 2 cannot re-execute beyond instruction 25 even though v2=1 does not hold.

従って、ユーザがプロセス1に対する条件式V工=1を
一旦解除して動作させ、そのあと再び条件式を設定する
ことを繰り返す必要があった。トレース出力コマンドに
ついても同様に、ユーザの介在なしには複数のプロセス
に関する条件式が成立した時の算術式の値を求めること
ができない。
Therefore, it was necessary for the user to once release the conditional expression V = 1 for process 1 to operate the process, and then repeat the process of setting the conditional expression again. Similarly, with respect to the trace output command, the value of an arithmetic expression when a conditional expression regarding a plurality of processes is satisfied cannot be obtained without user intervention.

また、ブレークポイントの条件式としてプロセス1のみ
の条件式V□=1が与えられたとき、従来の方法ではプ
ロセス1は命令13を実行した直後停止するが、プロセ
ス2は命令24まで動作し、条件式を成立させるため、
各プロセスが最小限の動作を行った時点の状態、すなわ
ち、エラーが顕在化した直後のシステム状態で停止する
ことはできない。トレース出力コマンドについても同様
に、条件式を成立させるために最小限の動作を行った時
点の算術式の値を求めることはできない。
Also, when the conditional expression V□=1 for only process 1 is given as a breakpoint conditional expression, in the conventional method, process 1 stops immediately after executing instruction 13, but process 2 runs up to instruction 24, In order to satisfy the conditional expression,
It is not possible to stop the system in the state in which each process has performed its minimum operations, that is, in the system state immediately after the error has occurred. Similarly, with respect to the trace output command, it is not possible to obtain the value of the arithmetic expression at the time when the minimum number of operations have been performed to satisfy the conditional expression.

本発明の目的は、ブレークポイント設定コマンドの条件
式に、プロセスに対する論理式を論理積で結合した、複
数プロセスに関する条件式による指定を許し、また、ト
レース出力コマンドの条件式に、プロセスに対する論理
式を論理積または論理和で結合した、複数プロセスに関
する条件式による指定を許して、条件式を成立させるた
めに最小限の動作を行った時点での停止および算術式の
値の出力を行い、ユーザによって自然な形でのデバッガ
コマンドの記述を可能とし、がっ、バグが顕在化した直
後のシステムの状態をユーザに認識させることができる
分散プログラムデバッグ方式を提供することにある。
It is an object of the present invention to allow specification of a conditional expression for multiple processes by combining logical expressions for processes by logical product in the conditional expression for a breakpoint setting command, and to specify a logical expression for a process as a conditional expression for a trace output command. It allows the specification of multiple processes using conditional expressions that are combined by logical product or logical sum, and allows the user to stop when the minimum number of operations are performed to satisfy the conditional expression and output the value of the arithmetic expression. The object of the present invention is to provide a distributed program debugging method that allows debugger commands to be written in a natural manner and allows a user to recognize the state of the system immediately after a bug becomes apparent.

〔課題を解決するための手段〕[Means to solve the problem]

上記目的を達成するために、本発明のデバッグ方式では
、動作の再現時にローカル制御部が他プロセスのローカ
ル制御部に対して自プロセスに関する情報を通信する機
能を設けたことを特徴とする。
In order to achieve the above object, the debugging method of the present invention is characterized by providing a function for the local control unit to communicate information regarding its own process to the local control units of other processes when reproducing operations.

〔作 用〕[For production]

本方式では、複数のプロセスに関する条件式が与えられ
、あるプロセスに関する条件式を満足させるために他の
プロセスを動作させる必要がある場合、そのプロセスの
動作を制御するローカル制御部に対してプロセスの駆動
要求を送ることができる。送られた駆動要求をもとに各
プロセスの動作を制御することによって、複数のプロセ
スに関する条件式による指定をユーザに許し、条件式を
成立させるための最小限の動作を行った時点を求めるこ
とができる。
In this method, when conditional expressions related to multiple processes are given and it is necessary to operate other processes in order to satisfy the conditional expression related to a certain process, the local control unit that controls the operation of the process is Drive requests can be sent. By controlling the operation of each process based on the sent drive request, the user is allowed to specify conditional expressions regarding multiple processes, and the point in time when the minimum amount of operation is performed to satisfy the conditional expression is determined. I can do it.

〔実施例〕〔Example〕

以下、本発明の一実施例について図面により説明する。 An embodiment of the present invention will be described below with reference to the drawings.

第1図は本発明の一実施例を説明する構成図である。1
はデバッグ対象となる分散プログラムをIj!働させる
ため、通信路で接続された複数のプロセスから成るシス
テムで、2はその各プロセス、3はプロセス間を接続す
る通信路、4は各プロセスに対するデバッグ対象となる
プログラムである。
FIG. 1 is a configuration diagram illustrating an embodiment of the present invention. 1
Ij! is the distributed program to be debugged. The system is made up of a plurality of processes connected by communication channels in order to operate the system. Reference numeral 2 indicates each of the processes, 3 indicates a communication channel connecting the processes, and 4 indicates a program to be debugged for each process.

5はプロセスの動作を制御するローカル制御部。5 is a local control unit that controls the operation of the process.

6はプロセスに対して動作を命令するE xecute
信号を出力する動作制御部、7は動作時に通信経歴を保
存し、再実行時に次の命令を実行していい場合に信号Y
esを出力し、再実行時の通信経歴が同一になるよう制
御する通信経歴管理部、8は再実行時にユーザコマンド
の条件式の成立を判定し、成立している時に信号Tru
eを出力し、成立していない時に信号Falseを出力
する条件式判定部、9は再実行時に他のプロセスのロー
カル制御部との通信を行う他プロセス制御部、10は再
実行時の他プロセスとの通信状況を記録する通信状況管
理部、11は他プロセスを動作させる必要がある場合に
他プロセスのローカル制御部に対して駆動要求メツセー
ジを送信する他プロセス動作制御部、12は他プロセス
から受信した駆動要求メツセージを解析し、他プロセス
のために自プロセスが動作を行う必要がある場合に信号
E xecute Requestを出力する駆動要求
解析部である。13はローカル制御部相互の通信を行う
通信路である。14はユーザからのコマンド入力、およ
びデバッガからの出力を行う全域制御部である。
6 is Execute, which instructs the process to perform an operation.
An operation control unit 7 that outputs a signal saves the communication history during operation, and outputs a signal Y when the next command can be executed when re-executing.
A communication history management unit 8 outputs es and controls the communication history to be the same at the time of re-execution, and a communication history management unit 8 determines whether the conditional expression of the user command is satisfied at the time of re-execution, and when it is true, outputs a signal Tru.
e, and outputs a signal False when the condition is not satisfied; 9 is another process control unit that communicates with the local control unit of another process during re-execution; 10 is another process during re-execution 11 is a communication status management unit that records the communication status with the other process; 11 is another process operation control unit that sends a drive request message to the local control unit of the other process when it is necessary to operate the other process; This drive request analysis unit analyzes the received drive request message and outputs a signal Execute Request when the own process needs to perform an operation for another process. Reference numeral 13 denotes a communication path for mutual communication between the local control units. Reference numeral 14 denotes a global control unit for inputting commands from the user and outputting from the debugger.

プロセスに対する論理式を論理積により結合した、複数
プロセスに関する条件式を持つブレークポイント設定コ
マンドおよびトレース出力コマンドに対しては以下のよ
うに動作する。
The following operations are performed for breakpoint setting commands and trace output commands that have conditional expressions related to multiple processes, in which logical expressions for processes are combined by logical AND.

ユーザが入力したコマンドの条件式をS P 1inS
PL、In・・・n5Plk(SP13はプロセX i
 j Lニー関する論理式)とする、全域制御部14が
この論理式を単一プロセスに関する論理式に分割し、分
割された論理式SP□、をプロセスijの条件式判定部
8の記憶領域に格納する。
The conditional expression of the command input by the user is S P 1inS
PL, In...n5Plk (SP13 is Process X i
The global control unit 14 divides this logical formula into logical formulas related to a single process, and stores the divided logical formulas SP□ in the storage area of the conditional expression determination unit 8 of the process ij. Store.

再実行の際、ローカル制御部5は以下のように動作する
At the time of re-execution, the local control unit 5 operates as follows.

(1)通信状態管理部10は自プロセスがそれまでに送
信、受信したメツセージ数を相手プロセスごとに常に記
録する。
(1) The communication state management unit 10 always records the number of messages sent and received by the own process for each partner process.

(2)通信経歴管理部7は前述のように通信経歴を再現
するように制御する。次の命令が受信でかつメツセージ
が通信路3から届いていない場合にのみNOlそれ以外
の時にはYesを出力する。
(2) The communication history management unit 7 controls to reproduce the communication history as described above. It outputs NO only when the next command is received and no message has arrived from the communication path 3; otherwise it outputs Yes.

(3)条件式判定部8は自プロセスに関する論理式が満
足されていないときにF alse、それ以外の時(論
理式が満足されている場合、およびこのプロセスに関す
る論理式が存在しない場合) Trueを出力する。
(3) The conditional expression determination unit 8 returns False when the logical expression regarding the own process is not satisfied, and True otherwise (when the logical expression is satisfied and when there is no logical expression regarding this process). Output.

(4)動作制御部6は以下の条件が成立した場合に自プ
ロセスの次の命令の再実行を行う。
(4) The operation control unit 6 re-executes the next instruction of its own process when the following conditions are met.

条件式判定部8がF alsoを出力するか駆動要求解
析部12がE xecute Requestを出力し
、かつ通信経歴管理部7がYesを出力する。
The conditional expression determination unit 8 outputs F also, the drive request analysis unit 12 outputs Execute Request, and the communication history management unit 7 outputs Yes.

(5)他プロセス動作制御部11は他プロセスを動作さ
せることが必要である場合、すなわち条件式判定部8が
F alseを出力するか駆動要求解析部12がE x
ecuteを出力し、かつ通信経歴管理部7がNoを出
力する場合に、以下に示すプロセスに対し、以下のよう
な駆動要求メツセージを、通信路13を通じて送る。
(5) When the other process operation control unit 11 needs to operate another process, that is, the conditional expression determination unit 8 outputs False or the drive request analysis unit 12 outputs Ex
ecute and when the communication history management unit 7 outputs No, the following drive request message is sent to the process shown below through the communication path 13.

次の命令で受信するメツセージの送信プロセス(Qとす
る)に対して、Qから次に受信するメツセージの番号(
通信状態管理部10が管理している、Qからそれまでに
受信したメツセージ数に1を加えたもの)から成る駆動
要求メツセージを送る。
For the message transmission process (denoted as Q) to be received by the next command, the number of the next message to be received from Q (
A drive request message consisting of 1 added to the number of messages received so far from Q, which is managed by the communication state management section 10, is sent.

(6)駆動要求解析部12は他プロセス(jとする)の
動作制御部から要求駆動メツセージを受信すると、以下
の操作を行う。
(6) When the drive request analysis unit 12 receives a request drive message from the operation control unit of another process (referred to as j), it performs the following operations.

通信状態管理部10が記憶している、Jに送信したメツ
セージ数が駆動要求メツセージ内のメツセージ番号より
も小さい場合、E xecute Requestを出
力する。それ以外の場合には、何も出力しない。
If the number of messages sent to J stored in the communication state management section 10 is smaller than the message number in the drive request message, an Execute Request is output. Otherwise, nothing is output.

(7)すべてのプロセスの動作制御部が自プロセスを動
作させなくなった時が条件式が成立した時点であり、こ
れを全域制御部14が検出する。ブレークポイント設定
コマンドであれば停止したことをユーザに通知し、トレ
ース出力コマンドであれば各ローカル制御部に、算術式
に現れる変数の現在の値を問い合わせ、その答から算術
式の値を求めて出力したのち各ローカル制御部を再起動
する。
(7) The conditional expression is satisfied when the operation control units of all processes stop operating their own processes, and the entire area control unit 14 detects this. If it is a breakpoint setting command, it will notify the user that it has stopped, and if it is a trace output command, it will query each local control unit for the current value of the variable that appears in the arithmetic expression, and then calculate the value of the arithmetic expression from the answer. After outputting, restart each local control unit.

プロセスに対する論理式を論理和で結合した。Logical expressions for processes are combined using logical OR.

複数プロセスに関する条件式を持つトレース出力コマン
ドに対しては以下のように動作する。
The trace output command that has conditional expressions related to multiple processes operates as follows.

ユーザが入力したトレース出力コマンドの条件式をSP
よ、USP工2U・・・USP工、とする。全域制御部
14は条件式を単一プロセスに関する論理式に分割し、
分割された論理式SP、、をプロセスijの条件式判定
部8の記憶領域に格納する。また、出力する算術式に現
れる変数をプロセスごとに分け、プロセスlの変数名(
X’1.X”2.・・・、X”。
SP the conditional expression of the trace output command input by the user.
YO, USP Engineering 2U...USP Engineering. The global control unit 14 divides the conditional expression into logical expressions regarding a single process,
The divided logical expressions SP, , are stored in the storage area of the conditional expression determination unit 8 of the process ij. In addition, the variables that appear in the arithmetic expression to be output are divided by process, and the variable name of process l (
X'1. X"2....,X".

とする)をプロセス1のローカル制御部の記憶領域に格
納する。
) is stored in the storage area of the local control unit of process 1.

この分割された各単一プロセスに関する論理式は、前述
のプロセスに対する論理式を論理積で結合した条件式S
P□□nSP□2n・・・USPikにおいてに=1の
場合と考えることができる。従って、前記のブレークポ
イント設定コマンドの場合と同じ方法で条件を満足する
最小の動作をした地点を求めることができる。
The logical expression for each of the divided single processes is the conditional expression S
P□□nSP□2n... can be considered as the case where =1 in USPik. Therefore, the point where the minimum movement that satisfies the conditions can be found using the same method as in the case of the breakpoint setting command described above.

従って、再実行は各単一プロセスに関する論理式SPよ
、に対して前述のブレークポイント設定コマンドの手順
を行う。動作制御部6は、再実行を行っている個所を表
す実際のプログラムカウンタPCの他に、分割された単
一プロセスに関する論理式の数だけ仮想的なプログラム
カウンタを作る。
Therefore, re-execution performs the breakpoint setting command procedure described above for the logical formula SP for each single process. In addition to the actual program counter PC representing the location where re-execution is being performed, the operation control unit 6 creates virtual program counters equal to the number of logical expressions related to the divided single process.

第4図にプログラムカウンタおよび変数の値の組の格納
状況を示す。すなわち、各論理式SP□、に対するプロ
グラムカウンタPC,はSP□、を満足する最小限の動
作を行った時点を求めようとする。
FIG. 4 shows the storage status of a set of program counter and variable values. That is, the program counter PC, for each logical formula SP□, attempts to find the point in time when the minimum operation that satisfies SP□ has been performed.

動作制御部6を除き、ローカル制御部はブレークポイン
ト設定コマンドに対する動作(1) (2) (3) 
(4)(5) (6)を論理式の番号jをパラメータと
してm個独立に行う、動作制御部6は以下の(4’)、
 (7’)を行う。
Except for the operation control unit 6, the local control unit operates in response to breakpoint setting commands (1) (2) (3)
The operation control unit 6 performs (4), (5), and (6) independently for m pieces using the logical formula number j as a parameter, as shown in (4') below.
Perform (7').

(4′)動作制御部6は再実行時、送信命令を実行する
度に、その時の変数x’4.x”2.・・・、X″。の
値をプログラムカウンタPCの値とともに第4図のよう
に記憶領域に格納する。
(4') At the time of re-execution, the operation control unit 6 sets the current variable x'4. x"2....,X". The value is stored together with the value of the program counter PC in the storage area as shown in FIG.

ここで、論理式sp、に対して(4)の条件が成立して
プロセスiに対する動作制御部6がプロセスiを動作さ
せる場合には記憶領域の最後の要素の値によって以下の
(A)もしくは(B)を行う。
Here, if the condition (4) is satisfied for the logical formula sp, and the operation control unit 6 for the process i operates the process i, the following (A) or Do (B).

(A)  論理式SP□1に対するプログラムカウンタ
PC3の値が実プログラムカウンタPCの値と一致して
いる場合(第4図ではSF3の場合)にはプロセスiの
再実行を実際に行う。
(A) If the value of the program counter PC3 for the logical formula SP□1 matches the value of the actual program counter PC (in the case of SF3 in FIG. 4), the process i is actually re-executed.

(B)  論理式SP、jに対するプログラムカウンタ
PC,の値が実プログラムPCの値よりも小さい場合(
第4図ではSPlの場合)、次の命令の再実行はすでに
行われているので、プログラムカウンタPC,の値を増
やして再実行を行ったものとみなす。但し、その命令が
送信命令である場合には実際にメツセージを送信する代
わりに論理式の番号をパラメータに持つ仮想的メツセー
ジを送信する。
(B) If the value of the program counter PC for the logical formula SP,j is smaller than the value of the actual program PC (
In the case of SP1 in FIG. 4, since the next instruction has already been re-executed, it is assumed that the value of the program counter PC, has been increased and re-execution has been performed. However, if the command is a transmission command, instead of actually transmitting a message, a virtual message having a logical formula number as a parameter is transmitted.

(7′)  いずれかの論理式(sp、Jとする)が成
立した場合には、各プロセスの動作制御部6が記憶領域
からその論理式に対するプログラムカウンタPC3の値
のときの変数X’1.X’□、・・・、x゛ゎの値を全
域制御部14に送る。全域制御部14はそれらの値から
算術式の値を計算し、出力する。そのあと再実行を続行
する。
(7') When any logical formula (sp, J) is established, the operation control unit 6 of each process retrieves the value of the program counter PC3 for that logical formula from the storage area, the variable X'1. .. The values of X'□, . . . , x゛ゎ are sent to the area control section 14. The global control unit 14 calculates the value of the arithmetic expression from these values and outputs it. Then continue rerunning.

なお、プロセス間の通信の方法として、複数のプロセス
が読み書きできる共有メモリを用いる方法もあるが、こ
のようなシステムに対しては共有メモリに書く操作を送
信、共有メモリから読む操作を受信とみなすと上記の方
法を適用可能である。
Note that as a method of communication between processes, there is also a method of using shared memory that can be read and written by multiple processes, but for such systems, operations that write to the shared memory are considered as sending, and operations that read from the shared memory are considered as receiving. and the above method can be applied.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、本発明の分散プログラムデバッグ
方式では各プロセスのローカル制御部が動作再現時にプ
ロセス状態の情報を通信しあうことによって、複数のプ
ロセスに関する条件式による指定をユーザに許し、条件
式を満足する最小限の動作をした時点で停止あるいは算
術式の値の出力を行うことができる。
As explained above, in the distributed program debugging method of the present invention, the local control units of each process communicate process state information when reproducing operations, allowing the user to specify conditional expressions regarding multiple processes, and It is possible to stop or output the value of an arithmetic expression when the minimum amount of operation that satisfies is completed.

【図面の簡単な説明】[Brief explanation of drawings]

第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)漣
FIG. 1 is a diagram showing an embodiment of a debugger according to the present invention, FIG. 2 is a diagram showing the storage status of communication history in the communication history management section 7 of FIG. 1, and FIG. 3 is a diagram showing an example of a program. , FIG. 4 is a diagram showing the storage status of a program counter and a set of variables in the operation control unit 6. DESCRIPTION OF SYMBOLS 1... System, 2... Process, 3... Communication path, 4... Program to be debugged, 5... Local control section, 6... Operation control section, 7.
...Communication history management section, 8...Conditional expression judgment section, 9...
・Other process control section. 10...Communication status management unit, 11...Other process operation control unit. 12... Drive requirement analysis section. 13... Communication path between local control units, 14... Area control unit. 10 cess 1 70 cess 2 Change value zoro no ゛'ram power cow 7f) Ren

Claims (1)

【特許請求の範囲】[Claims] (1)複数のプロセスが各々プログラムを内蔵し、プロ
セス相互間で通信を行いながら処理を進めるシステムの
分散プログラムについて、実行時の通信経歴を保存し、
その経歴をもとに動作の再現を行う分散プログラムデバ
ッグ方式において、 動作時に通信の経歴を保存し、通信経歴に従うように再
現を制御する通信経歴管理手段と、再現時にユーザが指
定した条件式を判定する条件式判定手段と、 再現時に通信状況を管理する通信状況管理手段と、 再現時に他プロセスに対して駆動要求を行う他プロセス
動作制御手段と、 再現時に他プロセスからの駆動要求を解析する駆動要求
解析手段と、 プロセス動作を制御する動作制御手段とを含むことを特
徴とする分散プログラムデバッグ方式。
(1) For distributed programs in a system where multiple processes each have a built-in program and the processes proceed while communicating with each other, the communication history at the time of execution is saved,
In the distributed program debugging method that reproduces the operation based on the history, there is a communication history management means that saves the communication history during operation and controls reproduction according to the communication history, and a conditional expression specified by the user at the time of reproduction. A conditional expression judgment means for determining, a communication status management means for managing the communication status during reproduction, another process operation control means for issuing drive requests to other processes during reproduction, and an analysis of drive requests from other processes during reproduction. A distributed program debugging method comprising a drive request analysis means and an operation control means for controlling process operation.
JP2045231A 1990-02-26 1990-02-26 Distributed program debugging system Pending JPH03246733A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2045231A JPH03246733A (en) 1990-02-26 1990-02-26 Distributed program debugging system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2045231A JPH03246733A (en) 1990-02-26 1990-02-26 Distributed program debugging system

Publications (1)

Publication Number Publication Date
JPH03246733A true JPH03246733A (en) 1991-11-05

Family

ID=12713488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2045231A Pending JPH03246733A (en) 1990-02-26 1990-02-26 Distributed program debugging system

Country Status (1)

Country Link
JP (1) JPH03246733A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001502085A (en) * 1996-10-04 2001-02-13 フィッシャー コントロールズ インターナショナル,インコーポレイテッド Method and apparatus for debugging and tuning a process control network with distributed control functions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001502085A (en) * 1996-10-04 2001-02-13 フィッシャー コントロールズ インターナショナル,インコーポレイテッド Method and apparatus for debugging and tuning a process control network with distributed control functions

Similar Documents

Publication Publication Date Title
JP4600601B1 (en) Debug support device, debug support method, and debug support program
JPH03246733A (en) Distributed program debugging system
JPS6089274A (en) Vector mask control system
KR960014980B1 (en) Computer system including lan analyzer and method of analyzing communication procedure
JPH04362783A (en) Cad system having simultaneous concurrent processing function at plural terminals
JPS63177231A (en) Debug system for parallel program
JPS644211B2 (en)
JP2807026B2 (en) Execution reproduction method of parallel program
JPH0281158A (en) Inter-computer program on-line reallocation system
JPH04373036A (en) Software testing device for computer system
JPH03156613A (en) On-line debugging method
JPS58129561A (en) State log storing system
JPH11238042A (en) Decentralized simulation control unit
JP2005353092A (en) Process control system
JPS58125154A (en) State hysteresis storing system
JP2000089976A (en) System and method for debugging remote program and recording medium stored with remote program debugging program
JPH0561717A (en) Program debugging device
JPH0581336A (en) Data base arithmetic processor
JPS61282946A (en) Programmable controller
JPS6394303A (en) Arithmetic control system
JP2645175B2 (en) Plant control system
JPH02135548A (en) Test processing system for program
JPS58172703A (en) Process controller
JPH0338613B2 (en)
JPS6073768A (en) Instruction alteration system for i/o controller