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

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

Info

Publication number
JPH06332747A
JPH06332747A JP5145646A JP14564693A JPH06332747A JP H06332747 A JPH06332747 A JP H06332747A JP 5145646 A JP5145646 A JP 5145646A JP 14564693 A JP14564693 A JP 14564693A JP H06332747 A JPH06332747 A JP H06332747A
Authority
JP
Japan
Prior art keywords
processor
debugger
breakpoint
processors
operating
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
Application number
JP5145646A
Other languages
English (en)
Other versions
JP2522158B2 (ja
Inventor
Akira Nishizuka
晃 西塚
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 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)

Abstract

(57)【要約】 【構成】 密結合型マルチプロセッサシステムを構成す
る複数のプロセッサ11〜15の内の1つのプロセッサ15を
デバッガ動作用プロセッサとしてシステムから論理的に
切り離し、その上でデバッガ111 を動作させ、残りのプ
ロセッサ11〜14でシステム動作を続ける。デバッガ111
はデバッガ用コンソール17から入力されたコマンドに応
じてプロセッサ11〜14を個別に停止させたり、再開させ
たり、オペレーティング・システム110 にブレークポイ
ントを設定する機能を持つ。ブレークポイント例外時
に、例外を発生したプロセッサのみ停止させるか、プロ
セッサ11〜14全てを停止させるかが選択できる。 【効果】 特別なプロセッサを使用せずに、マルチプロ
セッサシステムのオペレーティング・システムのデバッ
グが行え、且つ、複数のプロセッサが一斉に同一のクリ
ティカルリージョンを実行するといったタイミングを作
ることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリを共有する密結
合型マルチプロセッサシステムのプログラムデバッグ方
法に関し、特にオペレーティング・システムのデバッグ
方法に関する。
【0002】
【従来の技術】プログラムのデバッグ方法としては従来
より種々の方法が提案されているが、その中で、マルチ
プロセッサシステムのプログラムデバッグに適用可能な
技術としては、例えば特開昭60−207937号公報
に見られるように、サポートプロセッサと称される特別
なプロセッサを、デバッグ対象となるプログラムが動作
するプロセッサに接続して、このサポートプロセッサ上
でデバッガを動作させることにより、デバッグを進める
方法がある。
【0003】
【発明が解決しようとする課題】このような従来方法に
よれば、マルチプロセッサシステムのプログラムデバッ
グにおいても、シングルプロセッサシステムの場合と同
様に、デバッガは1つのプロセッサのみを意識していれ
ば済むため、デバッガ自体の構造が簡単になるという。
しかしながら、このような従来方法では、サポートプロ
セッサといった特別なプロセッサが必要になる上、複数
のプロセッサが同時並行的に動作するというマルチプロ
セッサシステムの特徴を踏まえたデバッグが行えない。
【0004】即ち、マルチプロセッサシステムのオペレ
ーティング・システム(OS)のデバッグにおいては、
或るクリティカルリージョン(排他の必要な部分)の排
他が十分かどうかを確認することが必要であり、そのた
めには、複数のプロセッサが一斉に同一のクリティカル
リージョンを実行しようとするタイミングを作る必要が
あるが、従来方法では、そのようなタイミングを作るこ
とは困難である。
【0005】そこで本発明の第1の目的は、特別なプロ
セッサを使用せずに、マルチプロセッサシステムのプロ
グラムデバッグを行うことができる方法を提供すること
にある。
【0006】また、本発明の第2の目的は、複数のプロ
セッサが一斉に同一のクリティカルリージョンを実行す
るといったタイミングを容易に作ることができるデバッ
グ方法を提供することにある。
【0007】
【課題を解決するための手段】本発明は上記の第1の目
的を達成するために、複数のプロセッサ間でメモリを共
有する密結合型マルチプロセッサシステムのプログラム
デバッグ方法において、システム稼動中に1つのプロセ
ッサをシステムから論理的に切り離してそれをデバッガ
動作用プロセッサに割り当てることにより、または、シ
ステム初期化過程において1つのプロセッサをデバッガ
動作用プロセッサに割り当てることにより、複数のプロ
セッサのうちの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 (4)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサ間でメモリを共有する
    密結合型マルチプロセッサシステムのプログラムデバッ
    グ方法において、 複数のプロセッサのうちの1つのプロセッサをデバッガ
    動作用プロセッサに割り当てて、残りのプロセッサでオ
    ペレーティング・システムおよびその他のプログラムを
    動作させ、 前記デバッガ動作用プロセッサ上で、デバッガ用入出力
    装置のアクセスを制御するアクセス手段と、該アクセス
    手段を通じて前記デバッガ用入出力装置から入力したコ
    マンドを解析して解析結果に基づく処理を行うデバッガ
    基本部と、該デバッガ基本部から指定されたプロセッサ
    の動作を停止させるプロセッサ動作停止手段と、前記デ
    バッガ基本部から指定されたプロセッサの動作を再開さ
    せるプロセッサ動作再開手段とを含むデバッガを動作さ
    せて、オペレーティング・システムのデバッグを進める
    ようにしたことを特徴とするマルチプロセッサシステム
    のプログラムデバッグ方法。
  2. 【請求項2】 システム稼動中に1つのプロセッサをシ
    ステムから論理的に切り離して、残りのプロセッサでシ
    ステムを動作させ、前記切り離したプログラムをデバッ
    ガ動作用プロセッサとする請求項1記載のマルチプロセ
    ッサシステムのプログラムデバッグ方法。
  3. 【請求項3】 システム初期化過程において1つのプロ
    セッサをデバッガ動作用プロセッサに割り当て、システ
    ム初期化過程の時点より前記デバッガを動作させるよう
    にした請求項1記載のマルチプロセッサシステムのプロ
    グラムデバッグ方法。
  4. 【請求項4】 前記デバッガ用入出力装置からオペレー
    ティング・システム内のブレークポイントおよび該ブレ
    ークポイントでブレークポイント例外を発生したプロセ
    ッサのみ停止させることの指示を含むブレークポイント
    設定コマンドを入力して、前記デバッガのデバッガ基本
    部によりブレークポイントの設定処理を行わせ、 前記設定されたブレークポイントを実行したプロセッサ
    でブレークポイント例外を発生させて自プロセッサを停
    止させると共に前記デバッガ動作用プロセッサにブレー
    クポイント停止通知を出力させ、 デバッガ動作用プロセッサを除く全てのプロセッサから
    ブレークポイント停止通知を受けた時点で、前記デバッ
    ガがブレークポイント例外発生を前記デバッガ用入出力
    装置にてオペレータに通知するようにしたことを特徴と
    する請求項2または3記載のマルチプロセッサシステム
    のプログラムデバッグ方法。
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 true JPH06332747A (ja) 1994-12-02
JP2522158B2 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)

Cited By (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の協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法
WO2006137223A1 (ja) * 2005-06-22 2006-12-28 Nec Corporation デバッグシステム、デバッグ方法、およびプログラム
JP2007004365A (ja) * 2005-06-22 2007-01-11 Nec Corp デバッグシステム、デバッグ方法およびプログラム
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
JP2007141138A (ja) * 2005-11-22 2007-06-07 Kyocera Mita Corp 情報処理装置
JP2008287709A (ja) * 2007-04-13 2008-11-27 Dspace Digital Signal Processing & Control Engineering Gmbh 適合エレメント、テストシステム、および該適合エレメントおよびテストシステムの動作方法
JP2009524159A (ja) * 2006-01-17 2009-06-25 クゥアルコム・インコーポレイテッド マルチコアシステムをデバッグするための方法及び装置
US7992042B2 (en) 2006-01-11 2011-08-02 Seiko Epson Corporation Debug support device, and program for directing computer to perform debugging method
US8166284B2 (en) 2008-04-08 2012-04-24 Renesas Electronics Corporation Information processing device
JP2015043152A (ja) * 2013-08-26 2015-03-05 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成方法
CN117170987A (zh) * 2023-11-03 2023-12-05 睿思芯科(深圳)技术有限公司 嵌入式实时操作系统的监视方法、系统及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04229340A (ja) * 1990-05-07 1992-08-18 Internatl Business Mach Corp <Ibm> 共用メモリマルチプロセッサコンピュータのデバッグシステム
JPH04248635A (ja) * 1991-02-05 1992-09-04 Meidensha Corp 並列処理デバッギングのプローブ効果除去方法
JPH0588933A (ja) * 1991-09-27 1993-04-09 Hitachi Ltd デバツグ機能を有する並列処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04229340A (ja) * 1990-05-07 1992-08-18 Internatl Business Mach Corp <Ibm> 共用メモリマルチプロセッサコンピュータのデバッグシステム
JPH04248635A (ja) * 1991-02-05 1992-09-04 Meidensha Corp 並列処理デバッギングのプローブ効果除去方法
JPH0588933A (ja) * 1991-09-27 1993-04-09 Hitachi Ltd デバツグ機能を有する並列処理システム

Cited By (14)

* 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
JP5163120B2 (ja) * 2005-06-22 2013-03-13 日本電気株式会社 デバッグシステム、デバッグ方法、およびプログラム
JP2007004365A (ja) * 2005-06-22 2007-01-11 Nec Corp デバッグシステム、デバッグ方法およびプログラム
WO2006137223A1 (ja) * 2005-06-22 2006-12-28 Nec Corporation デバッグシステム、デバッグ方法、およびプログラム
US8589879B2 (en) 2005-06-22 2013-11-19 Nec Corporation Debugging system, debugging method, and program
JP2007141138A (ja) * 2005-11-22 2007-06-07 Kyocera Mita Corp 情報処理装置
US7992042B2 (en) 2006-01-11 2011-08-02 Seiko Epson Corporation Debug support device, and program for directing computer to perform debugging method
JP2009524159A (ja) * 2006-01-17 2009-06-25 クゥアルコム・インコーポレイテッド マルチコアシステムをデバッグするための方法及び装置
JP2008287709A (ja) * 2007-04-13 2008-11-27 Dspace Digital Signal Processing & Control Engineering Gmbh 適合エレメント、テストシステム、および該適合エレメントおよびテストシステムの動作方法
US8166284B2 (en) 2008-04-08 2012-04-24 Renesas Electronics Corporation Information processing device
JP2015043152A (ja) * 2013-08-26 2015-03-05 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成方法
CN117170987A (zh) * 2023-11-03 2023-12-05 睿思芯科(深圳)技术有限公司 嵌入式实时操作系统的监视方法、系统及相关设备
CN117170987B (zh) * 2023-11-03 2024-03-08 睿思芯科(深圳)技术有限公司 嵌入式实时操作系统的监视方法、系统及相关设备

Also Published As

Publication number Publication date
JP2522158B2 (ja) 1996-08-07

Similar Documents

Publication Publication Date Title
US7992042B2 (en) Debug support device, and program for directing computer to perform debugging method
JPH02171934A (ja) 仮想計算機システム
JPS6031648A (ja) マルチ・タスク制御方法
JP2522158B2 (ja) マルチプロセッサシステムのプログラムデバッグ方法
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
JPH02156334A (ja) 情報処理装置
US7865883B1 (en) Parallel and asynchronous debugger and debugging method for multi-threaded programs
JPH10326205A (ja) システムコール発行方法
JP2823230B2 (ja) 処理の継続実行方法
JP3449812B2 (ja) 制御用電子装置
JPH0588933A (ja) デバツグ機能を有する並列処理システム
JP2765831B2 (ja) データ処理装置
JPH05165652A (ja) タスク切替え制御方法
JPS61138361A (ja) 並列処理システム
JPH07152598A (ja) インサーキット・エミュレータ
JPS59133655A (ja) アドレス・ストツプ制御回路
JP3102381B2 (ja) タスクデバッグ装置、タスクデバッグ方法及びその記録媒体
JP3470454B2 (ja) マルチプロセッサシステムの通信制御方法
JPS63200242A (ja) ホツトスタンバイシステムの系切替え方式
JP3075359B2 (ja) プログラムデバッグ開始処理方式
JPH07244536A (ja) レジューム支援機構
JPH0395634A (ja) 計算機システム再起動制御方式
JPH07104781B2 (ja) マイクロプログラム制御方式
JPH0248739A (ja) デバッグ用マイクロプロセッサ
JPH06161817A (ja) スレッドオンラインデバッグ装置

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