JP2001134466A - デバッグ装置及び方法並びにプログラム記録媒体 - Google Patents
デバッグ装置及び方法並びにプログラム記録媒体Info
- Publication number
- JP2001134466A JP2001134466A JP31622099A JP31622099A JP2001134466A JP 2001134466 A JP2001134466 A JP 2001134466A JP 31622099 A JP31622099 A JP 31622099A JP 31622099 A JP31622099 A JP 31622099A JP 2001134466 A JP2001134466 A JP 2001134466A
- Authority
- JP
- Japan
- Prior art keywords
- barrier synchronization
- task
- synchronization point
- program
- breakpoint
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3632—Software debugging of specific synchronisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
とするときにあって、目的となる任意のタスクをそれぞ
れの目的となる任意のプログラム位置に停止させること
を実現するデバッグ装置の提供を目的とする。 【解決手段】タスクに設定される複数のブレークポイン
トを1つのバリア同期ポイントとして、そのバリア同期
ポイントを複数設定する。そして、マルチタスクプログ
ラムを起動した後、その中から、最初にスレッドを停止
させたバリア同期ポイントをバリア同期の対象として設
定し、そのバリア同期ポイントの指定するブレークポイ
ントに到達したスレッドをサスペンド状態にしながら、
そのバリア同期ポイント配下の存在する全てのブレーク
ポイントに基づくスレッドの停止が完了すると、サスペ
ンド状態にしたスレッドを実行可能状態に戻して、マル
チスレッドデバッガに制御を戻していくように構成す
る。
Description
グラムを処理対象とするデバッグ装置及び方法と、その
デバッグ装置の実現に用いられるプログラムが格納され
るプログラム記録媒体とに関し、特に、目的となる任意
のタスクをそれぞれの目的となる任意のプログラム位置
に停止させることを実現するデバッグ装置及び方法と、
そのデバッグ装置の実現に用いられるプログラムが格納
されるプログラム記録媒体とに関する。
低価格化に伴い、複数のCPUを用いたコンピュータシ
ステムが増加しており、それらのCPUを効率的に利用
するために、複数のタスクが同時に並列動作して1つの
ジョブを実行するマルチタスクプログラムが増えてい
る。
ロセス内で相互依存の関係のある複数のスレッドを並列
実行させるマルチスレッドプログラムや、相互依存の関
係のある複数のプロセスを並列実行させるマルチプロセ
スプログラムや、後者のマルチプロセスプログラムにお
いて、そのプロセスを複数のコンピュータシステムに分
散させて実行させるネットワーク並列プログラムなどが
ある。
されるこれらのマルチタスクプログラムを正しく動作さ
せるには、目的となる複数のタスクが正しいタイミング
(プログラム位置)で同期している必要がある。これが
欠けると、マルチタスクプログラムは正しく動作しない
ことが起こる。
ッグするために、目的となる複数のタスクが正しいタイ
ミングで同期しているのか否かを効率的にデバッグでき
るようにする技術の構築が求められている。
チタスクプログラムをデバッグする従来技術として、特
開平2-300942 号公報に、オペレーティングシステム上
で動作するタスクの中から複数個のタスクを指定する構
成を採って、その指定されたタスクの何れかのタスクの
実行が停止(デバッガの設定するブレークポイントによ
り停止する)された場合に、指定された他のタスクも同
時に停止させていくというタスクデバッグ技術が開示さ
れている。
ッグのために、マルチタスクジョブを構成する任意のタ
スクが予め設定された停止点あるいは例外を発生した時
点で、そのタスクと同一マルチタスクジョブグループ内
のすべてのタスクの実行を停止させ、任意の時点でその
マルチタスクジョブグループのすべてのタスクの実行を
再開させていくというマルチタスク制御技術が開示され
ている。
が、特開昭63-4339 号公報には、プラント制御を構成す
る複数のタスクを使ってプラントを制御するときに、停
止する必要のないプラントの系までも停止してしまうと
いう不都合を解消するために、あるタスクが停止される
ときには同時に停止されなければならないような関係に
あるタスクグループを管理する構成を採って、あるタス
クの実行中に、異常が検出されてオペレーティングシス
テムがそのタスクを停止させる場合には、同じグループ
に属する他のタスクも停止させていくというタスク管理
技術が開示されている。
うな従来のデバッグ技術に従っていると、目的となる任
意のタスクをそれぞれの目的となる任意のプログラム位
置に停止させていくというバリア同期を実現できないと
いう問題点がある。
報や特開平4-314141 号公報に記載されている従来技術
に従っていると、グルーピングされたタスクの何れかの
タスクの実行が停止された場合に、そのグループに属す
る他のタスクも同時に停止させていくという構成を採っ
ていることから、目的となる任意のタスクをそれぞれの
目的となる任意のプログラム位置に停止させていくとい
うバリア同期を実現できないのである。
タスクがそれぞれの分担個所を分担して初期化処理を行
うとか、複数のタスクがそれぞれの分担個所を分担して
計算処理を行うといったような処理を行うマルチタスク
プログラムをデバッグしていく際に必要となる。
て、デバッグ対象となるマルチタスクプログラムを書き
換えてバリア同期機構を組み込み、バリア同期が完了し
たことの保証できるプログラム位置に、デバッガを用い
てブレークポイント(プログラムを停止させる命令を埋
め込む)を設定して、その位置までマルチタスクプログ
ラムを実行させていくという方法を用いることが考えら
れる。
と、バリア同期機構を追加するためにデバッグ対象とな
るマルチタスクプログラムを書き換えることから、本来
の原因を隠蔽するとか、組み込むバリア同期機構に不備
がある場合に、そのための調査作業を行わなくてはなら
ないとか、新たなバグを発生する危険性があるといった
ような様々な問題点がある。
であって、マルチタスクプログラムを処理対象とすると
きにあって、目的となる任意のタスクをそれぞれの目的
となる任意のプログラム位置に停止させることを実現す
る新たなデバッグ装置及び方法の提供と、そのデバッグ
装置の実現に用いられるプログラムが格納される新たな
プログラム記録媒体の提供を目的とする。
を図示する。
であって、デバッグ対象となるマルチタスクプログラム
10と、デバッグ処理手段11と、設定手段12と、バ
リア同期ポイント管理手段13と、特定手段14と、判
断手段15と、再開手段16と、制御手段17とを備え
る。
ログラム10のデバッグを行う。
のブレークポイントを1つのバリア同期ポイントとし
て、そのバリア同期ポイントを1つ又は複数設定する。
手段12の設定したバリア同期ポイントの情報を管理す
る。
リア同期ポイントを設定したときに動作して、最初にタ
スクを停止させたブレークポイントの属するバリア同期
ポイントを特定する。
リア同期ポイントを設定したときには、そのバリア同期
ポイント配下のブレークポイントに基づくタスクの停止
が発生するときに、そのバリア同期ポイント配下の存在
する全てのブレークポイントに基づくタスクの停止が完
了したのか否かを判断する。
数のバリア同期ポイントを設定したときには、いずれか
のバリア同期ポイント配下のブレークポイントに基づく
タスクの停止が発生するときに、特定手段14の特定し
たバリア同期ポイントを判断対象として、そのバリア同
期ポイント配下の存在する全てのブレークポイントに基
づくタスクの停止が完了したのか否かを判断する。
判断するときに、その判断対象となった停止タスクをサ
スペンド状態にしてから、マルチタスクプログラム10
の実行を再開させる。
断するときに、バリア同期の完了を判断して、サスペン
ド状態に設定したタスクを実行可能状態に戻す。
置1では、設定手段12は、タスクに設定される複数の
ブレークポイントを1つのバリア同期ポイントとして、
そのバリア同期ポイントを1つ設定し、これを受けて、
デバッグ処理手段11は、それらのブレークポイントに
応じたプログラム停止命令をマルチタスクプログラム1
0に埋め込むとともに、バリア同期ポイント管理手段1
3は、その設定されたバリア同期ポイントの情報を管理
する。
動されると、ブレークポイントに到達したタスクは、埋
め込まれたプログラム停止命令に従って動作を停止し
て、その旨をデバッグ処理手段11に通知し、デバッグ
処理手段11からこの通知を受け取ると、判断手段15
は、設定手段12の設定したバリア同期ポイント配下の
存在する全てのブレークポイントに基づくタスクの停止
が完了したのか否かを判断する。
15が未完了を判断すると、その判断対象となった停止
タスクをサスペンド状態にしてから、マルチタスクプロ
グラム10の実行を再開させる。一方、制御手段17
は、判断手段15が完了を判断すると、バリア同期の完
了を判断して、サスペンド状態に設定したタスクを実行
可能状態に戻す。
いブレークポイントが設定される場合には、バリア同期
ポイントを構成するブレークポイントに基づくタスクの
停止に応答してバリア同期の動作に入った後、バリア同
期ポイントを構成しないブレークポイントに基づくタス
クの停止が発生するときに、そのブレークポイントを無
視してマルチタスクプログラム10の実行を再開させる
実行手段を備えることで、バリア同期を迅速に実行でき
るように処理することがある。
ッグ装置1では、設定手段12は、タスクに設定される
複数のブレークポイントを1つのバリア同期ポイントと
して、そのバリア同期ポイントを複数設定し、これを受
けて、デバッグ処理手段11は、それらのブレークポイ
ントに応じたプログラム停止命令をマルチタスクプログ
ラム10に埋め込むとともに、バリア同期ポイント管理
手段13は、その設定されたバリア同期ポイントの情報
を管理する。
動されると、ブレークポイントに到達したタスクは、埋
め込まれたプログラム停止命令に従って動作を停止し
て、その旨をデバッグ処理手段11に通知する。
を受け取ると、特定手段14は、最初にタスクを停止さ
せたブレークポイントの属するバリア同期ポイントを特
定することで、設定された複数のバリア同期ポイントの
中からバリア同期の対象となるバリア同期ポイントを特
定し、これを受けて、その後、デバッグ処理手段11か
らこの通知を受け取ると、判断手段15は、特定手段1
4の特定したバリア同期ポイント配下の存在する全ての
ブレークポイントに基づくタスクの停止が完了したのか
否かを判断する。
15が未完了を判断すると、その判断対象となった停止
タスクをサスペンド状態にしてから、マルチタスクプロ
グラム10の実行を再開させる。一方、制御手段17
は、判断手段15が完了を判断すると、バリア同期の完
了を判断して、サスペンド状態に設定したタスクを実行
可能状態に戻す。
同期ポイント以外のバリア同期ポイント配下のブレーク
ポイントに基づくタスクの停止が発生するときに、その
ブレークポイントを無視してマルチタスクプログラム1
0の実行を再開させる実行手段を備えることで、バリア
同期を迅速に実行できるように処理することがある。
構成しないブレークポイントが設定される場合には、バ
リア同期ポイントを構成するブレークポイントに基づく
タスクの停止に応答してバリア同期の動作に入った後、
バリア同期ポイントを構成しないブレークポイントに基
づくタスクの停止が発生するときに、そのブレークポイ
ントを無視してマルチタスクプログラム10の実行を再
開させる実行手段を備えることで、バリア同期を迅速に
実行できるように処理することがある。
タスクプログラム10をデバッグするときに、目的とな
る任意のタスクをそれぞれの目的となる任意のプログラ
ム位置に停止させていくというバリア同期を実現できる
ようになる。
個所を分担して初期化処理を行うとか、複数のタスクが
それぞれの分担個所を分担して計算処理を行うといった
ような処理を行うマルチタスクプログラムのデバッグを
効率的に実行できるようになる。
期ポイントを設定可能とするときにあって、最初にブレ
ークポイントに到達したバリア同期ポイントをバリア同
期の対象とする構成を採ることから、バリア同期に基づ
くデバッグをプログラムの実行順序に整合させて行うこ
とができるようになる。
を詳細に説明する。
ラムとして、プロセス内に相互依存の関係にある複数の
スレッドを並列実行させるマルチスレッドプログラムを
想定して、任意のスレッドだけに効力を持つブレークポ
イントを設定できる機能と、目的のスレッドだけを実行
再開させる機能とを持つマルチスレッドデバッガに適用
した実施例に従って、本発明を詳細に説明する。
ック域は各スレッドで固有であるが、命令域やデータ域
はプログラム内の全スレッドで共有される特性を持って
いる。
例を図示する。
レッドプログラム、30はマルチスレッドプログラム2
0をデバッグするマルチスレッドデバッガ、40はブレ
ークポイントを管理するブレークポイント管理機構、5
0は本発明を実現すべく備えられるバリア同期ポイント
設定プログラム、60は本発明を実現すべく備えられる
バリア同期ポイント管理機構、70は本発明を実現すべ
く備えられるバリア同期ポイント実行制御プログラムで
ある。
グラマなどから入力されてくる各種指示を処理して、マ
ルチスレッドプログラム20に対して、ブレークポイン
トを設定したり解除したり、プログラムの実行や実行再
開を指示したりといったような従来のマルチスレッドデ
バッガが持つ一般的な機能を処理する。
クポイントの設定や解除などといったブレークポイント
に関する管理を行うものであり、マルチスレッドデバッ
ガ30に組み込まれて備えられることもある。
は、本発明を実現すべくフロッピィディスクや回線など
を介してインストールされてメモリ上に展開され、マル
チスレッドプログラム20を設定先として、バリア同期
の対象となるブレークポイント(バリア同期先のスレッ
ドと、そのバリア同期停止位置とを規定する)を設定す
ることで、バリア同期ポイントを設定する。
11行目のプログラム位置で、スレッド1,2,3,
4,5をバリア同期により停止させるというようなバリ
ア同期ポイントを設定するのである。
ア同期ポイント設定プログラム50により設定されたバ
リア同期ポイントの情報を管理するバリア同期ポイント
情報管理域61と、本発明を実現すべくフロッピィディ
スクや回線などを介してインストールされてメモリ上に
展開され、バリア同期ポイント設定プログラム50によ
り設定されたバリア同期ポイントの情報をバリア同期ポ
イント情報管理域61に登録するバリア同期ポイント情
報登録プログラム62とを備える。
0は、本発明を実現すべくフロッピィディスクや回線な
どを介してインストールされてメモリ上に展開され、バ
リア同期ポイント情報管理域61に管理されるバリア同
期ポイント情報を参照しつつ、本発明に特徴的なバリア
同期の制御処理を実行する。
1に管理されるバリア同期ポイント情報のデータ構造の
一実施例を図示する。
情報管理域61は、バリア同期ポイントのIDを管理す
るバリア同期ポイント管理ブロック610-i(i=1〜
n)と、ブレークポイントの情報を管理するブレークポ
イント管理ブロック611-i(i=1,2,...)と、バリ
ア同期の動作に入っているバリア同期ポイントがどれで
あるのかを管理する動作中バリア同期ポイント管理ブロ
ック612とを使って、バリア同期情報を管理する構成
を採っている。
0-iは、図4に示すように、前後に接続されるバリア同
期ポイント管理ブロック610-iへの管理チェーンと、
自ブロックの管理するバリア同期ポイントのIDと、そ
のバリア同期ポイントの構成ブレークポイントを管理す
る先頭のブレークポイント管理ブロック611-iへの管
理チェーン(構成ブレークポイント用管理チェーン)と
を管理する。
1-iは、図5に示すように、前後に接続されるブレーク
ポイント管理ブロック611-iへの管理チェーンと、自
ブロックの管理するブレークポイントのIDと、そのブ
レークポイントのプログラム位置と、そのブレークポイ
ントの設定されるスレッドの識別子と、そのブレークポ
イントがバリア同期ポイントを構成するブレークポイン
トであるのか否かを示すフラグ(バリア同期ポイントフ
ラグ)と、同一バリア同期ポイントの構成ブレークポイ
ントを管理するブレークポイント管理ブロック611-i
への管理チェーン(バリア同期用管理チェーン)とを管
理する。
ック612は、図6に示すように、バリア同期の動作に
入っているバリア同期ポイントがある場合には、そのバ
リア同期ポイントを管理するバリア同期ポイント管理ブ
ロック610-iへのチェーンを管理し、バリア同期の動
作に入っていない場合には、NULLポインタを管理す
る。
イント管理ブロック610-i/ブレークポイント管理ブ
ロック611-iを使い、“1”〜“n”という識別子を
持つn個のバリア同期ポイントが設定されている場合に
あって、“1”という識別子を持つバリア同期ポイント
が、“1”という識別子を持つブレークポイント(プロ
グラム位置=11行、設定先スレッド識別子=1)と、
“2”という識別子を持つブレークポイント(プログラ
ム位置=11行、設定先スレッド識別子=2)などのブ
レークポイントから構成されている場合には、例えば、
図3に示すようなチェーンを張ることで、“1”という
識別子を持つバリア同期ポイントの情報を管理するので
ある。
ロック612を使って、例えば、図3に示すようなチェ
ーンを張ることで、バリア同期の動作に入っているバリ
ア同期ポイントが“1”という識別子を持つバリア同期
ポイントであるということを管理するのである。
ポイント(バリア同期ポイントとならないものもある)
に対応付けて用意されて、それらのブレークポイントの
情報を管理するブレークポイント管理ブロック611-i
(i=1,2,...)を用意する構成を採って、その中か
ら、バリア同期ポイントを構成するものをバリア同期用
管理チェーンで接続することで、各バリア同期ポイント
の持つブレークポイントを管理するという方法を用いて
いるが、本発明を実現するためだけであれば、バリア同
期ポイントを構成しないブレークポイントを管理するブ
レークポイント管理ブロック611-i(例えば、図3中
のブレークポイント管理ブロック611-3)について
は、省略することが可能である。
グラム62の実行する処理フローの一実施例、図8ない
し図10に、バリア同期ポイント実行制御プログラム7
0の実行する処理フローの一実施例を図示する。次に、
これらの処理フローに従って、このように構成される実
施例の処理について詳細に説明する。
2は、マルチスレッドデバッガ30を介して、バリア同
期ポイント設定プログラム50の設定したバリア同期ポ
イントを受け取ることで起動されると、設定されたバリ
ア同期ポイントを順番に選択し、その選択した各バリア
同期ポイントに対して図7の処理フローの処理を施して
いくことで、設定されたバリア同期ポイントの情報をバ
リア同期ポイント情報管理域61に登録していくように
処理する。
ログラム62は、起動されると、図7の処理フローに示
すように、先ず最初に、ステップ1で、選択したバリア
同期ポイントに対応付けて、バリア同期ポイント管理ブ
ロック610-iを作成して、それと既に作成されている
バリア同期ポイント管理ブロック610-iとの間にチェ
ーンを張る。
期ポイントを解析して、スレッド単位のブレークポイン
トに分割する。続いて、ステップ3で、分割した全ての
ブレークポイントを選択したのか否かを判断して、全て
のブレークポイントを選択したことを判断するときに
は、選択したバリア同期ポイントの情報の登録完了を判
断して、選択したバリア同期ポイントについての処理を
終了する。
ークポイントを選択していないことを判断するときに
は、ステップ4に進んで、分割したブレークポイントの
中から未選択のものを1つ選択する。続いて、ステップ
5で、選択したブレークポイントがブレークポイント管
理機構40にて既に管理されているのか否かを判断し
て、未管理のものである場合には、ステップ6に進ん
で、ブレークポイント管理機構40に依頼することで、
選択したブレークポイントをブレークポイント管理機構
40の管理下に置く。
あるブレークポイントについては、そのブレークポイン
トを管理するブレークポイント管理ブロック611-iが
作成されているので、このステップ6では、ブレークポ
イント管理機構40の管理下にないブレークポイントを
処理対象として、ブレークポイント管理機構40に依頼
することで、そのブレークポイントを管理するブレーク
ポイント管理ブロック611-iを作成してもらうように
処理するのである。
ト管理ブロック611-iの管理するブレークポイントに
ついては、マルチスレッドデバッガ30が、指定される
スレッドの指定されるプログラム位置にプログラム停止
命令を挿入していくことで、ブレークポイントとして機
能させていくように処理することになる。
ポイントを管理するブレークポイント管理ブロック61
1-iの持つバリア同期ポイントフラグをONすること
で、そのブレークポイントがバリア同期ポイントを構成
するブレークポイントである旨を記録する。
期ポイント管理ブロック610-iの持つ構成ブレークポ
イント管理チェーンからのチェーンに、選択したブレー
クポイントを管理するブレークポイント管理ブロック6
11-iを接続して、ステップ3に戻る。
登録プログラム62は、バリア同期ポイント設定プログ
ラム50の設定したバリア同期ポイントを受け取ると、
バリア同期ポイント管理ブロック610-iとブレークポ
イント管理ブロック611-iとを使い、図3に示したよ
うな形で、このバリア同期ポイントの情報をバリア同期
ポイント情報管理域61に登録していくように処理する
のである。
ラム70の実行する処理について説明する。
期ポイント情報登録プログラム62が処理を終了する
と、マルチスレッドプログラム20を起動して、その実
行中に、いずれかのスレッドが何らかの原因で停止する
とバリア同期ポイント実行制御プログラム70を呼び出
していくことで、マルチスレッドプログラム20のデバ
ッグ処理に入る。
期ポイント実行制御プログラム70は、図8ないし図1
0の処理フローに示すように、先ず最初に、ステップ1
で、スレッドの停止原因がブレークポイントによるもの
であるのか否かを判断して、スレッドの停止原因がブレ
ークポイントによるものでないことを判断するときに
は、自プログラムの処理する内容でないことを判断し
て、そのままマルチスレッドデバッガ30に制御を戻
す。
がブレークポイントによるものであることを判断すると
きには、ステップ2に進んで、動作中バリア同期ポイン
ト管理ブロック612にNULLポインタが登録されて
いるのか否かを判断することで、バリア同期の動作中で
あるのか否かを判断する。
に、バリア同期の動作中であるときには、動作中バリア
同期ポイント管理ブロック612に、バリア同期動作中
のバリア同期ポイントを管理するバリア同期ポイント管
理ブロック610-iへのチェーンが登録されているの
で、動作中バリア同期ポイント管理ブロック612にN
ULLポインタが登録されているのか否かを判断するこ
とで、バリア同期の動作中であるのか否かを判断するの
である。
ルチスレッドプログラム20の実行開始にあたって、動
作中バリア同期ポイント管理ブロック612にNULL
ポインタを書き込んでいくという初期化処理を行う。
ポイント管理ブロック612にNULLポインタが登録
されていることで、バリア同期の動作中でないことを判
断するときには、ステップ3に進んで、停止原因となっ
たブレークポイントを管理するブレークポイント管理ブ
ロック611-iのバリア同期ポイントフラグがONを表
示しているのか否かを判断して、OFFを表示している
ことを判断するときには、バリア同期の対象ではないブ
レークポイントが停止原因であることを判断して、その
ままマルチスレッドデバッガ30に制御を戻すことで、
通常のブレークポイントに対するデバッグ処理に入るよ
うに制御する。
止原因となったブレークポイントを管理するブレークポ
イント管理ブロック611-iのバリア同期ポイントフラ
グがONを表示していることを判断するときには、バリ
ア同期の開始を判断して、ステップ4に進んで、動作中
バリア同期ポイント管理ブロック612に、そのブレー
クポイント管理ブロック611-iへリンクするバリア同
期ポイント管理ブロック610-iへのチェーンを登録す
る。
をサスペンド状態(マルチスレッドプログラム20の実
行再開時に、そのスレッドの実行を再開しない状態にす
る)に設定し、続くステップ6で、プログラマに対して
バリア同期が開始した旨のメッセージを表示してから、
続くステップ7で、マルチスレッドプログラム20の実
行を再開させて、マルチスレッドデバッガ30に制御を
戻す。
リア同期ポイント管理ブロック612にバリア同期ポイ
ント管理ブロック610-iへのチェーンが登録されてい
ることを判断するときには、ステップ8(図9の処理フ
ロー)に進んで、停止原因となったブレークポイントを
管理するブレークポイント管理ブロック611-iのバリ
ア同期ポイントフラグがONを表示しているのか否かを
判断する。
レークポイントを管理するブレークポイント管理ブロッ
ク611-iのバリア同期ポイントフラグがOFFを表示
していることを判断するときには、ステップ9に進ん
で、バリア同期ポイントでないブレークポイントに到達
した旨のメッセージを表示してから、続くステップ10
で、マルチスレッドプログラム20の実行を再開させ
て、マルチスレッドデバッガ30に制御を戻す。
で、通常のブレークポイントについては無視して、バリ
ア同期動作中のバリア同期ポイントを構成する次のブレ
ークポイントへの到達を実現すべく、マルチスレッドプ
ログラム20の実行を再開させるのである。
レークポイントを管理するブレークポイント管理ブロッ
ク611-iのバリア同期ポイントフラグがONを表示し
ていることを判断するときには、ステップ11に進ん
で、そのブレークポイント管理ブロック611-iが動作
中バリア同期ポイント管理ブロック612からのチェー
ンに繋がっているのか否かを判断する。
レークポイントを管理するブレークポイント管理ブロッ
ク611-iが動作中バリア同期ポイント管理ブロック6
12からのチェーンに繋がっていないことを判断すると
きには、ステップ12に進んで、バリア同期の動作中で
ないバリア同期ポイントのブレークポイントに到達した
旨のメッセージを表示してから、続くステップ13で、
マルチスレッドプログラム20の実行を再開させて、マ
ルチスレッドデバッガ30に制御を戻す。
複数設定されるバリア同期ポイントの中の最初にブレー
クポイントに到達したものだけであるので、それ以外の
バリア同期ポイントのブレークポイントについては無視
して、バリア同期動作中のバリア同期ポイントを構成す
る次のブレークポイントへの到達を実現すべく、マルチ
スレッドプログラム20の実行を再開させるのである。
ブレークポイントを管理するブレークポイント管理ブロ
ック611-iが動作中バリア同期ポイント管理ブロック
612からのチェーンに繋がっていることを判断すると
きには、ステップ14に進んで、そのチェーンに繋がる
ブレークポイント管理ブロック611-iを参照すること
で、バリア同期動作中のバリア同期ポイント配下のブレ
ークポイントの設定されるスレッドを特定して、それら
の全てのスレッドの停止が完了したのか否かを判断する
ことで、バリア同期が完了したのか否かを判断する。
ポイントの中に、その時点では存在しないスレッドを設
定先とするブレークポイントが含まれることがあるが、
このときには、そのスレッドについては停止しているも
のと見なして、この判断処理を実行する。
ア同期ポイントで指定されることがある(プログラマが
スレッドの存在の有無を知らないことがある)ので、そ
のようなスレッドを設定先とするブレークポイントを除
きつつ、バリア同期動作中のバリア同期ポイント配下の
存在する全てのブレークポイントに基づくスレッドの停
止が完了したのか否かを判断することで、バリア同期が
完了したのか否かを判断するのである。
ていないことを判断するときには、ステップ15に進ん
で、停止したスレッドをサスペンド状態(マルチスレッ
ドプログラム20の実行再開時に、そのスレッドの実行
を再開しない状態にする)に設定し、続くステップ16
で、プログラマに対してバリア同期中である旨のメッセ
ージを表示してから、続くステップ17(図10の処理
フロー)で、マルチスレッドプログラム20の実行を再
開させて、マルチスレッドデバッガ30に制御を戻す。
したことを判断するときには、ステップ18(図10の
処理フロー)に進んで、プログラマに対してバリア同期
が完了した旨のメッセージを表示し、続くステップ19
で、バリア同期のためにサスペンド状態にしたスレッド
を実行可能状態に戻してから、マルチスレッドデバッガ
30に制御を戻す。
制御プログラム70は、図11に示すように、バリア同
期ポイント設定プログラム50により複数のバリア同期
ポイントが設定されると、その中から、最初にスレッド
を停止させたバリア同期ポイントをバリア同期の対象と
して設定し、そのバリア同期ポイントの指定するブレー
クポイントに到達したスレッドをサスペンド状態にしな
がら、そのバリア同期ポイント配下の存在する全てのブ
レークポイントに基づくスレッドの停止が完了すると、
サスペンド状態にしたスレッドを実行可能状態に戻し
て、マルチスレッドデバッガ30に制御を戻していくよ
うに処理するのである。
ッドプログラム20をデバッグするときに、目的となる
任意のスレッドをそれぞれの目的となる任意のプログラ
ム位置に停止させていくというバリア同期を実現できる
ようになるのである。
ラム20を具体例にして、本発明により実現されるバリ
ア同期について具体的に説明する。
ム20は、図13に示すように、広域変数である配列ar
ray[50] の0〜9に“0”を書き込み、10〜19に“1
0”を書き込み、20〜29に“20”を書き込み、30〜39
に“30”を書き込み、40〜49に“40”を書き込むと
いう処理を実行するものであり、図14に示すように、
4つのスレッド(THRー2〜5)を生成して、この生
成する4つのスレッドと、初期スレッドとして機能する
関数main()とを使って、この書込処理を実行するもので
ある。
0のプログラム動作について説明するならば、関数main
()(20行)が起動されると、27行に記述されるfor
文の指定する繰り返し回数(4回)に従って、29行に
記述されるシステム関数により4つのスレッドが生成さ
れる。
9行の記述に従って、begin[i]のアドレスを渡しつつ、
関数PE()(14行)を呼び出す。ここで、27行及び2
8行の記述に従って、begin[i]には、 begin[0]=0 begin[1]=10 begin[2]=20 begin[3]=30 という値が設定されている。
は、16行の記述に従って、begin[i]の実体を渡しつ
つ、関数sub()(6行)を呼び出す。一方、関数main()
は、32行の記述に従って、「begin[4]=40 」を渡しつ
つ、関数sub() を呼び出す。
b() は、10行の記述に従って、図13に示したよう
に、配列array[50] の0〜9に“0”を書き込み、10〜
19に“10”を書き込み、20〜29に“20”を書き込
み、30〜39に“30”を書き込み、40〜49に“40”を
書き込むという処理を実行する。
スレッドとして機能する関数main()は、自分の作成した
全てのスレッドがこの処理を終了するのを待ち合わせ
て、その待ち合わせを終えると、5つのスレッドにより
設定された配列array[50] の内容を表示して、処理を終
了する。
に単独で関数PE0から動作し始め、スレッドの作成時に
渡された引数をそのまま関数sub()(配列への設定処理を
行う関数)に渡して実行させる。このとき、初期スレッ
ドである関数main0は、スレッドの作成に続いて他のス
レッドと同様に関数sub() を実行させる。
えて関数sub() を同時に動作させていることになる。す
なわち、同じ位置の同じ命令列(関数sub())を同時に5
つのスレッドで動作させていくことになる。
ム20をデバッグする場合に、図13に示すような書込
処理が正常に行われたのかを確認する必要がある。
THR−1>〜<THR−5>に対して、図12に示す
マルチスレッドプログラム20の11行をブレークポイ
ントするバリア同期ポイントを設定することで、5つの
スレッド<THR−1>〜<THR−5>をその11行
でバリア同期させて、この書込処理が正常に行われたの
か否かを確認するデバッグ処理を行う。
最初に停止するスレッドは不定だが、例えば、最初に、
スレッド<THR−2>がバリア同期ポイントを構成す
るブレークポイントによって停止するとし、それに続い
て、スレッド<THR−3>が停止し、それに続いて、
スレッド<THR−4>が停止し、それに続いて、スレ
ッド<THR−5>が停止し、最後に、スレッド<TH
R−1>が停止していくとする。
レッド<THR−2>が11行で停止することでバリア
同期が動作を開始し、そのスレッド<THR−2>をサ
スペンド状態にした後、マルチスレッドプログラム20
の実行を再開させる。
で停止し、それに応じてサスペンド状態にし、続いて、
スレッド<THR−4>が11行で停止し、それに応じ
てサスペンド状態にし、続いて、スレッド<THR−5
>が11行で停止し、それに応じてサスペンド状態にし
ていく。
で停止し、これによりプログラマが指定した現在存在し
ている全てのスレッドがバリア同期ポイントで停止した
ことでバリア同期動作が完了したことを認識して、その
旨をプログラマに通知し、このバリア同期のためにサス
ペンド状態にしたスレッド<THR−2>、スレッド<
THR−3>、スレッド<THR−4>、スレッド<T
HR−5>を実行再開可能状態にして、マルチスレッド
デバッガ30に制御を戻していく。
図12に示すようなマルチスレッドプログラム20のデ
バッグが可能になる。
イントの設定を可能とする構成を開示したが、1つのバ
リア同期ポイントの設定のみを許可するという構成を採
ることも可能である。この実施例に従う場合には、設定
されるバリア同期ポイントがバリア同期の対象となるこ
とから、動作中バリア同期ポイント管理ブロック612
を備える必要はなく、その代わりに、バリア同期の動作
中であるのか否かを表示するフラグを用意することにな
る。
ト実行制御プログラム70は、図8ないし図10の処理
フローに代えて、図15及び図16の処理フローの処理
を実行することになる。
原因で停止することでマルチスレッドデバッガ30から
呼び出されると、バリア同期ポイント実行制御プログラ
ム70は、図15及び図16の処理フローに示すよう
に、先ず最初に、ステップ1で、スレッドの停止原因が
ブレークポイントによるものであるのか否かを判断し
て、スレッドの停止原因がブレークポイントによるもの
でないことを判断するときには、自プログラムの処理す
る内容でないことを判断して、そのままマルチスレッド
デバッガ30に制御を戻す。
がブレークポイントによるものであることを判断すると
きには、ステップ2に進んで、バリア同期の動作中であ
るのか否かを表示するフラグがONになっているのか否
かを判断することで、バリア同期の動作中であるのか否
かを判断する。なお、このフラグは、マルチスレッドプ
ログラム20の実行開始時にOFFにセットされる。
中でないことを判断するときには、ステップ3に進ん
で、停止原因となったブレークポイントを管理するブレ
ークポイント管理ブロック611-iのバリア同期ポイン
トフラグがONを表示しているのか否かを判断して、O
FFを表示していることを判断するときには、バリア同
期の対象ではないブレークポイントが停止原因であるこ
とを判断して、そのままマルチスレッドデバッガ30に
制御を戻すことで、通常のブレークポイントに対するデ
バッグ処理に入るように制御する。
止原因となったブレークポイントを管理するブレークポ
イント管理ブロック611-iのバリア同期ポイントフラ
グがONを表示していることを判断するときには、バリ
ア同期の開始を判断して、ステップ4に進んで、バリア
同期の動作中であるのか否かを表示するフラグをONに
することで、バリア同期の動作中であることを記録す
る。
をサスペンド状態に設定し、続くステップ6で、プログ
ラマに対してバリア同期が開始した旨のメッセージを表
示してから、続くステップ7で、マルチスレッドプログ
ラム20の実行を再開させて、マルチスレッドデバッガ
30に制御を戻す。
期の動作中であることを判断するときには、ステップ8
(図16の処理フロー)に進んで、停止原因となったブ
レークポイントを管理するブレークポイント管理ブロッ
ク611-iのバリア同期ポイントフラグがONを表示し
ているのか否かを判断する。
レークポイントを管理するブレークポイント管理ブロッ
ク611-iのバリア同期ポイントフラグがOFFを表示
していることを判断するときには、ステップ9に進ん
で、バリア同期ポイントでないブレークポイントに到達
した旨のメッセージを表示してから、続くステップ10
で、マルチスレッドプログラム20の実行を再開させ
て、マルチスレッドデバッガ30に制御を戻す。
で、通常のブレークポイントについては無視して、バリ
ア同期ポイントを構成する次のブレークポイントへの到
達を実現すべく、マルチスレッドプログラム20の実行
を再開させるのである。
レークポイントを管理するブレークポイント管理ブロッ
ク611-iのバリア同期ポイントフラグがONを表示し
ていることを判断するときには、ステップ11に進ん
で、そのブレークポイント管理ブロック611-iにバリ
ア同期用管理チェーン(図5に示したもの)で繋がるブ
レークポイント管理ブロック611-iを参照すること
で、バリア同期ポイント配下のブレークポイントの設定
されるスレッドを特定して、それらの全てのスレッドの
停止が完了したのか否かを判断することで、バリア同期
が完了したのか否かを判断する。
の時点では存在しないスレッドを設定先とするブレーク
ポイントが含まれることがあるが、このときには、その
スレッドについては停止しているものと見なして、この
判断処理を実行する。
ア同期ポイントで指定されることがあるので、そのよう
なスレッドを設定先とするブレークポイントを除きつ
つ、バリア同期ポイント配下の存在する全てのブレーク
ポイントに基づくスレッドの停止が完了したのか否かを
判断することで、バリア同期が完了したのか否かを判断
するのである。
ていないことを判断するときには、ステップ12に進ん
で、停止したスレッドをサスペンド状態に設定し、続く
ステップ13で、プログラマに対してバリア同期中であ
る旨のメッセージを表示してから、続くステップ14
で、マルチスレッドプログラム20の実行を再開させ
て、マルチスレッドデバッガ30に制御を戻す。
したことを判断するときには、ステップ15に進んで、
プログラマに対してバリア同期が完了した旨のメッセー
ジを表示し、続くステップ16で、バリア同期のために
サスペンド状態にしたスレッドを実行可能状態に戻して
から、マルチスレッドデバッガ30に制御を戻す。
制御プログラム70は、1つのバリア同期ポイントの設
定のみを許可するという構成を採る場合には、図15及
び図16の処理フローの処理を実行することで、マルチ
スレッドプログラム20に対するバリア同期を実行する
のである。
本発明はこれに限定されるものではない。例えば、実施
例では、マルチスレッドプログラム20に対してのバリ
ア同期を具体例にして本発明を説明したが、本発明は、
相互依存の関係のある複数のプロセスを並列実行させる
マルチプロセスプログラムなどのような他のマルチタス
クプログラムに対してもそのまま適用できる。
マルチタスクプログラムをデバッグするときに、目的と
なる任意のタスクをそれぞれの目的となる任意のプログ
ラム位置に停止させていくというバリア同期を実現でき
るようになる。
個所を分担して初期化処理を行うとか、複数のタスクが
それぞれの分担個所を分担して計算処理を行うといった
ような処理を行うマルチタスクプログラムのデバッグを
効率的に実行できるようになる。
期ポイントを設定可能とするときにあって、最初にブレ
ークポイントに到達したバリア同期ポイントをバリア同
期の対象とする構成を採ることから、バリア同期に基づ
くデバッグをプログラムの実行順序に整合させて行うこ
とができるようになる。
ある。
る。
施例である。
フローである。
フローである。
フローである。
理フローである。
理フローである。
理フローである。
Claims (8)
- 【請求項1】 マルチタスクプログラムを処理対象とす
るデバッグ装置において、 タスクに設定される複数のブレークポイントを1つのバ
リア同期ポイントとして、該バリア同期ポイントを1つ
設定する設定手段と、 上記ブレークポイントに基づくタスクの停止が発生する
ときに、上記バリア同期ポイント配下の存在する全ての
上記ブレークポイントに基づくタスクの停止が完了した
のか否かを判断する判断手段と、 上記判断手段が未完了を判断するときに、その判断対象
となった停止タスクをサスペンド状態にしてから、マル
チタスクプログラムの実行を再開させる再開手段と、 上記判断手段が完了を判断するときに、サスペンド状態
に設定したタスクを実行可能状態に戻す制御手段とを備
えることを、 特徴とするデバッグ装置。 - 【請求項2】 マルチタスクプログラムを処理対象とす
るデバッグ装置において、 タスクに設定される複数のブレークポイントを1つのバ
リア同期ポイントとして、該バリア同期ポイントを複数
設定する設定手段と、 最初にタスクを停止させた上記ブレークポイントの属す
るバリア同期ポイントを特定する特定手段と、 上記ブレークポイントに基づくタスクの停止が発生する
ときに、上記特定手段の特定するバリア同期ポイントを
判断対象として、該バリア同期ポイント配下の存在する
全ての上記ブレークポイントに基づくタスクの停止が完
了したのか否かを判断する判断手段と、 上記判断手段が未完了を判断するときに、その判断対象
となった停止タスクをサスペンド状態にしてから、マル
チタスクプログラムの実行を再開させる再開手段と、 上記判断手段が完了を判断するときに、サスペンド状態
に設定したタスクを実行可能状態に戻す制御手段とを備
えることを、 特徴とするデバッグ装置。 - 【請求項3】 請求項2記載のデバッグ装置において、 特定手段の特定したバリア同期ポイント以外のバリア同
期ポイント配下のブレークポイントに基づくタスクの停
止が発生するときに、該ブレークポイントを無視してマ
ルチタスクプログラムの実行を再開させる実行手段を備
えることを、 特徴とするデバッグ装置。 - 【請求項4】 請求項1〜3のいずれかに記載されるデ
バッグ装置において、 バリア同期ポイントを構成しないブレークポイントが設
定される場合に、バリア同期ポイントを構成するブレー
クポイントに基づくタスクの停止に応答してバリア同期
の動作に入った後、バリア同期ポイントを構成しないブ
レークポイントに基づくタスクの停止が発生するとき
に、該ブレークポイントを無視してマルチタスクプログ
ラムの実行を再開させる実行手段を備えることを、 特徴とするデバッグ装置。 - 【請求項5】 マルチタスクプログラムを処理対象とす
るデバッグ方法において、 タスクに設定される複数のブレークポイントを1つのバ
リア同期ポイントとして、該バリア同期ポイントを1つ
設定する第1の処理過程と、 上記ブレークポイントに基づくタスクの停止が発生する
ときに、上記バリア同期ポイント配下の存在する全ての
上記ブレークポイントに基づくタスクの停止が完了した
のか否かを判断する第2の処理過程と、 第2の処理過程で未完了を判断するときに、その判断対
象となった停止タスクをサスペンド状態にしてから、マ
ルチタスクプログラムの実行を再開させる第3の処理過
程と、 第2の処理過程で完了を判断するときに、サスペンド状
態に設定したタスクを実行可能状態に戻す第4の処理過
程とを備えることを、 特徴とするデバッグ方法。 - 【請求項6】 マルチタスクプログラムを処理対象とす
るデバッグ方法において、 タスクに設定される複数のブレークポイントを1つのバ
リア同期ポイントとして、該バリア同期ポイントを複数
設定する第1の処理過程と、 最初にタスクを停止させた上記ブレークポイントの属す
るバリア同期ポイントを特定する第2の処理過程と、 上記ブレークポイントに基づくタスクの停止が発生する
ときに、第2の処理過程で特定したバリア同期ポイント
を判断対象として、該バリア同期ポイント配下の存在す
る全ての上記ブレークポイントに基づくタスクの停止が
完了したのか否かを判断する第3の処理過程と、 第3の処理過程で未完了を判断するときに、その判断対
象となった停止タスクをサスペンド状態にしてから、マ
ルチタスクプログラムの実行を再開させる第4の処理過
程と、 第3の処理過程で完了を判断するときに、サスペンド状
態に設定したタスクを実行可能状態に戻す第5の処理過
程とを備えることを、 特徴とするデバッグ方法。 - 【請求項7】 マルチタスクプログラムを処理対象とす
るデバッグ装置の実現に用いられるプログラムが格納さ
れるプログラム記録媒体において、 タスクに設定される複数のブレークポイントを1つのバ
リア同期ポイントとして、該バリア同期ポイントを1つ
設定する設定処理と、 上記ブレークポイントに基づくタスクの停止が発生する
ときに、上記バリア同期ポイント配下の存在する全ての
上記ブレークポイントに基づくタスクの停止が完了した
のか否かを判断する判断処理と、 上記判断処理で未完了を判断するときに、その判断対象
となった停止タスクをサスペンド状態にしてから、マル
チタスクプログラムの実行を再開させる再開処理と、 上記判断処理で完了を判断するときに、サスペンド状態
に設定したタスクを実行可能状態に戻す制御処理とをコ
ンピュータに実行させるプログラムが格納されること
を、 特徴とするプログラム記録媒体。 - 【請求項8】 マルチタスクプログラムを処理対象とす
るデバッグ装置の実現に用いられるプログラムが格納さ
れるプログラム記録媒体において、 タスクに設定される複数のブレークポイントを1つのバ
リア同期ポイントとして、該バリア同期ポイントを複数
設定する設定処理と、 最初にタスクを停止させた上記ブレークポイントの属す
るバリア同期ポイントを特定する特定処理と、 上記ブレークポイントに基づくタスクの停止が発生する
ときに、上記特定処理で特定するバリア同期ポイントを
判断対象として、該バリア同期ポイント配下の存在する
全ての上記ブレークポイントに基づくタスクの停止が完
了したのか否かを判断する判断処理と、 上記判断処理で未完了を判断するときに、その判断対象
となった停止タスクをサスペンド状態にしてから、マル
チタスクプログラムの実行を再開させる再開処理と、 上記判断処理で完了を判断するときに、サスペンド状態
に設定したタスクを実行可能状態に戻す制御処理とをコ
ンピュータに実行させるプログラムが格納されること
を、 特徴とするプログラム記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31622099A JP3571976B2 (ja) | 1999-11-08 | 1999-11-08 | デバッグ装置及び方法並びにプログラム記録媒体 |
US09/620,077 US6718484B1 (en) | 1999-11-08 | 2000-07-20 | Debugging method and apparatus for multitask programs and recording medium storing a program realizing the debugging method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31622099A JP3571976B2 (ja) | 1999-11-08 | 1999-11-08 | デバッグ装置及び方法並びにプログラム記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001134466A true JP2001134466A (ja) | 2001-05-18 |
JP3571976B2 JP3571976B2 (ja) | 2004-09-29 |
Family
ID=18074652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31622099A Expired - Fee Related JP3571976B2 (ja) | 1999-11-08 | 1999-11-08 | デバッグ装置及び方法並びにプログラム記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6718484B1 (ja) |
JP (1) | JP3571976B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7216346B2 (en) | 2002-12-31 | 2007-05-08 | International Business Machines Corporation | Method and apparatus for managing thread execution in a multithread application |
JP2008269579A (ja) * | 2007-03-27 | 2008-11-06 | Toshiba Corp | マルチタスク処理装置およびその方法 |
WO2012127534A1 (ja) * | 2011-03-23 | 2012-09-27 | 富士通株式会社 | バリア同期方法、バリア同期装置及び演算処理装置 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3810631B2 (ja) * | 2000-11-28 | 2006-08-16 | 富士通株式会社 | 情報処理プログラムを記録した記録媒体 |
US7398519B2 (en) * | 2001-11-30 | 2008-07-08 | International Business Machines Corporation | Inheritance breakpoints for use in debugging object-oriented computer programs |
US7644394B2 (en) * | 2001-11-30 | 2010-01-05 | International Business Machines Corporation | Object-oriented creation breakpoints |
US9003376B2 (en) * | 2002-08-09 | 2015-04-07 | Texas Instruments Incorporated | Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems |
JP4403794B2 (ja) * | 2003-02-28 | 2010-01-27 | 株式会社デンソー | 制御プログラムの検査方法及び検査装置及び検査プログラム |
US7493615B2 (en) * | 2003-05-01 | 2009-02-17 | Sun Microsystems, Inc. | Apparatus and method for synchronizing multiple threads in an out-of-order microprocessor |
US7383539B2 (en) * | 2003-09-18 | 2008-06-03 | International Business Machines Corporation | Managing breakpoints in a multi-threaded environment |
US20050229163A1 (en) * | 2004-04-08 | 2005-10-13 | International Business Machines Corporation | Thread-scoped breakpoints |
US7353427B2 (en) * | 2004-04-08 | 2008-04-01 | International Business Machines Corporation | Method and apparatus for breakpoint analysis of computer programming code using unexpected code path conditions |
DE102004062852A1 (de) * | 2004-12-27 | 2006-07-06 | Siemens Ag | Steuerung einer Maschine mit Debuggfunktionalität |
US7716031B2 (en) * | 2005-02-25 | 2010-05-11 | Coware, Inc. | Interface converter for unified view of multiple computer system simulations |
US7742905B2 (en) | 2005-02-25 | 2010-06-22 | Coware, Inc. | Method and system for dynamically adjusting speed versus accuracy of computer platform simulation |
US7770170B2 (en) * | 2005-07-12 | 2010-08-03 | Microsoft Corporation | Blocking local sense synchronization barrier |
FR2894694A1 (fr) * | 2005-12-09 | 2007-06-15 | St Microelectronics Sa | Procede et dispositif de mise au point d'un programme execute par un processeur multitache |
GB0613289D0 (en) * | 2006-07-04 | 2006-08-16 | Imagination Tech Ltd | Synchronisation of execution threads on a multi-threaded processor |
US7925791B2 (en) * | 2006-07-17 | 2011-04-12 | The Math Works, Inc. | Recoverable error detection for concurrent computing programs |
US20080127118A1 (en) * | 2006-10-02 | 2008-05-29 | Bulent Kasman | Method and system for dynamic patching of software |
US7865778B2 (en) * | 2007-02-20 | 2011-01-04 | International Business Machines Corporation | Method and system for detecting synchronization errors in programs |
CN101295279B (zh) * | 2007-04-29 | 2012-05-09 | 国际商业机器公司 | 多线程环境下的调试程序的方法和系统 |
US9009020B1 (en) * | 2007-12-12 | 2015-04-14 | F5 Networks, Inc. | Automatic identification of interesting interleavings in a multithreaded program |
US8739133B2 (en) | 2007-12-21 | 2014-05-27 | International Business Machines Corporation | Multi-threaded debugger support |
JP5022262B2 (ja) * | 2008-02-12 | 2012-09-12 | 株式会社アドバンテスト | デバッグ中にツールを使用可能な試験システム及び方法 |
US20100281469A1 (en) * | 2009-04-30 | 2010-11-04 | Nec Laboratories America, Inc. | Symbolic predictive analysis for concurrent programs |
JP2011070256A (ja) * | 2009-09-24 | 2011-04-07 | Toshiba Corp | デバッガおよびプログラム |
DE102009050161A1 (de) * | 2009-10-21 | 2011-04-28 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Testen eines Systems mit zumindest einer Mehrzahl von parallel ausführbaren Softwareeinheiten |
JP5994601B2 (ja) * | 2012-11-27 | 2016-09-21 | 富士通株式会社 | 並列計算機、並列計算機の制御プログラム及び並列計算機の制御方法 |
US9218223B2 (en) | 2013-08-13 | 2015-12-22 | Qualcomm Incorporated | Barrier synchronization with dynamic width calculation |
GB2580428B (en) * | 2019-01-11 | 2021-08-25 | Graphcore Ltd | Handling exceptions in a machine learning processor |
CN112306845B (zh) * | 2019-07-31 | 2024-06-11 | 腾讯科技(深圳)有限公司 | 一种并发测试方法、装置、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01114946A (ja) * | 1987-10-28 | 1989-05-08 | Nec Corp | 同期型デバグ方式 |
JPH03113648A (ja) * | 1989-09-28 | 1991-05-15 | Mitsubishi Electric Corp | プログラムデバツグ方式 |
JPH03244040A (ja) * | 1990-02-21 | 1991-10-30 | Nec Corp | 並列走行型デバグ方式 |
JPH0588933A (ja) * | 1991-09-27 | 1993-04-09 | Hitachi Ltd | デバツグ機能を有する並列処理システム |
JPH08185340A (ja) * | 1994-12-27 | 1996-07-16 | Toshiba Corp | 並列プログラムデバッグ方法および並列プログラム可視化装置 |
JPH09259002A (ja) * | 1996-03-22 | 1997-10-03 | Hitachi Ltd | デバッグ支援装置 |
JPH1049507A (ja) * | 1996-07-31 | 1998-02-20 | Fujitsu Ltd | 並列計算機 |
JPH10187486A (ja) * | 1996-12-27 | 1998-07-21 | Fujitsu Ltd | マルチプロセッサシステムのプログラムデバッグ方法 |
JPH10269185A (ja) * | 1997-03-25 | 1998-10-09 | Hitachi Ltd | バリア同期方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2509811B2 (ja) | 1986-06-25 | 1996-06-26 | 株式会社日立製作所 | タスク管理方式 |
JPH07120302B2 (ja) | 1989-05-16 | 1995-12-20 | 日本電気株式会社 | タスクデバッグ方式 |
US5365228A (en) * | 1991-03-29 | 1994-11-15 | International Business Machines Corporation | SYNC-NET- a barrier synchronization apparatus for multi-stage networks |
JPH04314141A (ja) | 1991-04-12 | 1992-11-05 | Nec Software Ltd | マルチタスク制御方法とその機構 |
US5581778A (en) * | 1992-08-05 | 1996-12-03 | David Sarnoff Researach Center | Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock |
US5721921A (en) * | 1995-05-25 | 1998-02-24 | Cray Research, Inc. | Barrier and eureka synchronization architecture for multiprocessors |
US5768538A (en) * | 1996-04-30 | 1998-06-16 | International Business Machines Corporation | Barrier synchronization method wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each new phase |
-
1999
- 1999-11-08 JP JP31622099A patent/JP3571976B2/ja not_active Expired - Fee Related
-
2000
- 2000-07-20 US US09/620,077 patent/US6718484B1/en not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01114946A (ja) * | 1987-10-28 | 1989-05-08 | Nec Corp | 同期型デバグ方式 |
JPH03113648A (ja) * | 1989-09-28 | 1991-05-15 | Mitsubishi Electric Corp | プログラムデバツグ方式 |
JPH03244040A (ja) * | 1990-02-21 | 1991-10-30 | Nec Corp | 並列走行型デバグ方式 |
JPH0588933A (ja) * | 1991-09-27 | 1993-04-09 | Hitachi Ltd | デバツグ機能を有する並列処理システム |
JPH08185340A (ja) * | 1994-12-27 | 1996-07-16 | Toshiba Corp | 並列プログラムデバッグ方法および並列プログラム可視化装置 |
JPH09259002A (ja) * | 1996-03-22 | 1997-10-03 | Hitachi Ltd | デバッグ支援装置 |
JPH1049507A (ja) * | 1996-07-31 | 1998-02-20 | Fujitsu Ltd | 並列計算機 |
JPH10187486A (ja) * | 1996-12-27 | 1998-07-21 | Fujitsu Ltd | マルチプロセッサシステムのプログラムデバッグ方法 |
JPH10269185A (ja) * | 1997-03-25 | 1998-10-09 | Hitachi Ltd | バリア同期方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7216346B2 (en) | 2002-12-31 | 2007-05-08 | International Business Machines Corporation | Method and apparatus for managing thread execution in a multithread application |
JP2008269579A (ja) * | 2007-03-27 | 2008-11-06 | Toshiba Corp | マルチタスク処理装置およびその方法 |
WO2012127534A1 (ja) * | 2011-03-23 | 2012-09-27 | 富士通株式会社 | バリア同期方法、バリア同期装置及び演算処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP3571976B2 (ja) | 2004-09-29 |
US6718484B1 (en) | 2004-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3571976B2 (ja) | デバッグ装置及び方法並びにプログラム記録媒体 | |
US8327336B2 (en) | Enhanced thread stepping | |
US8136097B2 (en) | Thread debugging device, thread debugging method and information storage medium | |
US10191835B2 (en) | Multi-threaded debugger support | |
KR101325229B1 (ko) | 비대칭 멀티프로세서 장치의 진단연산 수행 | |
JP4222370B2 (ja) | デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム | |
JP3965142B2 (ja) | コンピュータ・プログラムをデバックするための方法、システムおよびソフトウェア・プロダクト | |
US6981243B1 (en) | Method and apparatus to debug a program from a predetermined starting point | |
CN109726135B (zh) | 一种多核调试方法、装置及计算机可读存储介质 | |
US20120331351A1 (en) | N-way runtime interoperative debugging | |
KR102025078B1 (ko) | 단일 스텝 실행을 이용한 코드 진단 | |
US20040268317A1 (en) | Method and apparatus for controlling execution of a child process generated by a modified parent process | |
JPH07225693A (ja) | 異なるアドレス空間にわたってスレッド事象を処理する方法 | |
CN111124792A (zh) | 一种多核调试方法、装置及存储介质 | |
JP2000066904A (ja) | マルチタスク制御方法及び記憶媒体 | |
US20040168157A1 (en) | System and method for creating a process invocation tree | |
US20170039124A1 (en) | Method and apparatus for interception of synchronization objects in graphics application programming interfaces for frame debugging | |
JPH02294739A (ja) | 障害検出方式 | |
TWI736564B (zh) | 用於診斷執行指令串流的處理器之方法、設備、及系統 | |
US7249348B2 (en) | Non-interfering status inquiry for user threads | |
JP2010015364A (ja) | マルチプロセッサシステム及び情報処理装置 | |
JPS62290942A (ja) | デバツガ起動方式 | |
JP3075359B2 (ja) | プログラムデバッグ開始処理方式 | |
JPH06274372A (ja) | 並列分岐トレースシステム | |
JPH04321139A (ja) | デバッグ支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040528 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040625 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130702 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |