JP2522158B2 - マルチプロセッサシステムのプログラムデバッグ方法 - Google Patents

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

Info

Publication number
JP2522158B2
JP2522158B2 JP5145646A JP14564693A JP2522158B2 JP 2522158 B2 JP2522158 B2 JP 2522158B2 JP 5145646 A JP5145646 A JP 5145646A JP 14564693 A JP14564693 A JP 14564693A JP 2522158 B2 JP2522158 B2 JP 2522158B2
Authority
JP
Japan
Prior art keywords
processor
debugger
breakpoint
processors
exception
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 - Fee Related
Application number
JP5145646A
Other languages
English (en)
Other versions
JPH06332747A (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
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP5145646A priority Critical patent/JP2522158B2/ja
Publication of JPH06332747A publication Critical patent/JPH06332747A/ja
Application granted granted Critical
Publication of JP2522158B2 publication Critical patent/JP2522158B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリを共有する密結
合型マルチプロセッサシステムのプログラムデバッグ方
法に関し、特にオペレーティング・システムのデバッグ
方法に関する。
【0002】
【従来の技術】プログラムのデバッグ方法としては従来
より種々の方法が提案されているが、その中で、マルチ
プロセッサシステムのプログラムデバッグに適用可能な
技術としては、例えば特開昭60−207937号公報
に見られるように、サポートプロセッサと称される特別
なプロセッサを、デバッグ対象となるプログラムが動作
するプロセッサに接続して、このサポートプロセッサ上
でデバッガを動作させることにより、デバッグを進める
方法がある。
【0003】
【発明が解決しようとする課題】このような従来方法に
よれば、マルチプロセッサシステムのプログラムデバッ
グにおいても、シングルプロセッサシステムの場合と同
様に、デバッガは1つのプロセッサのみを意識していれ
ば済むため、デバッガ自体の構造が簡単になるという。
しかしながら、このような従来方法では、サポートプロ
セッサといった特別なプロセッサが必要になる上、複数
のプロセッサが同時並行的に動作するというマルチプロ
セッサシステムの特徴を踏まえたデバッグが行えない。
【0004】即ち、マルチプロセッサシステムのオペレ
ーティング・システム(OS)のデバッグにおいては、
或るクリティカルリージョン(排他の必要な部分)の排
他が十分かどうかを確認することが必要であり、そのた
めには、複数のプロセッサが一斉に同一のクリティカル
リージョンを実行しようとするタイミングを作る必要が
あるが、従来方法では、そのようなタイミングを作るこ
とは困難である。
【0005】そこで本発明の第1の目的は、特別なプロ
セッサを使用せずに、マルチプロセッサシステムのプロ
グラムデバッグを行うことができる方法を提供すること
にある。
【0006】また、本発明の第2の目的は、複数のプロ
セッサが一斉に同一のクリティカルリージョンを実行す
るといったタイミングを容易に作ることができるデバッ
グ方法を提供することにある。
【0007】
【課題を解決するための手段】本発明は上記の目的を達
成するために、複数のプロセッサ間でメモリを共有する
密結合型マルチプロセッサシステムにおけるオペレーテ
ィング・システムのデバッグ方法において、複数のプロ
セッサのうちの1つのプロセッサをデバッガ動作用プロ
セッサに割り当てて、該デバッガ動作用プロセッサでデ
バッガを動作させると共に、残りのプロセッサでオペレ
ーティング・システムおよびその他のプログラムを動作
させるステップと、 デバッガ用入出力装置からオペレー
ティング・システム内のブレークポイント及び該ブレー
クポイントでブレークポイント例外が発生した時点では
そのブレークポイント例外を発生したプロセッサのみ停
止させることの指示を含むブレークポイント設定コマン
ドを前記デバッガに入力して、前記デバッガによりオペ
レーティング・システムに対してブレークポイントの設
定処理を行うステップと、 前記プロセッサからブレーク
ポイント停止通知を受けた前記デバッガにおいて、前記
プロセッサがブレークポイント例外を発生して停止した
旨を前記デバッガ用入出力装置に出力するステップと、
デバッガ動作用プロセッサを除く全てのプロセッサがブ
レークポイント例外を発生して停止した後に、前記デバ
ッガ用入出力装置から前記全てのプロセッサの動作を再
開させるコマンドを入力して、前記デバッガにより前記
全てのプロセッサに対して動作再開の指示を出させて、
前記全てのプロセッサの動作を一斉に再開させるステッ
プとを有している。
【0008】また、第2の目的をも達成するために、前
記デバッガ用入出力装置からオペレーティング・システ
ム内のブレークポイントおよび該ブレークポイントでブ
レークポイント例外を発生したプロセッサのみ停止させ
ることの指示を含むブレークポイント設定コマンドを入
力して、前記デバッガのデバッガ基本部によりブレーク
ポイントの設定処理を行わせ、前記設定されたブレーク
ポイントを実行したプロセッサでブレークポイント例外
を発生させて自プロセッサを停止させると共に前記デバ
ッガ動作用プロセッサにブレークポイント停止通知を出
力させ、デバッガ動作用プロセッサを除く全てのプロセ
ッサからブレークポイント停止通知を受けた時点で、前
記デバッガがブレークポイント例外発生を前記デバッガ
用入出力装置にてオペレータに通知するようにしてい
る。
【0009】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0010】図1を参照すると、本発明の一実施例を適
用したマルチプロセッサシステムは、複数個のプロセッ
サ11〜15と、これらのプロセッサ11〜15で共有
される共有メモリ16と、デバッガ用コンソール17
と、システム用コンソール18と、磁気ディスク装置な
どの如き二次記憶装置19と、これらを相互に接続する
システムバス20とで構成されている。なお、プロセッ
サ11〜15は同一タイプのプロセッサであり、例えば
ミップス社製のR3000,R4000といったプロセ
ッサが使用される。また、図1において、110はデバ
ッグ対象となるオペレーティング・システム、111は
デバッガ(カーネルデバッガ)である。
【0011】図2を参照すると、デバッガ111は、デ
バッガ基本部22とプロセッサ動作停止手段23とプロ
セッサ動作再開手段24とデバッガ用コンソールアクセ
ス手段25とで構成されている。
【0012】次に、このように構成された本実施例の動
作を説明するが、その前に本実施例で使用するプロセッ
サ間割り込み機能,プロセッサ切り離し機能,割り込み
先プロセッサ指定機能について、それらは既知の技術で
はあるが、以下、簡単に説明しておく。
【0013】プロセッサ間割り込み機能は、マルチプロ
セッサシステムにおいてプロセッサ間の通信を行うため
の機能であり、他のプロセッサへ割り込みを発生させる
ものである。本実施例では、このプロセッサ間割り込み
機能を使用してプロセッサの停止などを行う。プロセッ
サを停止させるという観点からは最も優先度の高い割り
込みを発生させることが必要である。一般には、プロセ
ッサ11〜15とシステムバス20との間にバスインタ
フェイス回路があるので、その中の割り込みレジスタに
外部から書き込みを行うことで当該プロセッサへの割り
込みを発生させる。このとき、共有メモリ16内にプロ
セッサ間通信情報格納域を設け、そこにプロセッサ停止
要求であることを示す情報を記述しておき、プロセッサ
間割り込みを受けたプロセッサがその時点のコンテキス
ト,すなわち各種レジスタの内容を共有メモリ16にセ
ーブした後、上記のプロセッサ間通信情報格納域の情報
によって停止要求であることを確認すると、停止状態と
なる。なお、本実施例で使用するプロセッサ11等は、
上記の停止状態として無限ループ状態をとる。即ち、共
有メモリ16上の所定の位置を常にリードして、動作再
開の指示が来ているか否かを常にチェックする状態とな
る。そして、動作再開指示が来た場合にループから脱出
して平常の処理を再開する。
【0014】プロセッサ切り離し機能は、マルチプロセ
ッサシステムにおいて、任意のプロセッサを論理的にシ
ステムから切り離し、使用しないようにする機能であ
り、オペレーティング・システム110の一機能であ
る。一般には、システムにプロセッサ切り離し要求を行
うと、当該プロセッサの固有データ域にある切り離し要
求受け付けフラグがオンになり、当該プロセッサがプロ
セス切り替え動作を行う際にそれを確認して、オンであ
れば次のプロセスへの切り替えを行わず、アイドル状態
となる。ただし、このときプロセッサ間割り込み以外の
割り込みは受け付けないように割り込みマスクをセット
する。
【0015】割り込み先プロセッサ指定機能は、所定の
デバイスが割り込みを行う際に複数の割り込み先が考え
られるとき、その割り込み先を明示的に指定しておくこ
とによって、割り込み先プロセッサを固定する機能であ
る。本実施例においては、デバッガ111とオペレーテ
ィング・システム110が並列して動作するため、それ
ぞれの処理すべき割り込みが混じらないようにする必要
がある。そのため、デバッガ111の使用するプロセッ
サ(後述する例ではプロセッサ15)では、デバッガ用
端末の割り込み以外のI/O割り込みは受け付けないよ
うにし、デバッガ用端末の発生する割り込みは当該プロ
セッサ以外には通知されないようにしている。なお、デ
バッガ用端末のためのシリアルインタフェイスを各プロ
セッサ毎に装備し、それぞれのインタフェイスを他のプ
ロセッサからアクセスできないようにして、かつそれぞ
れのインタフェイスが対応するプロセッサ以外のプロセ
ッサにアクセスできないように設定してあるマルチプロ
セッサシステムでは、割り込み先プロセッサ指定機能を
使う必要が無いのは言うまでもない。
【0016】次に本実施例の動作を説明する。今、図1
に示す全てのプロセッサ11〜15上においてオペレー
ティング・システム110の介在の下で種々のプログラ
ムが同時並列的に実行されているものとする。即ち、通
常のシステム動作が行われているものとする。このよう
な状態において、オペレーティング・システム110の
デバッグを行う場合、前述したプロセッサ切り離し機能
を使用して、予め定められた特定のプロセッサ(本例で
はプロセッサ15とする)をデバッガ動作用プロセッサ
としてシステムから論理的に切り離し、このプロセッサ
15上でデバッガ111を起動すると共に、残りのプロ
セッサ11〜14でシステム動作を続行させる。このと
き、前述した割り込み先プロセッサ指定機能を使用し
て、並列して動作するオペレーティング・システム11
0とデバッガ111の処理すべき割り込みが混じらない
ようにする。
【0017】プロセッサ15を論理的に切り離す手順
は、先ずプロセッサ15上で動作しているプロセスにつ
いて強制的に処理を中断させ、プロセッサ15を何も実
行していない状態にし、スケジュール対象プロセッサの
リストからプロセッサ15の情報を削除して、他のプロ
セスがプロセッサ15にてスケジュールされて実行され
ることのないようにする。次に、プロセッサ15にて実
行する予定になっているタイマサービスを全て処理し終
えた時点で、プロセッサ15へのクロック割り込みを停
止させる。クロック割り込みとはタイマサービスを行う
ための定期的な割り込みのことである。なお、当該プロ
セッサ15にバインドされたプロセスや特別なサービス
が存在する場合、プロセッサ15を切り離すことはでき
ない。バインドされているというのは、プロセッサ15
でのみ実行されるよう特に指定されている場合を指す。
この段階で、プロセッサ15は何も実行していない状態
で、かつ受け付け可能な割り込みは、プロセッサ間割り
込みとハード故障によるマスクできない割り込みのみと
なる。
【0018】このようにプロセッサ15がシステムから
論理的に切り離された状態になった後、デバッガ111
をプロセッサ15上で動作させる。これは、例えばオペ
レーティング・システム110からプロセッサ間割り込
みを使用してデバッガ起動を指示することで実現でき
る。即ち、オペレータが、システム用コンソール18か
らの入力や何等かのスイッチ操作によってデバッガ起動
を指示すると、オペレーティング・システム110は共
有メモリ16内の予め定められたアドレスのエリアをプ
ロセッサ間通信情報格納域として用いて、デバッガ起動
を行う旨の情報を書き込み、次いでプロセッサ15にプ
ロセッサ間割り込みを行う。プロセッサ15はプロセッ
サ間割り込みハンドラの処理の中で共有メモリ16の中
のプロセッサ間通信情報格納域を参照し、デバッガ起動
を行う指示であると判断すると、デバッガ111を実行
する。なお、デバッガ111のコード自体は共有メモリ
16上にオペレーティング・システム110の中核部と
共に常駐していてもよいし、オペレータがデバッガ起動
を指示したときに、オペレーティング・システム110
がそれを二次記憶装置19から共有メモリ16にコピー
しても良い。
【0019】以上は、システムが通常処理を行っている
状態のときにデバッガ111を起動した場合である。従
って、デバッグは通常処理が行われている期間が対象と
なる。しかし、一般に新規システムのデバッグは、シス
テムの電源投入から通常処理を行える状態になるまでの
期間も対象となる。電源投入から通常処理を行える状態
にする処理を立ち上げ処理という。このような立ち上げ
処理中のデバッグを可能とするためには、システム初期
化過程においてデバッガ111を起動する必要がある。
このような場合は次のような方法をとれば良い。
【0020】先ず、オペレーティング・システム110
の中核部とデバッガ111を共有メモリ16上に常駐さ
せる。従って、立ち上げ処理では、先ずオペレーティン
グ・システム110の中核部とデバッガ111を二次記
憶装置19から共有メモリ16上にロードする処理を行
う。ロードされたオペレーティング・システム110の
中核部は、先ずデバッガ111を起動するのに必要十分
な初期化処理を行い、次いでデバッガ111を立ち上げ
処理中に起動するかどうかを調べる。デバッガを立ち上
げ処理中に起動するかどうかは、オペレーティング・シ
ステム110の中核部の構成情報で指定する方法が考え
られ、そのような情報は、オペレーティング・システム
110の中核部の内部に持つか、あるいはハードウェア
に不揮発性の書き換え可能なメモリ領域があれば、そこ
に持てばよい。そして、デバッガを立ち上げ処理中に起
動する場合、デバッガ動作用プロセッサとして予約され
たプロセッサ15をデバッガ動作用プロセッサに割り当
て、以後、オペレーティング・システム110はそのプ
ロセッサを使用しないよう設定し、このプロセッサ15
上でデバッガ111を起動する。そして、オペレーティ
ング・システム110は、デバッガ111からの指示を
待ってその後の立ち上げ処理を継続する。立ち上げ処理
の継続を指示するデバッガ111からの指示は、例え
ば、共有メモリ16内の所定のアドレスの内容を書き換
えることで、オペレーティング・システム110に伝え
ることができる。
【0021】さて、以上のようにして起動されたデバッ
ガ111は、起動直後にデバッガ用コンソール17に対
してデバッガ用コンソールアクセス手段25を用いて、
入力要求のプロンプトを表示し、入力待ち状態となる。
【0022】デバッガ111の基本的な処理の流れは、
デバッガ用コンソールアクセス手段25を用いて、オペ
レータのコマンドの入力を待ち、入力されたコマンドの
内容をデバッガ基本部22にて解析して解析結果に基づ
く処理を行い、結果をデバッガ用コンソールアクセス手
段25を用いてデバッガ用コンソール17に表示し、再
度デバッガ用コンソールアクセス手段25を用いて、オ
ペレータの入力を待つ、というものである。このとき、
デバッガ基本部22は、必要に応じてプロセッサ動作停
止手段23やプロセッサ動作再開手段24を用いて、オ
ペレーティング・システム110が動作しているプロセ
ッサ11〜14を停止させたり、動作を再開させたりす
る。以下、典型的な動作を説明する。
【0023】(1)プロセッサの停止(図1〜図3参
照)。 オペレータがデバッガ111に対してデバッガ用コンソ
ール17から、プロセッサ11〜14のうちの任意のプ
ロセッサ、例えばプロセッサ11の停止を要求するコマ
ンドを入力すると、デバッガ基本部22は入力されたコ
マンドを解析し(S1,S2)、プロセッサ動作停止要
求であることを判別すると、プロセッサ動作停止手段2
3にコマンドで指定された、プロセッサ11のプロセッ
サ番号を引き数として渡す。なお、他のコマンドの場合
はそれに応じた処理を行う(S3)。
【0024】プロセッサ動作停止手段23は、共有メモ
リ16内のプロセッサ11向けのプロセッサ間通信情報
格納域にデバッガ111からの停止要求であることを示
すデータを書き込み(S4)、プロセッサ間割り込み機
能を使ってプロセッサ1へのプロセッサ間割り込みを発
行する(S5)。その後、デバッガ動作用プロセッサ1
5はプロセッサ11からの応答を待ち合わせる状態にな
る(S6)。
【0025】プロセッサ11は、プロセッサ間割り込み
がかかると、プロセッサ間割り込みハンドラを実行し、
その時点のコンテキストすなわち各種レジスタの内容を
共有メモリ16にセーブした後、プロセッサ間通信情報
格納域の内容を読み込んで解析する(S7)。そして、
この処理でデバッガ111からの停止要求であることを
認識すると、デバッガ動作用プロセッサとして予め定め
られているプロセッサ15に対して応答を返し(S
8)、そのまま停止状態となる。なお、応答の形式はプ
ロセッサ11からのプロセッサ間割り込みであってもよ
いし、共有メモリ16上の適当なデータを書き換えると
いうことでもよい。
【0026】プロセッサ11の上記停止状態は、無限ル
ープであり、共有メモリ16上の所定の位置を常にリー
ドして、動作再開の指示がデバッガ111から来ないか
どうかを常にチェックしている(S9)。そして、動作
再開指示が来た時点でループから脱出して通常の処理を
再開する。
【0027】デバッガ111のプロセッサ動作停止手段
23は、プロセッサ11からの応答を受けると、動作停
止が成功したことをデバッガ基本部22に伝える。デバ
ッガ基本部22は、デバッガ用コンソールアクセス手段
25介してデバッガ用コンソール17からオペレータ
に、コマンドが成功裡に実行されたことを知らせる。
【0028】以上のようにしてプロセッサ11の動作が
停止し、停止直前のプロセッサ11のコンテキストが共
有メモリ16に退避されると、それを調べることによ
り、プロセッサ11の任意の時点の状態を把握すること
ができる。なお、共有メモリ16からのコンテキスト内
容の読み出しは、デバッガ用コンソール17からデバッ
ガ111に対して共有メモリ16のデータを読み出して
デバッガ用コンソール17に表示することを指示するコ
マンドを入力することで行える。
【0029】(2)停止しているプロセッサの動作再開
(図1,図2,図4参照)。 オペレータがデバッガ111に対してデバッガ用コンソ
ール17から、動作を停止しているプロセッサ、例えば
プロセッサ11の動作再開を要求するコマンドを入力す
ると、デバッガ基本部22は入力されたコマンドを解析
する(S11,S12)。そして、プロセッサ動作再開
要求であることを認識すると、プロセッサ動作再開手段
24にコマンドで指定された、プロセッサ11のプロセ
ッサ番号を引き数として渡す。なお、他のコマンドの場
合はそれに応じた処理を行う(S13)。
【0030】プロセッサ動作再開手段24は、指定され
たプロセッサ11が確かに停止していることを確認した
上で(S14,S15)、停止しているプロセッサ11
がループしながらリードし続けている共有メモリ16の
所定の位置の内容を動作再開指示に書き換える(S1
6)。これにより、プロセッサ11はループから脱出し
(S17)、通常状態への復帰処理を行って(S1
8)、平常の処理を再開する。その後、プロセッサ動作
再開手段24は、プロセッサ11の動作再開が成功した
ことをデバッガ基本部22に伝え、デバッガ基本部22
はデバッガ用コンソールアクセス手段25を使用してデ
バッガ用コンソール17をアクセスし、オペレータにコ
マンドが成功裡に実行されたことを知らせる。
【0031】(3)ブレークポイントの設定(図1,図
2,図5参照) オペレータがデバッガ111に対してデバッガ用コンソ
ール17から、オペレーティング・システム110内の
ブレークポイントを設定すべき箇所のアドレス、及びオ
ペレーティング・システム110実行中のプロセッサが
ブレークポイントとして指定されたアドレスを実行しよ
うとしたときに全プロセッサを停止させるのか或いはブ
レークポイント例外を発生させたプロセッサのみ停止さ
せるのかを指定したコマンドを入力すると、デバッガ基
本部22は、共有メモリ16上のオペレーティング・シ
ステム110の該当するアドレスの内容をデバッガによ
るブレークポイント命令で書き換えることによりブレー
クポイントを設定する。また、ブレークポイント例外時
に、ブレークポイント例外を発生したプロセッサのみ停
止させるのか、或いは全プロセッサを停止させるのかを
示す停止モード指示データを共有メモリ16上の所定の
領域に設定しておく。なお、オペレーティング・システ
ム110にブレークポイントを設定する場合、上記
(1)に示した方法でプロセッサ11〜14の動作を停
止した状態で行うのが望ましい。
【0032】さて、上述のようにオペレーティング・シ
ステム110にブレークポイントが設定された後、プロ
セッサ11〜14が全て実行されている状態において、
オペレーティング・システム110実行中の或るプロセ
ッサ(例えばプロセッサ11とする)がブレークポイン
トとして指定されたアドレスを実行すると、ブレークポ
イント例外が発生し(図5のS21)。ブレークポイン
ト例外処理が行われる。ブレークポイント例外処理で
は、例外発生原因となったブレークポイントがデバッガ
111の設定によるものであるかどうかを、例えばブレ
ークポイント命令のオペランドによって判断し(S2
2)、デバッガ111による設定の場合、更に全プロセ
ッサを停止するのか、例外発生プロセッサのみ停止する
のかを共有メモリ16上の上記停止モード指示データか
ら判断する(S23)。
【0033】全プロセッサを停止する場合、プロセッサ
11は、プロセッサ間割り込みを使って、デバッガ動作
用プロセッサ15以外の残りの全プロセッサ12〜14
に対して、デバッガ111がプロセッサ動作停止手段2
3を使って他のプロセッサを停止したのと同じ方式で動
作停止を指示する(S24)。このため、動作停止指示
を受けたプロセッサ12〜14は、停止指示がデバッガ
111から直接来た場合と同様に、自プロセッサの動作
を停止状態とした後、応答をプロセッサ15に返すこと
になる。その後、プロセッサ11自身は、共有メモリ1
6上のプロセッサ15との間のプロセッサ間通信情報格
納域へブレークポイントで停止した旨を書き込み(S2
5)、プロセッサ15へプロセッサ間割り込みを発行し
(S26)、前述と同様に共有メモリ16上の所定の領
域をリードするループに入って自プロセッサ11を停止
状態とする(S27)。
【0034】プロセッサ15は、プロセッサ間割り込み
処理S28において、ブレークポイント停止通知をプロ
セッサ11から受けると(S29)、当該ブレークポイ
ントで全プロセッサを停止する場合(S31)、他の全
てのプロセッサからの停止応答を待ち合わせ(S3
2)、全プロセッサ11〜14が停止した時点で、デバ
ッガ基本部22によりデバッガ用コンソールアクセス手
段25を使用してオペレータに、ブレークポイント例外
が発生して全プロセッサが停止したことを知らせる(S
33)。
【0035】他方、ブレークポイント例外発生プロセッ
サのみ停止する場合は、プロセッサ11側では、処理S
24をスキップし、処理S25〜S27を行う。これに
より、プロセッサ11のみが動作停止することになる。
この場合、プロセッサ15は、プロセッサ間割り込み処
理S28において、ブレークポイント停止通知を受ける
と、全プロセッサを停止するブレークポイントでないの
で、処理S32をスキップし、デバッガ基本部22によ
りデバッガ用コンソールアクセス手段25を使用してオ
ペレータに、ブレークポイント例外が発生してプロセッ
サ11が停止したことを知らせる。
【0036】ブレークポイント例外発生プロセッサのみ
停止するブレークポイントの場合、その後、そのブレー
クポイントの設定されたアドレスを他のプロセッサ12
〜14が実行すると、プロセッサ11の場合と同様の動
作が行われる。従って、プロセッサ11〜14が同一の
ブレークポイントで停止することになる。そして、各プ
ロセッサ11〜14は、デバッガ111からの動作再開
指示を待つ状態で停止しているので、前記(2)の方法
でプロセッサ11〜14の動作を一斉に再開させれば、
オペレーティング・システム110の同一箇所をプロセ
ッサ11〜14が同時に実行するタイミングを作ること
ができる。
【0037】
【発明の効果】以上説明したように、本発明によれば、
以下のような効果を得ることができる。
【0038】マルチプロセッサシステムを構成する複数
のプロセッサのうちの1つのプロセッサをデバッガ動作
用プロセッサとして使用するため、サポートプロセッサ
の如き特別なプロセッサは不要である。
【0039】
【0040】ブレークポイントでブレークポイント例外
が発生した時点ではそのブレークポイント例外を発生し
たプロセッサのみ停止させることの指示を含むブレーク
ポイント設定コマンドによってブレークポイントを設定
すれば、複数のプロセッサを同じブレークポイントで停
止させることができる。従って、或るクリティカルリー
ジョンの入口等にブレークポイントを設定しておいて、
全プロセッサが同じブレークポイントで停止するのを待
って一斉に動作を再開させれば、オペレーティング・シ
ステム実行中の全プロセッサが同じクリティカルリージ
ョンを実行しようとするタイミングを作ることも可能と
り、複数のプロセッサが同時並行的に動作するという
マルチプロセッサシステムの特徴を踏まえたデバッグを
きめこまかく実施することができる。
【図面の簡単な説明】
【図1】本発明を適用したマルチプロセッサシステムの
一例を示すブロック図である。
【図2】デバッガの構成例を示すブロック図である。
【図3】プロセッサ停止処理の流れを示すフローチャー
トである。
【図4】プロセッサ再開処理の流れを示すフローチャー
トである。
【図5】ブレークポイント例外発生時の処理の流れを示
すフローチャートである。
【符号の説明】
11〜15…プロセッサ 16…共有メモリ 17…デバッガ用コンソール 18…システム用コンソール 19…二次記憶装置 20…システムバス 22…デバッガ基本部 23…プロセッサ動作停止手段 24…プロセッサ動作再開手段 25…デバッガ用コンソールアクセス手段 110…オペレーティング・システム 111…デバッガ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ間でメモリを共有する
    密結合型マルチプロセッサシステムにおけるオペレーテ
    ィング・システムのデバッグ方法において、(a) 複数のプロセッサのうちの1つのプロセッサをデ
    バッガ動作用プロセッサに割り当てて、該デバッガ動作
    用プロセッサでデバッガを動作させると共に、残りのプ
    ロセッサでオペレーティング・システムおよびその他の
    プログラムを動作させるステップと、 (b)デバッガ用入出力装置からオペレーティング・シ
    ステム内のブレークポイント及び該ブレークポイントで
    ブレークポイント例外が発生した時点ではそのブレーク
    ポイント例外を発生したプロセッサのみ停止させること
    の指示を含むブレークポイント設定コマンドを前記デバ
    ッガに入力して、前記デバッガによりオペレーティング
    ・システムに対してブレークポイントの設定処理を行う
    ステップと、 (c)前記設定されたブレークポイントを実行したプロ
    セッサのブレークポイント例外処理において、前記デバ
    ッガにブレークポイント停止通知を出した後、そのプロ
    セッサを動作再開の指示が前記デバッガから来るか否か
    を常にチェックしている停止状態にするステップと、 (d)前記プロセッサからブレークポイント停止通知を
    受けた前記デバッガにおいて、前記プロセッサがブレー
    クポイント例外を発生して停止した旨を前記デバッガ用
    入出力装置に出力するステップと、 (e)デバッガ動作用プロセッサを除く全てのプロセッ
    サがブレークポイント例外を発生して停止した後に、前
    記デバッガ用入出力装置から前記全てのプロセッサの動
    作を再開させるコマンドを入力して、前記デバッガによ
    り前記全てのプロセッサに対して動作再開の指示を出さ
    せて、前記全てのプロセッサの動作を一斉に再開させる
    ステップとを含む ことを特徴とするマルチプロセッサシ
    ステムのプログラムデバッグ方法。
JP5145646A 1993-05-25 1993-05-25 マルチプロセッサシステムのプログラムデバッグ方法 Expired - Fee Related JP2522158B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5145646A JP2522158B2 (ja) 1993-05-25 1993-05-25 マルチプロセッサシステムのプログラムデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5145646A JP2522158B2 (ja) 1993-05-25 1993-05-25 マルチプロセッサシステムのプログラムデバッグ方法

Publications (2)

Publication Number Publication Date
JPH06332747A JPH06332747A (ja) 1994-12-02
JP2522158B2 true JP2522158B2 (ja) 1996-08-07

Family

ID=15389827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5145646A Expired - Fee Related JP2522158B2 (ja) 1993-05-25 1993-05-25 マルチプロセッサシステムのプログラムデバッグ方法

Country Status (1)

Country Link
JP (1) JP2522158B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162426A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法
US7222269B2 (en) 2001-12-06 2007-05-22 Ns Solutions Corporation Performance evaluation device, performance evaluation information managing device, performance evaluation method, performance evaluation information managing method, performance evaluation system
KR20080015110A (ko) 2005-06-22 2008-02-18 닛본 덴끼 가부시끼가이샤 디버그 시스템, 디버그 방법, 및 프로그램
JP4787551B2 (ja) * 2005-06-22 2011-10-05 日本電気株式会社 デバッグシステム、デバッグ方法およびプログラム
JP4494329B2 (ja) * 2005-11-22 2010-06-30 京セラミタ株式会社 情報処理装置
JP4222370B2 (ja) 2006-01-11 2009-02-12 セイコーエプソン株式会社 デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US7581087B2 (en) * 2006-01-17 2009-08-25 Qualcomm Incorporated Method and apparatus for debugging a multicore system
DE102007017865A1 (de) * 2007-04-13 2008-11-13 Dspace Digital Signal Processing And Control Engineering Gmbh Adaptions-Element und Testanordnung sowie Verfahren zum Betrieb derselben
JP5255887B2 (ja) 2008-04-08 2013-08-07 ルネサスエレクトロニクス株式会社 情報処理装置及びデバッグ方法
JP5943887B2 (ja) * 2013-08-26 2016-07-05 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成方法
CN117170987B (zh) * 2023-11-03 2024-03-08 睿思芯科(深圳)技术有限公司 嵌入式实时操作系统的监视方法、系统及相关设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0455946A3 (en) * 1990-05-07 1992-10-28 International Business Machines Corporation System for debugging shared memory multiprocessor computers
JPH04248635A (ja) * 1991-02-05 1992-09-04 Meidensha Corp 並列処理デバッギングのプローブ効果除去方法
JPH0588933A (ja) * 1991-09-27 1993-04-09 Hitachi Ltd デバツグ機能を有する並列処理システム

Also Published As

Publication number Publication date
JPH06332747A (ja) 1994-12-02

Similar Documents

Publication Publication Date Title
US7992042B2 (en) Debug support device, and program for directing computer to perform debugging method
JPH02171934A (ja) 仮想計算機システム
JPH07225693A (ja) 異なるアドレス空間にわたってスレッド事象を処理する方法
JP2522158B2 (ja) マルチプロセッサシステムのプログラムデバッグ方法
JPH0689201A (ja) アイドルモードをアクセスするラン/ストップピンを有するマイクロプロセッサ及びそれを動作させる方法
JP2655615B2 (ja) 情報処理装置
JP3449812B2 (ja) 制御用電子装置
JP2737724B2 (ja) プロセッサ間nmi通信装置およびシステムバスコントローラ
JPH0588933A (ja) デバツグ機能を有する並列処理システム
JPH07152598A (ja) インサーキット・エミュレータ
JPS61138361A (ja) 並列処理システム
JP2765831B2 (ja) データ処理装置
JP2004318658A (ja) デバッグ制御装置及びその制御方法
JP3029355B2 (ja) 命令のシングルステップ実行方式
JPH02135545A (ja) デバッガの実行制御処理方式
JP3102381B2 (ja) タスクデバッグ装置、タスクデバッグ方法及びその記録媒体
JPS63200242A (ja) ホツトスタンバイシステムの系切替え方式
JPH0248739A (ja) デバッグ用マイクロプロセッサ
JPH0232651B2 (ja)
JPS62290942A (ja) デバツガ起動方式
JP2006079142A (ja) マルチプロセッサ装置
JPH11102309A (ja) デバッグ装置とプロセッサと記録媒体
JPH04246711A (ja) パーソナルコンピュータの障害復旧方式
JPH07104781B2 (ja) マイクロプログラム制御方式
KR20050069691A (ko) 피씨아이를 이용한 대기보드에서 활성보드 모니터링 방법

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090531

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100531

Year of fee payment: 14

LAPS Cancellation because of no payment of annual fees