Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2677249B2 - マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ - Google Patents
[go: Go Back, main page]

JP2677249B2 - マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ - Google Patents

マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ

Info

Publication number
JP2677249B2
JP2677249B2 JP7128955A JP12895595A JP2677249B2 JP 2677249 B2 JP2677249 B2 JP 2677249B2 JP 7128955 A JP7128955 A JP 7128955A JP 12895595 A JP12895595 A JP 12895595A JP 2677249 B2 JP2677249 B2 JP 2677249B2
Authority
JP
Japan
Prior art keywords
cpu
slave
master
breakpoint
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP7128955A
Other languages
English (en)
Other versions
JPH08305607A (ja
Inventor
賢一 美原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP7128955A priority Critical patent/JP2677249B2/ja
Publication of JPH08305607A publication Critical patent/JPH08305607A/ja
Application granted granted Critical
Publication of JP2677249B2 publication Critical patent/JP2677249B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムのプログラムデバッグ技術に関し、特に特定のCP
Uでのブレークポイントによるデバッグを可能とするプ
ログラムデバッグ技術に関する。
【0002】
【従来の技術】プロセッサシステムのOS(オペレーテ
ィングシステム)をデバッグ対象とするデバッガをカー
ネルデバッガという。一般に、ハードウェアブレークポ
イント機構を持たないプロセッサシステムにおいては、
カーネルデバッガが直接にOSのテキスト上にブレーク
命令を書き込むことで、ブレークポイントによるデバッ
グを実現している。このような方式は一般にソフトウェ
アブレークポイント制御方式と呼ばれており、シングル
プロセッサシステムのみならず、例えば特願平5−14
5646号に見られるように、マルチプロセッサシステ
ムのデバッグでも利用されている。
【0003】
【発明が解決しようとする課題】しかしながら、ソフト
ウェアブレークポイント制御方式をマルチプロセッサシ
ステムに適用した場合、テキスト上に書き込まれたブレ
ーク命令は、そのブレーク命令を含むロジックを実行し
得る全てのCPUで実行される可能性があるため、最初
にそのブレーク命令を実行したCPUにおいてブレーク
が発生する。このため、オペレータが望む或る特定のC
PUがそのブレーク命令を実行した時点を捕らえてデバ
ッグを進めることが困難になる。
【0004】本発明はこのような事情に鑑みて提案され
たものであり、その目的は、マルチプロセッサシステム
において、オペレータが望む或る特定のCPUがブレー
クポイントに到達した時点を捕らえてデバッグを進める
ことができるようにすることにある。
【0005】
【課題を解決するための手段】本発明は上記の目的を達
成するために、第1の発明にあっては、以下のような手
順を踏むことを特徴とする。 (A)ブレークポイント管理テーブルに、ブレークポイ
ントアドレスに対応してCPU指定情報を設定するステ
ップ。 (B)ブレークポイント例外の発生時に、最先に例外を
発生した唯一のCPUをマスタCPUとして、残りの全
てのCPUをスレーブCPUとして、全CPUをデバッ
ガ制御下に移行せしめるステップ。 (C)マスタCPUとなったCPUにおいて、自CPU
が前記ブレークポイント管理テーブル中の前記発生した
ブレークポイント例外のアドレスに対応するCPU指定
情報中に含まれるCPUであるか否かを判別するステッ
プ。 (D)該当するCPUであると判断した場合に、前記マ
スタCPUとなったCPUにおいて、オペレータからの
デバッグコマンドを解析実行する段階へ進むステップ。 (E)該当するCPUでないと判断した場合に、今回の
ブレークポイント例外を無効なものとして、全CPUを
デバッガ制御下から元の状態に復帰させるステップ。
【0006】また、本発明の第2の発明にあっては、上
記(E)の手順に代えて以下の手順を実行する構成を採
用する。 (E−1)該当するCPUでないと判断した場合に、前
記マスタCPUとなったCPUにおいて、前記ブレーク
ポイント管理テーブル中の前記発生したブレークポイン
ト例外のアドレスでブレークポイント例外を起こしたス
レーブCPUであって、且つそのブレークポイントアド
レスに対応するCPU指定情報中にそのCPUの情報が
含まれているスレーブCPUが存在するか否かを判別す
るステップ。 (E−2)該当するスレーブCPUが存在したと判断し
た場合に、該存在したスレーブCPUをマスタCPUに
変更すると共に前記マスタCPUとなったCPUをスレ
ーブCPUに変更し、該新たにマスタCPUとなったC
PUにおいて、オペレータからのデバッグコマンドを解
析実行する段階へ進むステップ。 (E−3)該当するスレーブCPUが存在しないと判断
した場合に全CPUをデバッガ制御下から元の状態に復
帰させるステップ。
【0007】そして、このようなプログラムデバッグ方
法に適用するデバッガとしては、ブレークポイント例外
発生時にコールされ、コール元のCPUに関するレジス
タ情報等のセーブ処理を行う共通入口処理部と、該共通
入口処理部からコールされ、マスタCPU情報に既にC
PU情報が設定されている場合にはスレーブCPUと判
断し、設定されていない場合には自CPU情報を設定し
てマスタCPUと判断するマスタ/スレーブCPU判別
部と、該マスタ/スレーブCPU判別部でマスタCPU
と判断された場合にコールされ、マスタCPUとなった
CPUで実行されるマスタCPU制御部と、前記マスタ
/スレーブCPU判別部でスレーブCPUと判断された
場合にコールされ、スレーブCPUとなったCPUで実
行されるスレーブCPU制御部と、デバッガ制御下から
元の状態へ復帰する共通出口処理部とを備え、更に、前
記マスタCPU制御部内に、自身以外のCPUを全てス
レーブCPUとしてデバッガ制御下に移行せしめるデバ
ッガシステム同期部と、ブレークポイントアドレスに対
応してブレークポイント管理テーブルに設定されたCP
U指定情報に基づいて、ブレークポイント例外がオペレ
ータから指定されたCPUで発生しているか否かを判断
し、発生していない場合には全CPUをデバッガ制御下
から元の状態に復帰せしめ、発生しているがその発生C
PUがスレーブCPUであった場合にはそのスレーブC
PUを新たなマスタCPUに変更するCPU別ブレーク
ポイント制御部と、ブレークポイント例外がオペレータ
から指定されたCPUで発生していた場合に限って、オ
ペレータからのデバッグコマンドを解析して実行するコ
マンド解析/実行部とを備えている。
【0008】
【作用】例えば複数のCPUのうち特定のCPU(αと
する)がブレークポイントアドレス(βとする)に到達
した時点を捕らえてデバッグしたい場合、そのブレーク
ポイントアドレスβに対応してCPUαの情報をブレー
クポイント管理テーブルに設定しておく。マルチプロセ
ッサシステムの動作中に、何れかのCPUでブレークポ
イント例外が発生すると、最先に例外を発生した唯一の
CPUをマスタCPUとして、残りの全てのCPUをス
レーブCPUとして、全CPUをデバッガ制御下に移行
せしめる。次に、マスタCPUとなったCPUにおい
て、自CPUがブレークポイント管理テーブル中の前記
発生したブレークポイント例外のアドレスに対応するC
PU指定情報中に含まれるCPUであるか否かを判別す
る。そして、そのようなCPUであると判断した場合、
つまりCPUαがブレークポイントアドレスβでブレー
クポイント例外を起こした場合は、そのCPUαにおい
て、オペレータからのデバッグコマンドを解析実行する
段階へ進む。しかし、該当するCPUでない、つまり最
先にブレークポイント例外を起こしたCPUがCPUα
でない場合、今回のブレークポイント例外を無効なもの
として、全CPUをデバッガ制御下から元の状態に復帰
させる。以上の動作により、オペレータが望む或る特定
のCPUαがブレークポイントアドレスβに到達した時
点を捕らえてデバッグを進めることができる。
【0009】なお、マルチプロセッサシステムにおいて
は複数のCPUが同時並行的に処理を実行しているた
め、複数のCPUでほぼ同時にブレークポイント例外が
発生することがある。このような場合、オペレータが望
んだCPUαが最先に例外を起こしたCPUとなってマ
スタCPUとなる場合には問題はないが、他のCPUが
マスタCPUとなり、オペレータが望むCPUαがスレ
ーブCPUとなった場合、前述した構成では、特定のC
PUαがブレークポイントアドレスβに到達しているの
にかかわらず、その機会を逃してしまうことになる。そ
こで、第2の発明にあっては、マスタCPUとなったC
PUが該当するCPUαでなかった場合、そのマスタC
PUにおいて、ブレークポイント管理テーブル中の前記
発生したブレークポイント例外のアドレスでブレークポ
イント例外を起こしたスレーブCPUであって、且つそ
のブレークポイントアドレスに対応するCPU指定情報
中にそのCPUの情報が含まれているスレーブCPUが
存在するか否かを判別する。そして、該当するスレーブ
CPUが存在しないと判断した場合には全CPUをデバ
ッガ制御下から元の状態に復帰させるが、該当するスレ
ーブCPUが存在したと判断した場合には、そのスレー
ブCPU、つまりCPUαをマスタCPUに変更すると
共に前記マスタCPUとなっていた自CPUをスレーブ
CPUに変更し、新たにマスタCPUとなったCPUα
において、オペレータからのデバッグコマンドを解析実
行する段階へ進むようにしている。
【0010】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0011】図1を参照すると、本発明の一実施例を適
用したマルチプロセッサシステムは、複数個のCPU1
〜5と、これらのCPU1〜5で共有される共有メモリ
6と、磁気ディスク装置などの如き二次記憶装置7と、
コンソール8と、これらを相互に接続するシステムバス
9とで構成されている。なお、CPU1〜5は同一タイ
プのプロセッサであり、例えばミップス社製のR300
0,R4000といったCPUが使用される。また、図
1において、100はデバッグ対象となるOS(オペレ
ーティング・システム)、200はデバッガ(カーネル
デバッガ)である。
【0012】図2はデバッガ200の要部構成図であ
る。デバッガ200は、マルチプロセッサシステム運用
中にブレークポイント例外が発生した場合にその例外処
理からコールされる共通入口処理部10と、マスタCP
U情報15に最先に自CPU情報を設定し得たか否かに
よってマスタCPUとスレーブCPUとを切り分けるマ
スタ/スレーブCPU判別部11と、マスタCPUとな
ったCPUで実行されるマスタCPU制御部12と、ス
レーブCPUとなったCPUで実行されるスレーブCP
U制御部13と、デバッガ200をコールした時点の状
態に復帰する共通出口処理部14と、ブレークポイント
に関する種々の情報が設定されているブレークポイント
管理テーブル16と、マスタCPUとなったCPUとス
レーブCPUとなったCPUとの間で参照更新されるス
レーブコマンドフラグ17及びスレーブコマンド情報構
造体18とを含んでいる。
【0013】また、マスタCPU制御部12は、デバッ
ガシステム同期部121とCPU別ブレークポイント制
御部122とコマンド解析/実行部123とを含み、ス
レーブCPU制御部13は、コマンド要請待機部131
とコマンド要請処理部132とを含んでいる。
【0014】図3はブレークポイント管理テーブル16
の1エントリの内容例を示す。同図において、161は
オペレータが指定したブレークポイントアドレスであ
り、公知のようにこのブレークポイントアドレス161
に対応するOS100の命令はブレークポイント例外を
起こすブレーク命令に置換されている。また、162は
ブレーク命令と置換された元の命令を示し、163がブ
レークポイントアドレス161に対応するCPU情報フ
ィールドであって、ここにオペレータがブレークを望む
CPUを特定する情報(例えばCPU番号)が設定され
る。
【0015】図4はマスタCPU制御部12のCPU別
ブレークポイント制御部122の処理例を示すフローチ
ャート、図5はマスタCPUとスレーブCPUとの間の
コマンド授受のフローチャート、図6はスレーブコマン
ド情報構造体18の構成例を、それぞれ示す。以下、各
図を参照して本実施例の動作を説明する。
【0016】オペレータは、デバッガ200にてブレー
クポイントをOS100に設定する際、そのブレークポ
イントをどのCPUで有効とするかを併せて指定する。
有効とするCPUは1つのCPUにしても良く、複数の
CPUにしても良い。デバッガ200は、オペレータに
よるコンソール8からのブレークポイント設定要求時、
ブレークポイントの設定を要求されたOS100中のア
ドレスの箇所をブレーク命令に置換し、ブレークポイン
ト管理テーブル16に、図3に示すように、そのブレー
クポイントアドレス161と、元の命令162とを設定
し、更に、オペレータから指定された、そのブレークポ
イントを有効とするCPUの情報をCPU情報フィール
ド163に設定する。
【0017】マルチプロセッサシステムの動作中に、何
れかのCPUでブレークポイント例外が発生すると、そ
の発生元のCPUでは例外処理からデバッガ200の共
通入口処理部10がコールされる。
【0018】共通入口処理部10では、後に当該ブレー
クポイント例外の発生時点に復帰できるように、当該C
PUのレジスタ情報等をセーブし、マスタ/スレーブC
PU判別部11をコールする。
【0019】マスタ/スレーブCPU判別部11は、マ
スタCPU情報15を参照し、そこに何も設定されてい
ない場合には、自CPUがマスタCPUになり得るの
で、自CPU情報をマスタCPU情報15に設定して、
マスタCPU制御部12のデバッガシステム同期部12
1をコールする。他方、マスタCPU情報15に既に他
のCPU情報が設定されていた場合はスレーブCPUと
なり、スレーブCPU制御部13のコマンド要請待機部
131をコールする。なお、マスタCPU情報15を参
照する際にはロック機能によってマスタCPU情報15
のロックを試み、ロックできたときに初めて参照し、ロ
ックできないときは例えば一定時間経過後に再試行す
る。また、何も設定されていない場合は、自CPU情報
を設定した後、ロックを解除する。
【0020】従って、ブレークポイント例外が唯一のC
PUでのみ発生した場合は、そのCPUがマスタCPU
となる。他方、ブレークポイント例外がほぼ同時期に複
数のCPUで発生した場合は、最初にマスタCPU情報
15に自CPU情報を書き込めたCPUがマスタCPU
となり、ブレークポイント例外を発生した残りのCPU
はスレーブCPUとなる。
【0021】次に、マスタCPUとなってデバッガシス
テム同期部121をコールしたCPUにおいては、自C
PU以外の全てのCPUをスレーブCPUとしてデバッ
ガ制御下に移行させるために、他のCPUに対しプロセ
ッサ間通信によりデバッガ200の制御下に入るように
要求する。この要求を受け付けた他のCPUは、デバッ
ガ200の共通入口処理部10をコールして自CPUの
レジスタ情報等のセーブを行った後、マスタ/スレーブ
CPU判別部11をコールし、その時点ではマスタCP
U情報15に既に他のCPU情報が設定されているので
スレーブCPUとなって、コマンド要請待機部131を
コールする。なお、ブレークポイント例外が発生したが
マスタCPUとなり得なかったCPUは既にスレーブC
PUになっているので、デバッガシステム同期部121
によるデバッガ制御下への移行要求は無視される。
【0022】以上の処理によって、ブレークポイント例
外の発生時に、最先に例外を発生した唯一のCPUのみ
がマスタCPUとして、残りの全てのCPUがスレーブ
CPUとなって、全CPUがデバッガ制御下に移行した
ことになる。
【0023】さて、マスタCPU側によるデバッガシス
テム同期部121の処理が終了すると、CPU別ブレー
クポイント制御部122がコールされ、図4に示す処理
がマスタCPU側において実行される。
【0024】先ず、自CPU(マスタCPU)の今回の
ブレークポイント例外の発生アドレスが図3のブレーク
ポイント管理テーブル16に設定されたブレークポイン
トアドレス161であり、且つ、そのブレークポイント
アドレスに対応するCPU情報フィールド163に自C
PUの情報が含まれているかを、自CPUのレジスタ退
避情報等に基づいて調べる(S1)。そして、その判断
結果がYESの場合、つまり、自CPUがブレークポイ
ント管理テーブル16に設定されたブレークポイントア
ドレスで例外を起こし、且つ自CPUがオペレータから
指定されたCPUであった場合、コマンド解析/実行部
123をコールする(S2)。これにより、オペレータ
からのデバッグコマンドを解析,実行する段階へと進
む。以下、オペレータによるデバッグ時の動作を説明す
る。
【0025】コマンド解析/実行部123では、コンソ
ール8から投入されたオペレータからのデバッグコマン
ドを解析し、目的の動作を実行する。これにより、マス
タCPUとなったCPU上で各種のデバッグコマンドを
実行でき、各CPUのレジスタ退避情報や共有メモリ6
の内容等を調査することができる。また、本実施例で
は、デバッグ実行単位を一時的にスレーブCPUに移す
ことが可能である。これは以下のようにして行われる。
【0026】実行単位を一時的に或るスレーブCPUに
移してそのスレーブCPUでデバッグコマンドを実行さ
せるような指示がオペレータから入力された場合、マス
タCPUは、図5の処理を開始して、先ずスレーブコマ
ンド情報構造体18に必要な情報(スレーブCPUに実
行させるコマンド,伝達する情報等)をそのコマンドフ
ィールド,情報フィールドに設定し(S11)、スレー
ブコマンドフラグ17におけるそのスレーブCPUに対
応するフラグを1にセットし(S12)、そのフラグが
0に変更されるのを待つ(S13)。各スレーブCPU
は、コマンド要請待機部131において、図5に示すよ
うに、スレーブコマンドフラグ17中の自CPUに対応
するフラグが1になるのを監視しており(S21)、フ
ラグが1になると、コマンド要請処理部132をコール
して、このコマンド要請処理部132において、スレー
ブコマンド情報構造体18に設定されたコマンド,情報
に従った処理を実行し、その実行終了時に、戻り値があ
ったらスレーブコマンド情報構造体18の戻り値フィー
ルドに設定する(S22)。そして、スレーブCPUに
よるコマンド終了通知として、スレーブコマンドフラグ
17中の自CPUに対応するフラグを0に設定し(S2
3)、再びコマンド要請待機部131に戻る。マスタC
PU側のコマンド解析/実行部123では、このフラグ
が0に設定されたのを検出すると、スレーブコマンド情
報構造体18から戻り値を取得する(S14)。これに
より、再び、次のデバッグコマンドの実行が可能とな
る。
【0027】以上のような動作は、デバッガから復帰す
べきコマンドがオペレータより投入されるまで続けら
れ、デバッガから復帰すべきコマンドが投入されると、
コマンド解析/実行部123は、スレーブコマンドフラ
グ17とスレーブコマンド情報構造体18とを用いて全
スレーブCPUに対してデバッガからの復帰コマンドを
伝達し、マスタCPU自身も共通出口処理部14をコー
ルしてデバッガ制御下から例外発生時点に復帰する。デ
バッガからの復帰コマンドを受けた各スレーブCPU
は、それぞれ共通出口処理部14をコールして、元の状
態に復帰する。
【0028】他方、図4の処理S1の判断結果がNOの
場合、つまりマスタCPUとなったCPUがオペレータ
の指定したCPUでなかった場合は、ブレークポイント
管理テーブル16に設定されたブレークポイントアドレ
ス161の箇所でブレークポイント例外を起こしたスレ
ーブCPUであって、且つ、ブレークポイント管理テー
ブル16のCPU情報フィールド163にそのCPU情
報が含まれているスレーブCPUが存在するか否かを、
各スレーブCPUのレジスタ退避情報等に基づいて調べ
る(S3)。そして、そのようなスレーブCPUが存在
しない場合は、今回のブレークポイント例外は無効なも
のとして、全CPUをデバッガ200の制御下から元の
状態に復帰させる(S5)。これは、マスタCPUがス
レーブコマンドフラグ17とスレーブコマンド情報構造
体18を用いて全スレーブCPUにデバッガからの復帰
コマンドを伝達して共通出口処理部14をコールさせ、
自らも共通出口処理部14をコールすることで実現され
る。
【0029】また、図4の処理S3の判断の結果、該当
するスレーブCPUが存在した場合には、現在のマスタ
CPUにおいて、スレーブコマンドフラグ17とスレー
ブコマンド情報構造体18とを用いて、該当するスレー
ブCPUに対してマスタCPU変更のコマンドを伝達
し、自らはスレーブCPUとなってスレーブCPUによ
るコマンド要請待機部131をコールする。一方、マス
タCPU変更のコマンドを受けたスレーブCPUは、マ
スタCPU情報15を変更して自らがマスタCPUとな
り、コマンド解析/実行部123をコールして、オペレ
ータによるデバッグ動作を可能にする。
【0030】以上本発明の実施例について説明したが、
本発明は以上の実施例にのみ限定されずその他各種の付
加変更が可能である。例えば、図4のステップS1にお
いてNOと判断された場合に直ちに全CPUをデバッガ
制御下から元の状態に復帰させるようにしても良い。
【0031】
【発明の効果】以上説明したように、本発明によれば、
特定のCPUのみでのブレークポイントによるデバッグ
が可能になる。このことにより、個々のCPU毎に着目
したデバッグが可能となり、マルチプロセッサシステム
の動作や状態を詳細に知ることができる。
【0032】また、請求項2記載の構成によれば、ユー
ザが望むCPUとそれ以外のCPUとがほぼ同時期にブ
レークポイント例外を起こした場合であっても、ユーザ
が望むCPUをマスタCPUとしてデバッグを進めるこ
とが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例を適用したマルチプロセッサ
システムの構成例を示すブロック図である。
【図2】デバッガの要部構成図である。
【図3】ブレークポイント管理テーブルの1エントリの
内容例を示す図である。
【図4】マスタCPU制御部のCPU別ブレークポイン
ト制御部の処理例を示すフローチャートである。
【図5】マスタCPUとスレーブCPUとの間のコマン
ド授受のフローチャートである。
【図6】スレーブコマンド情報構造体18の構成例を示
す図である。
【符号の説明】
1〜5…CPU 6…共有メモリ 7…二次記憶装置 8…コンソール 9…システムバス 10…共通入口処理部 11…マスタ/スレーブCPU判別部 12…マスタCPU制御部 13…スレーブCPU制御部 14…共通出口処理部 15…マスタCPU情報 16…ブレークポイント管理テーブル 17…スレーブコマンドフラグ 18…スレーブコマンド情報構造体 100…オペレーティング・システム(OS) 121…デバッガシステム同期部 122…CPU別ブレークポイント制御部 123…コマンド解析/実行部 131…コマンド要請待機部 132…コマンド要請処理部 161…ブレークポイントアドレス 162…元の命令 163…CPU情報フィールド
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−153442(JP,A) 特開 平3−15949(JP,A) 特開 平6−332747(JP,A) 特開 平6−75820(JP,A) 特開 平4−314141(JP,A) 特開 平4−248635(JP,A) 特開 平2−64826(JP,A) 特開 平5−20120(JP,A) 特開 平5−313946(JP,A) 特表 平5−508046(JP,A)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のCPU間でメモリを共有する密結
    合マルチプロセッサシステムのプログラムデバッグ方法
    において、 (A)ブレークポイント管理テーブルに、ブレークポイ
    ントアドレスに対応してCPU指定情報を設定するステ
    ップ。 (B)ブレークポイント例外の発生時に、最先に例外を
    発生した唯一のCPUをマスタCPUとして、残りの全
    てのCPUをスレーブCPUとして、全CPUをデバッ
    ガ制御下に移行せしめるステップ。 (C)マスタCPUとなったCPUにおいて、自CPU
    が前記ブレークポイント管理テーブル中の前記発生した
    ブレークポイント例外のアドレスに対応するCPU指定
    情報中に含まれるCPUであるか否かを判別するステッ
    プ。 (D)該当するCPUであると判断した場合に、前記マ
    スタCPUとなったCPUにおいて、オペレータからの
    デバッグコマンドを解析実行する段階へ進むステップ。 (E)該当するCPUでないと判断した場合に、今回の
    ブレークポイント例外を無効なものとして、全CPUを
    デバッガ制御下から元の状態に復帰させるステップ。 を含むことを特徴とするマルチプロセッサシステムのプ
    ログラムデバッグ方法。
  2. 【請求項2】 請求項1記載の(E)のステップに代え
    て、 (E−1)該当するCPUでないと判断した場合に、前
    記マスタCPUとなったCPUにおいて、前記ブレーク
    ポイント管理テーブル中の前記発生したブレークポイン
    ト例外のアドレスでブレークポイント例外を起こしたス
    レーブCPUであって、且つそのブレークポイントアド
    レスに対応するCPU指定情報中にそのCPUの情報が
    含まれているスレーブCPUが存在するか否かを判別す
    るステップ。 (E−2)該当するスレーブCPUが存在したと判断し
    た場合に、該存在したスレーブCPUをマスタCPUに
    変更すると共に前記マスタCPUとなっていた自CPU
    をスレーブCPUに変更し、該新たにマスタCPUとな
    ったCPUにおいて、オペレータからのデバッグコマン
    ドを解析実行する段階へ進むステップ。 (E−3)該当するスレーブCPUが存在しないと判断
    した場合に全CPUをデバッガ制御下から元の状態に復
    帰させるステップ。 を実行することを特徴とするマルチプロセッサシステム
    のプログラムデバッグ方法。
  3. 【請求項3】 前記(B)のステップを、 (B−1)マスタCPU情報にCPU情報が設定されて
    いるか否かを判断し、設定されていなければ自CPU情
    報を設定して自CPUをマスタCPUとし、既にCPU
    情報が設定されていれば自CPUをスレーブCPUとす
    るステップ。 (B−2)マスタCPUとなったCPUがプロセッサ間
    通信により他のCPUに対してデバッガ制御下への移行
    を要請するステップ。 で実現することを特徴とする請求項1または2記載のマ
    ルチプロセッサシステムのプログラムデバッグ方法。
  4. 【請求項4】 複数のCPU間でメモリを共有する密結
    合マルチプロセッサシステムのプログラムデバッグ方法
    において、 CPUに関するレジスタ情報等のセーブ処理を行う共通
    入口処理部,マスタCPU情報に既にCPU情報が設定
    されている場合にはスレーブCPUと判断し設定されて
    いない場合には自CPU情報を設定してマスタCPUと
    判断する処理を行うマスタ/スレーブCPU判別部,マ
    スタCPUとなったCPUが実行するマスタCPU制御
    部,スレーブCPUとなったCPUが実行するスレーブ
    CPU制御部,およびデバッガ制御下から元の状態へ復
    帰する処理を行う共通出口処理部を備え、更に前記マス
    タCPU制御部内に、自身以外のCPUを全てスレーブ
    CPUとしてデバッガ制御下に移行せしめるためのデバ
    ッガシステム同期部と、ブレークポイントアドレスに対
    応してブレークポイント管理テーブルに設定されたCP
    U指定情報に基づいて、発生したブレークポイント例外
    がオペレータから指定されたCPUで発生しているか否
    かを判断するためのCPU別ブレークポイント制御部
    と、オペレータからのデバッグコマンドを解析して実行
    するコマンド解析/実行部とを有するカーネルデバッガ
    を使用し、 ブレークポイント例外を起こしたCPUにおいて、前記
    共通入口処理部を実行してレジスタ情報等をセーブした
    後、前記マスタ/スレーブCPU判別部を実行してその
    判別結果により前記マスタCPU制御部か、前記スレー
    ブCPU制御部を実行し、前記マスタCPU制御部を実
    行したマスタCPUにおいて、前記デバッガシステム同
    期部の実行により他のCPUを全てスレーブCPUとし
    てデバッグ制御下に移行せしめた後、前記CPU別ブレ
    ークポイント制御部の実行により、発生したブレークポ
    イント例外が前記ブレークポイント管理テーブルで指定
    されたCPUで発生しているか否かを判断し、指定され
    たCPUで発生している場合に限り前記コマンド解析/
    実行部を実行するようにしたことを特徴とするマルチプ
    ロセッサシステムのプログラムデバッグ方法。
  5. 【請求項5】 複数のCPU間でメモリを共有する密結
    合マルチプロセッサシステムのデバッガにおいて、 ブレークポイント例外発生時にコールされ、コール元の
    CPUに関するレジスタ情報等のセーブ処理を行う共通
    入口処理部と、 該共通入口処理部からコールされ、マスタCPU情報に
    既にCPU情報が設定されている場合にはスレーブCP
    Uと判断し、設定されていない場合には自CPU情報を
    設定してマスタCPUと判断するマスタ/スレーブCP
    U判別部と、 該マスタ/スレーブCPU判別部でマスタCPUと判断
    された場合にコールされ、マスタCPUとなったCPU
    で実行されるマスタCPU制御部と、 前記マスタ/スレーブCPU判別部でスレーブCPUと
    判断された場合にコールされ、スレーブCPUとなった
    CPUで実行されるスレーブCPU制御部と、 デバッガ制御下から元の状態へ復帰する共通出口処理部
    とを備え、更に、 前記マスタCPU制御部内に、 自身以外のCPUを全てスレーブCPUとしてデバッガ
    制御下に移行せしめるデバッガシステム同期部と、 ブレークポイントアドレスに対応してブレークポイント
    管理テーブルに設定されたCPU指定情報に基づいて、
    ブレークポイント例外がオペレータから指定されたCP
    Uで発生しているか否かを判断し、発生していない場合
    には全CPUをデバッガ制御下から元の状態に復帰せし
    め、発生しているがその発生CPUがスレーブCPUで
    あった場合にはそのスレーブCPUを新たなマスタCP
    Uに変更するCPU別ブレークポイント制御部と、 ブレークポイント例外がオペレータから指定されたCP
    Uで発生していた場合に限って、オペレータからのデバ
    ッグコマンドを解析して実行するコマンド解析/実行部
    とを備えることを特徴とするマルチプロセッサシステム
    のデバッガ。
JP7128955A 1995-04-28 1995-04-28 マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ Expired - Lifetime JP2677249B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7128955A JP2677249B2 (ja) 1995-04-28 1995-04-28 マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7128955A JP2677249B2 (ja) 1995-04-28 1995-04-28 マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ

Publications (2)

Publication Number Publication Date
JPH08305607A JPH08305607A (ja) 1996-11-22
JP2677249B2 true JP2677249B2 (ja) 1997-11-17

Family

ID=14997552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7128955A Expired - Lifetime JP2677249B2 (ja) 1995-04-28 1995-04-28 マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ

Country Status (1)

Country Link
JP (1) JP2677249B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141200A (ja) * 2005-10-21 2007-06-07 Renesas Technology Corp データ処理装置
JP4222370B2 (ja) 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
JP5843801B2 (ja) 2013-03-19 2016-01-13 株式会社東芝 情報処理装置およびデバッグ方法

Also Published As

Publication number Publication date
JPH08305607A (ja) 1996-11-22

Similar Documents

Publication Publication Date Title
US6988264B2 (en) Debugging multiple threads or processes
US5621885A (en) System and method for providing a fault tolerant computer program runtime support environment
US5748959A (en) Method of conducting asynchronous distributed collective operations
JPH05197568A (ja) コンピュータ・システムおよびイベント管理方法
JPH02208740A (ja) 仮想計算機制御方式
JP2003131900A (ja) サーバシステム運用管理方式
US5544307A (en) Microcomputer development support system operable with only background monitor and without cache replacement
JP2677249B2 (ja) マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ
JP3503504B2 (ja) デバッグ処理システムと計算機およびデバッグ処理方法
JPH0922369A (ja) マルチタスキング方式のカーネルにおける不正動作検出方法
JP2022107229A (ja) 情報処理装置、制御方法及び制御プログラム
JP2550708B2 (ja) デバッグ方式
JP3096760B2 (ja) 共通データ参照設定装置及び参照設定方法
JP2954006B2 (ja) エミュレーション装置およびエミュレーション方法
JP2591818B2 (ja) 補助機能の選択制御方法
JP3120841B2 (ja) インサーキットエミュレータ
KR940007827B1 (ko) 실시간 운영체계에서의 운영체계와 사용자 프로그램의 정합방법
JP3159155B2 (ja) プログラムのデバッグ方法および装置
JP2653411B2 (ja) ブレークポイント設定方法
JPH07234850A (ja) マルチプロセッサの装置と方法
JPH0830485A (ja) デバッグ装置
JPS62290942A (ja) デバツガ起動方式
JP2825589B2 (ja) バス制御方式
JP3075359B2 (ja) プログラムデバッグ開始処理方式
CN106537342A (zh) 事务中寄存器的动态保存