JPH08185340A - Method for debugging parallel program and device for visualizing parallel program - Google Patents

Method for debugging parallel program and device for visualizing parallel program

Info

Publication number
JPH08185340A
JPH08185340A JP6326400A JP32640094A JPH08185340A JP H08185340 A JPH08185340 A JP H08185340A JP 6326400 A JP6326400 A JP 6326400A JP 32640094 A JP32640094 A JP 32640094A JP H08185340 A JPH08185340 A JP H08185340A
Authority
JP
Japan
Prior art keywords
program
variable
debugger
parallel program
sequential
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
JP6326400A
Other languages
Japanese (ja)
Inventor
Kazuto Kubota
和人 久保田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6326400A priority Critical patent/JPH08185340A/en
Publication of JPH08185340A publication Critical patent/JPH08185340A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE: To provide a parallel program debugging method capable of executing debugging allowing the operation states of plural programs to relate to each other. CONSTITUTION: In this method for debugging a parallel program by controlling plural sequential debuggers 4-1 to 4-5 arranged correspondingly to plural sequential programs constituting the parallel program at the rate of 1 to 1 by a debugger controller 2, the controller 2 executes a procedure for interpreting the description of debugging contents for the parallel program applied from the external, applying instructions to respective debuggers in accordance with the interpreted result to control the execution of the parallel program, acquiring execution control results from respective debuggers, applying instructions to the debuggers again based upon the execution control results to control the execution of the parallel program, and then acquiring execution control results from respective debuggers at least once and outputs a debugged result generated in accordance with the execution control results to the external.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、並列プログラムをデバ
ッグするための並列プログラムデバッグ方法、および並
列プログラムを可視化するためのツールである並列プロ
グラム可視化装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel program debugging method for debugging a parallel program and a parallel program visualization device which is a tool for visualizing the parallel program.

【0002】[0002]

【従来の技術】[Prior art]

(1)逐次プログラムのデバッグ時には、逐次プログラ
ム用デバッガを用いて、ブレークポイントを設定し、逐
次プログラムを実行させ、プログラムが停止した時点で
の変数の値を読み出すという方法が用いられることが多
い。
(1) When debugging a sequential program, a method is often used in which a breakpoint is set using a sequential program debugger, the sequential program is executed, and the value of a variable at the time when the program is stopped is read.

【0003】同一のプログラムが互いに通信を行いなが
ら複数同時に実行されるデータパラレルプログラムのデ
バッグの際にも、上記の逐次プログラムのデバッグの方
法と同様な方法を用いる試みがなされている。これは、
データパラレルプログラムを構成する個々の部分プログ
ラム毎にデバッガを適用してブレークポイントを設定
し、それぞれの部分プログラムを実行させ、個々のデバ
ッガが停止した時点での変数の値を読み出すという方法
である。しかしながら、この方法の場合、ユーザは個々
のデバッガに対してデバッグコマンドを送り、結果を受
け取るという作業を強いられる。もちろん、複数のプロ
グラムが、互いに異なるものである場合にも同様であ
る。
At the time of debugging a data parallel program in which a plurality of the same programs are simultaneously executed while communicating with each other, attempts have been made to use a method similar to the above-described method of debugging a sequential program. this is,
This is a method in which a debugger is applied to each partial program that constitutes a data parallel program, a breakpoint is set, each partial program is executed, and the value of the variable at the time when each debugger is stopped is read. However, this method requires the user to send a debug command to each debugger and receive the result. Of course, the same applies when a plurality of programs are different from each other.

【0004】この煩雑な作業の軽減を目的として、個々
のデバッガを統合するコントロールプロセスを置き、ユ
ーザはコントロールプロセスを通じて個々のデバッガに
デバッグコマンドを送り、結果を受け取るという方法
が、Expressのndbという並列プログラムデバ
ッガでは用いられている。
In order to reduce this complicated work, a control process that integrates individual debuggers is provided, and a user sends a debug command to each debugger through the control process and receives the result. This is a parallel process called ndb of Express. Used in the program debugger.

【0005】ところが、ユーザがデバッグ時に並列プロ
グラムを停止させる場合、個々の部分プログラム間で、
ある一定の条件が満たされた場合に、はじめて停止させ
たいという場合がある。この点について、図3のプログ
ラムを例に説明する。ここでは、図3のプログラムを5
つ並列に実行させる場合について考える。いま、ユーザ
はそれぞれのプログラムを逐次型のデバッガを用いて起
動し、02行目と04行目にブレークポイントを設定し
たものとする。それぞれのブレークポイント番号を1,
2とする。図3の02行目と04行目につけられた1,
2は、それぞれ02行目と04行目にブレークポイント
番号1と2のブレークポイントが付けられたことを表
す。続いてユーザは、5つの逐次デバッガに個々のプロ
グラムの実行命令を出す。これにより、個々のプログラ
ムは、変数yの値に応じて02行目の文か04行目の文
のいずれかの文で停止する。ここで、ユーザが5つの逐
次デバッガに個々のプログラムに対する継続命令を出す
と、個々のプログラムはループを繰り返し実行し、再度
02行目の文か04行目の文のいずれかの文で停止す
る。再び、ユーザが5つの逐次デバッガに個々のプログ
ラムに対する継続命令を出すと、個々のプログラムはル
ープを繰り返し実行し、再度02行目の文か04行目の
文のいずれかの文で停止する。
However, when the user stops the parallel program at the time of debugging, between the individual partial programs,
There is a case where the user wants to stop the system for the first time when a certain condition is satisfied. This point will be described using the program of FIG. 3 as an example. Here, the program of FIG.
Consider the case of two parallel executions. Now, it is assumed that the user starts each program by using a sequential debugger and sets breakpoints on lines 02 and 04. Set each breakpoint number to 1,
Set to 2. 1, which was added to lines 02 and 04 in FIG.
2 indicates that the breakpoints with the breakpoint numbers 1 and 2 are added to the 02nd line and the 04th line, respectively. Subsequently, the user issues execution instructions of individual programs to the five sequential debuggers. As a result, the individual program stops at either the statement on the 02nd line or the statement on the 04th line, depending on the value of the variable y. Here, when the user issues a continuation instruction for each program to the five sequential debuggers, each program repeatedly executes the loop and stops again at either the statement at line 02 or the statement at line 04. . When the user again issues a continuation instruction for each program to the five sequential debuggers, each program repeatedly executes the loop and stops at the statement at line 02 or the statement at line 04 again.

【0006】さて、この一連の処理において、ユーザ側
は5つのプログラムのうち3つのプログラムが02行目
で停止し、2つのプログラムが04行目で停止している
状態のとき、はじめて5つのプログラムを停止させたい
という要求があったとする。しかし、従来の並列プログ
ラムデバッガでは、各デバッガが、対応しているプログ
ラムを夫々制御するだけであり、複数のプログラム間で
ある条件が成立した場合に、例えば上記のような状態
で、自動的にプログラムを停止させることはできなかっ
た。
In this series of processing, on the user side, when three programs out of five programs are stopped at the 02nd line and two programs are stopped at the 04th line, the five programs are not started for the first time. Suppose there is a request to stop. However, in the conventional parallel program debugger, each debugger only controls the corresponding program, and when a condition between a plurality of programs is satisfied, for example, in the above-described state, the debugger automatically automatically operates. The program could not be stopped.

【0007】(2)一方、並列プログラムでは、並列プ
ログラムを構成する個々の部分プログラムが相互に通信
を行いながら処理が進められて行くため、挙動が複雑で
あり、デバッグが困難である。このため、プログラムの
挙動を可視化してユーザに示す試みがなされている。通
常は、プログラム中に可視化のための関数を埋め込んで
表示を行わせる方法がとられる。
(2) On the other hand, in a parallel program, the processing is advanced while the individual partial programs forming the parallel program communicate with each other, so that the behavior is complicated and the debugging is difficult. Therefore, attempts have been made to visualize the behavior of programs and show them to the user. Usually, a method for embedding a function for visualization in a program for display is adopted.

【0008】しかしながら、可視化のための関数をプロ
グラムに埋め込む方法では、以下のような不具合があっ
た。まず、可視化のためのコードをユーザが記述する必
要があるため処理が煩雑であった。また、ある観点に基
づく可視化のためのコードを記述しても、別の観点から
可視化を行いたい場合には、可視化部分を書き直す必要
があった。さらに、手間をかけて記述した可視化ルーチ
ンもデバッグ終了後には不必要なものとなる。したがっ
て、一般ユーザにとって、簡易に可視化を行えるツール
が待望されている。
However, the method of embedding a function for visualization in a program has the following problems. First, the process was complicated because the user had to write the code for visualization. Moreover, even if the code for visualization based on a certain viewpoint is written, if the visualization is desired from another viewpoint, it is necessary to rewrite the visualization portion. In addition, the visualization routine described by taking time and effort becomes unnecessary after the end of debugging. Therefore, a tool that can be easily visualized is desired for general users.

【0009】[0009]

【発明が解決しようとする課題】[Problems to be Solved by the Invention]

(1)以上説明したように、従来は、並列プログラムを
デバッグする際、例えば複数のプログラム間である条件
が成立した場合に、自動的にプログラムを停止させるな
ど、複数のプログラムの動作状態を関連付けたデバッグ
を行うことはできなかった。
(1) As described above, conventionally, when a parallel program is debugged, the operating states of a plurality of programs are associated with each other, for example, the programs are automatically stopped when a certain condition is satisfied between the plurality of programs. Couldn't debug.

【0010】本発明は、上記事情を考慮してなされたも
のであり、複数のプログラムの動作状態を関連付けたデ
バッグを行うことのできる並列プログラムデバッグ方法
を提供することを目的とする。
The present invention has been made in consideration of the above circumstances, and an object of the present invention is to provide a parallel program debugging method capable of performing debugging in which the operating states of a plurality of programs are associated with each other.

【0011】(2)以上説明したように、従来は、並列
プログラムを可視化する場合、可視化のための関数など
をプログラムに埋め込む作業が煩雑である上に、汎用性
がなく、また埋め込んだ可視化ルーチンはデバッグ終了
後には不必要なものとなる不具合があった。
(2) As described above, conventionally, when visualizing a parallel program, it is not easy to embed a function for visualization in the program, and it is not versatile and the embedded visualization routine is used. Had a bug that became unnecessary after debugging.

【0012】本発明は、上記事情を考慮してなされたも
のであり、並列プログラムを変更することなく、簡易に
並列プログラムの可視化を行うことができる並列プログ
ラム可視化装置を提供することを目的とする。
The present invention has been made in consideration of the above circumstances, and an object of the present invention is to provide a parallel program visualization device capable of easily visualizing a parallel program without changing the parallel program. .

【0013】[0013]

【課題を解決するための手段】[Means for Solving the Problems]

(1)本発明は、並列プログラムを構成する複数の逐次
プログラムに一対一に対応して設けられた複数の逐次デ
バッガ夫々をデバッガコントローラが制御して該並列プ
ログラムのデバッグを行う並列プログラムデバッグ方法
において、前記デバッガコントローラは、外部から与え
られた並列プログラムに対するデバッグ内容の記述を解
釈し、この解釈結果に従い、前記デバッガ夫々に命令を
与えて、前記並列プログラムの実行を制御させ、該デバ
ッガ夫々から実行制御結果を取得し、これら実行制御結
果に基づいて、前記デバッガ夫々にさらに命令を与え
て、前記並列プログラムの実行を制御させ、該デバッガ
夫々から実行制御結果を取得する手続きを少なくとも1
回行い、前記実行制御結果に従って生成したデバッグ結
果を外部に出力することを特徴とする。
(1) The present invention provides a parallel program debugging method in which a debugger controller controls each of a plurality of sequential debuggers provided in a one-to-one correspondence with a plurality of sequential programs constituting a parallel program to debug the parallel program. The debugger controller interprets the description of the debug contents for an externally given parallel program, gives an instruction to each of the debuggers according to the interpretation result, controls the execution of the parallel program, and executes the instruction from each of the debuggers. At least one procedure for acquiring control results, giving further instructions to each of the debuggers based on these execution control results to control execution of the parallel program, and acquiring execution control results from each of the debuggers
It is characterized in that the debug result generated according to the execution control result is output to the outside.

【0014】好ましくは、前記デバッグ内容は、停止し
たプログラムの番号、各プログラムのブレークポイン
ト、ブレークポイントでの停止時のプログラム内で使わ
れている変数の値、当該デバッガコントローラ内で保持
されている内部変数の値のうちの少なくとも1つを用い
て記述しても良い。
Preferably, the debug contents are held in the number of the stopped program, the breakpoint of each program, the value of the variable used in the program at the time of stopping at the breakpoint, and the debugger controller. It may be described using at least one of the values of the internal variables.

【0015】また、好ましくは、逐次プログラムのある
時点での変数の値をデバッガコントローラ内部で保持
し、その逐次プログラムの変数の値がプログラムの継続
実行によって破壊された後でも、デバッガコントローラ
のコマンドから利用することができるようにしても良
い。
Further, preferably, the value of the variable at a certain point in the sequential program is held inside the debugger controller, and even after the value of the variable in the sequential program is destroyed by the continuous execution of the program, the command of the debugger controller is used. You may make it available.

【0016】また、好ましくは、ブレークポイント間に
階層関係を定義することで、複数のブレークポイントに
関わる停止条件などの実行制御条件を簡便に設定するこ
とができるようにしても良い。
Further, preferably, by defining a hierarchical relationship between the breakpoints, execution control conditions such as a stop condition relating to a plurality of breakpoints may be easily set.

【0017】また、好ましくは、ユーザの誤ったブレー
クポイントの設定などによって、上記複数の逐次プログ
ラムの全てがブレークポイントに到達することなしに停
止した場合、あるいはプログラムの制御がデッドロック
を起こした場合などに、デバッガコントローラに対して
ユーザから割込みをかけ、制御をユーザ側に戻すことが
できるようにしても良い。その際、例えばブレークポイ
ントで停止した以外の上記複数の逐次プログラムの停止
位置などの情報をユーザに対して示すようにして、デッ
ドロックが起こった原因あるいは状況を把握できるよう
にしても良い。
Further, preferably, when all of the plurality of sequential programs are stopped without reaching a breakpoint due to an erroneous setting of a breakpoint by the user, or a deadlock occurs in control of the program. For example, the debugger controller may be interrupted by the user so that control can be returned to the user side. At this time, for example, information such as stop positions of the above-mentioned plurality of sequential programs other than the one stopped at the break point may be shown to the user so that the cause or situation of the deadlock can be grasped.

【0018】(2)本発明は、並列プログラムを構成す
る複数の逐次プログラムに一対一に対応して設けられた
複数の逐次デバッガと、これら複数の逐次デバッガ夫々
を制御して該並列プログラムのデバッグを行うデバッガ
コントローラと、該デバッガコントローラからの命令に
よってデバッグ結果の表示を行う少なくとも1つの表示
手段とを具備してなる並列プログラム可視化装置におい
て、前記デバッガコントローラは、取得すべき少なくと
も1つの変数および該変数を取得する前記逐次プログラ
ム中の位置を含む変数獲得情報を記憶する手段と、前記
逐次デバッガ夫々に命令を与えて、前記並列プログラム
の実行を制御させ、前記変数獲得情報に基づき、該逐次
デバッガ夫々から前記変数の値を取得する手段と、所定
のタイミングで、前記変数の値を指定された前記表示手
段に与える手段とを有し、前記表示手段は、デバッグ結
果を表示するために前記変数のうち少なくとも1つを用
いて作成された表示式を記憶する手段と、前記デバッガ
コントローラから与えられた前記変数の値を前記表示式
に基づいて表示する手段とを有することを特徴とする。
(2) According to the present invention, a plurality of sequential debuggers provided in a one-to-one correspondence with a plurality of sequential programs constituting a parallel program, and controlling each of the plurality of sequential debuggers to debug the parallel program. In a parallel program visualization device comprising a debugger controller for performing the above, and at least one display means for displaying a debug result according to an instruction from the debugger controller, the debugger controller includes at least one variable to be acquired and the variable. Means for storing variable acquisition information including a position in the sequential program for acquiring a variable, and giving an instruction to each of the sequential debuggers to control execution of the parallel program, and based on the variable acquisition information, the sequential debugger A means for acquiring the value of the variable from each of them, and at a predetermined timing, Means for giving the value of the variable to the designated display means, and the display means stores a display formula created using at least one of the variables for displaying a debug result. And a means for displaying the value of the variable given from the debugger controller based on the display formula.

【0019】好ましくは、前記デバッガコントローラ
は、前記変数の値のうち少なくとも1つを加工するため
の簡易言語を記憶する手段と、所定のタイミングで、前
記簡易言語に従って、前記逐次デバッガ夫々から取得し
た前記変数の値を加工する手段とをさらに具備したこと
を特徴とする。
Preferably, the debugger controller acquires from each of the sequential debuggers according to the simple language at a predetermined timing and means for storing a simple language for processing at least one of the values of the variables. And a means for processing the value of the variable.

【0020】また、好ましくは、前記表示手段は、表示
画面上に表示した図形の座標と該図形を表示するための
前記変数を取得した前記逐次プログラムの番号を対応付
けて記憶する手段と、前記逐次プログラムの番号を並べ
たプロセッサマップを表示する手段と、所定のポインテ
ィングデバイスにより前記画面上の特定の図形が指示さ
れた場合、該指示された図形の座標と前記記憶する手段
に記憶された内容から、該指示された図形を表示するた
めの前記変数を取得した前記逐次プログラムの番号を求
め、前記プロセッサマップ上の番号のうち、求められた
番号の表示を変化させる手段とをさらに具備したことを
特徴とする。
Preferably, the display means stores the coordinates of the graphic displayed on the display screen and the number of the sequential program that has acquired the variable for displaying the graphic in association with each other. Means for displaying a processor map in which sequential program numbers are arranged, and, when a specific figure on the screen is designated by a predetermined pointing device, the coordinates of the designated figure and the contents stored in the storing means From the number of the sequential program that has acquired the variable for displaying the instructed figure, and changing the display of the obtained number among the numbers on the processor map. Is characterized by.

【0021】[0021]

【作用】[Action]

(1)本発明では、並列プログラムに対する所望のデバ
ッグ内容をファイルなどに記述して、外部からデバッガ
コントローラに与えるようにしている。デバッガコント
ローラでは、この記述を解釈しその結果に従い、各デバ
ッガに命令を与えて並列プログラムを制御させ、実行制
御結果を取得する。
(1) In the present invention, desired debug contents for a parallel program are described in a file or the like and externally given to the debugger controller. The debugger controller interprets this description and gives an instruction to each debugger to control the parallel program according to the result, and acquires the execution control result.

【0022】そして、取得した各逐次プログラムの実行
制御結果に基づいて、さらに必要な命令を与えて再び並
列プログラムを制御させ、各デバッガから実行制御結果
を取得する。この手続きは、必要に応じて繰り返され
る。
Then, based on the obtained execution control result of each sequential program, further necessary instructions are given to control the parallel program again, and the execution control result is obtained from each debugger. This procedure is repeated as needed.

【0023】デバッガコントローラは、実行制御結果に
応じて、外部に与えるデバッグ結果を作成し出力する。
したがって本発明によれば、複数の逐次プログラム相互
間の動作状態を関連付けて、逐次プログラムの実行制御
および変数値の取得など所望のデバッグを行うことがで
きる。
The debugger controller creates and outputs a debug result to be given to the outside according to the execution control result.
Therefore, according to the present invention, it is possible to carry out desired debugging such as execution control of a sequential program and acquisition of a variable value by associating operation states between a plurality of sequential programs.

【0024】例えば、複数の逐次プログラム間である条
件が成立した場合に、自動的にプログラムを停止させる
ような処理などが可能となる。 (2)本発明では、デバッガコントローラ内に、取得す
べき少なくとも1つの変数および該変数を取得する前記
逐次プログラム中の位置を含む変数獲得情報を予め設定
できるようにしている。デバッガコントローラは、各逐
次デバッガに命令を与えて並列プログラムを制御させ、
変数獲得情報に基づき逐次デバッガ夫々から変数の値を
取得していく。そして、所定のタイミングで、取得した
変数の値を指定された表示手段に与える。
For example, it is possible to automatically stop the program when a certain condition is satisfied among a plurality of sequential programs. (2) In the present invention, variable acquisition information including at least one variable to be acquired and the position in the sequential program for acquiring the variable can be set in advance in the debugger controller. The debugger controller gives instructions to each sequential debugger to control a parallel program,
The value of the variable is sequentially acquired from each debugger based on the variable acquisition information. Then, the value of the acquired variable is given to the designated display means at a predetermined timing.

【0025】表示手段内には、デバッグ結果を表示する
ために、表示すべき変数や該変数を用いた関数を定義し
た表示式を予め設定しておく。表示手段は、デバッガコ
ントローラから与えられた変数の値をこの表示式に従っ
て表示する。
In order to display the debug result, a display formula defining a variable to be displayed and a function using the variable is preset in the display means. The display means displays the value of the variable given from the debugger controller according to this display formula.

【0026】したがって本発明によれば、各逐次デバッ
ガを通じて取得する変数に関する情報や、表示手段にて
デバッグ結果を可視化するための情報を簡易に設定・変
更などできるので、並列プログラム内に可視化のための
関数などをプログラムに埋め込むなどして並列プログラ
ムを変更することなく、簡易に並列プログラムの可視化
を行うことができる。
Therefore, according to the present invention, it is possible to easily set / change the information about the variable acquired through each sequential debugger and the information for visualizing the debug result on the display means. The parallel program can be easily visualized without changing the parallel program by embedding the function of etc. in the program.

【0027】[0027]

【実施例】以下、図面を参照しながら本発明の実施例を
説明する。 (1)最初に、並列プログラムデバッガの実施例につい
て説明する。 (第1の実施例)図1に、本実施例の並列プログラムデ
バッガの構成を示す。図のように、この並列プログラム
デバッガは、デバッガコントローラ2と複数の逐次デバ
ッガ4を備える。逐次デバッガ4の個数は任意である
が、本実施例では5個の逐次デバッガ4−1〜4−5を
備えているものとして説明をする。
Embodiments of the present invention will be described below with reference to the drawings. (1) First, an embodiment of the parallel program debugger will be described. (First Embodiment) FIG. 1 shows the configuration of a parallel program debugger of this embodiment. As shown, this parallel program debugger includes a debugger controller 2 and a plurality of sequential debuggers 4. The number of the sequential debuggers 4 is arbitrary, but in the present embodiment, description will be given assuming that the five sequential debuggers 4-1 to 4-5 are provided.

【0028】逐次デバッガ4は、逐次プログラムのデバ
ッグを行うためのデバッガである。本実施例では、逐次
デバッガ4として、例えばunix上で動作するdbx
やgdbのようなデバッガを想定することとする。
The sequential debugger 4 is a debugger for debugging a sequential program. In the present embodiment, as the sequential debugger 4, for example, dbx operating on unix
Assume a debugger like gdb or gdb.

【0029】各々の逐次デバッガ4は、デバッガコント
ローラ2により制御される。なお、本実施例では、発明
を理解しやすくするために、逐次デバッガ4を用いてデ
バッグを施される複数のユーザプログラム6(6−1〜
6−5)はデータパラレルプログラムつまり全ての部分
プログラムが同一のプログラムであるものとしている
が、もちろん個々のプログラムが互いに異なる場合でも
本発明は適用可能である。
Each sequential debugger 4 is controlled by the debugger controller 2. In this embodiment, in order to make the invention easier to understand, a plurality of user programs 6 (6-1 to 6-1) to be debugged using the sequential debugger 4 are used.
In 6-5), the data parallel program, that is, all the partial programs are the same program, but of course, the present invention can be applied even when the individual programs are different from each other.

【0030】本実施例のデバッガコントローラ2は、命
令解釈実行部21、第1の通信部22−1、第2の通信
部22−2、ファイル入出力部23、実行制御命令記憶
部24、コマンド入出力部25を備える。
The debugger controller 2 of this embodiment includes an instruction interpretation execution unit 21, a first communication unit 22-1, a second communication unit 22-2, a file input / output unit 23, an execution control instruction storage unit 24, a command. The input / output unit 25 is provided.

【0031】実行制御命令記憶部24は、並列プログラ
ムの実行制御命令記述ファイル3を記憶する。実行制御
命令記述ファイル3は、並列プログラムの実行制御命令
を記述するためのファイルである。詳しくは後述する
が、本実施例では、例えば停止したプログラムの番号と
各プログラムの停止位置(ブレークポイントの位置)と
ブレークポイントでの停止時のプログラム内で使われて
いる変数の値と当該デバッガコントローラ2内で保持さ
れている内部変数(ローカル変数)の値を用いて記述さ
れる。
The execution control instruction storage unit 24 stores the execution control instruction description file 3 of the parallel program. The execution control instruction description file 3 is a file for describing an execution control instruction of a parallel program. As will be described later in detail, in this embodiment, for example, the number of the stopped program, the stop position (breakpoint position) of each program, the value of the variable used in the program at the time of stopping at the breakpoint, and the debugger concerned. It is described using the values of internal variables (local variables) held in the controller 2.

【0032】ファイル入出力部23は、外部ファイルで
ある実行制御命令記述ファイル3の入出力を行うための
部分である。命令解釈実行部21は、実行制御命令記述
ファイル3の内容を解釈して並列プログラムを制御する
ためのデバッグコマンドを逐次デバッガ4に対して発行
する。また、命令解釈実行部21は、コマンド入出力部
25、通信部22−1、通信部22−2、ファイル入出
力部23および実行制御命令記憶部24との間で通信を
行いながら、デバッグ処理を進めて行く。
The file input / output section 23 is a section for inputting / outputting the execution control instruction description file 3 which is an external file. The instruction interpretation execution unit 21 interprets the contents of the execution control instruction description file 3 and issues a debug command for controlling the parallel program to the sequential debugger 4. Further, the instruction interpretation execution unit 21 performs debug processing while communicating with the command input / output unit 25, the communication unit 22-1, the communication unit 22-2, the file input / output unit 23, and the execution control instruction storage unit 24. Go forward.

【0033】通信部22−1は、個々の逐次デバッガ4
と命令解釈実行部21の間の通信を補助するためのもの
である。通信部22−2は、外部プロセス10と命令解
釈実行部21の間の通信を補助するためのものである。
The communication unit 22-1 is provided for each sequential debugger 4
This is for assisting communication between the instruction interpreting and executing unit 21. The communication unit 22-2 is for assisting communication between the external process 10 and the instruction interpretation execution unit 21.

【0034】コマンド入出力部25は、ユーザ(図中の
8)との入出力インタフェースである。なお、図2に、
本実施例のデバッグコントローラ2における処理のフロ
ーチャートを示す。ただし、ステップS6内の各命令は
すべてが必須ではなく、後述するように必要に応じて適
宜容易されるものである。
The command input / output unit 25 is an input / output interface with a user (8 in the figure). In addition, in FIG.
6 shows a flowchart of processing in the debug controller 2 of this embodiment. However, not all of the instructions in step S6 are essential, and as will be described later, they are appropriately facilitated.

【0035】以下、本実施例の並列プログラムのデバッ
グ処理について説明する。本実施例の並列プログラムデ
バッガでは、まず、ユーザは、デバッガコントローラ2
を起動し、続いて逐次デバッガ4上からユーザプログラ
ム6を起動する。このとき、逐次デバッガ4の入出力
は、デバッガコントローラ2の通信部22−1と接続す
る。
The debug processing of the parallel program of this embodiment will be described below. In the parallel program debugger of the present embodiment, first, the user is the debugger controller 2
Then, the user program 6 is sequentially started from the debugger 4. At this time, the input / output of the sequential debugger 4 is connected to the communication unit 22-1 of the debugger controller 2.

【0036】デバッガコントローラ2の命令解釈実行部
21は、ユーザからのコマンドを待ち、コマンドが入力
されたら、そのコマンドに応じた処理を行い、再びユー
ザのコマンドを待つ。
The instruction interpreting / executing unit 21 of the debugger controller 2 waits for a command from the user, and when a command is input, performs processing according to the command and waits for the user's command again.

【0037】本実施例の並列プログラムデバッガでは、
条件付き実行モードと対話モードを切り換えて使用でき
る。条件付き実行モードにおいては、条件付き実行命令
と条件付き実行継続命令を備えている。これら条件付き
実行命令あるいは条件付き実行継続命令が実行された場
合は、命令解釈実行部21は、実行制御命令記憶部24
に記憶されている命令文を解釈しながら、通信部22−
1を通じて個々の逐次デバッガ4(4−1〜4−5)に
デバッグコマンドを送る処理や、デバッガコントローラ
2内部に内部変数を作成する処理や、通信部22−2を
通じて外部プロセス10にデータを送る処理を行う。
In the parallel program debugger of this embodiment,
You can switch between conditional execution mode and interactive mode. The conditional execution mode has a conditional execution instruction and a conditional execution continuation instruction. When the conditional execution instruction or the conditional execution continuation instruction is executed, the instruction interpretation execution unit 21 causes the execution control instruction storage unit 24 to execute.
While interpreting the statement stored in the communication unit 22-
1 to send a debug command to each of the sequential debuggers 4 (4-1 to 4-5), to create an internal variable in the debugger controller 2, and to send data to the external process 10 via the communication unit 22-2. Perform processing.

【0038】また、本実施例の並列プログラムデバッガ
は、対話モードにおいては、対話型の実行を行うための
対話型実行命令と対話型実行継続命令を備えている。こ
れら対話型実行命令あるいは対話型実行継続命令が実行
された場合には、命令解釈実行部21は、デバッガコン
トローラ2内部のデータ構造や変数の値に応じて通信部
22−1を通じて個々の逐次デバッガ(4−1〜4−
5)にデバッグコマンドを送る処理や、デバッガコント
ローラ2内部に内部変数を作成する処理や、通信部22
−2を通じて外部プロセス10にデータを送る処理を行
う。
In the interactive mode, the parallel program debugger of this embodiment is provided with an interactive execution instruction and an interactive execution continuation instruction for performing interactive execution. When the interactive execution instruction or the interactive execution continuation instruction is executed, the instruction interpretation execution unit 21 causes the communication unit 22-1 to execute the individual sequential debugger according to the data structure and the value of the variable in the debugger controller 2. (4-1 to 4-
5) Process for sending a debug command to, process for creating an internal variable inside the debugger controller 2, communication unit 22
The process of sending data to the external process 10 through -2 is performed.

【0039】次に、逐次デバッガ4の機能について説明
する。本実施例では、各逐次デバッガ4は、以下に列挙
する機能を持つとする。「runコマンド」は、逐次プ
ログラム6を先頭から実行させる。
Next, the function of the sequential debugger 4 will be described. In this embodiment, each sequential debugger 4 has the functions listed below. The “run command” causes the sequential program 6 to be executed from the beginning.

【0040】「contコマンド」は、一時停止してい
る逐次プログラム6の実行を再開させる。「print
x コマンド」は、一時停止している逐次プログラム
6の内部変数を出力する。
The "cont command" restarts the execution of the sequential program 6 which has been temporarily stopped. "Print
The "x command" outputs the internal variable of the sequential program 6 that is temporarily stopped.

【0041】「stop at line コマンド」
(lineは行番号を表す値である;以下、同様であ
る)は、逐次プログラム6のline行にブレークポイ
ントを設定する。ブレークポイント停止時には、停止し
た行の行番号が出力される。
"Stop at line command"
(Line is a value representing a line number; the same applies hereinafter) sets a breakpoint on the line line of the sequential program 6. When the breakpoint is stopped, the line number of the stopped line is output.

【0042】「ctrl−C コマンド」は、実行中の
逐次プログラム6を強制的に一時停止させる。次に、デ
バッガコントローラ2の機能について説明する。
The "ctrl-C command" forcibly suspends the running sequential program 6. Next, the function of the debugger controller 2 will be described.

【0043】デバッガコントローラ2内部に条件付き実
行モードと対話モードの2つのモードを識別するフラグ
を設ける。デバッガコントローラ2の起動後のモード
は、対話モードである。
A flag for identifying the two modes of the conditional execution mode and the interactive mode is provided inside the debugger controller 2. The mode after starting the debugger controller 2 is the interactive mode.

【0044】対話モードでは、ユーザからの命令は通信
部22−1を通じて各逐次デバッガ4に伝える。デバッ
ガコントローラ2は、例えば次に示すような命令がユー
ザから入力されるのを持つ。
In the interactive mode, the instruction from the user is transmitted to each debugger 4 through the communication unit 22-1. The debugger controller 2 has, for example, the following commands input by the user.

【0045】「select 命令」は、ユーザからの
命令を伝える逐次デバッガ4を指定する。起動後は、全
てのプログラムが指定されている「stop at l
ine命令」は、line行でブレークポイントを設定
する命令である。この命令を用いてブレークポイントを
設定する毎に、デバッガコントローラ2側で一意のブレ
ークポイント番号をつける。この番号と、行番号の対応
表(以下、行−ブレークポイント対応表と呼ぶ)を作成
し、デバッガコントローラ2で保持する。
The "select instruction" designates the sequential debugger 4 which transmits an instruction from the user. After startup, all programs are specified "stop at l
The "ine instruction" is an instruction to set a breakpoint on a line line. Every time a breakpoint is set using this instruction, a unique breakpoint number is assigned on the debugger controller 2 side. A correspondence table of these numbers and line numbers (hereinafter referred to as line-breakpoint correspondence table) is created and held by the debugger controller 2.

【0046】「readcondfile 命令」は、
外部からファイルを実行制御命令記憶部24に読み込
む。「crun 命令」は、モードを条件付き実行モー
ドに移し、全ての逐次デバッガ4に「run 命令」を
送り、全てのプログラム6がブレークポイントで停止す
るか、または終了するのを待ち、後述する変数設定処理
を行い、“$CONTPELIST”という変数に“#
PEALL”をセットし、実行制御命令記憶部24内に
保持されている実行制御命令記述プログラムを解釈し実
行する。ここで、#PEALLは、すべてのプログラム
を示す変数とする。全てのプログラムが終了した場合に
は、対話モードに戻る。
The "readconditionfile instruction" is
The file is read from the outside into the execution control command storage unit 24. The "crun instruction" shifts the mode to the conditional execution mode, sends the "run instruction" to all the sequential debuggers 4, waits for all the programs 6 to stop at the breakpoint, or finishes, and then to a variable described later. Perform the setting process and set the variable "$ CONTPELIST" to "#
PEALL "is set to interpret and execute the execution control instruction description program stored in the execution control instruction storage unit 24. Here, #PEALL is a variable indicating all programs. If so, it returns to the interactive mode.

【0047】「ccont 命令」は、$CONTPE
LISTに登録されているプログラム6を制御する逐次
デバッガ4に「cont 命令」を送り、全てのプログ
ラムがブレークポイントで停止するか、または終了する
のを待ち、後述する変数設定処理を行い、$CONTP
ELISTを#PEALLにし、実行制御命令記憶部2
4内に保持されてい命令を解釈し実行する。全てのプロ
グラムが終了した場合には、対話モードに戻る。
"Ccont instruction" is $ CONTPE
Sends a "cont instruction" to the sequential debugger 4 that controls the program 6 registered in LIST, waits for all the programs to stop at the breakpoint, or finishes, and performs the variable setting process described later, and $ CONTP
ELIST is set to #PEALL, and the execution control instruction storage unit 2
The instruction held in 4 is interpreted and executed. When all programs have finished, return to interactive mode.

【0048】「view variable コマン
ド」は、実行制御命令記述ファイル内の変数“vari
able”を通信部22−2を通じて外部のプロセス1
0へと送る。
The "view variable command" is a variable "vari" in the execution control instruction description file.
external process 1 via the communication unit 22-2
Send to 0.

【0049】次に、実行制御命令記述ファイル3の記述
方法について説明する。本実施例では、実行制御命令記
述ファイル3は、例えばC言語形式のようなプログラム
で記述する。
Next, a description method of the execution control instruction description file 3 will be described. In the present embodiment, the execution control instruction description file 3 is described by a program in the C language format, for example.

【0050】まず、実行制御命令記述ファイル3で用い
られる変数とその設定方法について示す。以下、$va
rは、内部変数を表すものとする。“#PE”はプログ
ラムの番号、“#PE:var”は#PE番のプログラ
ム中の変数の値、“#BP(#PE)”は#PE番のプ
ログラムが停止しているブレークポイントの位置とす
る。例えば、1番のプログラムが2番のブレークポイン
トで停止した場合は、#BP(1)=2となる。
First, the variables used in the execution control instruction description file 3 and the setting method thereof will be described. Below, $ va
r represents an internal variable. "#PE" is the program number, "#PE: var" is the value of the variable in the #PE program, and "#BP (#PE)" is the position of the breakpoint where the #PE program is stopped. And For example, when the first program stops at the second breakpoint, #BP (1) = 2.

【0051】変数設定処理は、すべてのプログラムにつ
いて#BP(#PE)の値を設定する。この処理は、逐
次プログラム6がブレークポイントで停止した時に、そ
の逐次プログラム6を制御する逐次デバッガ4が通信部
22−1に対して出力する停止したブレークポイントの
行番号から、行−ブレークポイント番号対応表を用いて
ブレークポイントの番号を調べ、その値を#BP(#P
E)の値とすることで実現される。また、変数設定処理
では、“$PENUM”の値がプログラムの数に設定さ
れる。
In the variable setting process, the value of #BP (#PE) is set for all programs. This processing is performed from the line number of the stopped breakpoint, which is output to the communication unit 22-1 by the sequential debugger 4 that controls the sequential program 6 when the sequential program 6 is stopped at the line-breakpoint number. Check the breakpoint number using the correspondence table and set its value to #BP (#P
It is realized by setting the value of E). Further, in the variable setting process, the value of "$ PENUM" is set to the number of programs.

【0052】実行制御命令記述ファイル3内で#PE:
varが参照された場合は、#PE番の逐次プログラム
6を制御する逐次デバッガ4に対して、「print
var 命令」を送り、その結果を#PE:varとし
て用いる。
#PE in the execution control instruction description file 3:
When var is referenced, “print” is issued to the serial debugger 4 which controls the serial program 6 of #PE.
var command ”and the result is used as #PE: var.

【0053】次に、実行制御命令記述ファイル3で用い
られる関数とその実現方法について示す。関数BP(#
PEi,#PEj,...,#PEk)は、引数に与え
られたプログラムが停止しているBPの位置の種類を返
す。ここで、1≦#PEi,#PEj,#PEk≦nで
あり、nは逐次プログラムの数とする。これは、#BP
(#PE)の値をすべてのプログラム番号について調
べ、異なる種類のものを全て列挙することで求まる。
Next, the functions used in the execution control instruction description file 3 and the method of realizing them will be described. Function BP (#
PEi, #PEj ,. . . , #PEk) returns the type of BP position at which the program given as an argument is stopped. Here, 1 ≦ # PEi, #PEj, # PEk ≦ n, and n is the number of sequential programs. This is #BP
It can be obtained by checking the value of (#PE) for all program numbers and listing all different types.

【0054】関数PE(#BP1,#BP2,...,
#BPm)は、引数に与えられたBPで停止しているプ
ログラムのリストを返す。これは、#BP(#PE)の
値を1≦#PE≦nについて調べ、その結果が引数に含
まれてる場合には、#PEの値を結果として返すことに
よって求まる。
Function PE (# BP1, # BP2, ...,
#BPm) returns a list of programs stopped at the BP given as an argument. This is obtained by checking the value of #BP (#PE) for 1 ≦ # PE ≦ n and returning the value of #PE as a result when the result is included in the argument.

【0055】関数CONT(#PEi,#PE
j,...,#PEk)は、引数に与えられた逐次プロ
グラムに対して逐次デバッガを通して「cont 命
令」を送る。関数WAIT(#PEi,#PE
j,...,#PEk)は、引数に与えられた全てのプ
ログラムのデバッガからメッセージが返って来るのを待
つ。全てのプログラムのデバッガからメッセージが返っ
て来た後、変数設定処理を行う。もし、全てのプログラ
ムが終了していた場合には、「crun 命令」あるい
は、「ccont 命令」を終了し、デバッガコントロ
ーラのモードを対話モードに戻す。
Function CONT (#PEi, #PE
j ,. . . , #PEk) sends a "cont instruction" through the sequential debugger to the sequential program given as an argument. Function WAIT (#PEi, #PE
j ,. . . , #PEk) waits for messages to be returned from the debuggers of all programs given as arguments. After messages are returned from the debuggers of all programs, variable setting processing is performed. If all the programs have ended, the "crun instruction" or "ccont instruction" is ended, and the mode of the debugger controller is returned to the interactive mode.

【0056】さて以下では、上記したような命令などの
各機能を用いて、ある停止条件でプログラムを停止させ
る手順を示す。ここでは、停止条件の一例として、次の
ような条件を取り上げる。図3のプログラムが5つ同時
に動作する場合において、02行目と04行目にブレー
クポイントを設定し個々のプログラムを実行させると、
個々のプログラムはwhileループを一回りする毎に
どちらかのブレークポイントで停止する。停止条件は、
この「while ループ」1回毎の停止を繰り返し行
った際に、ブレークポイント1で停止しているプログラ
ムが2つだけある場合以外にはプログラムを停止させず
に、ブレークポイント1で停止しているプログラムが2
つだけある場合とする。このような停止条件が成立した
場合にはじめてプログラムを停止させるという処理を実
現する手続きについて説明する。
Now, a procedure for stopping the program under a certain stop condition using each function such as the above-mentioned instruction will be described below. Here, the following conditions are taken as an example of the stop condition. When five programs in FIG. 3 operate at the same time, if breakpoints are set on lines 02 and 04 and individual programs are executed,
Each program will stop at either breakpoint after each while loop. The stop condition is
When this "while loop" is repeatedly stopped once, the program is not stopped unless there are only two programs that are stopped at break point 1, and it is stopped at break point 1. Program is 2
Suppose there is only one. A procedure for realizing the processing of stopping the program only when such a stop condition is satisfied will be described.

【0057】まず、ユーザはデバッガコントローラ2を
起動し、続いて逐次デバッガ4上からユーザプログラム
6を起動する。続いて、「select(#PEAL
L)命令」ですべてのプログラムを選択した後、「st
op at 02 命令」と「stop at 04
命令」で、個々のプログラムの02行目と04行目にブ
レークポイントを設定する。この時、02行目のブレー
クポイントには1のブレークポイント番号が、04行目
のブレークポイントには2のブレークポイント番号が夫
々付けられたものとする。
First, the user activates the debugger controller 2, and subsequently activates the user program 6 from the debugger 4. Then, select "(PEAL
After selecting all programs with "L) command," st
op at 02 instruction "and" stop at 04
"Instruction" sets breakpoints on lines 02 and 04 of each program. At this time, a breakpoint number of 1 is assigned to the breakpoint on line 02, and a breakpoint number of 2 is assigned to the breakpoint on line 04.

【0058】ユーザは、図4に示すような実行制御命令
を記述した実行制御命令記述ファイル3を作成する(あ
るいは既に作成してあるものとする)。続いて、「re
adcondfile 命令」で、このファイルをデバ
ッガコントローラ2内の実行制御命令記憶部24に読み
込む。
The user creates (or has already created) the execution control instruction description file 3 in which the execution control instructions as shown in FIG. 4 are described. Then, "re
This file is read into the execution control instruction storage unit 24 in the debugger controller 2 by the "addfilefile instruction".

【0059】続いて、「crun 命令」でプログラム
6を条件付き実行する。図3に示すような個々のプログ
ラム6は、それぞれyの値に応じて1番か2番のブレー
クポイントで停止し、デバッガコントローラ2に、何行
目で停止したかというメッセージを返す。全てのプログ
ラムから、ブレークポイントに達したというメッセージ
あるいはプログラムが終了したというメッセージが届い
た後、実行制御命令文の解釈実行を始める。
Then, the program 6 is conditionally executed by the "crun instruction". The individual programs 6 as shown in FIG. 3 stop at the break points 1 and 2 respectively depending on the value of y, and return to the debugger controller 2 a message indicating at which line the stop occurred. After receiving a message that a breakpoint has been reached or a message that the program has ended, all programs start interpreting and executing the execution control statement.

【0060】図4の実行制御命令文において、$BP1
NUMはブレークポイント1で停止しているプログラム
の個数を数える変数であり、「for ループ」が実際
に数をカウントしている。個数が2である場合は「br
eak 命令」で処理をユーザに戻し、そうでない場合
はWAIT(#PEALL)で再び全てのプログラムを
継続実行させ、再びブレークポイントでの停止条件を判
定する。
In the execution control statement of FIG. 4, $ BP1
NUM is a variable for counting the number of programs stopped at break point 1, and the "for loop" actually counts the number. If the number is 2, "br
The process is returned to the user by "eak instruction", otherwise, all programs are continuously executed again by WAIT (#PEALL), and the stop condition at the breakpoint is determined again.

【0061】以上の手順で、ユーザは所望の停止位置で
プログラムを停止させることができる。この処理の後、
ユーザは、「ccont 命令」で操作を続ければ、再
び所望の条件でプログラムを停止させることができる。
By the above procedure, the user can stop the program at a desired stop position. After this process,
The user can stop the program again under desired conditions by continuing the operation with the "ccont command".

【0062】このように、複数の逐次プログラム間であ
る条件が成立した場合に、自動的にプログラムを停止さ
せるようなデバッグ処理が可能となる。もちろん、本発
明は、上記のようなデバッグ処理だけでなく、複数の逐
次プログラム相互間の動作状態を関連付けた他の所望の
内容のデバッグ処理を行うことができる。
In this way, it is possible to perform a debugging process in which the program is automatically stopped when a certain condition is satisfied among a plurality of sequential programs. Of course, the present invention can perform not only the debug processing as described above, but also the debug processing of other desired contents in which the operating states of a plurality of sequential programs are associated with each other.

【0063】ところで、上述した命令以外に適宜命令を
容易することにより、所望のデバッグ処理を実現するこ
とができる。以下では、種々のデバッグ処理の例を示
す。まず、ユーザコマンドにより、デバッグコントロー
ラ2内にプログラムの停止位置およびその停止位置で参
照したい変数を構造体として持ち、並列プログラム実行
の際に制御条件として参照する例について説明する。
By the way, by facilitating instructions other than the above-mentioned instructions as appropriate, desired debug processing can be realized. Below, the example of various debugging processes is shown. First, an example in which the debug controller 2 has a program stop position and a variable to be referred to at the stop position as a structure according to a user command and is referred to as a control condition when executing a parallel program will be described.

【0064】プログラムの別の場所にある変数を他のブ
レークポイントで参照したい場合には、「probe
命令」をさらに設ければ良い。「probe at l
ine x $x 命令」は、プローブポイント設定の
ための命令であり、対話モードおよび条件付き実行モー
ドの両方で使用できるものとする。
If you want to refer to a variable in another place in the program at another breakpoint, use "probe".
It is sufficient to further provide a “command”. "Probe at l
The "ine x $ x instruction" is an instruction for setting a probe point and can be used in both the interactive mode and the conditional execution mode.

【0065】この命令により、並列プログラムデバッガ
内部に、例えば以下に示すような構造体PROBEが用
意され、構造体内のlineに引数line、構造体内
のvar1に引数x、構造体内のvar2に引数$xが
設定され、逐次デバッガ4を通じてline行にブレー
クポイントが設定される。 デバッガコントローラ2に用意される「ucrun 命
令」は、対話モードでのプログラム実行命令である。こ
の命令は、モードを対話モードに切替え、全ての逐次デ
バッガ4に「run 命令」を送り、$CONTPEL
ISTに#PEALLを代入し、全てのプログラム6が
ブレークポイントで停止するかまたは終了するのを待
つ。あるプログラム#PEの停止位置がプローブポイン
トの場合は、デバッガコントローラがそのプログラム#
PEに対して「print x 命令」を発行し、その
結果を変数#PE:$xに代入し、再びプログラム#P
Eに対して「cont 命令」を与える。
By this instruction, the structure PROBE as shown below is prepared in the parallel program debugger, and the line in the structure has an argument line, the var1 in the structure has an argument x, and the var2 in the structure has an argument $ x. Is set, and a breakpoint is sequentially set on the line line through the debugger 4. The “ucrun instruction” prepared in the debugger controller 2 is a program execution instruction in the interactive mode. This command switches the mode to interactive mode, sends "run command" to all sequential debuggers 4, and sends $ CONTPEL
Substitute #PEALL for IST and wait for all programs 6 to stop or end at breakpoints. If the stop position of a program #PE is the probe point, the debugger controller
A "print x instruction" is issued to the PE, the result is assigned to the variable #PE: $ x, and the program #P is again used.
Give "cont command" to E.

【0066】デバッガコントローラ2に用意される「u
ccont 命令」は、対話モードでのプログラム継続
実行命令である。この命令は、$CONTPELIST
に代入されているプログラム番号のプログラムを制御し
ている逐次デバッガ4に「cont 命令」を送り、$
CONTPELISTに#PEALLを代入し、全ての
プログラム6がブレークポイントで停止するか、または
終了するのを待つ。あるプログラム#PEの停止位置が
probeポイントの場合は、デバッガコントローラ2
がそのプログラム#PEに対して「print x 命
令」を発行し、その結果を変数#PE:$xに代入し、
再びプログラム#PEに対して「cont 命令」を与
える。
[U] prepared in the debugger controller 2
The "ccont instruction" is a program continuation execution instruction in the interactive mode. This command is $ CONTELIST
The "cont instruction" is sent to the sequential debugger 4 which controls the program of the program number assigned to
Substitute #PEALL in CONTELIST and wait for all programs 6 to stop at breakpoints or end. If the stop position of a program #PE is the probe point, the debugger controller 2
Issues a "print x instruction" to the program #PE and assigns the result to the variable #PE: $ x,
The "cont instruction" is given again to the program #PE.

【0067】図5はある行で計算された値が後の行の命
令によって破壊されてしまうプログラムの例である。こ
のプログラムでは、01行目で計算されたxの値が03
行目の命令によって破壊され04行目で参照することは
できない。
FIG. 5 is an example of a program in which a value calculated in a certain line is destroyed by an instruction in a subsequent line. In this program, the value of x calculated in line 01 is 03
It is destroyed by the instruction on the line and cannot be referenced on line 04.

【0068】ここでは、上記プログラムにおいて、ユー
ザが04行目でブレークポイントを設定し、そこでプロ
グラムが停止した際に、01行目で計算されたxの値を
参照するという場合に、02行目に対して「probe
命令」を適用する例を説明する。
Here, in the above program, if the user sets a breakpoint on line 04 and the program stops there, and the value of x calculated on line 01 is referred to, the line 02 Against "probe
An example of applying the “instruction” will be described.

【0069】まず、ユーザはデバッガコントローラ2を
起動し、続いて逐次デバッガ4上からユーザプログラム
6を起動する。続いて、「select(#PEAL
L)命令」ですべてのプログラム6を選択した後、「p
robe at 02 x $x 命令」で02行目を
プローブポイントとし、「stop at 04 命
令」でブレークポイントを設定する。02行目のPはプ
ローブポイントが、04行目のBはブレークポイントが
それぞれ設定されたことを示す。
First, the user activates the debugger controller 2, and subsequently activates the user program 6 from the debugger 4. Then, select "(PEAL
After selecting all programs 6 with "L) command," p
The line 02 is set as a probe point by "robe at 02 x $ x instruction", and the breakpoint is set by "stop at 04 instruction". P on the 02nd line indicates that a probe point has been set, and B on the 04th line indicates that a breakpoint has been set.

【0070】「ucrun 命令」でプログラムが実行
されると、まず02行目で各プログラムは停止し、xの
値が読み出され、それぞれ、#PE:$xの値に格納さ
れる。プログラムは再実行され、各々のプログラムは0
4のブレークポイントで停止し、ユーザに入力要求が戻
る。この時、変数#PE:$xに所望の変数の値が格納
される。
When the program is executed by the "ucrun instruction", each program is stopped at the 02nd line, the value of x is read out and stored in the value of #PE: $ x. The programs are re-executed and each program is 0
It stops at the breakpoint of 4 and the input request is returned to the user. At this time, the value of the desired variable is stored in the variable #PE: $ x.

【0071】このように、プログラムのある時点での変
数の値を、そのプログラムの変数の値がプログラムの継
続実行によって破壊された後でも参照することができ
る。次に、ユーザコマンドにより、デバッグコントロー
ラ2内にブレークポイントの階層関係を構造体として持
ち、並列プログラム実行の際に実行制御条件として参照
する例について説明する。
In this way, the value of the variable at a certain point in the program can be referred to even after the value of the variable in the program is destroyed by the continuous execution of the program. Next, an example will be described in which a hierarchical relationship of breakpoints is provided as a structure in the debug controller 2 by a user command and is referred to as an execution control condition when executing a parallel program.

【0072】ここでは、図6に示すプログラムで、ブレ
ークポイントをそれぞれ、04,06,09,11行目
に設定し、収束ループ3が終わるまでは、収束ループ2
の処理を進めず、収束ループ2が終わるまでは、収束ル
ープ1の処理を進めないという処理を行う場合の例を示
す。なお、04,06,09,11行目のブレークポイ
ントは、それぞれ、ブレークポイント番号1,2,3,
4に対応するものとする。
Here, in the program shown in FIG. 6, breakpoints are set on lines 04, 06, 09, and 11, respectively, until the end of the convergence loop 3, the convergence loop 2
The following is an example of a case in which the processing of step 1 is not advanced and the processing of the convergence loop 1 is not advanced until the convergence loop 2 ends. The break points on lines 04, 06, 09, and 11 are the break point numbers 1, 2, 3, respectively.
It corresponds to 4.

【0073】本実施例において、ユーザの最初の「uc
run 命令」とそれ以降の「uccont 命令」の
繰り返しによって停止するブレークポイントの位置を図
7に示す。
In this embodiment, the user's first "uc
FIG. 7 shows the position of the breakpoint which is stopped by the repetition of the "run instruction" and the subsequent "uccont instruction".

【0074】1回目では、個々のプログラムはそれぞれ
2,1,1,1,1のブレークポイントで停止する。2
回目では、個々のプログラムはそれぞれ1,2,1,
2,1のブレークポイントで停止する。
At the first time, the individual programs stop at the breakpoints of 2, 1, 1, 1, 1 respectively. Two
In the first round, the individual programs are 1, 2, 1,
Stop at a break point of 2,1.

【0075】3回目では、2番と3番のプログラムが3
のブレークポイントで停止されるので、2番と3番のプ
ログラムは、他のプログラムが収束ループ3を終了する
まで継続実行をされない。
At the third time, programs 2 and 3 are 3
No. 2 and No. 3 programs are not continuously executed until the other programs finish the convergent loop 3 because they are stopped at the breakpoint.

【0076】5回目で全てのプログラムが3のブレーク
ポイントに到達するので、この時全てのプログラムは継
続実行され、6回目で、個々のプログラムは、それぞれ
1,4,2,1,1のブレークポイントで停止すること
になる。
At the fifth time, all the programs reach the break point of 3, so that all the programs are continuously executed at this time, and at the sixth time, the individual programs break at 1, 4, 2, 1, 1 respectively. It will stop at the point.

【0077】この処理は、次に示す「parent 命
令」および「gourp 命令」をさらに設けることで
実現できる。「parent bp1 bp2 命令」
は、ブレークポイントbp1とbp2の間に親子関係を
定義する。以下に示すようなデータ構造BPが2つ用意
され、一方の構造体のBPnumには、bp1のブレー
クポイント番号が、他方の構造体のBPnumには、b
p2のブレークポイント番号が代入される。 struct BP{ int BPnum; /*ブレークポイント番号*/ struct *BP child; /*子供のブレークポイント番号*/ struct *BP group; /*子供のブレークポイント番号*/ } この命令により、bp1をBPnumとする構造体のc
hildはbp2をBPnumに持つ構造体を指すこと
となる。
This processing can be realized by further providing the following "parent instruction" and "gourp instruction". “Parent bp1 bp2 instruction”
Defines a parent-child relationship between breakpoints bp1 and bp2. Two data structures BP as shown below are prepared. The BPnum of one structure has a breakpoint number of bp1 and the BPnum of the other structure has b.
The breakpoint number of p2 is substituted. struct BP {int BPnum; / * break point number * / struct * BP child; / * child break point number * / struct * BP group; / * child break point number * /} This instruction causes bp1 to become BPnum The structure c
A child means a structure having bp2 in BPnum.

【0078】「group bp1 bp2 命令」
は、ブレークポイントbp1とbp2の間にグループ関
係を定義する。データ構造BPが2つ用意され、一方の
構造体のBPnumには、bp1のブレークポイント番
号が、他方の構造体のBPnumには、bp2のブレー
クポイント番号が代入される。この命令により、bp1
をBPnumとする構造体のgroupは、bp2をB
Pnumに持つ構造体を指すこととなる。
"Group bp1 bp2 instruction"
Defines a group relationship between breakpoints bp1 and bp2. Two data structures BP are prepared. The breakpoint number of bp1 is assigned to the BPnum of one structure, and the breakpoint number of bp2 is assigned to the BPnum of the other structure. This command causes bp1
Is a structure with BPnum as BPnum, and bp2 is B
It means the structure of Pnum.

【0079】デバッガコントローラ2に用意される「u
crun 命令」は、対話モードでのプログラム実行命
令である。この命令は、モードを対話モードに切替え、
全ての逐次デバッガに「run 命令」を送り、$CO
NTPELISTに#PEALLを代入し、全てのプロ
グラムがブレークポイントで停止するか、プログラムが
終了するのかを待つ。ブレークポイントに親子関係が設
定されている場合は、返ってきたブレークポイントの種
類が一番子供であるブレークポイント番号で停止してい
るプログラム番号を内部変数$CONTPELISTに
代入する。
[U] prepared in the debugger controller 2
The "run instruction" is a program execution instruction in the interactive mode. This command switches the mode to interactive mode,
Send "run instruction" to all sequential debuggers and
Substitute #PEALL into NTPELIST and wait for all programs to stop at breakpoints or to end. When the parent-child relationship is set for the breakpoints, the program number stopped at the breakpoint number whose returned breakpoint type is the smallest child is assigned to the internal variable $ CONTELIST.

【0080】デバッガコントローラ2に用意される「u
ccont 命令」は、対話モードでのプログラム継続
実行命令である。「uccont 命令」は、$CON
TPELISTに代入されているプログラム番号のプロ
グラムを制御している逐次デバッガに「cont 命
令」を送り、$CONTPELISTに#PEALLを
代入し、全てのプログラムがブレークポイントで停止す
るか、プログラムが終了するのかを待つ。ブレークポイ
ントに親子関係が設定されている場合は、返ってきたブ
レークポイントの種類が一番子供であるブレークポイン
ト番号で停止しているプログラム番号を内部変数$CO
NTPELISTに代入する。
[U] prepared in the debugger controller 2
The "ccont instruction" is a program continuation execution instruction in the interactive mode. "Uccont command" is $ CON
Send "cont instruction" to the sequential debugger that controls the program with the program number assigned to TPELIST, assign #PEALL to $ CONTELIST, and either all programs stop at the breakpoint or the program ends. Wait for When a parent-child relationship is set for a breakpoint, the program number stopped at the breakpoint number that is the child of the type of the returned breakpoint is the internal variable $ CO.
Substitute in NTPELIST.

【0081】本実施例の場合、まず、ユーザはデバッガ
コントローラ2を起動し、続いて逐次デバッガ上からユ
ーザプログラムを起動する。続いて、「select
(#PEALL)命令」ですべてのプログラムを選択し
た後、「stop at 04,stop at 0
6,stop at 09,stop at 11 命
令」で、それぞれ1,2,3,4番のブレークポイント
番号のブレークポイントを設定する。
In the case of this embodiment, first, the user activates the debugger controller 2 and then successively activates the user program from the debugger. Then, select
After selecting all programs with the "(#PEALL) instruction", "stop at 04, stop at 0
6, stop at 09, stop at 11 instruction ", and set breakpoints at break point numbers 1, 2, 3, and 4, respectively.

【0082】続いて、「group 1,2、pare
nt 3,1、parent 4,3 命令」を実行す
ると、例えば図8に示すような連結リストがデバッガコ
ントローラ内部に作成される。連結リスト(図中、3
0,31,32,33)は、ブレークポイント番号(図
中、30−1)、子へのリンク(図中、30−2)、グ
ループへのリンク(図中、30−3)からなる。子への
リンクやグループへのリンクが存在しないものは、図中
の33−2,33−3のようにnullがセットされ
る。
Then, "group 1, 2, pare
nt 3,1, parent 4,3 instruction ”, a linked list as shown in FIG. 8 is created inside the debugger controller. Linked list (3 in the figure)
0, 31, 32, 33) includes a breakpoint number (30-1 in the figure), a link to a child (30-2 in the figure), and a link to a group (30-3 in the figure). If there is no link to a child or a link to a group, null is set like 33-2 and 33-3 in the figure.

【0083】「ucrun 命令」を実行すると、$C
ONTPELISTに#PEALLが設定され、各プロ
グラムが停止した位置がデバッガコントローラ2に返さ
れる。この時のブレークポイントの種類を調べ、「gr
oup 命令」および「parent 命令」で作成さ
れた構造体の連結リストを参照しながら、一番子供のブ
レークポイントの種類を決定する。このブレークポイン
トで停止しているプログラムの番号が、内部変数$CO
NTPELISTに代入される。
When the "ucrun instruction" is executed, $ C
#PEALL is set in ONTPELIST, and the position where each program stops is returned to the debugger controller 2. Check the type of breakpoint at this time, and
The breakpoint type of the most child is determined with reference to the linked list of the structures created by the "up instruction" and the "parent instruction". The number of the program stopped at this breakpoint is the internal variable $ CO
Substituted in NTPELIST.

【0084】「uccont 命令」を実行すると、$
CONTPELISTに代入されているプログラム番号
のプログラムにcontが送られる。続いて、$CON
TPELISTに#PEALLが設定され、各プログラ
ムの停止後に各プログラムが停止した位置がデバッガコ
ントローラ2に返される。この時のブレークポイントの
種類を調べ、「group 命令」および「paren
t 命令」で作成された構造体の連結リストを参照しな
がら、一番子供のブレークポイントの種類を決定する。
このブレークポイントで停止しているプログラムの番号
が、内部変数$CONTPELISTに代入される。
When the "uccont instruction" is executed, $
Cont is sent to the program having the program number assigned to CONTELIST. Then, $ CON
#PEALL is set in TPELIST, and the position where each program stopped after each program stopped is returned to the debugger controller 2. Check the type of breakpoint at this time, and check the "group instruction" and "paren".
The type of the child's breakpoint is determined with reference to the linked list of structures created by the "t instruction".
The number of the program stopped at this breakpoint is assigned to the internal variable $ CONTELIST.

【0085】このように、ブレークポイントに階層性を
持たせることで、並列プログラムの実行制御条件を簡便
に設定できる。次に、デバッガコントローラに対して、
処理の中断命令を備え、中断時の個々のプログラムの停
止状況を報告させる例について説明する。
As described above, the execution control condition of the parallel program can be easily set by giving the breakpoints a hierarchical structure. Next, for the debugger controller,
An example of providing a processing interruption instruction and reporting the stop status of each program at the time of interruption will be described.

【0086】ユーザは、「ctrl−C 命令」をデバ
ッガコントローラ2に送ることにより、コントロールを
ユーザへと戻すことができる。「ctrl−C 命令」
は、実行中のプログラム6の逐次デバッガ4が、そのプ
ログラム6に対して逐次デバッガ4を通じて「ctrl
−C コマンド」を送るように命令し、その時のプログ
ラム6の停止位置を受取りユーザに示す。
The user can return control to the user by sending a "ctrl-C instruction" to the debugger controller 2. "Ctrl-C instruction"
Means that the serial debugger 4 of the running program 6 sends "ctrl" to the program 6 through the serial debugger 4.
-C command "is sent and the stop position of the program 6 at that time is received and shown to the user.

【0087】これによって、例えばブレークポイントと
個々のプログラムそのものに埋め込まれた通信命令によ
ってデッドロックが生じた場合、デバッガコントローラ
2の処理を中断し、プログラムの停止状態をユーザに通
知し、ユーザに対するコマンドの受け付けを再開するこ
とができる。
Thus, for example, when a deadlock occurs due to a breakpoint and a communication instruction embedded in each program itself, the processing of the debugger controller 2 is interrupted, the user is notified of the stopped state of the program, and a command to the user is issued. Can be resumed.

【0088】このように、誤ったブレークポイントの設
定などによって、プログラムの制御がデッドロックを起
こした場合に、ユーザが割込みをかけ、デッドロックが
起こった状況を把握することができる。
As described above, when the control of the program causes a deadlock due to an incorrect breakpoint setting or the like, the user interrupts and the situation where the deadlock occurs can be grasped.

【0089】(2)次に、並列プログラムを構成する個
々の部分プログラムを逐次デバッガ上から起動し、逐次
デバッガを通して個々の部分プログラムからプログラム
実行時の変数の値を取得し可視化を行う並列プログラム
可視化装置の実施例について説明する。
(2) Next, the parallel program visualization is executed in which the individual partial programs constituting the parallel program are started from the sequential debugger, and the variable values at the time of program execution are acquired from the individual partial programs through the sequential debugger for visualization. An example of the apparatus will be described.

【0090】(第2の実施例)図9に、本実施例の並列
プログラム可視化装置の構成を示す。図のように、この
並列プログラム可視化装置は、デバッガコントローラ1
02、複数の逐次デバッガ104(104−1〜104
−n)、1台または複数台の表示部107(107−1
〜107−m)を備える。
(Second Embodiment) FIG. 9 shows the configuration of a parallel program visualization device of this embodiment. As shown in the figure, this parallel program visualization device is equipped with a debugger controller 1
02, a plurality of sequential debuggers 104 (104-1 to 104
-N) One or a plurality of display units 107 (107-1)
~ 107-m).

【0091】逐次デバッガ104は、逐次プログラム1
06のデバッグを行うためのデバッガである。本実施例
では、逐次デバッガ104として、例えばunix上で
動作するdbxやgdbのようなデバッガを想定するこ
ととする。
The sequential debugger 104 uses the sequential program 1
It is a debugger for debugging 06. In this embodiment, it is assumed that the sequential debugger 104 is a debugger such as dbx or gdb that operates on unix.

【0092】各々の逐次デバッガ104は、デバッガコ
ントローラ102により制御される。なお、本実施例で
は、発明を理解しやすくするために、逐次デバッガ4を
用いてデバッグを施される複数のユーザプログラム6
(6−1〜6−5)はデータパラレルプログラムあるい
は全ての部分プログラムが同一のプログラムであるもの
としているが、もちろん個々のプログラムが互いに異な
る場合でも本発明は適用可能である。なお、本実施例
は、プログラムが1つしかない場合でも適用可能であ
る。
Each sequential debugger 104 is controlled by the debugger controller 102. In this embodiment, in order to make the invention easier to understand, a plurality of user programs 6 to be debugged using the sequential debugger 4 are used.
In (6-1 to 6-5), it is assumed that the data parallel program or all the partial programs are the same program, but of course, the present invention can be applied even when the individual programs are different from each other. The present embodiment can be applied even when there is only one program.

【0093】デバッガコントローラ2は、概略的には、
並列プログラム6を構成する個々の部分プログラムをデ
バッグする逐次デバッガ4に対してデバッガコントロー
ラ2は命令を送り、逐次デバッガ4からの出力を受け取
るものである。
The debugger controller 2 is roughly
The debugger controller 2 sends instructions to the sequential debugger 4 that debugs the individual partial programs that form the parallel program 6, and receives the output from the sequential debugger 4.

【0094】本実施例のデバッガコントローラ102
は、制御部121、第1の通信部122−1、第2の通
信部122−2、ユーザインタフェース125、変数取
得表131、変数記憶表132を備える。
The debugger controller 102 of this embodiment
Is provided with a control unit 121, a first communication unit 122-1, a second communication unit 122-2, a user interface 125, a variable acquisition table 131, and a variable storage table 132.

【0095】制御部121は、第1の通信部122−
1、第2の通信部122−2、ユーザインタフェース1
25、変数取得表131および変数記憶表132との間
で通信を行いながら、本システム全体を制御していく。
詳しくは後述するが、概略的には、並列プログラム実行
後、プログラムの進行に合わせて変数取得表131を参
照しながら、各々の逐次デバッガ4に対して命令を送り
あるいは変数値を受け取るなどの制御を行う。
The control unit 121 includes the first communication unit 122-
1, second communication unit 122-2, user interface 1
25, while communicating with the variable acquisition table 131 and the variable storage table 132, the entire system is controlled.
As will be described in detail later, generally, after executing the parallel program, referring to the variable acquisition table 131 as the program progresses, control such as sending an instruction or receiving a variable value to each sequential debugger 4 is performed. I do.

【0096】通信部122−1は、個々の逐次デバッガ
104との通信を行う。通信部122−2は、各表示部
107との通信を行う。変数取得表131は、変数の取
得位置ならびに取得する変数に関する情報を記憶する。
例えば、後述するようにユーザにより入力された、プロ
ーブポイント、プローブ変数、ショウポイントなどを格
納する。
The communication section 122-1 communicates with each sequential debugger 104. The communication unit 122-2 communicates with each display unit 107. The variable acquisition table 131 stores information about acquisition positions of variables and variables to be acquired.
For example, probe points, probe variables, show points, and the like input by the user as described later are stored.

【0097】変数記憶表132は、取得した変数の値を
記憶する。ユーザインターフェース部125は、ユーザ
(図中の108)との入出力インタフェースである。
The variable storage table 132 stores the values of the acquired variables. The user interface unit 125 is an input / output interface with a user (108 in the figure).

【0098】デバッガコントローラ2には、1つまたは
複数の表示部107(107−1〜107−m)が用意
される。表示部107は、一つ以上の変数(テンプレー
ト変数と呼ぶ)の値をもとに可視化を行うための装置で
ある。例えば、プログラム6がショウポイントに到達す
ると、ユーザがあらかじめ選んだ表示部107で可視化
が行われる。
The debugger controller 2 is provided with one or a plurality of display sections 107 (107-1 to 107-m). The display unit 107 is a device for visualization based on the values of one or more variables (called template variables). For example, when the program 6 reaches the show point, visualization is performed on the display unit 107 selected by the user in advance.

【0099】各表示部107は、通信部140と可視化
処理部141を備えている。通信部140は、デバッガ
コントローラ2との通信を行う。可視化処理部141
は、テンプレート変数記述部142、式解釈部143、
描画部144を有する。
Each display unit 107 includes a communication unit 140 and a visualization processing unit 141. The communication unit 140 communicates with the debugger controller 2. Visualization processing unit 141
Is a template variable description part 142, an expression interpretation part 143,
The drawing unit 144 is included.

【0100】テンプレート変数記述部142は、各々の
テンプレート変数に対応するプログラム中の変数や、そ
れらを組み合わせた式を記述する。例えば、プローブ変
数、プログラム番号、ブレークポイント番号やこれらを
組み合わせた式を記述できる。
The template variable description section 142 describes the variables in the program corresponding to each template variable, and the expressions combining them. For example, probe variables, program numbers, breakpoint numbers, and expressions combining these can be described.

【0101】表示部107では、テンプレート変数記述
部142に記述された記述が式解釈部143で解釈さ
れ、描画部144が描画を行う。次に、本実施例の並列
プログラム可視化装置の動作の概略を示す。
In the display unit 107, the description written in the template variable description unit 142 is interpreted by the expression interpretation unit 143, and the drawing unit 144 draws. Next, an outline of the operation of the parallel program visualization device of this embodiment will be shown.

【0102】まず、ユーザはデバッガコントローラ10
2を起動し、続いて逐次デバッガ104−1〜104−
n上からユーザプログラム106−1〜106−nを起
動する。このとき、逐次デバッガ104の入出力はデバ
ッガコントローラ102の通信部122−1と接続す
る。
First, the user selects the debugger controller 10
2 is started, and then the sequential debuggers 104-1 to 104-
The user programs 106-1 to 106-n are activated from above. At this time, the input / output of the sequential debugger 104 is connected to the communication unit 122-1 of the debugger controller 102.

【0103】ユーザは、ユーザインターフェース部12
5を通じて、変数の取得位置(プローブポイント)、変
数名(プローブ変数)、可視化を行う位置(ショウポイ
ント)を入力し、制御部121はこれらの情報を変数取
得表131に格納する。
The user operates the user interface unit 12
5, the variable acquisition position (probe point), the variable name (probe variable), and the visualization position (show point) are input, and the control unit 121 stores the information in the variable acquisition table 131.

【0104】制御部121は、変数取得表の内容に基づ
いて個々の逐次プログラム106−1〜106−nに対
してブレークポイントを設定する。並列プログラム実行
後、制御部121は変数取得表131の値を参照しなが
ら、個々のプログラム106が停止した位置に応じて、
個々の逐次デバッガ104に継続命令や変数取得のため
の命令を送る。取得された変数は、変数記憶表132に
格納される。
The control unit 121 sets a break point for each of the sequential programs 106-1 to 106-n based on the contents of the variable acquisition table. After executing the parallel program, the control unit 121 refers to the values in the variable acquisition table 131 and, depending on the position where each program 106 stops,
A continuation instruction and an instruction for variable acquisition are sent to each serial debugger 104. The acquired variables are stored in the variable storage table 132.

【0105】ユーザの表示部選択命令により、使用する
表示部107が選択される。表示部107が選択される
と、テンプレート変数記述部142に対する入力要求を
ユーザに対して行う。プログラムがショウポイントに到
達した際には、選択されている表示部107を用いて可
視化が行われる。
The display unit 107 to be used is selected by the user's display unit selection command. When the display unit 107 is selected, the user is requested to input the template variable description unit 142. When the program reaches the show point, visualization is performed using the selected display unit 107.

【0106】表示部107では、デバッガコントローラ
102の通信部122−2から表示部107の通信部1
40を通じて、必要な変数の値を受取り、テンプレート
変数記述部142に記述された記述を式解釈部143で
解釈しながら、描画部144が描画を行う。
In the display unit 107, from the communication unit 122-2 of the debugger controller 102 to the communication unit 1 of the display unit 107.
The drawing unit 144 draws while receiving the values of necessary variables via 40 and interpreting the description written in the template variable description unit 142 by the expression interpretation unit 143.

【0107】以下、本実施例についてより詳しく説明す
る。デバッガコントローラ102は、ユーザに対して、
可視化のために用いる表示部107を選択するための
「view 命令」と、プローブ変数やプローブポイン
トを指定するための「probe 命令」と、ショウポ
イントを指定するための「show at 命令」を有
する。また、デバッガコントローラ102は、「run
命令」と「cont 命令」を持つ。「run 命
令」は、逐次デバッガ104に伝えられプログラム10
6が実行される。「cont 命令」は、逐次デバッガ
104に伝えられプログラム106が継続実行される。
Hereinafter, this embodiment will be described in more detail. The debugger controller 102
It has a “view command” for selecting the display unit 107 used for visualization, a “probe command” for designating a probe variable or a probe point, and a “show at command” for designating a show point. In addition, the debugger controller 102
It has a command and a cont command. The "run instruction" is transmitted to the debugger 104 in sequence and the program 10
6 is executed. The "cont instruction" is transmitted to the debugger 104 and the program 106 is continuously executed.

【0108】「view 命令」は、引数として表示部
107の番号をとる。表示部107には予め番号が付け
られているものとする。「view 命令」を実行する
と可視化のために必要な変数に関する情報を入力するウ
インドウが開く。
The "view instruction" takes the number of the display unit 107 as an argument. It is assumed that the display unit 107 is numbered in advance. When the "view command" is executed, a window for inputting information regarding variables necessary for visualization opens.

【0109】図10は、2次元の点を表示する表示部1
07の一例である。点の位置は(X,Y)で表される。
このX,Yをテンプレート変数と呼ぶ。それぞれのテン
プレート変数とユーザプログラム中のどの変数が対応す
るのかを入力する。図10のX=,Y=の覧にそれぞれ
x,y(図中、185,186)と書いてあるのは、プ
ログラム中からx,yという変数の値を取得し、二次元
のX,Y軸上にプロットすることを示している。縦方向
と横方向にはそれぞれスクロールバー(図中、201,
200)が付いており、画面のスクロールができる。X
maxとYmaxの覧にそれぞれ20,20(図中、1
83,184)が入力されているのは画面上の表示の倍
率を設定するものである。この入力の代わりに、拡大、
縮小ボタンを設けてもよい。
FIG. 10 shows a display unit 1 for displaying two-dimensional points.
07 is an example. The position of the point is represented by (X, Y).
These X and Y are called template variables. Enter which template variable corresponds to which variable in the user program. In the table of X =, Y = in FIG. 10, x and y (185 and 186 in the figure) are respectively written, so that the values of variables x and y are acquired from the program and the two-dimensional X and Y are obtained. It shows plotting on the axis. Vertical and horizontal scroll bars (201, 201,
200) is attached, and the screen can be scrolled. X
See 20 and 20 (1 in the figure) for max and Ymax respectively.
83, 184) is input to set the display magnification on the screen. Instead of this input, expand,
A reduction button may be provided.

【0110】「probe 命令」は、引数として行番
号と変数の列をとる。この命令が実行されると、引数と
して与えられた行番号にブレークポイントが設定され
る。この行番号に相当する行をプローブポイントと呼
ぶ。取得する変数のリストを変数取得表131に、行番
号、プローブポイントを示すフラグP、変数リストとい
うフォーマットで登録する。例えば、10行目でxとy
という変数を取得するという「probe 10 x
y 命令」が実行された場合には、図11に示すような
要素が変数取得表131に登録される。
The "probe instruction" takes a row number and a variable column as arguments. When this instruction is executed, a breakpoint is set at the line number given as an argument. The line corresponding to this line number is called a probe point. A list of variables to be acquired is registered in the variable acquisition table 131 in the format of a line number, a flag P indicating a probe point, and a variable list. For example, x and y in the 10th row
To get the variable "probe 10 x
When the “y instruction” is executed, the elements as shown in FIG. 11 are registered in the variable acquisition table 131.

【0111】プログラム106−1〜106−nを実行
し、プログラムがプローブポイントに到達した際には、
デバッガコントローラ102は、各々の逐次デバッガ1
04−1〜104−nに対して変数取得表131に登録
してある変数の値を取得する命令を発行する。具体的に
は、xという変数の値を取得する場合には、逐次デバッ
ガ104に対して、「print x コマンド」を発
行する。デバッガコントローラ102は、この結果を変
数記憶表132に格納する。このとき、格納する変数に
は、変数を取得したプログラムの番号と、プローブポイ
ントの行番号を付けておく。例えば、10行のプローブ
ポイントでプロセッサ番号0から4番のプログラムから
xとyという変数の値を取得した場合、図12に示すよ
うな変数記憶表132が作成される。この後、デバッガ
コントローラ102は、個々の逐次デバッガ104−1
〜104−nに「cont 命令」を送り、プログラム
を継続実行する。
When the programs 106-1 to 106-n are executed and the program reaches the probe point,
The debugger controller 102 is used for each sequential debugger 1
An instruction to acquire the value of the variable registered in the variable acquisition table 131 is issued to 04-1 to 104-n. Specifically, when acquiring the value of the variable x, the "print x command" is issued to the sequential debugger 104. The debugger controller 102 stores this result in the variable storage table 132. At this time, the number of the program that acquired the variable and the line number of the probe point are added to the variables to be stored. For example, when the values of variables x and y are acquired from the programs of processor numbers 0 to 4 at the probe points on the 10th row, the variable storage table 132 as shown in FIG. 12 is created. After this, the debugger controller 102 determines that each serial debugger 104-1
The "cont instruction" is sent to 104-n to continuously execute the program.

【0112】「show at 命令」は、引数として
行番号をとる。この命令が実行されると、引数として与
えられた行番号にブレークポイントが設定される。この
行番号に相当する行をショウポイントと呼ぶことにす
る。行番号、ショウポイントを示すフラグS が変数取得
表に格納される。例えば、11行をショウポイントとす
る「show at 11 命令」が実行された場合に
は、図13に示すような値が変数取得表131に登録さ
れる。
The "show at instruction" takes a line number as an argument. When this instruction is executed, a breakpoint is set at the line number given as an argument. The line corresponding to this line number will be called a show point. The line number and flag S indicating the show point are stored in the variable acquisition table. For example, when the “show at 11 instruction” with the 11th row as the show point is executed, the values shown in FIG. 13 are registered in the variable acquisition table 131.

【0113】デバッガコントローラ102は、ユーザが
「run 命令」あるいは「cont 命令」を実行し
た後に、全ての部分プログラムがショウポイントに到達
するか、またはプログラムが終了するのを待つ。
The debugger controller 102 waits until all the partial programs reach the show point or the program ends after the user executes the "run instruction" or the "cont instruction".

【0114】すべての部分プログラムが、ショウポイン
トに到達するかまたは終了した場合、ユーザがあらかじ
め選択した表示部107に視覚化のためのデータを渡
し、視覚化を行うように命令する。
When all the partial programs reach or end the show point, the user passes the data for visualization to the display unit 107 selected in advance and instructs the display unit 107 to perform visualization.

【0115】同一行に「probe 命令」と「sho
w at 命令」が設定された場合は、「probe
命令」に対して行われる処理が優先され、プログラムを
継続実行せずに「show at 命令」に対して行わ
れる処理が実行される。
In the same line, "probe instruction" and "sho
If "w at command" is set, "probe
The process performed on the "command" is prioritized, and the process performed on the "show at command" is executed without continuously executing the program.

【0116】今、「view 命令」で二次元表示を行
う表示部107を指定し、そのテンプレート変数X,Y
をそれぞれ、x、yとしXmax,Ymaxをそれぞれ
20とし、「probe 命令」で、ある並列プログラ
ム(ただし、並列プログラムを構成する全ての部分プロ
グラムは同じものとする)の10行目プローブポイント
としx,yを取得するように設定し、11行目にショウ
ポイントを設定して、「run 命令」でプログラムを
実行させると、プログラムは11行目で停止し、図12
のような表が得らる。その変数の内容は、表示部107
へと送られる。さらに、デバッガコントローラ102
は、表示部107に可視化を行うように命令を送る。表
示部107は、このデータと命令を受け、テンプレート
変数記述部142に記述された内容を解釈しながら図1
4のような表示を描画部144を用いて行う。
Now, the display section 107 for two-dimensional display is designated by the "view command", and the template variables X and Y thereof are designated.
And xmax and Ymax are 20, respectively, and a "probe instruction" is used as the 10th line probe point of a parallel program (provided that all the partial programs constituting the parallel program are the same). , Y are set, a show point is set on the 11th line, and the program is executed by the "run instruction", the program stops at the 11th line, and FIG.
You will get a table like. The content of the variable is displayed on the display unit 107.
Sent to. Further, the debugger controller 102
Sends a command to the display unit 107 to perform visualization. The display unit 107 receives this data and command, interprets the contents described in the template variable description unit 142, and
Display 4 is performed by using the drawing unit 144.

【0117】なお、表示部107として3次元表示を行
うものを容易し、これを選択すれば3次元表示を行うこ
とも可能である。このように本実施例によれば、デバッ
ガを通じて変数を取得し、表示部で描画を行うことで、
デバッグ対象となるプログラムには変更を加えることな
く、プログラムの挙動を可視化することができる。ま
た、テンプレート変数記述部にプローブ変数、プログラ
ム番号、ブレークポイント番号やそれらを組み合わせた
式を記入できるので、幅広い視点からの可視化が可能で
ある。
Note that it is possible to facilitate the display unit 107 that performs three-dimensional display, and select it to perform three-dimensional display. As described above, according to this embodiment, the variable is acquired through the debugger and the drawing is performed on the display unit.
The behavior of the program can be visualized without changing the program to be debugged. Moreover, since the probe variable, the program number, the breakpoint number, and the expression combining them can be entered in the template variable description part, visualization from a wide range of viewpoints is possible.

【0118】ここで、テンプレート変数として、PE番
号、ブレークポイント番号を書けるようにしても良い。
#PE,#BP(図中、187,188)はそれぞれ、
プログラム番号、ブレークポイント番号を示す変数とす
る。これにより、図15に示すように、どのプログラム
がどのブレークポイントで停止しているかを表示させる
ことができる。
Here, PE numbers and break point numbers may be written as template variables.
#PE and #BP (187 and 188 in the figure) are respectively
It is a variable that indicates the program number and breakpoint number. As a result, as shown in FIG. 15, it is possible to display which program stops at which breakpoint.

【0119】また、テンプレート変数の対応の記述の際
に、右辺に式を書けるようにしても良い。この場合、デ
バッグコントローラ102内に、前述したような式解釈
部を設け、その式の値を計算できるようにする。これに
より、図16に示すように、X軸をxとし、Y軸をx+
yとしたようなグラフを書くことができる。
Further, when describing the correspondence of template variables, an expression may be written on the right side. In this case, the above-described expression interpreting unit is provided in the debug controller 102 so that the value of the expression can be calculated. As a result, as shown in FIG. 16, the X axis is x and the Y axis is x +.
You can write a graph like y.

【0120】このように本実施例によれば、並列プログ
ラム内に可視化のための関数などをプログラムに埋め込
むなどして並列プログラムを変更することなく、簡易に
並列プログラムの可視化を行うことができる。
As described above, according to the present embodiment, it is possible to easily visualize a parallel program without changing the parallel program by embedding a function for visualization in the parallel program.

【0121】(第3の実施例)図17に、本実施例の並
列プログラム可視化装置の構成を示す。本実施例は、第
2の実施例の構成において、デバッグコントローラ10
2内部に簡易言語処理部160を付加したものである。
(Third Embodiment) FIG. 17 shows the configuration of a parallel program visualization device of this embodiment. This embodiment is different from the debug controller 10 in the configuration of the second embodiment.
2 has a simplified language processing unit 160 added inside.

【0122】この簡易言語処理部160は、簡易言語記
憶部161、簡易言語解釈実行部162、簡易言語変数
記憶部163からなる。簡易言語記憶部161は、個々
の部分プログラムが特定行に到着したときに実行される
簡易言語を記述しておくためのものである。簡易言語解
釈実行部162は、簡易言語を解釈して実行するための
ものである。簡易言語変数記憶部163は、簡易言語実
行時に用いられた変数の値を記憶しておくためのもので
ある。
The simple language processing section 160 comprises a simple language storage section 161, a simple language interpretation execution section 162, and a simple language variable storage section 163. The simple language storage unit 161 is for describing a simple language executed when each partial program arrives at a specific line. The simple language interpretation execution unit 162 is for interpreting and executing a simple language. The simplified language variable storage unit 163 is for storing the values of variables used during execution of the simplified language.

【0123】本実施例の並列プログラム可視化装置の動
作の概略を以下に示す。まず、ユーザはデバッガコント
ローラ102を起動し、続いて逐次デバッガ104−1
〜104−n上からユーザプログラム106−1〜10
6−nを起動する。このとき、逐次デバッガ104の入
出力はデバッガコントローラ102の通信部122−1
と接続する。
The outline of the operation of the parallel program visualization device of this embodiment is shown below. First, the user activates the debugger controller 102, and then the sequential debugger 104-1.
From 104-n, user programs 106-1 to 10-10
Start 6-n. At this time, the input / output of the sequential debugger 104 is the communication unit 122-1 of the debugger controller 102.
Connect with.

【0124】ユーザは、ユーザインターフェース部12
5を通じて、変数の取得位置(プローブポイント)、変
数名(プローブ変数)、可視化を行う位置(ショウポイ
ント)、簡易言語を実行する位置(簡易言語実行ポイン
ト)を入力し、制御部121はこれらの情報を変数取得
表131に格納する。
The user operates the user interface unit 12
5, the variable acquisition position (probe point), the variable name (probe variable), the visualization position (show point), and the simple language execution position (simple language execution point) are input. The information is stored in the variable acquisition table 131.

【0125】制御部121は、変数取得表の内容に基づ
いて個々の逐次プログラム106−1〜106−nに対
してブレークポイントを設定する。並列プログラム実行
後、制御部121は変数取得表131の値を参照しなが
ら、個々のプログラム106が停止した位置に応じて、
個々の逐次デバッガ104に継続命令や変数取得のため
の命令を送る。取得された変数は、変数記憶表132に
格納される。
The control unit 121 sets a break point for each of the sequential programs 106-1 to 106-n based on the contents of the variable acquisition table. After executing the parallel program, the control unit 121 refers to the values in the variable acquisition table 131 and, depending on the position where each program 106 stops,
A continuation instruction and an instruction for variable acquisition are sent to each serial debugger 104. The acquired variables are stored in the variable storage table 132.

【0126】プログラムが簡易言語実行位置に到達した
場合は簡易言語の実行を行う。簡易言語は、簡易言語処
理部160にて解釈、実行される。ユーザの表示部選択
命令により、使用する表示部107が選択される。表示
部107が選択されると、テンプレート変数記述部14
2に対する入力要求をユーザに対して行う。プログラム
がショウポイントに到達した際には、選択されている表
示部107を用いて可視化が行われる。
When the program reaches the simple language execution position, the simple language is executed. The simple language is interpreted and executed by the simple language processing unit 160. The display unit 107 to be used is selected by the user's display unit selection command. When the display unit 107 is selected, the template variable description unit 14
Input request for 2 is made to the user. When the program reaches the show point, visualization is performed using the selected display unit 107.

【0127】表示部107では、デバッガコントローラ
102の通信部122−2から表示部107の通信部1
40を通じて、必要な変数の値を受取り、テンプレート
変数記述部142に記述された記述を式解釈部143で
解釈しながら、描画部144が描画を行う。
In the display unit 107, from the communication unit 122-2 of the debugger controller 102 to the communication unit 1 of the display unit 107.
The drawing unit 144 draws while receiving the values of necessary variables via 40 and interpreting the description written in the template variable description unit 142 by the expression interpretation unit 143.

【0128】以下、本実施例についてより詳しく説明す
る。本実施例では、ユーザが簡易言語を記述することが
できる。この簡易言語は、外部変数として、「prob
e 命令」で取得した変数を利用できるものとする。簡
易言語を起動する位置を決める「user 命令」を用
意する。「probe 命令」は「user 命令」に
優先し、「user 命令」は「show at 命
令」に優先する。
The present embodiment will be described in more detail below. In this embodiment, the user can write a simple language. This simple language uses "prob" as an external variable.
The variable acquired by the "e command" can be used. Prepare a "user command" that determines the position to activate the simple language. The "probe instruction" has priority over the "user instruction", and the "user instruction" has priority over the "show at instruction".

【0129】簡易言語中で使用される「show 命
令」は、簡易言語の中から表示部107に対して、可視
化のために必要なデータを与えるとともに、表示部10
7に表示を行うよう指示する命令である。
The "show instruction" used in the simple language gives the data necessary for visualization to the display unit 107 from the simple language, and
7 is an instruction to instruct the display to be performed.

【0130】例えば、簡易言語として、図18のように
記述したものとする。この例では、01行目でプローブ
変数x,yを使うことを宣言し、02で2番の可視化ツ
ールで可視化を行っている。
For example, assume that a simple language is described as shown in FIG. In this example, the 01st line declares that the probe variables x and y are used, and the 02nd visualization tool performs visualization at 02.

【0131】2番の可視化ツールが二次元描画のもので
あり、X=oldx−x、Y=oldy−yとすると、
図19のようにx,yが移動した方向を表示できる。こ
のように本実施例によれば、ユーザプログラムでは既に
更新されてしまって見ることのできない変数の過去の値
を利用した柔軟な可視化が可能になる。
If the second visualization tool is a two-dimensional drawing tool and X = oldx-x and Y = oldy-y,
As shown in FIG. 19, the direction in which x and y have moved can be displayed. As described above, according to this embodiment, it is possible to perform flexible visualization using past values of variables that cannot be seen because they have already been updated by the user program.

【0132】なお、簡易言語および簡易言語起動位置
は、複数あっても良い。 (第4の実施例)図20に、本実施例の並列プログラム
可視化装置の表示部207の構成を示す。本実施例は、
第1の実施例または第2の実施例の構成において、表示
部107内部に、ユーザイベントハンドラ210、図形
データ記憶部211、プロセッサマップ表示部212を
付加したものである。
There may be a plurality of simple languages and simple language starting positions. (Fourth Embodiment) FIG. 20 shows the configuration of the display unit 207 of the parallel program visualization device of this embodiment. In this embodiment,
In the configuration of the first or second embodiment, a user event handler 210, a graphic data storage unit 211, and a processor map display unit 212 are added inside the display unit 107.

【0133】図形データ記憶部211は、可視化された
画面上の図形の座標と、その図形を描画するためのデー
タを取得したプログラムの番号とプログラム中の位置を
記憶する。プロセッサマップ表示部212は、プログラ
ムの番号を2次元の表に並べたプロセッサマップを表示
する。
The figure data storage unit 211 stores the coordinates of the visualized figure on the screen, the number of the program that acquired the data for drawing the figure, and the position in the program. The processor map display unit 212 displays a processor map in which program numbers are arranged in a two-dimensional table.

【0134】本実施例では、ユーザが可視化された画面
上の特定の図形データをマウスでクリックした場合、ユ
ーザイベントハンドラ210がマウスのクリックされた
位置と図形データ記憶部211の内容から、ユーザがク
リックした図形を描画するためのデータを取得したプロ
グラムの番号を取得し、プロセッサマップ上のそのプロ
グラム番号の表示を反転させる。
In the present embodiment, when the user clicks on specific graphic data on the visualized screen with the mouse, the user event handler 210 determines the user from the clicked position of the mouse and the contents of the graphic data storage unit 211. The number of the program that acquired the data for drawing the clicked figure is acquired, and the display of the program number on the processor map is reversed.

【0135】二次元の表示を行う表示部107で点を描
画する際に、画面上の点の座標すなわち二次元表示にお
ける点の相対座標(x,y)、これら変数x,yを取得
したプロセッサの番号、プローブポイントの位置、ショ
ウポイントの位置を互いに関連付けて記憶しておく。
When a point is drawn on the display unit 107 for two-dimensional display, the coordinates of the point on the screen, that is, the relative coordinates (x, y) of the point in the two-dimensional display, and the processor that has acquired these variables x, y Number, probe point position, and show point position are stored in association with each other.

【0136】図14は、5つの点が描かれている画面で
あり、それぞれの点に対して、図形データ記憶部211
に図21のようなデータが保持する。図形番号は表示さ
れた図形にユニークに与えられる番号であり、mous
eX,mouseYは画面上の位置であり、x,yは表
示部107による二次元表示における相対座標であり、
プロセッサ番号は、その変数が計算されたプロセッサの
番号であり、ショウポイントは表示が行われたショウポ
イントを示している。
FIG. 14 is a screen in which five points are drawn. For each point, the graphic data storage unit 211
21 holds the data as shown in FIG. The figure number is a unique number given to the displayed figure.
eX and mouseY are positions on the screen, x and y are relative coordinates in the two-dimensional display by the display unit 107,
The processor number is the number of the processor whose variable was calculated, and the show point shows the show point at which the display was made.

【0137】ユーザが画面上の点をクリックしたとき、
ユーザイベントハンドラ210は、マウスのクリックさ
れた座標を検出し、図形データ記憶部211のmous
eX,mouseYの値と一致するものを探し、その図
形番号を得る。その図形番号のプロセッサ番号を表から
取得し、そのプログラム番号をプロセッサマップ表示部
212に送る。プロセッサマップ表示部212は、例え
ば図22のように、送られた番号のプロセッサ番号を反
転する。
When the user clicks on a point on the screen,
The user event handler 210 detects the clicked coordinates of the mouse, and the mouse of the graphic data storage unit 211
The one that matches the values of eX and mouseY is searched for and the figure number is obtained. The processor number of the figure number is acquired from the table, and the program number is sent to the processor map display unit 212. The processor map display unit 212 inverts the processor number of the sent number, as shown in FIG. 22, for example.

【0138】このようにすれば、可視化画面から、ユー
ザにとって好適な情報を得ることができうる。なお、プ
ロセッサマップ表示部212の代わりにソースファイル
を表示するプロセスを設け、図形データ記憶部211の
変数リストに、その変数が取得されたプローブポイント
を記憶することで、表示された点をマウスでクリックし
た場合に、その点を描くためのデータが取得されたプロ
ーブポイントの行を反転するという機能が得られる。ま
た、本発明は上述した各実施例に限定されるものではな
く、その要旨を逸脱しない範囲で、種々変形して実施す
ることができる。
In this way, information suitable for the user can be obtained from the visualization screen. A process for displaying the source file is provided in place of the processor map display unit 212, and the probe point where the variable is acquired is stored in the variable list of the graphic data storage unit 211, so that the displayed point can be displayed with the mouse. When clicked, the function of inverting the row of probe points from which the data to draw that point was obtained is obtained. Further, the present invention is not limited to the above-described embodiments, and various modifications can be carried out without departing from the scope of the invention.

【0139】[0139]

【発明の効果】【The invention's effect】

(1)本発明では、並列プログラムに対する所望のデバ
ッグ内容の記述を外部からデバッガコントローラに与
え、デバッガコントローラではこの記述の解釈結果に従
い各デバッガに命令を与えて並列プログラムを制御させ
実行制御結果を取得し、さらに取得した各逐次プログラ
ムの実行制御結果に基づいて命令を与えるようにしたの
で、複数の逐次プログラム相互間の動作状態を関連付け
て、逐次プログラムの実行制御および変数値の取得など
所望のデバッグを行うことができる。
(1) In the present invention, a description of desired debug contents for a parallel program is externally given to a debugger controller, and the debugger controller gives an instruction to each debugger according to the interpretation result of this description to control the parallel program and obtain the execution control result. In addition, since instructions are given based on the execution control results of each acquired sequential program, the operating states of a plurality of sequential programs are associated with each other, and the desired debug such as execution control of the sequential programs and acquisition of variable values is performed. It can be performed.

【0140】例えば、複数の逐次プログラム間である条
件が成立した場合に、自動的にプログラムを停止させる
ような処理などが可能となる。 (2)本発明では、デバッガコントローラ内には逐次デ
バッガ夫々から取得すべき変数および該変数を取得する
逐次プログラム中の位置などを予め設定できるように
し、表示手段内には表示すべき変数や該変数を用いた関
数を定義した表示式を予め設定できるようにし、表示手
段はこの表示式に従ってデバッガコントローラから与え
られた変数の値を表示するようにしたので、並列プログ
ラム内に可視化のための関数などをプログラムに埋め込
むなどして並列プログラムを変更することなく、簡易に
並列プログラムの可視化を行うことができる。
For example, it is possible to automatically stop the program when a certain condition is satisfied among a plurality of sequential programs. (2) In the present invention, a variable to be sequentially acquired from each debugger and a position in a sequential program for acquiring the variable can be set in advance in the debugger controller, and the variable to be displayed and the variable to be displayed in the display means. A display expression defining a function using a variable can be set in advance, and the display means displays the value of the variable given from the debugger controller according to this display expression. Therefore, the function for visualization is displayed in the parallel program. The parallel program can be easily visualized without changing the parallel program by, for example, embedding it in the program.

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

【図1】本発明の第1の実施例に係る並列プログラムデ
バッガの構成を示す図
FIG. 1 is a diagram showing a configuration of a parallel program debugger according to a first embodiment of the present invention.

【図2】デバッグコントローラ内での処理の手順を示す
フローチャート
FIG. 2 is a flowchart showing a procedure of processing in the debug controller.

【図3】2箇所のブレークポイントを設定されたプログ
ラムの一例を示す図
FIG. 3 is a diagram showing an example of a program in which two breakpoints are set.

【図4】実行制御命令記述ファイルの一例を示す図FIG. 4 is a diagram showing an example of an execution control instruction description file.

【図5】変数が後の命令で破壊されるプログラムの一例
を示す図
FIG. 5 is a diagram showing an example of a program in which a variable is destroyed by a later instruction.

【図6】3つの収束ループを持つプログラムの一例を示
す図
FIG. 6 is a diagram showing an example of a program having three convergence loops.

【図7】5つのプログラムのブレークポイントでの停止
状況を示す図
FIG. 7 is a diagram showing a stop situation at a breakpoint of five programs.

【図8】デバッグコントローラ内に保持されるデータ構
造の一例を示す図
FIG. 8 is a diagram showing an example of a data structure held in the debug controller.

【図9】本発明の第2の実施例に係る並列プログラム可
視化装置の構成を示す図
FIG. 9 is a diagram showing a configuration of a parallel program visualization device according to a second embodiment of the present invention.

【図10】2次元表示を行う表示部の一例を示す図FIG. 10 is a diagram showing an example of a display unit that performs two-dimensional display.

【図11】プローブポイントの登録にあたって変数取得
表に記憶される内容を示す図
FIG. 11 is a diagram showing contents stored in a variable acquisition table when registering probe points.

【図12】変数記憶表の一例を示す図FIG. 12 is a diagram showing an example of a variable storage table.

【図13】ショウポイントの登録にあたって変数取得表
に記憶される内容を示す図
FIG. 13 is a diagram showing contents stored in a variable acquisition table when registering show points.

【図14】2次元グラフの描画例を示す図FIG. 14 is a diagram showing a drawing example of a two-dimensional graph.

【図15】プロセッサ番号とブレークポイントのグラフ
の表示例を示す図
FIG. 15 is a diagram showing a display example of a graph of processor numbers and breakpoints.

【図16】テンプレート変数への式を記述した例を示す
FIG. 16 is a diagram showing an example in which an expression is written in a template variable.

【図17】本発明の第3の実施例に係る並列プログラム
可視化装置の構成を示す図
FIG. 17 is a diagram showing a configuration of a parallel program visualization device according to a third exemplary embodiment of the present invention.

【図18】簡易言語の記述例を示す図FIG. 18 is a diagram showing a description example of a simple language.

【図19】変数の過去の値を利用して表示を行った例を
示す図
FIG. 19 is a diagram showing an example of displaying using past values of variables.

【図20】本発明の第4の実施例に係る並列プログラム
可視化装置の構成を示す図
FIG. 20 is a diagram showing the configuration of a parallel program visualization device according to a fourth embodiment of the present invention.

【図21】表示部での図形データの記憶方式を説明する
ための図
FIG. 21 is a diagram for explaining a storage method of graphic data on the display unit.

【図22】表示部上の図形に関係するプロセッサの番号
を表示する例を示す図
FIG. 22 is a diagram showing an example of displaying processor numbers related to graphics on the display unit.

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

2…デバッガコントローラ、3…実行制御命令記述ファ
イル、4,4−1〜4−5…逐次デバッガ、6,6−1
〜6−5…ユーザプログラム、、8…ユーザ、10…外
部プロセス、21…命令解釈実行部、22−1…第1の
通信部、22−2…第2の通信部、23…ファイル入出
力部、24…実行制御命令記憶部、25…コマンド入出
力部、102…デバッガコントローラ、104,104
−1〜104−n…逐次デバッガ、106,106−1
〜106−n…ユーザプログラム、107,107−1
〜107−n…表示部、108…ユーザ、121…制御
部、122−1…第1の通信部、122−2…第2の通
信部、125…ユーザインタフェース、131…変数取
得表、132…変数記憶表、140…通信部、141…
可視化処理部、142…テンプレート変数記述部、14
3…式解釈部、144…描画部、160…簡易言語処理
部、161…簡易言語記憶部、162…簡易言語解釈実
行部、163…簡易言語変数記憶部、207…表示部、
210…ユーザイベントハンドラ、211…図形データ
記憶部、212…プロセッサマップ表示部
2 ... Debugger controller, 3 ... Execution control instruction description file, 4, 4-1 to 4-5 ... Sequential debugger, 6, 6-1
6-5 ... User program, 8 ... User, 10 ... External process, 21 ... Instruction interpretation execution unit, 22-1 ... First communication unit, 22-2 ... Second communication unit, 23 ... File input / output Section, 24 ... Execution control instruction storage section, 25 ... Command input / output section, 102 ... Debugger controller, 104, 104
-1 to 104-n ... Sequential debugger, 106, 106-1
~ 106-n ... User program, 107, 107-1
-107-n ... Display part, 108 ... User, 121 ... Control part, 122-1 ... 1st communication part, 122-2 ... 2nd communication part, 125 ... User interface, 131 ... Variable acquisition table, 132 ... Variable storage table, 140 ... Communication unit, 141 ...
Visualization processing unit, 142 ... Template variable description unit, 14
3 ... Expression interpreting section, 144 ... Drawing section, 160 ... Simple language processing section, 161 ... Simple language storage section, 162 ... Simple language interpretation executing section, 163 ... Simple language variable storage section, 207 ... Display section,
210 ... User event handler, 211 ... Graphic data storage section, 212 ... Processor map display section

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】並列プログラムを構成する複数の逐次プロ
グラムに一対一に対応して設けられた複数の逐次デバッ
ガ夫々をデバッガコントローラが制御して該並列プログ
ラムのデバッグを行う並列プログラムデバッグ方法にお
いて、 前記デバッガコントローラは、 外部から与えられた並列プログラムに対するデバッグ内
容の記述を解釈し、 この解釈結果に従い、前記デバッガ夫々に命令を与え
て、前記並列プログラムの実行を制御させ、該デバッガ
夫々から実行制御結果を取得し、 これら実行制御結果に基づいて、前記デバッガ夫々にさ
らに命令を与えて、前記並列プログラムの実行を制御さ
せ、該デバッガ夫々から実行制御結果を取得する手続き
を少なくとも1回行い、 前記実行制御結果に従って生成したデバッグ結果を外部
に出力することを特徴とする並列プログラムデバッグ方
法。
1. A parallel program debugging method in which a debugger controller controls each of a plurality of sequential debuggers provided in a one-to-one correspondence with a plurality of sequential programs constituting a parallel program to debug the parallel program, The debugger controller interprets the description of the debug content for the parallel program given from the outside, gives an instruction to each of the debuggers according to the interpretation result to control the execution of the parallel program, and the execution control result from each of the debuggers. Based on these execution control results, further giving instructions to each of the debuggers to control the execution of the parallel program, and performing the procedure of acquiring execution control results from each of the debuggers at least once, Output the debug result generated according to the control result to the outside. Parallel program debugging method comprising and.
【請求項2】並列プログラムを構成する複数の逐次プロ
グラムに一対一に対応して設けられた複数の逐次デバッ
ガと、これら複数の逐次デバッガ夫々を制御して該並列
プログラムのデバッグを行うデバッガコントローラと、
該デバッガコントローラからの命令によってデバッグ結
果の表示を行う少なくとも1つの表示手段とを具備して
なる並列プログラム可視化装置において、 前記デバッガコントローラは、 取得すべき少なくとも1つの変数および該変数を取得す
る前記逐次プログラム中の位置を含む変数獲得情報を記
憶する手段と、 前記逐次デバッガ夫々に命令を与えて、前記並列プログ
ラムの実行を制御させ、前記変数獲得情報に基づき、該
逐次デバッガ夫々から前記変数の値を取得する手段と、 所定のタイミングで、前記変数の値を指定された前記表
示手段に与える手段とを有し、 前記表示手段は、 デバッグ結果を表示するために前記変数のうち少なくと
も1つを用いて作成された表示式を記憶する手段と、 前記デバッガコントローラから与えられた前記変数の値
を前記表示式に基づいて表示する手段とを有することを
特徴とする並列プログラム可視化装置。
2. A plurality of serial debuggers provided in a one-to-one correspondence with a plurality of serial programs constituting a parallel program, and a debugger controller for controlling each of the plurality of serial debuggers to debug the parallel program. ,
In a parallel program visualization device comprising at least one display means for displaying a debug result in accordance with an instruction from the debugger controller, the debugger controller comprises at least one variable to be acquired and the serially acquiring the variable. A means for storing variable acquisition information including a position in a program, and giving an instruction to each of the sequential debuggers to control execution of the parallel program, and based on the variable acquisition information, a value of the variable from each of the sequential debuggers. And a means for giving the value of the variable to the designated display means at a predetermined timing, wherein the display means displays at least one of the variables for displaying a debug result. Means for storing the display formula created by using the And a means for displaying the value of the variable based on the display formula, the parallel program visualization device.
【請求項3】前記デバッガコントローラは、 前記変数の値のうち少なくとも1つを加工するための簡
易言語を記憶する手段と、 所定のタイミングで、前記簡易言語に従って、前記逐次
デバッガ夫々から取得した前記変数の値を加工する手段
とをさらに具備したことを特徴とする請求項2に記載の
並列プログラム可視化装置。
3. The debugger controller stores a simple language for processing at least one of the values of the variables, and the sequential controller acquires the sequential language from each of the debuggers at a predetermined timing according to the simple language. The parallel program visualization device according to claim 2, further comprising means for processing the value of the variable.
【請求項4】前記表示手段は、 表示画面上に表示した図形の座標と該図形を表示するた
めの前記変数を取得した前記逐次プログラムの番号を対
応付けて記憶する手段と、 前記逐次プログラムの番号を並べたプロセッサマップを
表示する手段と、 所定のポインティングデバイスにより前記画面上の特定
の図形が指示された場合、該指示された図形の座標と前
記記憶する手段に記憶された内容から、該指示された図
形を表示するための前記変数を取得した前記逐次プログ
ラムの番号を求め、前記プロセッサマップ上の番号のう
ち、求められた番号の表示を変化させる手段とをさらに
具備したことを特徴とする請求項2に記載の並列プログ
ラム可視化装置。
4. The display means associates and stores the coordinates of a graphic displayed on a display screen with the number of the sequential program that has acquired the variable for displaying the graphic; A means for displaying a processor map in which numbers are arranged; and, when a specific figure on the screen is designated by a predetermined pointing device, from the coordinates of the designated figure and the contents stored in the storing means, A means for obtaining the number of the sequential program that has acquired the variable for displaying the instructed figure and changing the display of the obtained number among the numbers on the processor map. The parallel program visualization device according to claim 2.
JP6326400A 1994-12-27 1994-12-27 Method for debugging parallel program and device for visualizing parallel program Pending JPH08185340A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6326400A JPH08185340A (en) 1994-12-27 1994-12-27 Method for debugging parallel program and device for visualizing parallel program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6326400A JPH08185340A (en) 1994-12-27 1994-12-27 Method for debugging parallel program and device for visualizing parallel program

Publications (1)

Publication Number Publication Date
JPH08185340A true JPH08185340A (en) 1996-07-16

Family

ID=18187377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6326400A Pending JPH08185340A (en) 1994-12-27 1994-12-27 Method for debugging parallel program and device for visualizing parallel program

Country Status (1)

Country Link
JP (1) JPH08185340A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132424A (en) * 1998-06-19 2000-05-12 Lucent Technol Inc Software instrumentation method
JP2001134466A (en) * 1999-11-08 2001-05-18 Fujitsu Ltd Debug device and debug method and program recording medium
KR100421316B1 (en) * 2000-02-24 2004-03-10 박희동 An Event Selection Algorithm for Two-pass On-the-fly Detection of the First Races in Parallel Programs with Synchronization
US7003761B2 (en) 2000-05-18 2006-02-21 Hitachi, Ltd. Multi-process display method in debugger system
CN1300699C (en) * 2004-09-23 2007-02-14 上海交通大学 Parallel program visuable debugging method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132424A (en) * 1998-06-19 2000-05-12 Lucent Technol Inc Software instrumentation method
JP2001134466A (en) * 1999-11-08 2001-05-18 Fujitsu Ltd Debug device and debug method and program recording medium
KR100421316B1 (en) * 2000-02-24 2004-03-10 박희동 An Event Selection Algorithm for Two-pass On-the-fly Detection of the First Races in Parallel Programs with Synchronization
US7003761B2 (en) 2000-05-18 2006-02-21 Hitachi, Ltd. Multi-process display method in debugger system
CN1300699C (en) * 2004-09-23 2007-02-14 上海交通大学 Parallel program visuable debugging method

Similar Documents

Publication Publication Date Title
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
US20010014958A1 (en) Information processing apparatus, defect analysis program, defect analysis method, and application program development assistance system
US20030208746A1 (en) Conditional breakpoint encountered indication
JP2001134466A (en) Debug device and debug method and program recording medium
US6301602B1 (en) Priority information display system
JPH08185340A (en) Method for debugging parallel program and device for visualizing parallel program
JP2003015906A (en) Remote debugging method and device
JP3349057B2 (en) Multitask processing device, multitask processing method, and multitask processing display method
JPH1165845A (en) Device and method for detecting and displaying stall
JPH07219807A (en) Programmable controller system
JPS6310456B2 (en)
JP4562439B2 (en) Program verification system and computer program for controlling program verification system
JP4192380B2 (en) PLC simulator apparatus, simulation program, and recording medium on which the program is recorded
JP2800577B2 (en) Debug device
JPH01125634A (en) Module incorporation test system
JPH08273004A (en) Viewpoint changing method for three-dimensional image display device
CA2366977A1 (en) Method and arrangement for monitoring a program
JPH04299744A (en) Debugging method for program written in interpreter type lenguage
King et al. IDD: An Interactive Distributed Debugger; CU-CS-274-84
JPH0354643A (en) Debug supporting system
Dauphin et al. Hasse: a tool for analyzing causal relationships in parallel and distributed systems
JPH03242736A (en) Abnormality processing system
JPH01169546A (en) Multi-task debugger
JPH03141436A (en) Debugging device
JPH02188862A (en) Display system for multi-process relation