JPH0588933A - デバツグ機能を有する並列処理システム - Google Patents

デバツグ機能を有する並列処理システム

Info

Publication number
JPH0588933A
JPH0588933A JP3249569A JP24956991A JPH0588933A JP H0588933 A JPH0588933 A JP H0588933A JP 3249569 A JP3249569 A JP 3249569A JP 24956991 A JP24956991 A JP 24956991A JP H0588933 A JPH0588933 A JP H0588933A
Authority
JP
Japan
Prior art keywords
program
executing means
stopped
program executing
stop
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
JP3249569A
Other languages
English (en)
Inventor
Kaoru Kawabata
薫 川端
Shinichiro Yamaguchi
伸一朗 山口
Yoshiki Kobayashi
小林  芳樹
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP3249569A priority Critical patent/JPH0588933A/ja
Publication of JPH0588933A publication Critical patent/JPH0588933A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】本発明の目的は、並列処理に起因した誤りをチ
ェックすることができる並列処理システムを提供するこ
とである。 【構成】特定のプログラム実行単位1を指定した場所で
停止する第1の停止手段2と、このとき停止情報を他の
プログラム実行単位に伝達する手段3と、その停止情報
を受け取り、プログラム実行単位を制御する第2の停止
手段4から構成される。 【効果】並列処理プログラムのデバッグにおいて、有効
な位置で全てのプログラムを停止、あるいは制御するこ
とができ、デバッグを容易にすることを可能とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列処理システムに係
り、特に、プログラムを開発する際のデバッグ方式に関
する。
【0002】
【従来の技術】プログラムをデバッグする方法として、
実行中のプログラムを特定の位置で停止させ、その時の
状態や内容を調べたり、実行の履歴を取ったりするデバ
ッグ方法が有効である。また、複数のプログラムが同時
に実行される並列プログラムにおいては、前記1つのプ
ログラムのデバッグ方法を拡張して、あるプログラムが
停止したときに他のプログラムが停止するのを待った
り、あるプログラムが停止したときに他のプログラムを
強制的に停止して、状態を調べる方法等がある。しか
し、これらの方法ではプログラムが自ら停止しないため
にデバッグが不可能になったり、プログラムを強制的に
停止するため、停止位置が実行毎に異なり、デバッグが
困難になるという欠点があった。
【0003】そのために、従来、並列プログラムのデバ
ッグ方式に関して、特開平1−142836号公報に記
載のように、ユーザが予めチェックポイント命令という
命令をプログラム中に書き込み設定することが提案され
ていた。しかし、このような方式では、ユーザがプログ
ラム毎に挿入しなければならないため、多数のプログラ
ムを持つようなプログラムでは設定が容易でないといっ
た欠点があった。
【0004】
【発明が解決しようとする課題】ところで、並列処理の
プログラムを開発する際に使用するデバッガにおいて
は、並列処理であることに起因するプログラム実行時の
誤りをすばやく発見することが必要になってくる。ここ
で、並列処理であることに起因する誤りとは、すなわ
ち、複数プログラムが互いに同期をとったり、通信した
りする部分において発生する、同期ミスや通信デ−タの
不良によって、並列プログラム全体の結果が誤ってしま
う誤りを指す。個々のプログラム内のみで処理されるも
のについては、個々のプログラム毎に単独でデバッグを
することができるからである。これらの複数プログラム
間における同期や通信を実行するためには、システム
(オペレ−ティングシステム等)が用意した特別な機能
(例えば、OSが提供する機能を使うときは、システム
コールと呼ばれる命令を使用する)を使用することが一
般的である。並列処理の実行においてこのシステムコー
ルは、誤りが伝搬する原因となり、複数プログラム間の
処理をデバッグするときに、重要である。このため、並
列処理のデバッグでこのシステムコールに着目したプロ
グラムの実行制御が大いに意味を持つ。つまり、並列プ
ログラムでは、各プログラムの1行毎に着目するより
も、システムコ−ルに着目した方が、プログラム全体の
誤りを発見しやすくなる。
【0005】ここでシステムコ−ルとしては、例えば、
ユニックス(UNIX)オペレーティングシステムにお
ける、米国AT&T社発行のユニックスシステムVイン
ターフェイス規定書で定義されている、fork,ex
ec,sendmsg,rcvmsg等が挙げられる。
【0006】そこで、本発明の目的は、並列処理に起因
した誤りをチェックすることができる並列処理システム
を提供することにある。
【0007】
【課題を解決するための手段】本発明では、複数のプロ
グラム実行手段と、デバッグ手段とを有する並列処理シ
ステムにおいて、プログラム実行手段を指定した場所で
停止する第1の停止手段と、上記プログラム実行手段が
停止したことを他のプログラム実行手段に伝達する手段
と、上記プログラム実行手段が停止したという情報を受
け取ると、上記他のプログラム実行手段がシステムコ−
ルを実施するところにおいて、上記他のプログラム実行
手段を停止させる第2の停止手段とを有することとした
ものである。
【0008】
【作用】以上の目的を達成するために、複数のプログラ
ム実行手段と、デバッグ手段とを有する並列処理システ
ムにおいて、第1の停止手段は、プログラム実行手段を
指定した場所で停止する。伝達する手段は、上記プログ
ラム実行手段が停止したことを他のプログラム実行手段
に伝達する。第2の停止手段は、上記他のプログラム実
行手段がシステムコ−ルを実施するところにおいて、上
記他のプログラム実行手段を停止させる。
【0009】
【実施例】本発明においては、停止情報を伝達する手段
として、読み出し/書き込み可能な領域を持ち、あるプ
ログラムがブレイクポイント命令を実行した時には、シ
ステムがその領域に停止情報を書き込む。他のプログラ
ムが、システムコールを実行する時にはシステムが上で
述べた領域を必ず参照し、停止情報があった場合には、
プログラムを停止する。
【0010】以下、本発明の1実施例について説明す
る。図2は、本発明が適用される並列処理可能なマルチ
プロセッサシステムの構成図である。プロセッサA16
0−0〜プロセッサD160−4は、システムバス16
1を介して、主メモリ163を共有する。メモリ163
には、本システムを制御する為のプログラム(一般にオ
ペレーティングシステム:OSと呼ばれる)と、アプリ
ケーションプログラム(APと呼ばれ、以下単にプログ
ラムと略す)と、プログラムの誤り訂正を行う為のデバ
ッガプログラム等の各種プログラム及びデータが格納さ
れる。2次記憶装置162は、メモリ163の補助メモ
リとして使用される。
【0011】オペレーティングシステムは、メモリ16
3に常駐しており、システム全体を管理する。プログラ
ムは、2次記憶装置162に格納されており、必要に応
じてメモリ163にローディングされる。そして複数の
プログラムがプロセッサ160によって並列実行される
事によって、並列処理が実現される。本実施例では、プ
ロセッサが4台の場合を示しているが、本発明は、プロ
セッサ台数に依存しない。
【0012】図3は、3つの並列プログラム172−
A,B,Cに対して、本発明のデバック方式を適用した
場合の動きを示している。プログラム172−Aにはユ
ーザがブレイクポイント命令173を設定する。そし
て、その他のプログラム172−B,Cには、オペレー
ティングシステムあるいはデバッガがシステムコール
(ここではメッセージ通信用のsendmsg,rcv
msg)の所に自動的にブレイクポイント命令174,
175を設定する。この状態で172−A,B,Cを同
時に実行させると、まずプログラム172−Aがユーザ
設定のブレイクポイント命令173を実行する時に、ト
ラップ例外が発生して、システム制御プログラム(オペ
レーティングシステム)171のトラップ処理プログラ
ムにジャンプする。トラップ処理プログラムについて
は、後述する。
【0013】その後プログラム172−B,Cが、シス
テム設定のブレイクポイント命令174,175を実行
して同様にシステム制御プログラム171のトラップ処
理プログラムにジャンプする。この時プログラム172
−Aが既に停止していれば、プログラム172−B,C
はシステムコールsendmsg,rcvmsgの直前
で停止する。逆にプログラム172−Aが停止していな
ければ、プログラム172−B,Cは停止せず、実行さ
れる。
【0014】図1は、前述のトラップ処理プログラムの
フロー図である。ブレイクポイント命令により発生する
トラップ例外によって、プロセッサ160は、本処理プ
ログラムにジャンプする。処理プログラムでは、まずユ
ーザ設定のブレイクポイント命令によるジャンプか否か
を調べ(99)、ユーザ設定のブレイクポイント命令な
らば、プログラムを停止(より具体的には、オペレーテ
ィングシステムのデータであるプロセス管理テーブル内
の状態変数を停止に設定する)させ(100)、ユーザ
設定のブレイクポイント命令によって停止した事を示す
停止フラグを立てる(101)。停止フラグは、デバッ
ガのデータとして設ける事が一般的と考えられるが、専
用のフリップ・フロップを用いて実現する方法もある。
【0015】一方システム設定のブレイクポイント命令
の場合、停止フラグが立っている(ON)かどうか調べ
る(103)。停止フラグが立っている、即ち並列プロ
グラムの内いづれかのプログラムがユーザ設定のブレイ
クポイントにより既に停止している場合には、当該プロ
グラムを停止する(104)。停止フラグが立っていな
い時には、プログラムを停止せずにトラップ処理を終了
して、システムコールの実行を行う。プログラムが停止
した後は、ユ−ザからの再開指示があるかどうか判断し
(102)、あるまで待つ。
【0016】図4は、3つのプログラムA10、B1
1、C12がそれぞれ異なるプログラムにおいて実行さ
れたときの実行過程を示した図である。図中の矢印
(→)13は、現在実行中のプログラムの位置を示す。
図ではプログラムA10の特定の位置にブレイクポイン
ト命令(BP命令)14が設定されてあり、プログラム
B11,プログラムC12には、システムコール16、
17、18がある。また、停止情報15は、初期状態で
は何も情報を持たず、この停止情報に情報が送られた後
に、他のプログラムはシステムコールを実行する直前で
プログラムの実行を停止する。以下、実行過程を図4に
沿って説明する。状態0(初期状態)でプログラムA1
0、プログラムB11、プログラムC12を同時に起動
する。状態1ではプログラムB11はシステムコール1
に到達している。しかし、停止情報が無いため、この段
階ではプログラムB11は停止せず、次の命令を実行す
る、状態2ではプログラムA10はBP命令に到達して
いる。このとき、停止情報が送られ、停止情報が’有
り’になり、プログラムA10は停止する。しかし、プ
ログラムB、Cは実行を継続する。状態3では、プログ
ラムBはシステムコール2に到達する。このときは停止
情報があるため、ここでプログラムBは停止する。同様
に状態4では、プログラムCはシステムコール3に到達
し、停止情報があるため、ここでプログラムCが停止す
る。この結果、3つのプログラムが全て停止したことに
なる。
【0017】以上の説明から明らかなように、本発明に
よれば、並列処理プログラムのデバッガにおいて有効な
位置で全てのプログラムを停止あるいは、制御すること
ができ、プログラムのデバッグを容易にすることを可能
とする。
【0018】次に本発明の第2の実施例について説明す
る。ここでは、プログラムの停止情報をメッセージで送
っている。図5は、第2の実施例において、3つのプロ
グラムA10、B11、C12がそれぞれ異なるプログ
ラムにおいて実行されたときの実行過程を示した図であ
る。図中の矢印(→)13は、現在実行中のプログラム
の位置を示す。ここでも図に示すように、プログラムA
10の特定の位置にブレイクポイント命令(BP命令)
14が設定されてあり、プログラムB11,プログラム
C12には、システムコール16、17、18がある。
また、メッセージ15は、初期状態では何も送られてな
く、このメッセージが停止情報を送った後に、他のプロ
グラムはシステムコールを実行する直前でプログラムの
実行を停止する。以下、実行過程を図5に沿って説明す
る。状態0(初期状態)でプログラムA10、プログラ
ムB11、プログラムC12を同時に起動する。状態1
ではプログラムB11はシステムコール1に到達してい
る。しかし、メッセージが送られていないため、この段
階ではプログラムB11は停止せず、次の命令を実行す
る、状態2ではプログラムA10はBP命令に到達して
いる。このとき、メッセージにより停止情報が送られ、
プログラムA10は停止する。しかし、プログラムB1
1、C12は実行を継続する。状態3では、プログラム
B11はシステムコール2に到達する。このときは既に
メッセージが送られていて停止情報があるため、プログ
ラムB11は停止する。同様に状態4では、プログラム
C12はシステムコール3に到達し、メッセージによる
停止情報があるため、プログラムC12が停止する。こ
の結果、3つのプログラムが全て停止したことになる。
【0019】上記の実施例では、OSが提供するシステ
ムコ−ルにより停止位置を決めていたが、これに限られ
るものではなく、OS以外が提供する機能を呼び出す命
令のところで停止することとしても本発明の目的を達成
することができる。
【0020】また、この方式を拡張し、停止情報を制御
情報とすることにより、あるプログラムがブレイクポイ
ント命令(BP命令)を実行したとき、他のプログラム
がその制御情報を読み込んで、プログラム情報を書きだ
したり、メッセージやシグナルを送ると行ったこともで
きる。
【0021】
【発明の効果】以上のように、本発明によれば、並列処
理に起因した誤りをチェックすることができる並列処理
システムを提供できる。
【図面の簡単な説明】
【図1】プログラムの動作を説明するフローチャート。
【図2】本発明の実施例のシステム構成図。
【図3】プログラムの動作を説明する別のフローチャー
ト。
【図4】本発明の第1の実施例の実行過程を示す説明
図。
【図5】本発明の第2の実施例の実行過程を示す説明
図。
【符号の説明】
13…命令ポインタ、14…ブレイクポイント命令(B
P命令)、15…停止情報、16、17、18…システ
ムコール、19…メッセージ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数のプログラム実行手段と、デバッグ手
    段とを有する並列処理システムにおいて、 プログラム実行手段を指定した場所で停止させる第1の
    停止手段と、 上記プログラム実行手段が停止したことを他のプログラ
    ム実行手段に伝達する手段と、 上記プログラム実行手段が停止したという情報を受け取
    ると、上記他のプログラム実行手段がシステムコ−ルを
    実施するところにおいて、上記他のプログラム実行手段
    を停止させる第2の停止手段とを有することを特徴とす
    る並列処理システム。
  2. 【請求項2】複数のプログラム実行手段と、デバッグ手
    段とを有する並列処理システムにおいて、 プログラム実行手段を指定した場所で停止する第1の停
    止手段と、 上記プログラム実行手段が停止したことを他のプログラ
    ム実行手段に伝達する手段と、 上記プログラム実行手段が停止したという情報を受け取
    ると、上記他のプログラム実行手段がシステムの提供す
    る機能を呼び出したところで、上記他のプログラム実行
    手段を停止させる第3の停止手段とを有することを特徴
    とする並列処理システム。
JP3249569A 1991-09-27 1991-09-27 デバツグ機能を有する並列処理システム Pending JPH0588933A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3249569A JPH0588933A (ja) 1991-09-27 1991-09-27 デバツグ機能を有する並列処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3249569A JPH0588933A (ja) 1991-09-27 1991-09-27 デバツグ機能を有する並列処理システム

Publications (1)

Publication Number Publication Date
JPH0588933A true JPH0588933A (ja) 1993-04-09

Family

ID=17194955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3249569A Pending JPH0588933A (ja) 1991-09-27 1991-09-27 デバツグ機能を有する並列処理システム

Country Status (1)

Country Link
JP (1) JPH0588933A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332747A (ja) * 1993-05-25 1994-12-02 Nec Corp マルチプロセッサシステムのプログラムデバッグ方法
JP2001134466A (ja) * 1999-11-08 2001-05-18 Fujitsu Ltd デバッグ装置及び方法並びにプログラム記録媒体
JP2007080118A (ja) * 2005-09-16 2007-03-29 Nec Electronics Corp デバッガ装置及びそのデバッガ装置を使用したデバッグ方法
WO2009113273A1 (ja) * 2008-03-14 2009-09-17 パナソニック株式会社 プログラム実行装置およびその制御方法
JP2014164378A (ja) * 2013-02-22 2014-09-08 Nec Corp 並列デバッグシステム、並列デバッグ方法、及び、並列デバッグプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332747A (ja) * 1993-05-25 1994-12-02 Nec Corp マルチプロセッサシステムのプログラムデバッグ方法
JP2001134466A (ja) * 1999-11-08 2001-05-18 Fujitsu Ltd デバッグ装置及び方法並びにプログラム記録媒体
JP2007080118A (ja) * 2005-09-16 2007-03-29 Nec Electronics Corp デバッガ装置及びそのデバッガ装置を使用したデバッグ方法
WO2009113273A1 (ja) * 2008-03-14 2009-09-17 パナソニック株式会社 プログラム実行装置およびその制御方法
JP5269067B2 (ja) * 2008-03-14 2013-08-21 パナソニック株式会社 プログラム実行装置およびその制御方法
US8701089B2 (en) 2008-03-14 2014-04-15 Panasonic Corporation Program execution device and method for controlling the same
JP2014164378A (ja) * 2013-02-22 2014-09-08 Nec Corp 並列デバッグシステム、並列デバッグ方法、及び、並列デバッグプログラム

Similar Documents

Publication Publication Date Title
US5630049A (en) Method and apparatus for testing software on a computer network
JP2522158B2 (ja) マルチプロセッサシステムのプログラムデバッグ方法
JPH0588933A (ja) デバツグ機能を有する並列処理システム
JP2877095B2 (ja) マルチプロセッサシステム
JPS6363935B2 (ja)
JPH07306800A (ja) デバッグ方式
JP3449812B2 (ja) 制御用電子装置
JP2653411B2 (ja) ブレークポイント設定方法
JP2002312302A (ja) 周辺装置
JPS62290942A (ja) デバツガ起動方式
JPH06103110A (ja) ブレークポイント設定方式
JPH11184712A (ja) 情報処理装置
JPH01207837A (ja) システム診断方式
JPH0675800A (ja) 障害処理方式
JPS6020771B2 (ja) マイクロ診断方式
JPH04307637A (ja) 擬似チャネル装置
JPH06103107A (ja) プログラムトレース方法
JP2000330798A (ja) 割込制御装置および割込制御検証方法
JPH01154252A (ja) 並列プロセッサのプログラムデバッグ支援装置
JPS62190533A (ja) 割込マスク制御方式
JPH02244371A (ja) マルチプロセツサシステムの排他制御方法
JPS6214240A (ja) プログラム検査方式
JPS584365B2 (ja) リセツト制御システム
JPH04296943A (ja) 関数型言語のデバッグ方式
JPS61103249A (ja) テストモニタプログラムの操作方式