(57)【特許請求の範囲】
【請求項１】
通常系アプリケーションと、デバッグ指示を行うデバッグアプリケーションとを備える外部ホスト機と接続され、
前記外部ホスト機との通信を行う通信ポートと、
１以上のデバッグ対象プロセッサと、
前記デバッグ対象プロセッサのデバッグ処理に用いるデバッグ手段を有する１つのデバッガ側プロセッサと、
リセット通知・稼働状態監視装置と、
記憶手段と、を備え、
前記デバッグ対象プロセッサにおいて異常が発生した際に前記デバッグ手段を用いて前記デバッグアプリケーションからの前記デバッグ指示に基づき前記デバッグ処理を行うデバッグシステムであって、
前記記憶手段は、前記デバッグ対象プロセッサが再起動された際に、当該デバッグ対象プロセッサにより読み出され、当該デバッグ対象プロセッサが通常起動をすべきか停止状態にすべきかを指示するための稼働可否情報が格納された稼働可否情報領域を有し、
前記リセット通知・稼働状態監視装置は、
前記デバッグ対象プロセッサのうちのいずれかにおいて発生した異常を検出し、
当該異常が発生したデバッグ対象プロセッサを再起動させ、
当該デバッグ対象プロセッサを再起動させた旨を前記デバッガ側プロセッサに対して通知し、
前記デバッグ手段は、
前記デバッガ側プロセッサが起動された際に前記稼働可否情報領域に格納されたデバッガ側プロセッサ以外の他のプロセッサに対応した稼働可否情報を、通常起動を指示するデータから停止状態を指示するデータに変更し、
前記リセット通知・稼働状態監視装置からの前記異常が発生したデバッグ対象プロセッサに対する再起動を行った旨の通知を受け取ると、前記通信ポートの接続先を前記通常系アプリケーションから前記デバッグアプリケーションへ変更するように接続先変更指示を行い、
前記異常が発生したデバッグ対象プロセッサからデバッグに用いるデバッグ情報を取得し、前記通信ポートを介して前記デバッグアプリケーションへ当該デバッグ情報を送信する
デバッグシステム。
【請求項２】
前記デバッグ手段は、前記通信ポートの初期化、通常系コネクション切断、デバッガ用コネクション確立の処理のいずれか、もしくはこれらの処理の任意の組み合わせにより、外部ホスト機のデバッグアプリケーションとの接続変更指示を行う請求項１記載のデバッグシステム。
【請求項３】
通常系アプリケーションと、デバッグ指示を行うデバッグアプリケーションとを備える外部ホスト機と接続され、
前記外部ホスト機との通信を行う通信ポートと、
１以上のデバッグ対象プロセッサと、
前記デバッグ対象プロセッサのデバッグ処理に用いるデバッグ手段を有する１つのデバッガ側プロセッサと、
リセット通知・稼働状態監視装置と、
記憶手段と、を備えるデバッグシステムにおいて、
前記デバッグ対象プロセッサにおいて異常が発生した際に前記デバッグ手段を用いて前記デバッグアプリケーションからの前記デバッグ指示に基づき前記デバッグ処理を行うためのデバッグ方法であって、
前記記憶手段は、前記デバッグ対象プロセッサが再起動された際に、当該デバッグ対象プロセッサにより読み出され、当該デバッグ対象プロセッサが通常起動をすべきか停止状態にすべきかを指示するための稼働可否情報が格納された稼働可否情報領域を有し、
前記デバッガ手段において、前記デバッガ側プロセッサが起動された際に稼働可否情報領域に格納されたデバッガ側プロセッサ以外の他のプロセッサに対応した稼働可否情報を、通常起動を指示するデータから停止状態を指示するデータに変更するステップと、
前記リセット通知・稼働状態監視装置において、前記デバッグ対象プロセッサのうちのいずれかにおいて発生した異常を検出し、当該異常が発生したデバッグ対象プロセッサを再起動させ、当該デバッグ対象プロセッサを再起動させた旨を前記デバッガ側プロセッサに対して通知するステップと、
前記デバッガ手段において、前記リセット通知・稼働状態監視装置からの前記異常が発生したデバッグ対象プロセッサに対する再起動を行った旨の通知を受け取ると、前記通信ポートの接続先を前記通常系アプリケーションから前記デバッグアプリケーションへ変更するように接続先変更指示を行うステップと、
前記異常が発生したデバッグ対象プロセッサからデバッグに用いるデバッグ情報を取得し、前記通信ポートを介して前記デバッグアプリケーションへ当該デバッグ情報を送信するステップと、
を備えたデバッグ方法。
【請求項４】
前記デバッグ手段が接続先変更処理を行うステップでは、前記通信ポートの初期化、通常系コネクション切断、デバッガ用コネクション確立の処理のいずれか、もしくはこれらの処理の任意の組み合わせにより、外部ホスト機のデバッグアプリケーションとの接続変更指示を行う請求項３記載のデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数実行ユニット（プロセッサ）を有するマルチプロセッサシステム（並列処理システム）におけるデバッグシステム、デバッグ方法およびプログラムに関し、特に、複数のプロセッサの中の１つのプロセッサをデバッガ側プロセッサとして使用して、他のデバッグ対象プロセッサにおいて異常が発生した際のデバッグを行うデバッグシステム、デバッグ方法およびプログラムに関する。
【背景技術】
【０００２】
近年、開発するプログラムの規模は年々増大してきており、デバッグ作業に要する時間が製品開発スケジュールに与える影響が大きくなってきている。このため、効率よくデバッグできる環境の構築が望まれている。効率よくデバッグするための手法として、特許文献１に記載されたデバッグシステムのように、デバッグを行うための専用の診断プロセッサを用いる方法がある（例えば、特許文献１参照。）。
【０００３】
しかし、このようなデバッグシステムは、専用の診断プロセッサを用いていることにより、デバッグ時のみしか利用されないハードウェア資源を無駄に抱え込むこととなる。特に、外部のホスト端末との通信処理を行いながらデバッグを行うような場合、診断プロセッサにも速い処理速度が要求され、通常動作時には使用されないデバッグ手段のために貴重なハードウェア資源を割り当てることになってしまう。
【０００４】
このような弊害を解消するため、上記の診断プロセッサを、デバッグ対象のプロセッサ自身でソフトウェアにより実現する方法も考えられる。しかし、デバッグ対象のプロセッサ自身にデバッグ用プログラムを起動して診断プロセッサとした場合、デバッグ処理や、外部との通信等のために記憶領域を消費することとなり、保存できるデバッグ情報の量が削減してしまうという問題が発生し、デバッグ機能の間にトレードオフが発生してしまうこととなる。
【０００５】
また、複数のプロセッサを有するようなマルチプロセッサシステムでは、各プロセッサを、デバッグ対象となるプロセッサと、デバッガ側プロセッサに切り分け、システム再起動後にデバッグ処理を行う装置が提案されている（例えば、特許文献２参照。）。このようなシステムによれば、一部のプロセッサが異常状態に陥った場合に、他のプロセッサによりデバッグ手段を提供することが可能であるが、その場合、異常状態に陥ったプロセッサのデバッグ情報、デバッグ手段が利用する通信手段などをどう提供するかが問題であった。
【０００６】
特許文献２のシステムにおいては、障害発生後の再起動時に稼働可否情報領域（特許文献２では「ストラップ情報」）を読み込み、通常起動とデバッグモードの選択を行い、デバッグ機能に入るプロセッサを選択するが、デバッグ用入出力経路を設けることが困難であり、デバッグ処理の自由度に制約が発生している。
【０００７】
さらに、非特許文献１の4.5.5節では、障害発生時のダンプ情報を、システムに接続されたハードディスクに退避し、後に解析するシステムについて、リナックス（Linux）上の２つの実装例が記載されている。
【０００８】
しかし、非特許文献１の4.5.5節に記載されたような、障害発生時のダンプ情報を後に解析するシステムは、ＯＳ（オペレーティングシステム）が動作するための最も基礎的な処理を行うためのプログラムであるカーネルが障害発生後も動作可能な状態であることを前提としたシステムである。そのため、障害発生と同時にカーネルも含めて異常動作／ハングアップに至った場合には用いることができないという問題点を有している。
【特許文献１】特開平１１−１８４７３６号公報
【特許文献２】特開２００４−１６４１１３号公報
【非特許文献１】Alessandro Rubini, Jonathan Corbet著、山崎康宏、山崎邦子、長原宏治、長原陽子訳、“ＬＩＮＵＸデバイスドライバ第２版”、株式会社オライリー・ジャパン、２００２年５月３１日発行、4.5.5節、p.135-136
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した従来のデバッグシステムでは、複数のプロセッサが連携して動作するマルチプロセッサシステムにおいて、デバッグ対象プロセッサに異常が発生した場合に、デバッグ用入出力経路を設けることが困難であり、外部ホスト機との間でデバッグ情報を送受信することができずデバッグ機能が制限されてしまっているという問題点があった。
【００１０】
本発明の目的は、複数のプロセッサからなるマルチプロセッサシステムにおいて、デバッグ対象プロセッサに異常が発生した場合、通信ポート経由でデバッガ側プロセッサよりデバッグ情報のダンプ、デバッガ側プロセッサとの対話的なデバッグ作業などを含む、デバッグ機能を実現することができるデバッグシステムおよびデバッグ方法を提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明のデバッグシステムは、複数のプロセッサにより構成されたシステムにおいて、前記複数のプロセッサの中の１つのプロセッサをデバッガ側プロセッサとして使用して、他のデバッグ対象プロセッサにおいて異常が発生した際のデバッグを行うデバッグシステムであって、
前記デバッグ対象プロセッサのうちのいずれかにおいて発生した異常を検出し、異常が発生したデバッグ対象プロセッサを再起動させ、デバッグ対象プロセッサを再起動させた旨を前記デバッガ側プロセッサに対して通知するリセット通知・稼働状態監視装置と、
前記各デバッグ対象プロセッサに対して再起動された際に通常起動をすべきか停止状態にすべきかを指示するための稼働可否情報が格納された稼働可否情報領域を有する記憶手段と、
前記デバッガ側プロセッサ内に設けられ、起動された際に前記稼働可否情報領域に格納されたデバッガ側プロセッサ以外の他のプロセッサに対応した稼働可否情報を、通常起動を指示するデータから停止状態を指示するデータに変更し、前記リセット通知・稼働状態監視装置からのデバッグ対象プロセッサに対する再起動を行った旨の通知を受け取ると、外部ホスト機との通信を行うための通信ポートに対してデバッグアプリケーションに接続するように接続先変更指示を行うデバッグ手段とを備えている。
【００１２】
前記デバッグ手段は、前記通信ポートの初期化、通常系コネクション切断、デバッガ用コネクション確立の処理のいずれか、もしくはこれらの処理の任意の組み合わせにより、外部ホスト機のデバッグアプリケーションとの接続変更指示を行うようにしてもよい。
【００１３】
本発明によれば、デバッガ側プロセッサ内に設けられたデバッグ手段は、デバッグ対象プロセッサが再起動された際に停止状態となるように稼働可否情報領域に格納された稼働可否情報を予め変更しておく。このことにより、リセット通知・稼働状態監視装置がデバッグ対象プロセッサの異常発生を検出して再起動を行うことにおりデバッグ対象プロセッサは停止状態となる。そして、デバッグ手段は、通信ポートを初期化もしくは再設定して外部ホスト機のデバッグアプリケーションと接続するようにさせることで、通信ポートをデバッグ用に利用できるようにした。この結果、デバッグ対象プロセッサの異常時において、通信ポート経由でデバッガ側プロセッサよりデバッグ情報のダンプ、デバッガ側プロセッサとの対話的なデバッグ作業などを含む、デバッグ機能が実現されることになる。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、マルチプロセッサシステムにおいて、デバッグ対象となるプロセッサの異常発生を受け、デバッガ側プロセッサによりデバッグ手段を外部との通信手段を確立させつつ実現することができるという効果を得ることができる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
図１は本発明の第１の実施形態のデバッグシステムの構成を示すブロック図である。
【００１７】
本実施形態のデバッグシステムは、図１に示されるように、通信ポート１と、複数の実行ユニット（以下、プロセッサとする。）Ａ、Ｂと、リセット通知・稼働状態監視装置４と、記憶手段２と、プログラム格納手段３とを備え、外部ホスト機８と接続されている。
【００１８】
記憶手段２は、実行ユニットＡ用記憶領域６と、実行ユニットＢ用記憶領域７と、稼働可否情報を格納するための稼働可否情報領域５とから構成されている。
【００１９】
ここで、稼働可否情報とは、各デバッグ対象プロセッサに対して再起動された際に通常起動をすべきか停止状態にすべきかを指示するための情報である。
【００２０】
また、外部ホスト機８は、通信管理ドライバ９と、ホスト側通常系アプリケーション１０と、デバッグアプリケーション１１とを備えている。
【００２１】
リセット通知・稼働状態監視装置４は、各プロセッサＡ、Ｂへのリセット機能・稼働状態の通知・ウォッチドックタイマ機能などによる稼働状況把握、の各機能を提供する。
【００２２】
また、リセット通知・稼働状態監視装置４は、デバッグ対象プロセッサが複数ある場合には、これらのうちのいずれかにおいて発生した異常を検出し、異常が発生したデバッグ対象プロセッサを再起動させ、デバッグ対象プロセッサを再起動させた旨をデバッガ側プロセッサに対して通知する。
【００２３】
通信ポート１は、外部ホスト機８との通信を行う。プログラム格納手段３は、記憶手段２に収納される各プロセッサ用の領域中のアプリケーションを収納する。
【００２４】
以下の説明では、プロセッサＡをデバッグ対象プロセッサとして、プロセッサＢをデバッガ側のプロセッサとするものとして説明する。そのため、プロセッサＢには、デバッグ用プログラムが起動されることにより実現されるデバッグ手段２０が設けられている。
【００２５】
デバッガ側プロセッサであるプロセッサＢ内に設けられたデバッグ手段２０は、起動された際に稼働可否情報領域５に格納されたデバッガ側プロセッサ以外の他のプロセッサに対応した稼働可否情報を、通常起動を指示するデータから停止状態を指示するデータに変更する。また、デバッグ手段２０は、リセット通知・稼働状態監視装置４からのデバッグ対象プロセッサに対する再起動を行った旨の通知を受け取ると、外部ホスト機８との通信を行うための通信ポート１に対してホスト側デバッグアプリケーション１１に接続するように接続先変更指示を行う。
【００２６】
また、本実施形態では、説明を簡単にするため２個のプロセッサＡ、Ｂを備えるシステムについて説明を行っているが、３個以上のプロセッサを備えるシステムについても容易に拡張可能である。
【００２７】
このようにプロセッサが複数の場合、デバッガ側プロセッサ以外の他のプロセッサは全て停止状態にして待機させるようにすることが好ましい。そのため、デバッガ側プロセッサは、稼働可否情報領域５に格納された稼働可否情報のうち、他の全てのプロセッサが停止状態となるように設定する。そして、リセット通知・稼働状態監視装置４は、あるプロセッサの障害発生を検出した場合、デバッグ対象のプロセッサを選択して、デバッガ側プロセッサに対して通知する。このようにすれば、複数のプロセッサのうち停止状態となっていない唯一のデバッガ側プロセッサは、停止状態となっている他のプロセッサのうちどのプロセッサがデバッグ対象であるかを知ることが可能となる。
【００２８】
プロセッサが複数ある場合、デバッグ手段を備えたデバッグ側プロセッサはかならずしも１つに限る必要はなく、複数のデバッグ側プロセッサを用意しておき、デバッグ対象プロセッサのいずれかに異常が発生した際に排他制御を行って１つのデバッガ側プロセッサのみを動作させるようにしてもよい。このように、複数のデバッガ側プロセッサを用意することにより、全てのデバッガ側プロセッサに異常が発生しない限りデバッグを行うことが可能となる。
【００２９】
次に、本実施形態のデバッグシステムの動作について、図２に示すシーケンスチャートを参照して詳細に説明する。
【００３０】
プロセッサＡに異常が発生せず通常系の動作をしている場合、図３に示すようにデバッグ対象プロセッサであるプロセッサＡは、通信ポート１を経由して外部ホスト機８と通信している。もちろん、並列処理環境を構成する他のプロセッサが通信ポート１を利用していてもよく、また、通信ポート１が利用されていない状態でもよく、いずれの場合においても以下の動作説明には影響が及ばない。また、外部ホスト機８では、通信管理ドライバ９は、通信ポート１との間の通信をホスト側通常系アプリケーション１０に対して接続している。
【００３１】
通常系の動作をしている場合、デバッガ側プロセッサであるプロセッサＢでは、図３で示すようにデバッグ手段２０が待機状態に入っている動作としてもよいが、何らかの定常的な監視を行っていてもよい。またデバッガ側プロセッサがマルチタスクシステムであってもよく、その場合、デバッガ側プロセッサは他のプロセッサと同等の、並列処理を構成するプロセッサとして稼働していてもよい。
【００３２】
先ず、デバッガ側プロセッサであるプロセッサＢでは、デバッグ手段２０の準備もしくは起動の際に、稼働可否情報領域５のデバッグ対象プロセッサであるプロセッサＡに対応した稼働可否情報を、通常起動を指示するデータから停止状態を指示するデータに変更しておく（ステップ１０１）。
【００３３】
そして、デバッグ対象プロセッサであるプロセッサＡがハードウェアあるいはソフトウェアの障害など、なんらかの異常な状態に陥った場合（ステップ２０１）、図４に示すように、リセット通知・稼働監視装置４は、発生した異常を検出し（ステップ２０２）、対象プロセッサを再起動し（ステップ２０３）、対象プロセッサの再起動をデバッガ側プロセッサに通知する（ステップ２０４）。
【００３４】
デバッグ対象プロセッサであるプロセッサＡは、再起動処理中、図５に示すように稼働可否情報領域５から稼働可否情報を取得し（ステップ２０５）、停止あるいは待機状態に入ることを指示するデータが収納されている場合には、停止、あるいは待機状態に入る（ステップ２０６）。
【００３５】
このように、デバッグ対象プロセッサであるプロセッサＡが停止した状態において、デバッガ側プロセッサであるプロセッサＢでは、リセット通知・稼働状態監視装置４からの通知によってデバッグ手段２０が稼働を開始し、図６に示すように外部との通信ポート１を初期化、通常系コネクションの接続を切断、デバッガ用コネクションの接続を確立するなどの処理のいずれか、もしくは任意の組み合わせの処理、あるいは類似の接続処理を行い（ステップ２０７）、図７に示すように、外部ホスト機８のホスト側デバッグアプリケーション１１との接続を行う（ステップ２０８）。
【００３６】
通信ポート１の接続相手に対し、デバッグ手段が通信ポート１を利用することを通知する場合、本発明の好ましい実装例では、ＵＳＢ（Universal Serial Bus）などの挿抜制御をプロトコルレベルで実装した通信路を用い、通信相手に対してデバッガ側プロセッサであるプロセッサＢがデバッグ手段２０を稼働させたことを挿抜制御のプロトコルによって通知する。
【００３７】
デバッガ側プロセッサであるプロセッサＢは、外部ホスト機８との接続を行った後、各デバッグ機能を実行する（ステップ２０９、２１０）。例えば図８の例ではデバッガ側プロセッサであるプロセッサＢによるデバッグ対象プロセッサであるプロセッサＡの実行ユニットＡ用記憶領域６の内容を外部ホスト機８へとダンプする処理について示している。
【００３８】
次に、上記で説明したデバッグ対象プロセッサの再起動時の処理について図９のフローチャートを参照して説明する。リセット通知・稼働監視装置４よりリセットを受けたプロセッサは、記憶領域をアクセスするためのメモリアクセス関連初期化処理を経て（ステップ８０１）、稼働可否情報領域５より稼働可否情報を取得し（ステップ８０２）、稼働可であるかどうかを判定する（ステップ８０３）。そして、ステップ８０３において稼働可否情報において稼働可であると指示されていた場合には、このプロセッサは、通常のオペレーティングシステム起動処理を行う。一方、ステップ８０３において、稼働可否情報として停止・待機が指示されていた場合には、このプロセッサは、停止処理・待機処理を行う。
【００３９】
一方で、デバッガ側プロセッサであるプロセッサＢにおけるデバッグ手段２０の動作についてフローチャート図１０、図１１により説明する。
【００４０】
デバッグ手段２０は、通常系の動作状態において初期化処理を行う。そして、図１０に示されるようにデバッグ対象プロセッサが再起動した場合に待機状態に入るような稼働可否情報を設定する（ステップ９０１）。さらに、デバッグ手段２０は、デバッグ対象プロセッサが再起動した場合、リセット通知・稼働監視装置４からの通知が直接、もしくはオペレーティングシステム経由で到着するようリセット通知・稼働監視装置４に要求を行い（ステップ９０２）、待機状態に入る。
【００４１】
対象プロセッサが再起動したことを通知されると、デバッグ手段２０は、図１１に示されるように、デバッグ対象プロセッサが停止状態・待機状態に入るまで監視を継続する（ステップ１００１、１００２）。デバッグ対象プロセッサが停止状態・待機状態に入ったことを確認した後、デバッグ手段２０は、外部との通信ポート１を初期化、通常系の接続を切断、デバッガ用の接続を確立するなどの処理のいずれか、もしくは任意の組み合わせの処理、あるいは類似の接続処理を行い、外部ホスト機８のデバッグアプリケーション１１などとの接続を行う（ステップ１００３）。
【００４２】
外部ホスト機８のデバッグアプリケーション１１との接続後、デバッグ手段２０は、デバッグ処理に関する指示を受理できる状態になったことを外部ホスト機８に通知し（ステップ１００４）、外部ホスト機８からのデバッグ指示の受理とその実行を行う（ステップ１００５〜１００７）。
【００４３】
なお、図１１では、デバッグ手段２０が外部ホスト機８からの指示に基づいてデバッグ処理を行う場合について説明したが、デバッグ手段２０は、外部ホスト機８からの指示を受信してデバッグ処理を行うだけでなく、外部ホスト機８との接続が完了した後、デバッグ用情報を自動的に直接あるいはオペレーティングシステム経由で出力するなどのような、自律的な動作を実装していてもよい。このように、デバッグ手段２０が自律的な動作を行う場合の流れを図１２のフローチャートに示す。
【００４４】
この図１２において、ステップ１００１〜１００３までの処理は、図１１と同じ処理であるため説明は省略する。外部ホスト機８のデバッグアプリケーション１１との接続を行ったデバッグ手段２０は、デバッグ対象プロセッサ用記憶領域（例えば、実行ユニットＡ用記憶領域６）からデバッグ用情報を取得し（ステップ１２０１）、通信ポート１経由でデバッグ用情報の出力をＯＳに依頼することによりこのデバッグ情報をデバッグアプリケーション１１に送信する（ステップ１２０２）。
【００４５】
本実施形態のデバッグシステムでは、デバッガ側プロセッサであるプロセッサＢにおいて、デバッグ手段２０の準備もしくは起動の際に、稼働可否情報領域５に対象プロセッサ異常発生時における停止指示を設定した。そして、デバッグ対象プロセッサは、プロセッサ初期化処理において、稼働可否情報領域５の内容によって、停止・待機処理を行うこととした。
【００４６】
さらに、デバッガ側プロセッサが、デバッグ対象プロセッサの停止・待機を、リセット通知・稼働状態監視装置４などにより検知できるようにした。そして、デバッグ対象プロセッサの停止・待機を検知したデバッガ側プロセッサが、通信ポートを初期化もしくは再設定することで、通信ポート１をデバッグ用に利用できるようにした。
【００４７】
これらにより、デバッグ対象プロセッサの異常時において、通信ポート１経由でデバッガ側プロセッサよりデバッグ情報のダンプ、デバッガ側プロセッサとの対話的なデバッグ作業などを含む、デバッグ機能が実現されることになる。
【００４８】
つまり、本実施形態のデバッグシステムによれば、対象プロセッサが想定外に突然異常状態に陥った場合でも、事前に稼働可否情報を設定しておくことで、安全に停止処置に導くことが可能であり、かつ、停止後にデバッガ側プロセッサが外部との通信ポート１を利用することが可能となる。
【００４９】
（第２の実施形態）
次に、本発明の第２の実施形態のデバッグシステムについて説明する。
【００５０】
上記で説明した第１の実施形態のデバッグシステムでは、デバッガ側プロセッサであるプロセッサＢのデバッグ手段２０は待機状態のまま、リセット通知・稼働状態監視装置４からの通知を待機していたが、デバッガ側プロセッサもリセット通知・稼働状態監視装置４からのリセットを受理し、デバッグ対象プロセッサと共に再起動した後、稼働可否情報領域５の内容に基づいてデバッグ手段２０を稼働させる構成としてもよい。
【００５１】
この場合、デバッガ側プロセッサは、稼働可否情報領域５の内容から自己がデバッガ側であることを認識することができるので、デバッガ側プロセッサが起動することができ、他のプロセッサは停止状態を継続することになる。
【図面の簡単な説明】
【００５２】
【図１】本発明の第１の実施形態のデバッグシステムの構成を示すブロック図である。
【図２】図１のデバッグシステムの動作を示すシーケンスチャートである。
【図３】通常系動作時の動作概念図である。
【図４】異常検出時の動作概念図である。
【図５】対象プロセッサ再起動時の動作概念図である。
【図６】通信ポート１の切り替えの動作概念図である。
【図７】デバッグ手段実行時の通信概念図である。
【図８】対象プロセッサのデバッグ情報ダンプを例としたデバッグ概念図である。
【図９】起動処理フローチャートである。
【図１０】デバッグ手段２０の動作を示すフローチャート（初期化処理）である。
【図１１】デバッグ手段２０の動作を示すフローチャート（稼働状態）である。
【図１２】デバッグ手段２０の動作を示すフローチャート（自律的処理）である。
【符号の説明】
【００５３】
１    通信ポート
２    記憶手段
３    プログラム格納手段
４    稼働状態監視装置
５    稼働可否情報領域
６    実行ユニットＡ用記憶領域
７    実行ユニットＢ用記憶領域
８    外部ホスト機
９    通信管理ドライバ
１０    ホスト側通常系アプリケーション
１１    ホスト側デバッグアプリケーション
２０    デバッグ手段
８０１〜８０３    ステップ
９０１、９０２    ステップ
１００１〜１００７    ステップ
１２０１、１２０２    ステップ
【図１】
0004633553.tif 000002
【図２】
0004633553.tif 000003
【図３】
0004633553.tif 000004
【図４】
0004633553.tif 000005
【図５】
0004633553.tif 000006
【図６】
0004633553.tif 000007
【図７】
0004633553.tif 000008
【図８】
0004633553.tif 000009
【図９】
0004633553.tif 000010
【図１０】
0004633553.tif 000011
【図１１】
0004633553.tif 000012
【図１２】
0004633553.tif 000013