JP2782971B2 - Debugging method for distributed information processing system - Google Patents

Debugging method for distributed information processing system

Info

Publication number
JP2782971B2
JP2782971B2 JP3060781A JP6078191A JP2782971B2 JP 2782971 B2 JP2782971 B2 JP 2782971B2 JP 3060781 A JP3060781 A JP 3060781A JP 6078191 A JP6078191 A JP 6078191A JP 2782971 B2 JP2782971 B2 JP 2782971B2
Authority
JP
Japan
Prior art keywords
remote procedure
debugging
procedure call
unit
source code
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.)
Expired - Fee Related
Application number
JP3060781A
Other languages
Japanese (ja)
Other versions
JPH05197586A (en
Inventor
惠久 川邉
一郎 山下
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP3060781A priority Critical patent/JP2782971B2/en
Publication of JPH05197586A publication Critical patent/JPH05197586A/en
Application granted granted Critical
Publication of JP2782971B2 publication Critical patent/JP2782971B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【産業上の利用分野】本発明は、複数の計算機を互いに
関連制御することによって、複数のプログラムを分散し
て処理する分散型の情報処理システムに関し、特にこう
したプログラムの並行、並列あるいは分散処理に際して
そのシステム内で並行・並列動作する各プロセスを対象
として好適なデバッグ方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed information processing system for distributing and processing a plurality of programs by controlling a plurality of computers in relation to each other, and more particularly to a parallel, parallel or distributed processing of such programs. The present invention relates to a debugging method suitable for each process that operates in parallel in the system.

【0002】[0002]

【従来の技術】近年、ネットワークの普及や計算機の低
価格化と、計算機に要求される処理の複雑化と多様化に
より、複数のプロセス各々について通信チャネルを介し
た通信手段を通じて互いに通信を行い、協調して並行・
並列動作するプロセスからなるプログラムが記述される
ようになっている。特に、広域ネットワークや狭域ネッ
トワークで結合された複数の計算機に分散配置された前
記並行・並列動作するプロセスからなる分散プログラム
のプログラミングが行われるようになっている。このよ
うなプログラミングにおいては、協調して並行・並列動
作するプロセスを容易に記述する方法やデバッグする方
法の開拓が大きな課題となっている。
2. Description of the Related Art In recent years, due to the spread of networks, lower prices of computers, and the complexity and diversification of processing required for computers, each of a plurality of processes communicates with each other through communication means via communication channels. Cooperate in parallel
A program consisting of processes operating in parallel is described. In particular, programming of a distributed program comprising the above-mentioned processes operating in parallel and in parallel distributed to a plurality of computers connected by a wide area network or a narrow area network is performed. In such programming, the development of a method for easily describing a process that cooperates in parallel / parallel operation and a method for debugging is a major issue.

【0003】協調して並行・並列動作するプロセスを容
易に記述する方法の一つとしては、プログラムを、処理
を提供するサーバと処理結果を利用するクライアントと
に機能分離を行い、記述することによりモジュール化し
プログラミングを行う方法がある。特に、サーバとクラ
イアントの機能分離の方式の一つに遠隔手続き呼出しと
して知られる方法がある(たとえば、「分散コンピュー
ティング環境の最前線」、日経エレクトロニクス、19
90,6,11、No.502、pp122−148参
照)。遠隔手続き呼出しにおいては、処理の単位を手続
きとして捉え、同一あるいは遠隔の計算機上のプロセス
に対し手続きを指定し引数を送信し、手続きの返り値を
受信する。また手続きの副作用が情報処理システムの状
態に反映されることで、処理が行われる。この遠隔手続
呼出しを導入することにより簡単に協調して並行・並列
動作するプロセスからなるプログラムのプログラミング
が可能である。デバッグに際しても簡単に協調して並行
・並列動作するプロセスをいかに扱うかが大きな問題の
一つとなっている。従来のデバッグ方式は単一のプロセ
スを扱うにすぎなかったが、近年では並行・並列動作す
るプロセスを扱うことが可能なデバッグ方式も提案され
ている(たとえば、 (1) D.Caswell、D.Black「Impleme
nting a March Debugger For Multithreaded Applicati
ons」Proc. of USENIX, Winter '90, Nov. 1989 pp 25-
39、(2) 「Domain Distributed Debugging Enviroment
Reference」Apollo ComputerInc.,Order No.011024-A0
0、 (3) 特開平1−200563号公報等参照)。ま
た、遠隔手続呼出し機能に通信障害の発生や遠隔手続呼
出しのに関する再試行の情報を管理する機構を組み込
み、遠隔手続呼出しのデバッグを補助するデバッグ方式
も提案されている(たとえば、R.Cooper 「Pilgrim: A
Debugger for Distributed Systems」Proc. of 7th Int
Conf. on Distributed Computing Systems, pp.458-46
5, Sep. 1987参照)。
[0003] One method of easily describing processes that operate in parallel / parallel in cooperation is to separate programs into a server that provides processing and a client that uses the processing results, and describe them. There is a way to modularize and program. In particular, one of the methods of separating the functions of the server and the client is a method known as remote procedure call (for example, “Front line of distributed computing environment”, Nikkei Electronics, 19
90, 6, 11; 502, pp. 122-148). In the remote procedure call, a unit of processing is regarded as a procedure, a procedure is designated to a process on the same or a remote computer, an argument is transmitted, and a return value of the procedure is received. The processing is performed by reflecting the side effect of the procedure in the state of the information processing system. By introducing this remote procedure call, it is possible to easily program a program consisting of processes that operate in parallel and in parallel. One of the major issues in debugging is how to handle processes that operate in parallel and in parallel in a simple manner. Conventional debugging methods deal only with a single process, but recently debugging methods that can handle processes that operate in parallel or in parallel have been proposed (for example, (1) D. Caswell, Black "Impleme
nting a March Debugger For Multithreaded Applicati
ons "Proc. of USENIX, Winter '90, Nov. 1989 pp 25-
39, (2) `` Domain Distributed Debugging Enviroment
Reference ”Apollo Computer Inc., Order No. 011024-A0
0, (3) See JP-A-1-200563). In addition, a debugging method has been proposed which incorporates a mechanism for managing information on the occurrence of communication failures and retries relating to the remote procedure call into the remote procedure call function to assist in debugging the remote procedure call (for example, R. Cooper " Pilgrim: A
Debugger for Distributed Systems '' Proc. Of 7th Int
Conf.on Distributed Computing Systems, pp.458-46
5, Sep. 1987).

【0004】[0004]

【発明が解決しようとする課題】しかし、従来のプログ
ラムデバッグ方式では、並行・並列動作するプロセスを
デバッグ可能とする機能を重点として考えられており、
特に遠隔手続呼出しを用いた並行・並列動作するプロセ
スのプログラムをあたかも単一プロセスのプログラムと
同様に簡単にデバッグすることは困難であるという不具
合があった。本発明は、前記従来技術のプログラムデバ
ッグ方式の持つ不具合に鑑み、遠隔手続呼出しを用いて
互いに通信を行う複数のプロセスにより実現される情報
処理システムにおいて、遠隔手続呼出しを意識しないで
簡単にデバッグができるプログラムデバッグ方式を提供
することを課題とする。
However, in the conventional program debugging method, a function capable of debugging a process that operates in parallel and in parallel is considered as an important point.
In particular, there is a problem that it is difficult to debug a program of a process operating in parallel / parallel using a remote procedure call as easily as a program of a single process. SUMMARY OF THE INVENTION The present invention has been made in view of the above-described problems of the conventional program debugging method, and has been described in an information processing system which is realized by a plurality of processes communicating with each other using a remote procedure call. It is an object of the present invention to provide a program debugging method that can be used.

【0005】[0005]

【課題を解決するための手段】本発明は、上記課題を解
決するために、図1に示すように、ネットワークで互い
に接続された複数の計算機上で、複数のプロセス1,2
(図2の203又は213で実行されるプロセス)が遠
隔手続呼出しにより互いに通信を行い並行・並列動作を
実現する分散型の情報処理システムのデバッグ方式にお
いて、前記複数のプロセス1,2の各々の実行される計
算機上で、各プロセスのデバッグを行う複数の衛星デバ
ッグ手段3,4(図2の20、21)と、その複数の衛
星デバッグ手段3,4の動作を遠隔制御する中央デバッ
グ手段5(図2の22)とを備えている。そして、その
中央デバッグ手段5は、衛星デバッグ手段3(又は4)
のデバッグ対象のプロセスに遠隔手続呼出しがあること
をその遠隔手続呼出しの発行の前に検出する遠隔手続呼
出し発行検出手段51(図2の224)と、前記遠隔手
続呼出しで呼び出されたプロセスの終了を検出する遠隔
手続呼出し終了検出手段52(図2の225)と、前記
遠隔手続呼出し発行検出手段51の遠隔手続呼出しの検
出に応答して、その遠隔手続呼出しにより呼び出される
プロセスを有する計算機上の衛星デバッグ手段を起動す
ると共に、前記遠隔手続呼出し終了検出手段のプロセス
の終了の検出に応答して、そのプロセスの呼出し元の衛
星デバッグ手段によるデバッグを再開する制御手段53
(図2の222)とを有する。
According to the present invention, as shown in FIG. 1, a plurality of processes 1 and 2 are executed on a plurality of computers connected to each other by a network.
(Process executed in 203 or 213 in FIG. 2) communicates with each other by remote procedure call to realize a parallel / parallel operation. A plurality of satellite debugging means 3 and 4 (20 and 21 in FIG. 2) for debugging each process on a computer to be executed, and a central debugging means 5 for remotely controlling the operations of the plurality of satellite debugging means 3 and 4 (22 in FIG. 2). Then, the central debugging means 5 includes the satellite debugging means 3 (or 4).
Remote procedure call issuance detecting means 51 (224 in FIG. 2) for detecting before the issuance of the remote procedure call that the process to be debugged has a remote procedure call, and ending the process called by the remote procedure call And a remote procedure call termination detecting means 52 (225 in FIG. 2) for detecting the remote procedure call is detected by the remote procedure call issue detecting means 51 in response to detection of the remote procedure call. Control means 53 for activating the satellite debugging means and in response to the remote procedure call completion detecting means detecting the end of the process, restarting the debugging by the satellite debugging means which called the process
(222 in FIG. 2).

【0006】[0006]

【作用】上記構成において、第1の衛星デバッグ手段3
によりデバッグが行われているひとつのプロセス(以
下、クライアントプロセス)1が遠隔手続呼出しを発行
するとき、遠隔手続呼出し発行検出手段51はその遠隔
手続呼出しの発行を検出するとともに、その要求される
遠隔手続を含む他のプロセス(以下、サーバプロセス)
2を特定する。中央デバッグ手段4は要求される遠隔手
続を含むサーバプロセス2が動作している計算機上に第
2の衛星デバッグ手段5を起動させる。また、切り替え
制御手段53は、中央デバッグ手段5と衛星デバッグ手
段との間の通信を、第1の衛星デバッグ手段3から第2
の衛星デバッグ手段4に切り替えることにより、クライ
アントプロセスのデバッグを行う者はサーバプロセス2
のデバッグをクライアントプロセス1のデバッグに引続
き行う。上記遠隔手続の実行が終了すると、遠隔手続呼
出し終了検出手段52は遠隔手続呼出しの実行の終了を
検出する。切り替え制御手段53は、第2の衛星デバッ
グ手段4に、サーバプロセス2のデバッグを終了するよ
うに指示する。また、サーバプロセス2のデバッグが終
了すると、第2の衛星デバッグ手段4の動作を終了させ
る。そして、第1の衛星デバッグ手段3にデバッグを行
わせるよう起動状態を切り替える。これにより、サーバ
プロセス2のデバッグを行う者はサーバプロセス2のデ
バッグから引続きクライアントプロセスのデバッグを行
うことができるものである。以上のように、本発明は、
サーバプロセスとクライアントプロセスの衛星デバッグ
手段を適切に制御することができるので、デバッグをす
る者には、遠隔手続呼出しが発行されたときの通信手順
や引数の通信部分、あるいは、遠隔手続呼出しが終了し
たときの通信手順や返り値の通信部分は見えなくて、あ
たかもクライアントプロセスから単なるシングルプロセ
ス上の、遠隔手続ではない手続呼出しが実行され、返り
値が返されたかのように見える。従って、デバッグをす
る者は、従来の単一プロセスに対するデバッグ手法を用
いることができ、プロセスの並行・並列動作を意識する
ことなく簡単に遠隔手続呼出しを行う並行・並列分散プ
ログラムのデバッグをすることができる。
In the above configuration, the first satellite debug means 3
When one process (hereinafter, referred to as a client process) 1 that is being debugged issues a remote procedure call, the remote procedure call issuance detecting means 51 detects the issuance of the remote procedure call, and executes the requested remote procedure call. Other processes including procedures (hereinafter, server processes)
2 is specified. The central debugging means 4 activates the second satellite debugging means 5 on the computer on which the server process 2 including the required remote procedure is running. Further, the switching control unit 53 performs communication between the central debugging unit 5 and the satellite debugging unit from the first satellite debugging unit 3 to the second debugging unit.
By switching to the satellite debugging means 4, the person who debugs the client process can use the server process 2
Is performed following the debugging of the client process 1. When the execution of the remote procedure ends, the remote procedure call end detecting means 52 detects the end of the execution of the remote procedure call. The switching control unit 53 instructs the second satellite debugging unit 4 to end the debugging of the server process 2. When the debugging of the server process 2 ends, the operation of the second satellite debugging means 4 ends. Then, the activation state is switched so that the first satellite debugging means 3 performs debugging. Thus, the person who debugs the server process 2 can debug the client process continuously from the debugging of the server process 2. As described above, the present invention
Since the satellite debugging means of the server process and the client process can be appropriately controlled, the person who debugs the communication procedure or the communication part of the argument when the remote procedure call is issued, or the remote procedure call is terminated. The communication procedure and the communication part of the return value are not visible, and it is as if the client process executed a procedure call on a single process that was not a remote procedure and returned the return value. Therefore, the debugger can use the conventional debugging technique for a single process, and debug a parallel / parallel distributed program that easily calls a remote procedure without being aware of the parallel / parallel operation of the process. Can be.

【0007】[0007]

【実施例】以下、図面を参照しながら実施例に基づい
て、本発明の特徴を具体的に説明する。図2は、本発明
の実施例を示すブロック図である。図2において、遠隔
手続呼出し記述ファイルには、遠隔手続名と遠隔手続の
引数の型や数、返り値の型が定義されている。たとえば
図5において遠隔手続呼出し記述ファイルの例として、
遠隔手続名がprintmessageで、引数はstringの型で1個
を持ち、返り値はint型を持つことが示されている。本
実施例では、予めクライアントプロセス実行部203で
実行されるクライアントプロセスには第1のソースコー
ドデバッグ部206が結合されているものとする。しか
しながら、クライアントプロセスが起動された後で、ク
ライアントプロセスのプロセス番号を知り第1のソース
コードデバッグ部206を接続してもよい。第1のソー
スコードデバッグ部206は通信部23における第1の
TCPソケット231による通信チャネルを介して中央
デバッグ部22のデバッガインタフェース222と結合
している。この第1のTCPソケット231は、具体的
には、第1の衛星デバッグ部20側に接続されたTCP
ソケットと、中央デバッグ部22側に接続されたTCP
ソケットと、それらのTCPソケット間を接続する通信
線とからなっている。通信部23の他のソケットやアク
セス部についても同様に通信線とその両端部のインタフ
ェース部からなっている。
DESCRIPTION OF THE PREFERRED EMBODIMENTS The features of the present invention will be specifically described below based on embodiments with reference to the drawings. FIG. 2 is a block diagram showing an embodiment of the present invention. In FIG. 2, the remote procedure call description file defines remote procedure names, types and numbers of arguments of the remote procedure, and return types. For example, in FIG. 5, as an example of the remote procedure call description file,
It indicates that the remote procedure name is printmessage, the argument has one string type, and the return value has int type. In the present embodiment, it is assumed that a first source code debugging unit 206 is connected to a client process executed by the client process execution unit 203 in advance. However, after the client process is activated, the first source code debug unit 206 may be connected after knowing the process number of the client process. The first source code debug unit 206 is connected to the debugger interface 222 of the central debug unit 22 via a communication channel of the communication unit 23 through the first TCP socket 231. This first TCP socket 231 is, specifically, a TCP connected to the first satellite debug unit 20 side.
The socket and the TCP connected to the central debugging unit 22
It consists of sockets and communication lines connecting these TCP sockets. Similarly, other sockets and access units of the communication unit 23 also include communication lines and interface units at both ends.

【0008】デバッグをする者は中央デバッグ部22の
ディスプレイ端末装置223からコマンドを発行し、そ
のコマンドはデバッガインタフェース222を通じて第
1のソースコードデバッグ部206に送られる。第1の
ソースコードデバッグ部206は、クライアントソース
ファイル記憶部201のクライアントソースファイルを
参照して、ソースコードのデバッグを行う。第1のソー
スコードデバッグ部206に与えられたコマンドの実行
結果は、第1のTCPソケット231による通信チャネ
ルを介してデバッガインタフェース222に送られディ
スプレイ端末装置223に表示される。
The person who debugs issues a command from the display terminal device 223 of the central debugging unit 22, and the command is sent to the first source code debugging unit 206 through the debugger interface 222. The first source code debugging unit 206 debugs the source code with reference to the client source file in the client source file storage unit 201. The execution result of the command given to the first source code debug unit 206 is sent to the debugger interface 222 via the communication channel by the first TCP socket 231 and displayed on the display terminal device 223.

【0009】そこで例えばブレークポイントで停止して
いるクライアントプロセスに対し、ソースコードについ
て1ステップずつの実行を指示するステップ実行コマン
ドを発行すると、第1のソースコードデバッグ部206
は、クライアントプロセス実行部203でのステップ実
行をさせ、クライアントプロセスが再度停止すると、ソ
ースコード中での現在の停止地点を第1のブレークポイ
ント検出部224に出力する。
For example, when a step execution command for instructing the execution of the source code one step at a time is issued to a client process stopped at a break point, the first source code debug unit 206
Causes the client process execution unit 203 to execute step execution, and when the client process stops again, outputs the current stop point in the source code to the first breakpoint detection unit 224.

【0010】第1のブレークポイント検出部224は、
第1のリモートファイルアクセス部232を介して、ク
ライアントプロセスのソースコード中での現在の停止地
点からクライアントソースファイル記憶部201のクラ
イアントソースファイルを参照し、現在の停止地点が手
続呼出しであるかどうかを調べ、手続呼出しでない場合
は、デバッガインタフェース222には何も出力しな
い。また、現在の停止地点が手続呼出しであった場合
は、遠隔手続呼出し記述ファイル記憶部226のファイ
ルを参照し、手続呼出しの手続名と一致する遠隔手続名
が存在すれば、現在の停止地点はクライアントプロセス
中で遠隔手続呼出しを行う行であるとみなし、デバッガ
インタフェース222に遠隔手続名と遠隔手続に用いら
れる通信チャネルのチャネル番号と遠隔手続が起動され
ることを通知する。通信チャネルは、本実施例ではイン
タフェースとして第3のTCPソケット233が用いら
れ、例えば通信チャネルのチャネル番号としてはRFC
1060(1990年3月、J.Reynolds J.Pstel ISI)に規定さ
れているインターネットプロトコルのポート番号が挙げ
られる。図3のクライアントのソースコードにおいて、
クライアントプロセスが行7で「result=printmessage
(&message,c1);」の実行をする前に停止しているとすれ
ば、第1のブレークポイント検出部224は、図5に例
示する遠隔手続呼出し記述ファイル記憶部226のファ
イルにおける行cの「int PRINTMESSAGE(string)= 1」
と比較し、手続printmessageが遠隔手続PRINTMESSAGEに
相当することを検出し、デバッガインタフェース222
に遠隔手続printmessageが起動されることを通知する。
デバッガインタフェース222はその第1のブレークポ
イント検出部224からの遠隔手続起動通知を記録す
る。
[0010] The first breakpoint detecting section 224 includes:
The first remote file access unit 232 refers to the client source file in the client source file storage unit 201 from the current stop point in the source code of the client process, and determines whether the current stop point is a procedure call. Is checked, and if it is not a procedure call, nothing is output to the debugger interface 222. If the current stop point is a procedure call, the file in the remote procedure call description file storage unit 226 is referred to. If a remote procedure name that matches the procedure name of the procedure call exists, the current stop point is It is regarded as a line for calling a remote procedure in the client process, and the debugger interface 222 is notified of the remote procedure name, the channel number of the communication channel used for the remote procedure, and the fact that the remote procedure is to be started. In the present embodiment, a third TCP socket 233 is used as an interface in the present embodiment.
1060 (March 1990, J. Reynolds J. Pstel ISI) Internet protocol port numbers. In the client source code of FIG. 3,
The client process returns "result = printmessage
(& message, c1); ", the first breakpoint detection unit 224 determines whether the line c in the file of the remote procedure call description file storage unit 226 illustrated in FIG. "Int PRINTMESSAGE (string) = 1"
To detect that the procedure printmessage corresponds to the remote procedure PRINTMESSAGE, and
To the remote procedure printmessage is started.
The debugger interface 222 records the remote procedure activation notification from the first breakpoint detection unit 224.

【0011】次に、デバッグをする者が再度ステップ実
行を指示すると、デバッガインタフェース222は、第
1のソースコードデバッグ部206に対して現在停止し
ている「行8」の実行が終了したあと次に実行される行
として「行9」に第1のブレークポイントを設定するよ
う通知する。また、デバッガインタフェース222は、
記録された前記遠隔手続の起動通知の有無を調べ、通知
の記録があれば、遠隔手続を含むプロセスを有する計算
機名を調べる。この計算機名は、例えば、通知された遠
隔手続名の呼出しに与えられる引数の中に前記遠隔手続
を含むプロセスを有する計算機名が含まれているような
遠隔手続の方式が用いられている場合は、第1のソース
コードデバッグ部206にステップ実行を指示する代り
に、手続呼出しの引数の詳細な内容を表示するコマンド
を与え、その表示結果を調べることにより知ることがで
きる。あるいは、遠隔手続の起動において、特定の計算
機名を指定せずに遠隔手続投入先計算機決定部227に
よってその遠隔手続を含むプロセスを有する複数の計算
機の中からひとつの計算機を決定するようにしてもよ
い。この場合は、デバッガインタフェース222はその
遠隔手続投入先計算機決定部227からの出力により、
遠隔手続を含むプロセスを有する計算機名を知ることが
できる。
Next, when the debugger instructs to execute step execution again, the debugger interface 222 instructs the first source code debug unit 206 to execute the next suspended “line 8” after the execution of the currently stopped “line 8” is completed. To set a first breakpoint at "line 9" as the line to be executed. Also, the debugger interface 222
The presence / absence of the recorded start notification of the remote procedure is checked, and if there is a record of the notification, the name of the computer having the process including the remote procedure is checked. This computer name is used, for example, when a remote procedure method is used in which the argument given to the invocation of the notified remote procedure name includes the name of a computer having a process including the remote procedure. Instead of instructing the first source code debug unit 206 to execute a step, a command for displaying the detailed contents of the argument of the procedure call is given, and the result of the display can be checked. Alternatively, at the start of the remote procedure, one computer may be determined from a plurality of computers having a process including the remote procedure by the remote procedure input destination computer determination unit 227 without specifying a specific computer name. Good. In this case, the debugger interface 222 uses the output from the remote procedure input computer determination unit 227 to
The name of the computer having the process including the remote procedure can be known.

【0012】デバッガインタフェース222は前記遠隔
手続を含むプロセスを有する計算機上に第2のソースコ
ードデバッグ部217を起動し、第2のTCPソケット
234による通信チャネルを介し、その起動した第2の
ソースコードデバッグ部217と接続する。次に、デバ
ッガインタフェース222はプロセステーブルアクセス
部236を用い、通知されている遠隔手続に用いられる
通信チャネルのチャネル番号から、前記遠隔手続を有
し、クライアントプロセスからの接続を待っているプロ
セスのプロセス番号を特定し、第2のソースコードデバ
ッグ部217に接続すべきサーバプロセスのプロセス番
号として通知し、サーバプロセス実行部213と第2の
ソースコードデバッグ部217を接続する。デバッガイ
ンタフェース222は記録された前記遠隔手続の名前を
第2のソースコードデバッグ部217に通知して、第2
のブレークポイントを図4に例示するソースコードの
「行ハ」に設定し、第3のブレークポイントを「行ホ」
に設定する。
The debugger interface 222 activates the second source code debug unit 217 on a computer having a process including the remote procedure, and activates the activated second source code via a communication channel through the second TCP socket 234. Connect to the debug unit 217. Next, the debugger interface 222 uses the process table access unit 236 to determine, from the channel number of the communication channel used for the notified remote procedure, the process of the process having the remote procedure and waiting for a connection from the client process. The number is specified, notified to the second source code debug unit 217 as the process number of the server process to be connected, and the server process execution unit 213 and the second source code debug unit 217 are connected. The debugger interface 222 notifies the second source code debug unit 217 of the recorded name of the remote procedure, and
Is set to “line C” of the source code illustrated in FIG. 4, and the third breakpoint is set to “line E”.
Set to.

【0013】次に、第2のソースコードデバッグ部21
7に対して継続実行を指示するコンティニュー命令を通
知することで、サーバプロセス実行部213はクライア
ントプロセス実行部203からの接続を待ち、第2のソ
ースコードデバッグ部217は第2のブレークポイント
に到達するまで継続実行する。その後、デバッガインタ
フェース222は、第1のソースコードデバッグ部20
6に対して継続実行を指示するコンティニュー命令を通
知する。クライアントプロセスは遠隔手続の実行が終了
し、第1のブレークポイントに到達するまで実行を続け
る。その後、デバッガインタフェース222はディスプ
レイ端末装置223からの入力が主に第2のソースコー
ドデバッグ部217に送られ、第2のソースコードデバ
ッグ部217から出力された結果はディスプレイ端末装
置223に出力されるように切り替られる。
Next, a second source code debug unit 21
7, the server process execution unit 213 waits for a connection from the client process execution unit 203, and the second source code debug unit 217 reaches the second breakpoint. Continue until you do. After that, the debugger interface 222 starts the first source code debugging unit 20.
6 is notified of a continue command for instructing continuous execution. The client process finishes executing the remote procedure and continues execution until the first breakpoint is reached. After that, the debugger interface 222 receives an input from the display terminal device 223 mainly to the second source code debug unit 217, and outputs a result output from the second source code debug unit 217 to the display terminal device 223. It is switched as follows.

【0014】次に、遠隔手続がクライアントプロセス実
行部203で実行中のプロセスから発行されると、サー
バプロセス実行部213のサーバプロセスは第2のブレ
ークポイントで停止する。このように、第1のソースコ
ードデバッグ部206と第2のソースコードデバッグ部
217を制御することで、デバッグをする者には、遠隔
手続呼出しが発行されたときの通信手順や引数の通信部
分は見えなくて、あたかもクライアントプロセスから単
なるシングルプロセス上の遠隔手続ではない手続呼出し
が実行されたかのように見える。デバッグする者は特に
サーバプロセスのデバッグをしていることを意識せずに
遠隔手続をデバッグできる。
Next, when the remote procedure is issued from the process being executed by the client process execution unit 203, the server process of the server process execution unit 213 stops at the second breakpoint. As described above, by controlling the first source code debug unit 206 and the second source code debug unit 217, the debugger can communicate with the communication procedure and the communication part of the argument when the remote procedure call is issued. Does not appear, as if the client process executed a procedure call that is not just a remote procedure on a single process. The debugger can debug a remote procedure without being aware that the server process is being debugged.

【0015】遠隔手続のデバッグが終了し、例えばデバ
ッグをする者がコンティニュー実行を指示すれば、デバ
ッガインタフェース222はコンティニュー実行が指示
されたことを記録し、サーバプロセス実行部213は
「行ホ」において第3のブレークポイントで停止し、デ
バッガインタフェース222は第2のソースコードデバ
ッグ部217から第2のTCPソケット234を通じて
それを知った後、第2のソースコードデバッグ部217
に第2のブレークポイントと第3のブレークポイントを
取り除くよう指示する。第2のブレークポイントと第3
のブレークポイントが取り除かれたら、デバッガインタ
フェース222は、ディスプレイ端末装置223からの
コマンドが第1のソースコードデバッグ部206に送ら
れるように切り替え、第1のソースコードデバッグ部2
06の出力がディスプレイ端末装置223に表示される
ように切り替える。
When the debugging of the remote procedure is completed and, for example, the debugger instructs the execution of the continuation, the debugger interface 222 records that the execution of the continuation is instructed, and the server process execution unit 213 sets the "line e" to Stopping at the third breakpoint, the debugger interface 222 knows it from the second source code debugger 217 through the second TCP socket 234 and then
To remove the second and third breakpoints. Second breakpoint and third
Is removed, the debugger interface 222 switches so that the command from the display terminal device 223 is sent to the first source code debug unit 206, and the first source code debug unit 2
The output is switched so that the output 06 is displayed on the display terminal device 223.

【0016】その後、デバッガインタフェース222は
第2のソースコードデバッグ部217にサーバプロセス
実行部213のサーバプロセスのデバッグを終了するよ
うに指示する。その結果、サーバプロセス実行部213
は第2のソースコードデバッグ部217との接続が切断
され、継続実行される。サーバプロセス実行部213か
らの遠隔手続の返り値がクライアントプロセス実行部2
03に戻され、第1のブレークポイントでクライアント
プロセスが一旦停止するが、ソースコードデバッグ部2
06は、デバッグをする者がサーバプロセスの遠隔手続
においてコンティニュ実行を指示したことが記録されて
いるため、第1のブレークポイントを取り除きコンティ
ニュ実行を第1のソースコードデバッグ部206に指示
する。このように第1のソースコードデバッグ部206
と第2のソースコードデバッグ部217を制御すること
で、デバッグをする者には、遠隔手続呼出しが終了した
ときの通信手順や返り値の通信部分は見えなくて、あた
かもシングルプロセス上の、遠隔手続ではない手続から
返り値が戻されたかのように見える。従って、デバッグ
をする者は特にサーバプロセスのデバッグをしているこ
とを意識せずに遠隔手続をデバッグすることができる。
なお、以上に説明した実施例では、1つのクライアント
プロセスと1つのサーバプロセス間の遠隔手続呼出しを
例にとり本発明のデバッグ方式を説明したが、一般的に
は、一つのクライアントプロセスと並列に接続された複
数のサーバプロセスからなる分散型の情報処理システム
における任意のクライアントプロセスとサーバプロセス
間のデバッグに本発明のデバッグ方式を適用できること
は言うまでもない。また、クライアントプロセスにサー
バプロセスが接続され、さらにそのサーバプロセスがク
ライアントプロセスとして別のサーバプロセスに接続さ
れているような関係を含むシステムのデバッグにも本発
明のデバッグ方式は同様に適用できる。
Thereafter, the debugger interface 222 instructs the second source code debugging unit 217 to end the debugging of the server process by the server process execution unit 213. As a result, the server process execution unit 213
Is disconnected from the second source code debug unit 217 and is continuously executed. The return value of the remote procedure from the server process execution unit 213 is
03, and the client process temporarily stops at the first breakpoint.
Reference numeral 06 indicates that the debugger has instructed the continuous execution in the remote procedure of the server process, so that the first breakpoint is removed and the continuous execution is instructed to the first source code debug unit 206. . Thus, the first source code debugging unit 206
And the second source code debug unit 217, the debugger does not see the communication procedure when the remote procedure call is completed and the communication part of the return value. It appears as if the return value was returned from a non-procedural procedure. Therefore, the debugger can debug the remote procedure without being aware that the server process is being debugged.
In the above-described embodiment, the debugging method of the present invention has been described by taking a remote procedure call between one client process and one server process as an example. However, in general, a connection is made in parallel with one client process. Needless to say, the debugging method of the present invention can be applied to debugging between an arbitrary client process and a server process in a distributed information processing system including a plurality of server processes. Further, the debugging method of the present invention can be similarly applied to debugging of a system including a relationship in which a server process is connected to a client process and the server process is connected to another server process as a client process.

【0017】[0017]

【発明の効果】以上述べたように、本発明によれば、サ
ーバプロセスとクライアントプロセスの衛星デバッグ手
段を適切に制御することにより、デバッグをする者に
は、遠隔手続呼出しが発行されたときの通信手順や引数
の通信部分、あるいは、遠隔手続呼出しが終了したとき
の通信手順や返り値の通信部分は見えなくて、あたかも
クライアントプロセスから単なるシングルプロセス上
の、遠隔手続ではない手続呼出しが実行され、返り値が
返されたかのように見える。従って、デバッグをする者
は、従来の単一プロセスに対するデバッグ手法を用いる
ことができ、プロセスの並行・並列動作を意識すること
なく簡単に遠隔手続呼出しを行う並行・並列分散プログ
ラムのデバッグをすることができる。
As described above, according to the present invention, by appropriately controlling the satellite debugging means of the server process and the client process, the person who debugs can receive the remote procedure call when the remote procedure call is issued. The communication part of the communication procedure and arguments, or the communication part when the remote procedure call ends, and the communication part of the return value are not visible, and it is as if the client process executes a procedure call on a single process that is not a remote procedure. It looks as if the return value was returned. Therefore, the debugger can use the conventional debugging method for a single process, and debug a parallel / parallel distributed program that easily calls a remote procedure without being aware of the parallel / parallel operation of the process. Can be.

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

【図1】本発明の構成を示すブロック図、FIG. 1 is a block diagram showing a configuration of the present invention;

【図2】本発明の実施例を示すブロック図、FIG. 2 is a block diagram showing an embodiment of the present invention;

【図3】遠隔手続呼出しを行うクライアントプロセス
のソースコードの例を示す図
FIG. 3 shows a client process for calling a remote procedure.
Diagram showing an example of source code

【図4】サーバプロセスののソースコードの例を示す図FIG. 4 is a diagram showing an example of a source code of a server process.

【図5】遠隔手続呼出し記述ファイルの例を示す図。FIG. 5 is a diagram showing an example of a remote procedure call description file.

【符号の説明】[Explanation of symbols]

1,2…プロセス、3,4…衛星デバッグ手段、5…中
央デバッグ手段、51…遠隔手続呼出し発行検出手段、
52…遠隔手続呼出し終了検出手段、53…切替え制御
手段、20…第1の衛星デバッグ部、201…クライア
ントソースファイル記憶部、202…クライアントプロ
セス実行形式ファイル記憶部、203…クライアントプ
ロセス実行部、204…データ記憶部、206…第1の
ソースコードデバッグ部、21…第2の衛星デバッグ
部、211…サーバソースファイル記憶部、212…サ
ーバプロセス実行形式ファイル記憶部、213…サーバ
プロセス実行部、214…データ記憶部、217…第2
のソースコードデバッグ部、218…プロセステーブル
218、22…中央デバッグ部、222…デバッガイン
タフェース、223…ディスプレイ端末装置、224…
第1のブレークポイント検出部、225…第2のブレー
クポイント検出部、226…遠隔手続呼出し記述ファイ
ル記憶部、227…遠隔手続投入先計算機決定部22
7、23…通信部、231…第1のTCPソケット、2
32…第1のリモートファイルアクセス部、233…第
3のTCPソケット、234…第2のTCPソケット、
235…第2のリモートファイルアクセス部、236…
プロセステーブルアクセス部236。
1, 2, process, 3, 4 satellite debugging means, 5 central debugging means, 51 remote procedure call issue detection means,
52: remote procedure call end detection means, 53: switch control means, 20: first satellite debug unit, 201: client source file storage unit, 202: client process execution format file storage unit, 203: client process execution unit, 204 ... Data storage unit, 206 first source code debug unit, 21 second satellite debug unit, 211 server source file storage unit, 212 server process execution format file storage unit, 213 server process execution unit, 214 ... data storage unit, 217 ... second
Source code debug unit, 218 process table 218, 22 central debug unit, 222 debugger interface, 223 display terminal device, 224
First breakpoint detecting section, 225... Second breakpoint detecting section, 226... Remote procedure call description file storage section, 227.
7, 23 communication part, 231 first TCP socket, 2
32 first remote file access unit, 233 third TCP socket, 234 second TCP socket,
235 ... second remote file access unit, 236 ...
Process table access unit 236.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 ネットワークで互いに接続された複数の
計算機上で、複数のプロセスが遠隔手続呼出しにより
いにネットワーク通信を行い並行・並列動作を実現する
分散型の情報処理システムのデバッグ方式において、 前記複数のプロセス各々の実行される計算機上で、各プ
ロセスのデバッグを行う複数の衛星デバッグ手段と、 その複数の衛星デバッグ手段の動作を遠隔制御する中央
デバッグ手段とを備え、その中央デバッグ手段は、 衛星デバッグ手段のデバッグ対象のプロセスに遠隔手続
呼出しがあることをその遠隔手続呼出しの発行の前に検
する遠隔手続呼出し発行検出手段と、 前記遠隔手続呼出しで呼び出されたプロセスの終了を検
出する遠隔手続呼出し終了検出手段と、 前記遠隔手続呼出し発行検出手段の遠隔手続呼出しの検
出に応答して、その遠隔手続呼出しにより呼び出される
プロセスを有する計算機上の衛星デバッグ手段を起動す
ると共に、前記遠隔手続呼出し終了検出手段のプロセス
の終了の検出に応答して、そのプロセスの呼出し元の衛
星デバッグ手段によるデバッグを再開する制御手段とを
有することを特徴とする分散型情報処理システムのデバ
ッグ方式。 【0001】
1. A plurality of networks connected to each other by a network
On a computer, in a debugging method of a distributed information processing system in which a plurality of processes perform network communication mutually by remote procedure call to realize parallel / parallel operation, each of the plurality of processes is executed. On the calculator,
A plurality of satellite debugging means for debugging a process, and a central debugging means for remotely controlling the operation of the plurality of satellite debugging means. The central debugging means includes a remote procedure call to a process to be debugged by the satellite debugging means. Before the remote procedure call is issued.
A remote procedure call issued detector for output, and remote procedure call termination detection means for detecting the end of the called process in the remote procedure call, detection of a remote procedure call to the remote procedure call issued detector
Called by the remote procedure call in response to the call
Activate satellite debugging means on computer with process
And a process of the remote procedure call end detecting means.
In response to the detection of the end, Mamoru of the caller of the process
A debugging method for a distributed information processing system, comprising: control means for restarting debugging by star debugging means . [0001]
JP3060781A 1991-02-27 1991-02-27 Debugging method for distributed information processing system Expired - Fee Related JP2782971B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3060781A JP2782971B2 (en) 1991-02-27 1991-02-27 Debugging method for distributed information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3060781A JP2782971B2 (en) 1991-02-27 1991-02-27 Debugging method for distributed information processing system

Publications (2)

Publication Number Publication Date
JPH05197586A JPH05197586A (en) 1993-08-06
JP2782971B2 true JP2782971B2 (en) 1998-08-06

Family

ID=13152178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3060781A Expired - Fee Related JP2782971B2 (en) 1991-02-27 1991-02-27 Debugging method for distributed information processing system

Country Status (1)

Country Link
JP (1) JP2782971B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2783275B2 (en) * 1995-04-28 1998-08-06 日本電気株式会社 Distributed parallel processing program debugging method
JPH10171701A (en) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd Procedure executing device and method therefor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0192847A (en) * 1987-10-02 1989-04-12 Fujitsu Ltd Debugging control system
JPH01147639A (en) * 1987-12-03 1989-06-09 Nec Corp Multi-programming debug device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
JPH05197586A (en) 1993-08-06

Similar Documents

Publication Publication Date Title
JP4616423B2 (en) Apparatus and method for remote data recovery
KR100502023B1 (en) Terminal for computer network and recording method of control history
US5630049A (en) Method and apparatus for testing software on a computer network
JP3566975B2 (en) Automatic operation device of computer operation terminal device
US7865883B1 (en) Parallel and asynchronous debugger and debugging method for multi-threaded programs
JP2755437B2 (en) Continuous operation guarantee processing method of communication control program
JP2782971B2 (en) Debugging method for distributed information processing system
EP0430708B1 (en) Architecture for server extension
JP2006277771A (en) Terminal device and operation history recording method for computer network
JPH096655A (en) System management device
JP2924436B2 (en) Information processing system performance measurement device
JPH04242467A (en) Combined computer system
CN116016497A (en) BIOS remote redirection method, system equipment and medium
JP3434858B2 (en) Server / Client system
JPH08190499A (en) Remote monitor system
JPH0476144B2 (en)
JPH08171498A (en) Multicomputer debugger system and multicomputer system adopting the same
CN112925700A (en) Program debugging method, device and system and embedded equipment
JPH06161817A (en) Thread on-line debugging device
JPS6335988B2 (en)
JPH05313956A (en) Fault restoring system for interactive information processing
JPH04284047A (en) Partially initial setting system
JPH05181775A (en) Line monitoring terminal equipment
JPS60189055A (en) Terminal multiple session control system
JPH10269104A (en) Parallel system testing method

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees