JPH09212385A - 並列プログラムデバッグ装置 - Google Patents

並列プログラムデバッグ装置

Info

Publication number
JPH09212385A
JPH09212385A JP8017484A JP1748496A JPH09212385A JP H09212385 A JPH09212385 A JP H09212385A JP 8017484 A JP8017484 A JP 8017484A JP 1748496 A JP1748496 A JP 1748496A JP H09212385 A JPH09212385 A JP H09212385A
Authority
JP
Japan
Prior art keywords
event
parallel program
information
execution
order
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
JP8017484A
Other languages
English (en)
Inventor
Hideyuki Izumi
秀幸 和泉
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8017484A priority Critical patent/JPH09212385A/ja
Publication of JPH09212385A publication Critical patent/JPH09212385A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 自らが発生させたイベントを使用して並列プ
ログラムの実行再現並びにデバッグ作業の効率化を図る
並列プログラムデバッグ装置を提供する。 【解決手段】 デバッグ対象の並列プログラムの再現実
行の際に必要な自ら設定したイベントに関する採取イベ
ント情報を記憶するイベント知識記憶部3と、採取イベ
ント情報に基づいて並列プログラムの所定の位置でイベ
ントを発生させるイベント発生設定部4と、実行時のイ
ベントの発生順序を記録し、イベント発生順序比較部6
による比較により再実行時に記録した発生順序と異なる
イベントが発生した処理の流れを中断し、その中断イベ
ント情報をイベント一時記憶部7に一時記憶し、一時記
憶イベント検索部8が中断したイベントの実行が期待さ
れる処理に達したことを認識すると中断したイベントに
イベント固有情報を渡して再実行させる発生イベント記
録部5とを有し、プログラムの実行を再現させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、並列プログラムの
デバッグの際に、その実行を再現する並列プログラムデ
バッグ装置に関するものである。
【0002】
【従来の技術】並列プログラムは基本的に各々の処理の
流れの間では実行順序に再現性がないので、プログラム
に障害が発生した場合に、その状況を再現することが非
常に困難であった。このため、並列プログラムを取り扱
うデバッグ装置には、一般にデバッグの対象となる並列
プログラムの実行を再現するための機能が求められてい
る。
【0003】実行再現のために、プログラム実行中の命
令実行履歴やレジスタ情報等のプログラムの途中の状態
を履歴情報として逐次記録していき、その履歴情報を使
用して再現する方法が考えられる。しかし、この方法で
は採取する情報が膨大となるため、共有メモリヘのアク
セスなど、実行順序の違いがプログラムの実行結果に対
して影響を与えると考えられる部分についてのみ履歴を
採取する方法が考えられるようになった。
【0004】従来は、このような方法で実行再現機能を
実現するため、デバッグ対象プログラムにおいて発生す
るイベントや、並列に実行される処理間の通信の発生を
採取、記録し利用していた。このうち、イベントを利用
した従来例として特開平6−222952号公報に開示
されたデバッグ支援装置は、イベント履歴記録部、プロ
グラム動作再現部、実行命令履歴記録部、命令実行再現
部ユーザインターフェイス部から構成される。この従来
例では、デバッグ対象プログラムにおいてイベントが発
生した際にイベント履歴記録部においてそのイベントの
発生した順序、タスク、内容を履歴情報として記録す
る。そして、実行再現時にプログラム動作再現部におい
て履歴情報を利用してイベントの発生順序と内容とをイ
ベント記録時と同様に保つようにデバッグ対象プログラ
ムの実行を制御する。
【0005】
【発明が解決しようとする課題】従来の実行再現機能を
持つ並列プログラムデバッグ装置では、デバッグ対象プ
ログラムがイベントを発生した時にイベントの発生順
序、内容を記録していた。すなわち、デバッグ装置自身
がイベントの発生を制御していないため、デバッグ対象
プログラムの必要な場所でイベントの発生が保証されな
いこと、また、デバッグ対象プログラムが動作するシス
テム上で発生する可能性のある全てのイベントをデバッ
グ装置が取り扱う必要があるなどの問題があった。さら
に、イベントに対する知識が十分でないため、実行した
命令、タスク名、内容の変化したレジスタやメモリ情報
など膨大な情報を、イベント発生の度に採取し記録しな
ければならないなどの問題もあった。
【0006】この発明は上記のような問題点を解消する
ためになされたもので、デバッグ装置自身が採取対象の
イベントに関する知識を持ち、装置自身がイベントを発
生させ、自らが発生させたイベントを使用してデバッグ
対象の並列プログラムの実行再現を可能とする並列プロ
グラムデバッグ装置を得ることを目的とする。
【0007】また、並列プログラムのデバッグ作業の効
率化を図る並列プログラムデバッグ装置を得ることを目
的とする。
【0008】
【課題を解決するための手段】以上の目的を達成するた
めに、第1発明は、複数の処理を同時に実行する並列プ
ログラムを再実行させてデバッグを行う並列プログラム
デバッグ装置において、デバッグ対象の並列プログラム
の再現実行の際に必要でありかつ自ら設定したイベント
に関する採取イベント情報を記憶する採取イベント知識
記憶手段と、採取イベント情報に基づいて並列プログラ
ムの所定の位置でイベントを発生させるイベント発生設
定手段と、発生したイベントに伴うイベント固有情報を
発生順序に履歴情報として記録する発生イベント記録手
段と、並列プログラムの再実行時に、発生順序と異なる
イベントが発生した処理の流れを中断するとともにその
中断したイベントに伴う中断イベント情報を一時記憶
し、中断したイベントの実行が期待される処理に達した
時点で中断したイベントを再実行させる再実行順序制御
手段とを有し、自ら設定し発生させたイベントを用いて
並列プログラムの実行を再現させることを特徴とする。
【0009】第2の発明は、第1の発明において、記録
した履歴情報に含まれるイベントの発生順序を更新し指
定順序を生成するイベント実行順序更新手段を有するこ
とを特徴とする。
【0010】第3の発明は、第1の発明において、採取
イベント情報に基づいて前記イベント実行順序更新手段
によって生成された指定順序の妥当性を判定する妥当性
判定手段を有し、前記再実行順序制御手段は、指定順序
を発生順序として実行制御を行うことを特徴とする。
【0011】第4の発明は、第1の発明において、採取
イベント情報に基づいて前記発生イベント記録手段に記
録した履歴情報の解析を行うことで、障害が発生しうる
実行順序を障害実行順序として抽出する履歴情報解析手
段と、抽出した障害実行順序に相当するイベントに関す
る情報を記憶する障害実行順序記憶手段とを有すること
を特徴とする。
【0012】第5の発明は、第4の発明において、処理
の流れを監視し、並列プログラムの再実行中に障害が発
生しうる実行順序の箇所に到達したことを通知する障害
実行順序監視手段を有することを特徴とする。
【0013】第6の発明は、第1の発明において、採取
イベント情報に基づいて前記発生イベント記録手段に記
録した履歴情報の解析を行うことで、並列プログラムの
実行順序のテストパターンを生成するテスト実行順序生
成手段と、生成したテストパターンを記憶するテスト実
行順序記憶手段とを有することを特徴とする。
【0014】第7の発明は、第6の発明において、前記
再実行順序制御手段は、前記テスト実行順序記憶手段に
記憶されたテストパターンを発生順序として実行制御を
行うことを特徴とする。
【0015】第8の発明は、第7の発明において、テス
トパターンを用いたテスト結果を記録するテスト結果記
憶手段を有することを特徴とする。
【0016】第9の発明は、第1の発明において、デバ
ッグ中にユーザが入力した操作内容と操作時の並列プロ
グラムの位置情報とをユーザ操作履歴情報として記録す
るユーザ操作記録手段を有し、前記再実行順序制御手段
は、ユーザ操作履歴情報を利用して実行制御を行うこと
を特徴とする。
【0017】第10の発明は、第1の発明において、設
定したイベントのうち特定したイベントのみを対象とし
てデバッグを行うことを特徴とする。
【0018】第11の発明は、第10の発明において、
ロック・同期に関するイベントのみの発生を監視しその
イベントに関する情報を記録するロック状態監視手段
と、採取イベント情報に基づいて前記ロック状態監視手
段が記録したイベントに関する情報の解析を並列プログ
ラムの実行中に行い、実行継続不可能な状態になったと
きに通知を行うロック解析手段とを有することを特徴と
する。
【0019】第12の発明は、第11の発明において、
ユーザが入力した操作内容と操作時の並列プログラムの
位置情報とをユーザ操作ロック履歴情報として記録する
ユーザロック操作記録手段と、前記再実行順序制御手段
による制御内容を記憶する再実行順序制御記憶手段と、
前記ロック状態監視手段が記録したイベントに関する情
報とユーザ操作ロック履歴情報と再実行順序制御記憶手
段に記憶された制御内容とから実行継続不可能な状態に
なった原因を解析し通知するロック原因解析手段とを有
することを特徴とする。
【0020】第13の発明は、第10の発明において、
採取イベント情報の中から発生させるイベントを選択す
る発生イベント選択手段を有し、前記イベント発生設定
手段は、前記発生イベント選択手段が選択したイベント
のみを発生させることを特徴とする。
【0021】第14の発明は、第1の発明において、静
的解析ツールから得た情報に基づき前記採取イベント知
識記憶手段を更新するイベント知識更新手段を有するこ
とを特徴とする。
【0022】第15の発明は、第1の発明において、並
列プログラムの実行に必要な入力情報を記憶するととも
にプログラム入力情報記憶手段と、入力情報に基づいて
並列プログラムが必要とする設定値をイベント発生時に
渡す情報設定手段とを有することを特徴とする。
【0023】
【発明の実施の形態】以下、図面に基づいて、本発明の
好適な実施の形態について説明する。
【0024】実施の形態1.図1は、本発明に係る並列
プログラムデバッグ装置の第1の実施の形態を示したブ
ロック構成図である。本実施の形態における並列プログ
ラムデバッグ装置1は、あるシステム上で複数の処理を
同時に実行する並列プログラムを再実行させてデバッグ
を行う。本実施の形態におけるデバッグ対象プログラム
は、共有メモリ密結合型の並列計算機上で動作し、処理
の流れの単位がスレッドであるマルチスレッドプログラ
ムとする。
【0025】図1に示した並列プログラムデバッグ装置
1は、イベント知識記憶部3、イベント発生設定部4、
発生イベント記録部5、イベント発生順序比較部6、イ
ベント一時記憶部7、一時記憶イベント検索部8及びイ
ベント情報再生部9から構成される。イベント知識記憶
部3は、デバッグ対象の並列プログラムの再現実行の際
に必要なイベントに関する採取イベント情報を記憶する
採取イベント知識記憶手段である。本実施の形態におい
ては、イベント知識記憶部3に記憶するイベントを本デ
バッグ装置自ら設定することを特徴としている。イベン
ト発生設定部4は、採取イベント情報に基づいて並列プ
ログラムの所定の位置でイベントを発生させるイベント
発生設定手段である。本実施の形態においては、並列プ
ログラムデバッグ装置の持つ一般的な機能である「トラ
ップ命令」の設定機能を使用して、対象の関数の呼び出
し口でイベントを発生させるように設定する。発生イベ
ント記録部5は、発生したイベントに伴うイベント固有
情報を発生順序に履歴情報として内部に記録する発生イ
ベント記録手段である。イベント発生順序比較部6、イ
ベント一時記憶部7、一時記憶イベント検索部8及びイ
ベント情報再生部9は、再実行順序制御手段として設け
られており、並列プログラムの再実行時に、発生順序と
異なるイベントが発生した処理の流れを中断するととも
にその中断したイベントに伴う中断イベント情報を一時
記憶し、中断したイベントの実行が期待される処理に達
した時点で中断したイベントを再実行させる。各構成要
素の作用は後述する。
【0026】図2は、イベント知識記憶部3に設定、記
憶された採取イベント情報の例を示した図である。各イ
ベントの採取イベント情報は、並列プログラムで使用さ
れる関数名、その関数が組み込まれている並列プログラ
ムの中の位置(アドレス)、関数の種別及びプログラム
実行時に採取すべき情報の内容で構成される。このよう
に、イベント知識記憶部3は、並列プログラムの再現実
行を行なう際に実行順序や設定情報が必要となるイベン
トのプログラム上の位置や、情報の内容を記憶してい
る。また、更に並列プログラムの記述言語や実行システ
ムごとに必要となるイベント情報を記憶する。
【0027】本実施の形態において特徴的なことは、並
列プログラムの実行制御に使用するイベントを本デバッ
グ装置側によって設定することである。これにより、デ
バッグに必要な並列プログラムの位置でのみイベントを
発生させることができるので、最低限必要な情報のみを
採取でき、更に並列プログラムの実行を効率的に再現さ
せることができる。
【0028】以下、本実施の形態における動作について
説明する。
【0029】まず、最初にデバッグ対象の並列プログラ
ムを実行させる。もちろん、プログラムの実行前に必要
な採取イベント情報をイベント知識記憶部3に登録して
おく必要がある。
【0030】並列プログラムを実行することでデバッグ
が開始され、デバッグ対象プログラムが所定の位置に到
達すると「トラップ命令」により、イベントの発生が通
知される。本デバッグ装置では、この「トラップ命令」
が本デバッグ装置自身が実行再現のために設定したもの
と判断した場合に、発生イベント記録部5を呼び出す。
発生イベント記録部5は、再現実行のためのイベントの
発生順序を管理しており、イベントが発生した際に、そ
の発生順序と発生先のスレッドから得たイベント固有情
報を履歴情報として記録する。この記録したイベント固
有情報の例を図3に示す。発生イベント記録部5は、更
にイベント知識記憶部3からイベントごとに必要な情報
を入手する。例えば、図2に示した採取イベント情報の
先頭にある 「スレッドの生成」のイベントが発生した
時に、新たに生成した「スレッド番号」とそのスレッド
で最初に実行される「実行関数」のアドレス情報を採取
する。図3に示した例では、スレッド番号として“1”
が、実行関数として“FUNC1”がそれぞれ採取され
ている。図4は、採取イベント情報に対応した並列プロ
グラムの構成を示した概念図である。本デバッグ装置
は、この並列プログラムを実行することで、図3に示し
たイベント固有情報を採取することになる。このよう
に、本デバッガ装置自身が設定したイベントの発生時の
みを対象としているので、再実行を実現するために実行
システムや記述言語などに依存したイベントを取り扱う
必要がない。また、必要な情報のみを効率よく採取・記
録することができる。
【0031】次に、並列プログラムを再実行させる。図
5は再実行時のイベントの発生状況と本デバッグ装置に
おける実行再現制御の関係を示した概念図であり、図6
は実行再現制御の動作を示したフローチャートである。
これらの図を用いて並列プログラムの再実行時における
実行再現制御の動作を説明する。
【0032】本実施の形態におけるデバッグ対象プログ
ブムは、マルチスレッドプログラムであり、各スレッド
の内部においては順次実行されることが保証されてい
る。従って、スレッド0のイベント1,2,3,4、ス
レッド1のイベント5、7、スレッド2のイベント6,
8がこの順序で実行されることは保証されている。ただ
し、各スレッド間、例えばイベント3と5の間では順序
関係は保証されていない。
【0033】まず、スレッド0において「スレッドの生
成」イベント1が発生する(ステップ101)。ここ
で、イベント発生順序比較部6は、発生イベント記録部
5の中の履歴情報の最初に記録されたイベントと最初に
発生したイベントとを比較する(ステップ102)。こ
こでは、ともに「スレッドの生成」イベントなので、発
生順序は正しく並列プログラムの実行が再現されている
ことがわかる。イベントの発生順序は正しいので、イベ
ント1の発生によるイベント固有情報を履歴情報として
すでに記録されているイベント固有情報で書き換える
(ステップ103)。ここでは、「スレッド番号」と
「実行関数」の情報が記録されたものに置き換わる。そ
して、次に発生が期待されるイベント(ここではイベン
ト2)を入手する(ステップ104)。一時記憶イベン
ト検索部8は、イベント一時記憶部7を検索するが(ス
テップ105)、この段階ではイベント一時記憶部7に
は何も記憶されていないので、デバッグ処理が継続され
る。
【0034】次に、イベント2が発生するが(ステップ
101)、これも「スレッドの生成」という正しい順序
のイベントが発生したので、イベント1と同様に処理さ
れる(ステップ102〜105)。
【0035】この後、実行再現時にはイベント5続いて
イベント6が発生する(ステップ101)。履歴情報に
記録された発生順序ではイベント3であるため、本デバ
ッグ装置はこれらのイベント5,6がそれぞれ発生した
スレッド1,2を一時停止し、処理の流れを中断する。
また、イベント5,6に伴う情報を中断イベント情報と
してイベント一時記憶部7に退避させる(ステップ10
8)。
【0036】そして、イベント3が発生したとき(ステ
ップ101)、正しい発生順序のイベントが発生したの
で、イベント3に対してイベント1、2と同様の処理を
実行した後(ステップ102〜104)、イベント一時
記憶部7を検索する(ステップ105)。図3に示した
履歴情報から明らかなようにイベント3の発生後に発生
が期待されているのはイベント4である。イベント4に
関する情報は、イベント一時記憶部7には存在しないの
で、イベント3に対する処理終了後、デバッグを継続す
る。
【0037】イベント4が発生したとき(ステップ10
1)、正しい発生順序のイベントが発生したので、イベ
ント4に対してイベント1、2と同様の処理を実行した
後(ステップ102〜104)、イベント一時記憶部7
を検索する(ステップ105)。図3に示した履歴情報
から明らかなようにイベント4の発生後に発生が期待さ
れているのはイベント5である。ここで、イベント5に
関する中断イベント情報は、イベント一時記憶部7に存
在するので、イベント4に対してイベント1、2と同様
の処理を実行した後、イベント5の発生によるイベント
固有情報を履歴情報としてすでに記録されているイベン
ト固有情報で書き換える(ステップ106)。そして、
スレッド1の実行を再開する(ステップ107)。イベ
ント一時記憶部7の中のイベント5の中断イベント情報
は削除される。
【0038】この後、発生イベント記憶部5を検索する
と、次に発生を期待するイベントはイベント6である
(ステップ104)。ここで、イベント一時記憶部7を
検索すると(ステップ105)、イベント6に関する情
報は存在する。従って、イベント5と同様の処理を行
い、スレッド2の実行を再開する(ステップ106,1
07)。イベント一時記憶部7の中のイベント6の中断
イベント情報は削除される。
【0039】そして、以上の処理によりイベント一時記
憶の中身がなくなるので(ステップ104,105)、
デバッグ操作を再開する。イベント7,8については、
正しい発生順序で発生しているので、イベント1,2と
同様の処理がなされてデバッグ操作が終了する。
【0040】以上のように、本実施の形態によれば、並
列プログラムの再実行時に期待されていないイベントが
発生した場合にはそのイベントに関する情報を一時記憶
しかつ一時停止させ、その停止させたイベントの発生が
期待された順序に処理の流れは達したときに実行を再開
させるように実行制御を行うようにしたので、並列プロ
グラムの再実行時のイベント発生の順序にかかわらず確
実に再現させることができる。これは、デバッグ装置自
身のイベントの知識と発生機能を使用したからである。
【0041】また、このため実行再現のためにシステム
に特有のイベントや通信機構に対する知識を必要としな
い。従って、デバッグ対象プログラムの記述言語や実行
システムに依存しない実行再現機能をもつ並列プログラ
ムデバッグ装置が得ることができる。また、実行再現の
ためのコストを最低限に抑制した実行再現機能を有する
並列プログラムデバッグ装置を得ることができる。
【0042】また、デバッグ装置自身でイベントを設定
することができるので、並列プログラム中の必要な位置
でのみイベントを発生させ、必要な情報のみ採取・記録
することができる。従って、取り扱う情報の記録量を削
減することができ、更に必要最低限の制御で実行再現を
実現することで、実行効率の良い並列プログラムデバッ
グ装置を提供することができる。
【0043】実施の形態2.上記実施の形態1におい
て、並列プログラムの実行再現を確実に行うことについ
て説明した。これ以降の実施の形態においては、付加的
な機能について説明する。
【0044】図7及び図8は、本発明に係る並列プログ
ラムデバッグ装置の第2の実施の形態を示したブロック
構成図である。本実施の形態においては、実施の形態1
に加えて、図7に示したように発生イベント記録部5に
記録した履歴情報に含まれるイベントの発生順序を更新
し指定順序を生成するイベント実行順序更新手段として
実行順序更新部10と指定順序記憶部11とを設けたこ
と、また、図8に示したように採取イベント情報に基づ
いて実行順序更新部10によって生成された指定順序の
妥当性を判定する妥当性判定手段として妥当性判定部1
2と更新実行順序実行制御部13とを設けたことを特徴
としている。なお、図7,8には、説明に用いないいく
つかの構成要素を省略して本デバッグ装置を図示してい
る。以降の実施の形態においても説明に用いない構成要
素は図から省略している。
【0045】次に、本実施の形態における動作について
説明する。
【0046】本実施の形態においては、上記実施の形態
1で記録された履歴情報に含まれる発生順序を更新する
ことを特徴としている。すなわち、実行順序更新部10
は、発生イベント記録部5に記録されたイベントの発生
順序を表示し、これに修正を加え、発生順序を変更す
る。この変更した並び順を指定順序ということにする。
そして、実行順序更新部10は、生成した指定順序を指
定順序記憶部11に記憶する。
【0047】妥当性判定部12は、この指定順序を実施
の形態1において使用した図3の発生順序としてデバッ
グの開始が指示されると、イベント知識記憶部3から各
イベントの実行順序に関する制約情報を得て、指定順序
記憶部11で指定された順序が実行可能な順序か否かを
判定する。各イベントの実行順序に関する制約情報と
は、例えば、スレッドの生成の関数の前にそのスレッド
に対する削除の関数がこないなどの制約に関する情報で
ある。
【0048】妥当性判定部12が指定順序での実行を可
能と判定した場合には、更新実行順序実行制御部13
は、イベント発生順序比較部6等で構成される再実行順
序制御手段を利用して指定順序記憶部11の指定順序を
発生順序として並列プログラムの再実行を行う。
【0049】このようにして、本実施の形態によれば、
履歴情報を利用して並列プログラムの実行により得た発
生順序に限らず所望の発生順序で並列プログラムの実行
を再現させることができる。
【0050】実施の形態3.図9及び図10は、本発明
に係る並列プログラムデバッグ装置の第3の実施の形態
を示したブロック構成図である。本実施の形態において
は、実施の形態1に加えて、図9に示したように採取イ
ベント情報に基づいて発生イベント記録部5に記録した
履歴情報の解析を行うことで障害が発生しうる実行順序
をエラー実行順序として抽出する履歴情報解析手段とし
てのイベント履歴解析部14と、抽出した実行順序に相
当するイベントに関する情報を記憶する障害実行順序記
憶手段としてのエラー実行順序記憶部15とを設けたこ
と、また、図10に示したように処理の流れを監視し並
列プログラムの再実行中に障害が発生しうる実行順序の
箇所に到達したことを通知する障害実行順序監視手段と
してのエラー実行順序実行制御部16を設けたことを特
徴としている。
【0051】次に、本実施の形態における動作について
説明する。
【0052】本実施の形態においては、採取した発生順
序を解析し、障害が発生しそうな箇所を重点的にデバッ
グできるようにすることを特徴としている。すなわち、
まず、イベント履歴解析部14は、履歴情報と採取イベ
ント情報とに基づいて障害が発生しうる実行順序を抽出
する。障害が発生しうる実行順序は、例えば、複数の共
有メモリに対するロック処理が複数のスレッドから要求
されようとしている箇所等が該当し、該当するための条
件はイベント知識記憶部3に予め登録されている。この
ため、解析もデバッグ対象プログラムの実行システム等
の影響を受けることなく実行可能である。イベント履歴
解析部14は、解析した結果、その条件に該当するイベ
ントまたはイベント群を検出すると、それを障害実行順
序として抽出しエラー実行順序記憶部15に記憶する。
【0053】エラー実行順序実行制御部16は、イベン
ト発生順序比較部6等で構成される再実行順序制御手段
を利用してエラー実行順序記憶部15に記憶された障害
実行順序を参照しつつ並列プログラムの再実行を行う。
そして、障害実行順序として抽出されたイベントに到達
し発生すると、その旨を通知する。
【0054】以上のように、本実施の形態によれば、障
害が発生しうる実行順序に相当するイベントを予め抽出
し、並列プログラムの再実行中に実際にその箇所に到達
したときに通知するようにしたので、発生しうるエラー
解析など並列プログラムのデバッグ処理を効率よく行う
ことができる。
【0055】実施の形態4.図11、図12及び図13
は、本発明に係る並列プログラムデバッグ装置の第4の
実施の形態を示したブロック構成図である。本実施の形
態においては、実施の形態1に加えて、図11に示した
テスト実行順序生成部17とテスト実行順序記憶部1
8、図12に示したテスト実行順序実行制御部19、図
13に示したテスト結果記憶部20を設けたことを特徴
としている。
【0056】テスト実行順序生成部17は、採取イベン
ト情報に基づいて発生イベント記録部5に記録した履歴
情報の解析を行うことで、並列プログラムの実行順序の
テストパターンを生成するテスト実行順序生成手段であ
る。テスト実行順序記憶部18は、生成したテストパタ
ーンを記憶するテスト実行順序記憶手段である。テスト
実行順序実行制御部19は、再実行順序制御手段を利用
して、テスト実行順序記憶部18に記憶されたテストパ
ターンを発生順序として実行制御を行う。テスト結果記
憶部20は、テストパターンを用いたテスト結果を記録
するテスト結果記憶手段である。
【0057】本実施の形態においては、以上の構成を設
けたことで、履歴情報に基づいて指定順序の様々なテス
トパターンを生成し並列プログラムのデバッグを行うこ
とができる。次に、本実施の形態における動作について
説明する。
【0058】本実施の形態においては、最初に並列プロ
グラムの実行により設定した全てのイベント発生の履歴
情報を得ることができるが、テスト実行順序生成部17
は、この履歴情報の内容すなわち発生したイベントの順
序を自動解析して様々なテストパターンを生成する。生
成するための条件は、イベント知識記憶部3に予め登録
されている。このため、テストパターンの生成もデバッ
グ対象プログラムの実行システム等の影響を受けること
なく本デバッグ装置側で実行可能である。例えば、ID
が0である共有メモリに対するアクセスのみを抽出しそ
のイベントの発生のみの発生順序をテストするという条
件がイベント知識記憶部3に含まれている場合、テスト
実行順序生成部17は、その条件に従い、採取イベント
情報の中から共有メモリIDが0に対するイベント固有
情報のみを履歴情報から抽出する。履歴情報が図3に示
した通りの内容であれば、発生順序3,5を抽出するこ
とになる。この抽出したイベント固有情報で構成される
テストパターンをテスト実行順序記憶部18に記憶す
る。なお、実施の形態2における履歴情報に操作は、発
生順序を並び替えて指定順序を生成したが、本実施の形
態では、並替えもできるが、前述したとおり更に履歴情
報の中から特定のイベントのみを抽出して新たに発生順
序を指定するという操作を行うことができる。
【0059】テストパターンが作成されると、テスト実
行順序実行制御部19は、イベント発生順序比較部6等
で構成される再実行順序制御手段を利用して、そのテス
トパターンを発生順序として並列プログラムを再実行す
る。この実行により得られたテスト結果は、テスト結果
記憶部20に記録される。
【0060】以上のように、本実施の形態によれば、デ
バッグの際に注目したい並列プログラムの処理の流れに
関するイベントのみを所望の発生順序で再現させること
ができ、また、所望のイベントの発生のみの情報を採取
することができるので、より効率的なデバッグ処理を行
うことができる。また、採取する情報も限定されるの
で、取り扱う情報の記録量を削減することができる。
【0061】また、並列プログラムの実行により得た履
歴情報に基づいてテストパターンを生成するので、ソー
スコードの静的解析では十分に行えない、デバッグ対象
プログラムの動的なテストパターンの生成ができるよう
になる。
【0062】実施の形態5.図14は、本発明に係る並
列プログラムデバッグ装置の第5の実施の形態を示した
ブロック構成図である。本実施の形態においては、実施
の形態1に加えて、更に図7に示したユーザ操作記録部
21と実行再現制御部22とを設けたことを特徴として
いる。ユーザ操作記録部21は、デバッグ中にユーザが
入力した操作内容と操作時の並列プログラムの位置情報
とをユーザ操作履歴情報として記録するユーザ操作記録
手段である。実行再現制御部22は、再実行順序制御手
段を利用して、ユーザ操作履歴情報に基づき実行制御を
行う。本実施の形態においては、以上の構成によりデバ
ッグ中のユーザの操作を記録しておくことで効率的なデ
バッグ処理を実現することができる。以下に本実施の形
態における動作について説明する。
【0063】実行再現の際にユーザのデバッグ操作を反
映させるため、ユーザ操作記録部21は、デバッグ中に
ユーザによる操作が実行された際に、その操作内容とと
もに操作対象の処理の流れとその実行されたデバッグ対
象プログラムの位置を内部に記録する。
【0064】ユーザ操作を反映させた実行再現は、実行
再現制御部22により発生イベント記録部5に記録され
た履歴情報とユーザ操作記録部21に記録されたユーザ
操作履歴情報とに基づいて実現される。実行再現制御部
22は、まずイベント発生設定部4に対してユーザ操作
履歴情報に記録された操作の実行位置に対応する並列プ
ログラムの位置で特別のイベントを発生させるように指
示を与える。次に、発生イベント記録部5で記録されて
いるイベントの発生順序にこの特別のイベントの順序を
追加する。以上の準備が完了すると、実行再現制御部2
2は、イベント発生順序比較部6等で構成される再実行
順序制御手段を利用して、特別のイベントを付加した履
歴情報を発生順序として並列プログラムを再実行する。
このようにして、ユーザがデバッグ中に行った操作内容
を含めた並列プログラムの再現を行うことができる。
【0065】実施の形態6.図15及び図16は、本発
明に係る並列プログラムデバッグ装置の第6の実施の形
態を示したブロック構成図である。本実施の形態におい
ては、実施の形態1に加えて、図15に示したロック状
態監視部23とロック解析部24、また図16に示した
ユーザロック操作記録部25、再実行順序制御記憶部2
6及びロック原因解析部27を更に設けたことを特徴と
している。ロック状態監視部23は、ロック・同期に関
するイベントのみの発生を監視し、そのイベントに関す
る情報を記録するロック状態監視手段である。ロック解
析部24は、採取イベント情報に基づいてロック状態監
視部23が記録したイベントに関する情報の解析を並列
プログラムの実行中に行い、実行継続不可能な状態にな
ったときに通知を行うロック解析手段である。ユーザロ
ック操作記録部25は、ユーザが入力した操作内容と操
作時の並列プログラムの位置情報とをユーザ操作ロック
履歴情報として記憶するユーザロック操作記録手段であ
る。再実行順序制御記憶部26は、再実行順序制御手段
による制御内容を記憶する再実行順序制御記憶手段であ
る。そして、ロック原因解析部27は、ロック状態監視
部23が記録したイベントに関する情報とユーザ操作ロ
ック履歴情報と再実行順序制御記憶部26に記憶された
制御内容とから実行継続不可能な状態になった原因を解
析し通知するロック原因解析手段である。
【0066】本デバッグ装置では、自ら設定したイベン
トのうち特定したイベントのみを対象としてデバッグを
行うことができるが、本実施の形態は、特にロック・同
期のに関するイベントのみをデバッグの対象とした場合
の構成である。以下に本実施の形態における動作につい
て説明する。
【0067】まず、本実施の形態におけるロック・同期
の解析処理は、履歴情報を採取するための最初の並列プ
ログラムの実行のときでも並列プログラムの再実行のと
きでも実行可能である。ロック状態監視部23は、並列
プログラムの実行と同時に動作を開始し、ロック・同期
関連のイベントの発生を監視する。これは、発生イベン
ト記録部5に書かれるイベント固有情報を監視すること
で行う。そして、該当するイベントが発生すると、その
発生の際にロック発生の処理の流れやロック処理の種類
などのロック・同期に関する情報を採取し、内部に記録
する。ロック解析部24は、採取されたロック・同期に
関する情報に基づいてそのロック/アンロック、またフ
ラグのセット/クリアなどの状態の解析を並列プログラ
ムの実行と並行して行う。そして、デッドロック等にな
りデバッグの実行継続が困難な状態に陥ったことを動的
に検知すると、その旨を通知する。
【0068】このようにして、本実施の形態によれば、
デバッグを行っているユーザに対してデッドロック等に
陥ったことを知らせることができるので、ユーザのデバ
ッグ作業を支援し効率的に行うことができる。
【0069】また、ユーザのデバッグ中の場合、ユーザ
ロック操作記録部25は、ユーザが入力した操作内容や
操作時の並列プログラムの位置情報などユーザ操作によ
る処理の流れの一時停止制御に関する情報をユーザ操作
ロック履歴情報として内部に記録する。ユーザ操作ロッ
ク履歴情報を記録しておくのは、ユーザの操作により実
行処理のタイミングが多少ずれるので、ユーザの操作に
よってもデッドロック等が発生する可能性があるからで
ある。これに対して、再実行順序制御記憶部26には、
デバッガの制御内容として再実行順序制御手段による制
御内容が記憶される。ロック原因解析部27は、ロック
状態監視部23が記録したイベントに関する情報とユー
ザ操作ロック履歴情報と再実行順序制御記憶部26に記
憶された制御内容とから、実行継続不可能な状態になっ
た原因元を解析しその結果を通知する。これらの情報や
解析の際に必要とする採取イベント情報は、全て本デバ
ッグ装置により設定したイベントの発生及び本デバッグ
装置側での操作によるものなので、ロック解析処理は並
列プログラムのシステム等の影響を受けることなく行う
ことができる。
【0070】以上のように、本実施の形態によれば、デ
ッドロック等が発生したときのエラー解析を容易に行う
ことができる。特に、実際のデバッグ実行中にロック・
同期の解析を動的に行うことができ、かつユーザ操作に
起因するデッドロックなどデバッグの継続が困難となる
並列プログラム特有のエラーを原因別に解析できるの
で、並列プログラムのデバッグ処理を効率的に行うこと
ができる。
【0071】また、デバッグ中におけるユーザ操作も実
行再現の際に反映させることができるので、より複雑な
並列プログラムのデバッグ処理及び実行再現を実現する
ことができる。
【0072】実施の形態7.図17は、本発明に係る並
列プログラムデバッグ装置の第7の実施の形態を示した
ブロック構成図である。本実施の形態においては、実施
の形態1に加えて、図17に示したように採取イベント
情報の中から発生させるイベントを選択する発生イベン
ト選択手段としての最適化イベント選択部28と、選択
したイベントに関する情報を記憶する最適化イベント記
憶部29と、選択したイベントの発生順序を記憶する最
適化イベント順序情報記憶部30を設けたことを特徴と
している。
【0073】本デバッグ装置では、自ら設定したイベン
トのうち特定したイベントのみを対象としてデバッグを
行うことができる。上記実施の形態6では、イベント知
識記憶部3に登録された全てのイベントを発生させ、そ
の発生したイベントのうちロック・同期に関するイベン
トのみを抽出して解析を行うようにしたが、本実施の形
態では、イベント知識記憶部3の中から必要な採取イベ
ント情報のみを事前に選択し、その選択したイベントの
みを発生させるようにしたことを特徴とする。以下に本
実施の形態における動作について説明する。
【0074】まず、最適化イベント選択部28は、履歴
情報を解析し採取イベント情報の中から発生させるイベ
ントを選択する。つまり、履歴情報を解析することで障
害が発生することがないイベント、または過去のデバッ
グ作業において障害が発生しなかったイベントを検知し
それを外し、特にデバッグを行うべきイベントのみを抽
出する。デバッグを行うべきイベントというのは、実行
再現を行う際に最低限必要となるイベントである。そし
て、抽出したイベントに関する情報を最適化イベント記
憶部29に記憶し、そのイベントの順序を発生順序とし
て最適化イベント順序情報記憶部30に記憶する。
【0075】イベント発生設定部4は、採取イベント情
報に基づいて並列プログラムの所定の位置でイベントを
発生させるが、本実施の形態においては、最適化イベン
ト選択部28の指示により、選択されたイベントのみを
発生させる。選択したイベントに対応する採取イベント
情報は、イベント知識記憶部3から得る。この設定で並
列プログラムを実行すると、選択されたイベントのみが
発生する。並列プログラムの際実行及び実行再現に係る
処理は、実施の形態1と同様なので説明を省略するが、
本実施の形態においては、最適化イベント順序情報記憶
部30が発生イベント記録部5の代わりをする。
【0076】以上のように、本実施の形態によれば、必
要最低限のイベントのみを抽出し発生させて実行の再現
を行うことができる。これにより、デバッグ作業が進ん
だ時点で動作確認が完了した箇所でのイベント発生を削
除していくことができるので、デバッグ処理の効率化を
図ることができる。また、最適化イベント記憶部29を
設けたので、本デバッグ装置の原データを登録したイベ
ント知識記憶部3を更新する必要がない。
【0077】実施の形態8.図18は、本発明に係る並
列プログラムデバッグ装置の第8の実施の形態を示した
ブロック構成図である。本実施の形態においては、実施
の形態1に加えて、図17に示したように静的解析ツー
ルから得た情報に基づきイベントに関する採取イベント
情報をイベント知識記憶部3に更新するイベント知識更
新手段としてのイベント知識更新部31を設けたことを
特徴としている。ある並列プログラムに対してのデバッ
グ作業を開始した後に、コンパイラやソースコード静的
解析結果ツールなどにより、共有メモリのアクセス点な
どの位置情報を得られ、これを実行再現の際に利用する
とき、イベント知識更新部31によりイベント知識記憶
部3に対して新たな採取イベント情報を加えることがで
きる。また、不要となった関数が発生しこれに関する採
取イベント情報を削除したいとき、イベント知識更新部
31によりイベント知識記憶部3に対して不要になった
採取イベント情報を削除することができる。
【0078】以上のように、本実施の形態によれば、コ
ンパイラなど他のツールからの情報に基づいてイベント
知識記憶部3から採取イベント情報の更新を行うことが
でき、より詳細で複雑な並列プログラムのデバッグ支援
を行うことができる。
【0079】実施の形態9.図19は、本発明に係る並
列プログラムデバッグ装置の第9の実施の形態を示した
ブロック構成図である。本実施の形態においては、実施
の形態1に加えて、図19に示したように並列プログラ
ムの実行に必要な入力情報を記憶するプログラム入力情
報記憶手段としてのシステム側情報記憶部32と、入力
情報に基づいて並列プログラムが必要とする設定値をイ
ベント発生時に渡す情報設定手段としてのシステム側情
報設定部33とを設けたことを特徴としている。
【0080】上記各実施の形態においては、並列プログ
ラムの実行制御、イベントの発生制御を行い、並列プロ
グラムの実行再現を実現した。ただ、デバッグ対象プロ
グラムが動作するシステムによっては、並列プログラム
の実行の際にシステム側で入力値を要求する場合があ
る。本実施の形態においては、これに対応するために上
記構成を設けた。以下に本実施の形態における動作につ
いて説明する。
【0081】システム側情報設定部33は、デバッグ対
象となる並列プログラムが外部と入出力を行う箇所でイ
ベントを発生させるようイベント発生設定部4に指示を
出す。入力情報が必要なイベントまた出力値を出すイベ
ントは、イベント知識記憶部3を参照すれば関数名等に
より知ることができる。並列プログラムが実行を開始す
るとイベントを発生する。ここで、出力値がある関数が
実行された場合、システム側情報設定部33は、システ
ム側からその出力値を受け取りシステム側情報記憶部3
2に一時記憶する。このように、システム側からその出
力値を記憶する機能が必要なのは、次の理由による。
【0082】すなわち、システム側から要求される設定
値が固定値であれば、最初からシステム側情報記憶部3
2に登録しておくこともできるが、システム側からの出
力をいったん記憶しそれを以降に行われる処理に返さな
ければならない場合がある。例えば、並列プログラムの
実行時に新規に生成したプロセスのIDは、実行の度に
異なるので、固定値として本デバッグ装置に予め持たせ
ておくことはできない。従って、プロセスIDをシステ
ム側情報記憶部32に一時記憶しておき、プロセスID
を必要とする関数に入力情報として一時記憶したプロセ
スIDを渡す必要がある。また、並列プログラムの最初
の実行時と再実行時とで関数からの出力値が異なる場合
もあり得るので、実行を再現させるためには最初の実行
時の出力値を記憶しておかなければならない。従って、
本実施の形態においては、システム側からその出力値を
記憶するようにした。
【0083】並列プログラムの処理が引き続き行われ、
入力情報が必要なイベントが発生すると、システム側情
報設定部33は、その時点で並列プログラムが必要とす
る設定値をシステム側情報記憶部32から取り出し、並
列プログラムに渡す。どのイベント発生時にどの設定値
が必要なのかは、イベント知識記憶部3に記憶されてい
る。
【0084】以上のように、本実施の形態によれば、並
列プログラムの実行の際にシステム側で入力情報を要求
する場合であっても、必要な情報を渡すことができるの
で、並列プログラムの実行を確実に再現させることがで
きる。
【図面の簡単な説明】
【図1】 本発明に係る並列プログラムデバッグ装置の
第1の実施の形態を示したブロック構成図である。
【図2】 第1の実施の形態においてイベント知識記憶
部に設定、記憶された採取イベント情報の例を示した図
である。
【図3】 第1の実施の形態において発生イベント記録
部に記録されたイベント固有情報の例を示した図であ
る。
【図4】 第1の実施の形態において採取イベント情報
に対応した並列プログラムの構成を示した概念図であ
る。
【図5】 第1の実施の形態において再実行時のイベン
トの発生状況と本デバッグ装置における実行再現制御の
関係を示した概念図である。
【図6】 第1の実施の形態における実行再現制御の動
作を示したフローチャートである。
【図7】 本発明に係る並列プログラムデバッグ装置の
第2の実施の形態の要部を示したブロック構成図であ
る。
【図8】 第2の実施の形態の要部を示したブロック構
成図である。
【図9】 本発明に係る並列プログラムデバッグ装置の
第3の実施の形態の要部を示したブロック構成図であ
る。
【図10】 第3の実施の形態の要部を示したブロック
構成図である。
【図11】 本発明に係る並列プログラムデバッグ装置
の第4の実施の形態の要部を示したブロック構成図であ
る。
【図12】 第4の実施の形態の要部を示したブロック
構成図である。
【図13】 第4の実施の形態の要部を示したブロック
構成図である。
【図14】 本発明に係る並列プログラムデバッグ装置
の第5の実施の形態の要部を示したブロック構成図であ
る。
【図15】 本発明に係る並列プログラムデバッグ装置
の第6の実施の形態の要部を示したブロック構成図であ
る。
【図16】 第6の実施の形態の要部を示したブロック
構成図である。
【図17】 本発明に係る並列プログラムデバッグ装置
の第7の実施の形態の要部を示したブロック構成図であ
る。
【図18】 本発明に係る並列プログラムデバッグ装置
の第8の実施の形態の要部を示したブロック構成図であ
る。
【図19】 本発明に係る並列プログラムデバッグ装置
の第9の実施の形態の要部を示したブロック構成図であ
る。
【図20】 従来の並列プログラムデバッグ装置のブロ
ック構成図である。
【符号の説明】
1 並列プログラムデバッグ装置、3 イベント知識記
憶部、4 イベント発生設定部、5 発生イベント記録
部、6 イベント発生順序比較部、7 イベント一時記
憶部、8 一時記憶イベント検索部、9 イベント情報
再生部、10実行順序更新部、11 指定順序記憶部、
12 妥当性判定部、13 更新実行順序実行制御部、
14 イベント履歴解析部、15 エラー実行順序記憶
部、16 エラー実行順序実行制御部、17 テスト実
行順序生成部、18 テスト実行順序記憶部、19 テ
スト実行順序実行制御部、20 テスト結果記憶部、2
1 ユーザ操作記録部、22 実行再現制御部、23
ロック状態監視部、24ロック解析部、25 ユーザロ
ック操作記録部、26 再実行順序制御記憶部、27
ロック原因解析部、28 最適化イベント選択部、29
最適化イベント記憶部、30 最適化イベント順序情
報記憶部、31 イベント知識更新部、32 システム
側情報記憶部、33 システム側情報設定部。

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 複数の処理を同時に実行する並列プログ
    ラムを再実行させてデバッグを行う並列プログラムデバ
    ッグ装置において、 デバッグ対象の並列プログラムの再現実行の際に必要で
    ありかつ自ら設定したイベントに関する採取イベント情
    報を記憶する採取イベント知識記憶手段と、 採取イベント情報に基づいて並列プログラムの所定の位
    置でイベントを発生させるイベント発生設定手段と、 発生したイベントに伴うイベント固有情報を発生順序に
    履歴情報として記録する発生イベント記録手段と、 並列プログラムの再実行時に、発生順序と異なるイベン
    トが発生した処理の流れを中断するとともにその中断し
    たイベントに伴う中断イベント情報を一時記憶し、中断
    したイベントの実行が期待される処理に達した時点で中
    断したイベントを再実行させる再実行順序制御手段と、 を有し、自ら設定し発生させたイベントを用いて並列プ
    ログラムの実行を再現させることを特徴とする並列プロ
    グラムデバッグ装置。
  2. 【請求項2】 請求項1記載の並列プログラムデバッグ
    装置において、 記録した履歴情報に含まれるイベントの発生順序を更新
    し指定順序を生成するイベント実行順序更新手段を有す
    ることを特徴とする並列プログラムデバッグ装置。
  3. 【請求項3】 請求項2記載の並列プログラムデバッグ
    装置において、 採取イベント情報に基づいて前記イベント実行順序更新
    手段によって生成された指定順序の妥当性を判定する妥
    当性判定手段を有し、 前記再実行順序制御手段は、指定順序を発生順序として
    実行制御を行うことを特徴とする並列プログラムデバッ
    グ装置。
  4. 【請求項4】 請求項1記載の並列プログラムデバッグ
    装置において、 採取イベント情報に基づいて前記発生イベント記録手段
    に記録した履歴情報の解析を行うことで、障害が発生し
    うる実行順序を障害実行順序として抽出する履歴情報解
    析手段と、 抽出した障害実行順序に相当するイベントに関する情報
    を記憶する障害実行順序記憶手段と、 を有することを特徴とする並列プログラムデバッグ装
    置。
  5. 【請求項5】 請求項4記載の並列プログラムデバッグ
    装置において、 処理の流れを監視し、並列プログラムの再実行中に障害
    が発生しうる実行順序の箇所に到達したことを通知する
    障害実行順序監視手段を有することを特徴とする並列プ
    ログラムデバッグ装置。
  6. 【請求項6】 請求項1記載の並列プログラムデバッグ
    装置において、 採取イベント情報に基づいて前記発生イベント記録手段
    に記録した履歴情報の解析を行うことで、並列プログラ
    ムの実行順序のテストパターンを生成するテスト実行順
    序生成手段と、 生成したテストパターンを記憶するテスト実行順序記憶
    手段と、 を有することを特徴とする並列プログラムデバッグ装
    置。
  7. 【請求項7】 請求項6記載の並列プログラムデバッグ
    装置において、 前記再実行順序制御手段は、前記テスト実行順序記憶手
    段に記憶されたテストパターンを発生順序として実行制
    御を行うことを特徴とする並列プログラムデバッグ装
    置。
  8. 【請求項8】 請求項7記載の並列プログラムデバッグ
    装置において、 テストパターンを用いたテスト結果を記録するテスト結
    果記憶手段を有することを特徴とする並列プログラムデ
    バッグ装置。
  9. 【請求項9】 請求項1記載の並列プログラムデバッグ
    装置において、 デバッグ中にユーザが入力した操作内容と操作時の並列
    プログラムの位置情報とをユーザ操作履歴情報として記
    録するユーザ操作記録手段を有し、 前記再実行順序制御手段は、ユーザ操作履歴情報を利用
    して実行制御を行うことを特徴とする並列プログラムデ
    バッグ装置。
  10. 【請求項10】 請求項1記載の並列プログラムデバッ
    グ装置において、 設定したイベントのうち特定したイベントのみを対象と
    してデバッグを行うことを特徴とする並列プログラムデ
    バッグ装置。
  11. 【請求項11】 請求項10記載の並列プログラムデバ
    ッグ装置において、 ロック・同期に関するイベントのみの発生を監視しその
    イベントに関する情報を記録するロック状態監視手段
    と、 採取イベント情報に基づいて前記ロック状態監視手段が
    記録したイベントに関する情報の解析を並列プログラム
    の実行中に行い、実行継続不可能な状態になったときに
    通知を行うロック解析手段と、 を有することを特徴とする並列プログラムデバッグ装
    置。
  12. 【請求項12】 請求項11記載の並列プログラムデバ
    ッグ装置において、 ユーザが入力した操作内容と操作時の並列プログラムの
    位置情報とをユーザ操作ロック履歴情報として記録する
    ユーザロック操作記録手段と、 前記再実行順序制御手段による制御内容を記憶する再実
    行順序制御記憶手段と、 前記ロック状態監視手段が記録したイベントに関する情
    報とユーザ操作ロック履歴情報と再実行順序制御記憶手
    段に記憶された制御内容とから実行継続不可能な状態に
    なった原因を解析し通知するロック原因解析手段と、 を有することを特徴とする並列プログラムデバッグ装
    置。
  13. 【請求項13】 請求項10記載の並列プログラムデバ
    ッグ装置において、 採取イベント情報の中から発生させるイベントを選択す
    る発生イベント選択手段を有し、 前記イベント発生設定手段は、前記発生イベント選択手
    段が選択したイベントのみを発生させることを特徴とす
    る並列プログラムデバッグ装置。
  14. 【請求項14】 請求項1記載の並列プログラムデバッ
    グ装置において、 静的解析ツールから得た情報に基づき前記採取イベント
    知識記憶手段を更新するイベント知識更新手段を有する
    ことを特徴とする並列プログラムデバッグ装置。
  15. 【請求項15】 請求項1記載の並列プログラムデバッ
    グ装置において、 並列プログラムの実行に必要な入力情報を記憶するとと
    もにプログラム入力情報記憶手段と、 入力情報に基づいて並列プログラムが必要とする設定値
    をイベント発生時に渡す情報設定手段と、 を有することを特徴とする並列プログラムデバッグ装
    置。
JP8017484A 1996-02-02 1996-02-02 並列プログラムデバッグ装置 Pending JPH09212385A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8017484A JPH09212385A (ja) 1996-02-02 1996-02-02 並列プログラムデバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8017484A JPH09212385A (ja) 1996-02-02 1996-02-02 並列プログラムデバッグ装置

Publications (1)

Publication Number Publication Date
JPH09212385A true JPH09212385A (ja) 1997-08-15

Family

ID=11945284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8017484A Pending JPH09212385A (ja) 1996-02-02 1996-02-02 並列プログラムデバッグ装置

Country Status (1)

Country Link
JP (1) JPH09212385A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120030A (ja) * 1997-10-21 1999-04-30 Toshiba Corp プログラムのテスト装置及び方法並びにプログラムのテスト用ソフトウェアを記録した記録媒体
JP2000122882A (ja) * 1998-10-20 2000-04-28 Matsushita Electric Ind Co Ltd マルチスレッドプロセッサおよびデバッグ装置
JP2003248597A (ja) * 2002-02-25 2003-09-05 Nec Corp リグレッションテスト方法及びリグレッションテスト装置
JP2007141025A (ja) * 2005-11-21 2007-06-07 Mitsubishi Electric Corp ログ管理システム及びログ管理方法
JP2008529113A (ja) * 2005-01-21 2008-07-31 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーション・プロセスにおいて内部イベントをリプレイするための非侵入的方法およびこの方法を実装するシステム
JP2010282266A (ja) * 2009-06-02 2010-12-16 Fujitsu Ltd シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法
US7974800B2 (en) 2006-12-12 2011-07-05 International Business Machines Corporation Method, apparatus, and program for detecting the correlation between repeating events
JP2018165902A (ja) * 2017-03-28 2018-10-25 富士通株式会社 試験装置、試験方法、試験プログラム及び試験システム
WO2019093368A1 (ja) * 2017-11-08 2019-05-16 日本電気株式会社 データ作成装置、試験システム、データ作成方法、及びプログラム
JP2019204482A (ja) * 2018-05-24 2019-11-28 富士通株式会社 並行脆弱性検出
CN111965550A (zh) * 2020-08-18 2020-11-20 广东爱德曼氢能源装备有限公司 基于燃料电池系统的测试方法及系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120030A (ja) * 1997-10-21 1999-04-30 Toshiba Corp プログラムのテスト装置及び方法並びにプログラムのテスト用ソフトウェアを記録した記録媒体
JP2000122882A (ja) * 1998-10-20 2000-04-28 Matsushita Electric Ind Co Ltd マルチスレッドプロセッサおよびデバッグ装置
JP2003248597A (ja) * 2002-02-25 2003-09-05 Nec Corp リグレッションテスト方法及びリグレッションテスト装置
JP2008529113A (ja) * 2005-01-21 2008-07-31 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーション・プロセスにおいて内部イベントをリプレイするための非侵入的方法およびこの方法を実装するシステム
JP2007141025A (ja) * 2005-11-21 2007-06-07 Mitsubishi Electric Corp ログ管理システム及びログ管理方法
US7974800B2 (en) 2006-12-12 2011-07-05 International Business Machines Corporation Method, apparatus, and program for detecting the correlation between repeating events
JP2010282266A (ja) * 2009-06-02 2010-12-16 Fujitsu Ltd シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法
JP2018165902A (ja) * 2017-03-28 2018-10-25 富士通株式会社 試験装置、試験方法、試験プログラム及び試験システム
WO2019093368A1 (ja) * 2017-11-08 2019-05-16 日本電気株式会社 データ作成装置、試験システム、データ作成方法、及びプログラム
JP2019204482A (ja) * 2018-05-24 2019-11-28 富士通株式会社 並行脆弱性検出
CN111965550A (zh) * 2020-08-18 2020-11-20 广东爱德曼氢能源装备有限公司 基于燃料电池系统的测试方法及系统

Similar Documents

Publication Publication Date Title
US7415699B2 (en) Method and apparatus for controlling execution of a child process generated by a modified parent process
JP3573463B2 (ja) 計算の状態を再構成する方法ならびにシステム
US5918004A (en) Remote monitoring of computer programs
US8091075B2 (en) Method and apparatus for breakpoint analysis of computer programming code using unexpected code path conditions
JP2557180B2 (ja) ソフトウェア例外条件に対する選択的データ捕獲方法
US20020073360A1 (en) Methods, systems, and articles of manufacture for analyzing performance of application programs
US20070250820A1 (en) Instruction level execution analysis for debugging software
US20080163003A1 (en) Method and System for Autonomic Target Testing
US7178135B2 (en) Scope-based breakpoint selection and operation
JPH09212385A (ja) 並列プログラムデバッグ装置
US20040168157A1 (en) System and method for creating a process invocation tree
CA2492367C (en) Data processing system
JP2774770B2 (ja) デバッグ方式
JPH11224186A (ja) ソフトウェア解析装置及びソフトウェア解析方法
US7114097B2 (en) Autonomic method to resume multi-threaded preload imaging process
JPH02294739A (ja) 障害検出方式
JP3206096B2 (ja) 入力データ処理装置
Bai et al. {DLOS}: Effective Static Detection of Deadlocks in {OS} Kernels
JP2004185345A (ja) デバッグ方法およびシステム
JP2001184235A (ja) ログ情報取得解析装置
JPH10289129A (ja) デバック用タスクスケジューラ
JPS58201152A (ja) 情報自動収得方式
JP2002108651A (ja) オブジェクト指向開発用デバッグ支援装置
JP2004046310A (ja) 障害修復プログラム適用方法及びその実施装置並びにその処理プログラム
JPH10289124A (ja) データフロー異常検査装置