(57)【要約】【課題】マルチプロセッサシステムのプログラムデバッグを勝手良く行うことができるＩＣＥサーバを提供する。【解決手段】ＳＷブレーク管理部１３は、デバッガ４Ａからのメモリ読出し要求が、デバッガ４Ｂが設定したＳＷブレークポイントに対するものである場合、ＳＷブレークポイントテーブル１２が保持するデバッガ４ＢがＳＷブレークポイントを設定する前の元のプログラムの命令コードをメモリ読み出しの結果としてデバッガ４Ａに通知し、また、デバッガ４Ｂからのメモリ読出し要求が、デバッガ４Ａが設定したＳＷブレークポイントに対するものである場合、ＳＷブレークポイントテーブル１２が保持するデバッガ４ＡがＳＷブレークポイントを設定する前の元のプログラムの命令コードをメモリ読み出しの結果としてデバッガ４Ｂに通知する。【選択図】          図１
2006164001.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバッガとインサーキットエミュレータとの間に接続されるＩＣＥサーバであって、
前記複数のデバッガが設定したソフトウエアブレークポイントを管理する所定手段を有することを特徴とするＩＣＥサーバ。
【請求項２】
前記所定手段は、前記複数のデバッガのうち、いずれかのデバッガからのメモリ読出し要求が、他のデバッガが設定したソフトウエアブレークポイントに対するものである場合、元のプログラムの命令コードをメモリ読出し結果として前記いずれかのデバッガに通知することを特徴とする請求項１記載のＩＣＥサーバ。
【請求項３】
前記所定手段は、前記複数のデバッガのうち、いずれかのデバッガが制御するプロセッサが、他のデバッガが設定したソフトウエアブレークポイントの命令コードを実行して命令ブレークが発生した場合、前記命令ブレークの発生を前記いずれかのデバッガに通知することなく、プログラムの命令コードを再実行させる所定手段を有することを特徴とする請求項１記載のＩＣＥサーバ。
【請求項４】
複数のデバッガとインサーキットエミュレータとの間に接続されるＩＣＥサーバであって、
前記複数のデバッガと前記インサーキットエミュレータの通信プロトコルを変更することなく、前記複数のデバッガと前記インサーキットエミュレータとの間の通信を可能とする所定手段を有することを特徴とするＩＣＥサーバ。
【請求項５】
複数のデバッガとインサーキットエミュレータとの間に接続されるＩＣＥサーバであって、
各デバッガが対象とするプロセッサの状態を一括管理する所定手段を有することを特徴とするＩＣＥサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムのプログラムデバッグを行う場合に使用して好適なＩＣＥ（In-Circuit Emulator：インサーキットエミュレータ）サーバに関する。
【背景技術】
【０００２】
図５は従来のマルチプロセッサ・デバッグシステムの一例を示す図である。図５中、１Ａ、１Ｂはデバッガ、２Ａ、２ＢはＩＣＥ、３Ａ、３Ｂはマルチプロセッサシステムを構成するプロセッサであり、共有メモリを有するものである。この例では、デバッガ１ＡはＩＣＥ２Ａを介してプロセッサ３Ａのプログラムデバッグを行い、デバッガ１ＢはＩＣＥ２Ｂを介してプロセッサ３Ｂのプログラムデバッグを行う。
【特許文献１】特開平８−３０５６０７号公報
【特許文献２】特開平６−３３２７４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
図５に示す従来のマルチプロセッサ・デバッグシステムでは、デバッガ１Ａ、１Ｂがメモリ空間を共有した場合、いずれか一方のデバッガがメモリを参照するときに、他方のデバッガが設定したソフトウエアブレークポイント（以下、ＳＷブレークポイントという）の値が表示されてしまい、本来のメモリ値が表示できないという問題点があった。
【０００４】
また、いずれか一方のデバッガが設定した命令コードへのＳＷブレークポイントを他方のデバッガが通過した際に命令ブレークが発生した場合、ユーザには他方のデバッガでＳＷブレークポイントを設定していない命令コードで命令ブレークが発生したように見えてしまうという問題点があった。
【０００５】
また、デバッガ１ＡとＩＣＥ２Ａの通信プロトコル及びデバッガ１ＢとＩＣＥ２Ｂの通信プロトコルは、それぞれ、一致している必要があり、ＩＣＥとデバッガの通信プロトコルが異なる場合には、通信プロトコルを変更する必要があるという問題点があった。また、デバッガが対象プロセッサに接続されていない状態では、当該対象プロセッサの状態を表示できないという問題点があった。
【０００６】
本発明は、かかる点に鑑み、マルチプロセッサシステムのプログラムデバッグを勝手良く行うことができるＩＣＥサーバを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明中、第１の発明は、複数のデバッガとＩＣＥとの間に接続されるＩＣＥサーバであって、前記複数のデバッガが設定したソフトウエアブレークポイントを管理する所定手段を有するものである。
【０００８】
第２の発明は、複数のデバッガとＩＣＥとの間に接続されるＩＣＥサーバであって、前記複数のデバッガと前記ＩＣＥの通信プロトコルを変更することなく、前記複数のデバッガと前記ＩＣＥとの間の通信を可能とする所定手段を有するものである。
【０００９】
第３の発明は、複数のデバッガとＩＣＥとの間に接続されるＩＣＥサーバであって、各デバッガが対象とするプロセッサの状態を一括管理する所定手段を有するものである。
【発明の効果】
【００１０】
第１の発明によれば、前記所定手段により、メモリにはＳＷブレークポイントを設定したままで、ユーザは、いずれかのデバッガが対象とするプロセッサのプログラムデバッグを行う場合、他のデバッガが設定したＳＷブレークポイントを気にせずに、プログラムデバッグを行うことができるので、マルチプロセッサシステムのプログラムデバッグを勝手良く行うことができる。
【００１１】
第２の発明によれば、前記所定手段により、ユーザは、通信プロトコルの変更を行う必要がないので、マルチプロセッサシステムのプログラムデバッグを勝手良く行うことができる。
【００１２】
第３の発明によれば、前記所定手段により、対象とするプロセッサに接続されていないデバッガがあるときでも、全プロセッサの状態把握が可能となるので、マルチプロセッサシステムのプログラムデバッグを勝手良く行うことができる。
【発明を実施するための最良の形態】
【００１３】
（第１実施形態）
図１は本発明の第１実施形態を使用したマルチプロセッサ・デバッグシステムの一例を示す図である。図１中、４Ａ、４Ｂはデバッガ、５は本発明の第１実施形態、６Ａ、６ＢはＩＣＥ、７Ａ、７Ｂはマルチプロセッサシステムを構成するプロセッサであり、共有メモリを有するものである。
【００１４】
本例では、デバッガ４Ａは本発明の第１実施形態５及びＩＣＥ６Ａを介してプロセッサ７Ａのプログラムデバッグを行い、デバッガ４Ｂは本発明の第１実施形態５及びＩＣＥ６Ｂを介してプロセッサ７Ｂのプログラムデバッグを行う。
【００１５】
本発明の第１実施形態５において、８Ａはデバッガ４Ａとの接続を図るデバッガ用インタフェース、８Ｂはデバッガ４Ｂとの接続を図るデバッガ用インタフェース、９ＡはＩＣＥ６Ａとの接続を図るＩＣＥ用インタフェース、９ＢはＩＣＥ６Ｂとの接続を図るＩＣＥ用インタフェースである。
【００１６】
１０はデバッガ４Ａ、４Ｂとの通信を行うマルチデバッガ通信部、１１はＩＣＥ６Ａ、６Ｂを制御するＩＣＥ制御部、１２はＳＷブレークの管理に必要な情報を保持させるためのＳＷブレークポイントテーブル、１３はＳＷブレークポイントテーブル１２を使用してＳＷブレークを管理するＳＷブレーク管理部である。
【００１７】
１４Ａ、１５Ａはデバッガ４ＡとＩＣＥ６Ａの通信プロトコルが異なる場合に、デバッガ４ＡとＩＣＥ６Ａの通信プロトコルを変更することなく、デバッガ４ＡとＩＣＥ６Ａとの間の通信を可能とするＩＣＥプロトコル変換部である。
【００１８】
１４Ｂ、１５Ｂはデバッガ４ＢとＩＣＥ６Ｂの通信プロトコルが異なる場合に、デバッガ４ＢとＩＣＥ６Ｂの通信プロトコルを変更することなく、デバッガ４ＢとＩＣＥ６Ｂとの間の通信を可能とするＩＣＥプロトコル変換部である。
【００１９】
１６はプロセッサ７Ａ、７Ｂの状態（実行中、リセット、ブレーク停止等の状態）を把握するプロセッサ状態把握部、１７はプロセッサ状態把握部１６が把握したプロセッサ７Ａ、７Ｂの状態情報を保持するプロセッサ状態テーブルである。
【００２０】
図２はＳＷブレークポイントテーブル１２の構成例を示す図である。ＳＷブレークポイントテーブル１２は、ＳＷブレークポイントのアドレスを表示するアドレス表示欄１８と、ＳＷブレークポイントにあった元のプログラムの命令コードを表示する命令コード表示欄１９と、ＳＷブレークポイントを設定したデバッガを表示するＳＷブレークポイント設定デバッガ表示欄２０を有している。
【００２１】
ＳＷブレークポイントテーブル１２は、ＳＷブレーク管理部１３により管理され、アドレス表示欄１８、命令コード表示欄１９及びＳＷブレークポイント設定デバッガ表示欄２０への各情報の書き込みは、ＳＷブレーク管理部１３により行われる。
【００２２】
本発明の第１実施形態５では、ＳＷブレーク管理部１３は、デバッガ４Ａからのメモリ読出し要求が、デバッガ４Ｂが設定したＳＷブレークポイントに対するものである場合、即ち、デバッガ４Ａが、デバッガ４Ｂが設定したＳＷブレークポイントの命令コードを読もうとした場合、ＳＷブレークポイントテーブル１２が保持するデバッガ４ＢがＳＷブレークポイントを設定する前の元のプログラムの命令コードをメモリ読み出し結果としてデバッガ４Ａに通知する。
【００２３】
また、ＳＷブレーク管理部１３は、デバッガ４Ｂからのメモリ読出し要求が、デバッガ４Ａが設定したＳＷブレークポイントに対するものである場合、即ち、デバッガ４Ｂが、デバッガ４Ａが設定したＳＷブレークポイントの命令コードを読もうとした場合、ＳＷブレークポイントテーブル１２が保持するデバッガ４ＡがＳＷブレークポイントを設定する前の元のプログラムの命令コードをメモリ読み出し結果としてデバッガ４Ｂに通知する。
【００２４】
このＳＷブレーク管理部１３の機能により、メモリにはＳＷブレークポイントを設定したままで、デバッガ４Ａは、デバッガ４ＢがＳＷブレークポイントを設定する前の元のプログラムの命令コードを読むことができ、また、デバッガ４Ｂは、デバッガ４ＡがＳＷブレークポイントを設定する前の元のプログラムの命令コードを読むことができる。
【００２５】
また、ＳＷブレーク管理部１３は、プロセッサ７Ａが、デバッガ４Ｂが設定したＳＷブレークポイントの命令コードを実行して命令ブレークが発生した場合、命令ブレークの発生をデバッガ４Ａに通知することなく、プログラムの命令コードを再実行させ、また、プロセッサ７Ｂが、デバッガ４Ａが設定したＳＷブレークポイントの命令コードを実行して命令ブレークが発生した場合、命令ブレークの発生をデバッガ４Ｂに通知することなく、プログラムの命令コードを再実行させるようにすることもできる。
【００２６】
このように、本発明の第１実施形態５では、ＳＷブレークポイントテーブル１２とＳＷブレーク管理部１３とを設け、全てのプロセッサ７Ａ、７ＢのＳＷブレークポイントを管理するとしているので、メモリにはＳＷブレークポイントを設定したままで、ユーザは、デバッガ４Ａによるプロセッサ７Ａのプログラムデバッグにおいては、デバッガ４Ｂが設定したＳＷブレークポイントを気にせずに、デバッグを行うことができ、また、デバッガ４Ｂによるプロセッサ７Ｂのプログラムデバッグにおいては、デバッガ４Ａが設定したＳＷブレークポイントを気にせずに、デバッグを行うことができる。
【００２７】
また、ＩＣＥプロトコル変換部１４Ａ、１５Ａ、１４Ｂ、１５Ｂを備えているので、デバッガ４ＡとＩＣＥ６Ａの通信プロトコル及びデバッガ４ＢとＩＣＥ６Ｂの通信プロトコルが異なる場合であっても、デバッガ４ＡとＩＣＥ６Ａの通信プロトコル及びデバッガ４ＢとＩＣＥ６Ｂの通信プロトコルを変更することなく、即ち、デバッガ４Ａ、４Ｂ及びＩＣＥ６Ａ、６Ｂにあるモニタプログラムを変更することなく、デバッガ４ＡとＩＣＥ６Ａとの間及びデバッガ４ＢとＩＣＥ６Ｂとの間の通信を行うことができる。
【００２８】
また、プロセッサ状態テーブル１７を参照することにより、ユーザは、デバッガ４Ａがプロセッサ７Ａに接続されていない場合であっても、プロセッサ７Ａ、７Ｂの状態を一括表示して、プロセッサ７Ａ、７Ｂの状態把握を行うことができ、また、デバッガ４Ｂがプロセッサ７Ｂに接続されていない場合であっても、プロセッサ７Ａ、７Ｂの状態を一括表示してプロセッサ７Ａ、７Ｂの状態把握を行うことができる。したがって、動作状態によりデバッガ４Ａ、４Ｂの連携などを行うことができる。
【００２９】
図３は本発明の第１実施形態を使用したマルチプロセッサ・デバッグシステムの他の例を示す図である。図３に示す例では、ＩＣＥ６Ａには２個のプロセッサ７Ａ、２１が接続されており、デバッガ４Ａは、本発明の第１実施形態５及びＩＣＥ６Ａを介してプロセッサ７Ａ、２１のプログラムデバッグを行い、デバッガ４Ｂは、本発明の第１実施形態５及びＩＣＥ６Ｂを介してプロセッサ７Ｂのプログラムデバッグを行う。
【００３０】
この例では、ユーザは、デバッガ４Ａ、４Ｂが設定したＳＷブレークポイントを気にせずにプロセッサ７Ａ、２１、７Ｂのプログラムデバッグを行うことができ、また、デバッガ４ＡとＩＣＥ６Ａの通信プロトコル及びデバッガ４ＢとＩＣＥ６Ｂの通信プロトコルが異なる場合であっても、デバッガ４ＡとＩＣＥ６Ａの通信プロトコル及びデバッガ４ＢとＩＣＥ６Ｂの通信プロトコルを変更する必要がなく、また、全てのプロセッサ７Ａ、２１、７Ｂの状態把握を行うことができる。
【００３１】
以上のように、本発明の第１実施形態５によれば、図１に示すように使用する場合には、マルチプロセッサシステムを構成するプロセッサ７Ａ、７Ｂのプログラムデバッグを勝手良く行うことができ、また、図３に示すように使用する場合には、マルチプロセッサシステムを構成するプロセッサ７Ａ、７Ｂ、２１のプログラムデバッグを勝手良く行うことができる。
【００３２】
（第２実施形態）
図４は本発明の第２実施形態を使用したマルチプロセッサ・デバッグシステムの一例を示す図である。本発明の第２実施形態２２は、２個のプロセッサ７Ａ、７Ｂに対して１個のＩＣＥ２３が使用される場合に使用するものであり、ＩＣＥ２３に対応させて１個のＩＣＥ用インタフェース２４を備えるようにし、その他については、図１に示す本発明の第１実施形態５と同様に構成したものである。
【００３３】
本発明の第２実施形態２２によれば、本発明の第１実施形態５と同様に、ユーザは、デバッガ４Ａ、４Ｂが設定したＳＷブレークポイントを気にせずに、プロセッサ７Ａ、７Ｂのプログラムデバッグを行うことができ、また、デバッガ４Ａ、４ＢとＩＣＥ２３の通信プロトコルが異なる場合であっても、デバッガ４Ａ、４ＢとＩＣＥ２３の通信プロトコルの変更を行う必要がなく、また、プロセッサ７Ａ、７Ｂの状態把握を行うことができるので、プロセッサ７Ａ、７Ｂのプログラムデバッグを勝手良く行うことができる。
【００３４】
なお、本発明の第１実施形態５及び第２実施形態２２においては、ＳＷブレークポイントテーブル１２及びＳＷブレーク管理部１３からなるＳＷブレーク管理手段と、ＩＣＥプロトコル変換部１４Ａ、１５Ａ、１４Ｂ、１５ＢからなるＩＣＥプロトコル変換手段と、プロセッサ状態把握部１６及びプロセッサ状態テーブル１７からなるプロセッサ状態把握・保持手段を設けるようにした場合について説明したが、この代わりに、これら３個の手段のうち、いずれか１個又は２個の手段のみを設けるようにしても良い。
【００３５】
ここで、本発明のＩＣＥサーバを整理すると、本発明のＩＣＥサーバには、少なくとも、以下のＩＣＥサーバが含まれる。
【００３６】
（付記１）複数のデバッガとＩＣＥとの間に接続されるＩＣＥサーバであって、前記複数のデバッガが設定したソフトウエアブレークポイントを管理する所定手段を有することを特徴とするＩＣＥサーバ。
【００３７】
（付記２）前記所定手段は、前記複数のデバッガのうち、いずれかのデバッガからのメモリ読出し要求が、他のデバッガが設定したＳＷブレークポイントに対するものである場合、元のプログラムの命令コードをメモリ読出し結果として前記いずれかのデバッガに通知することを特徴とする付記１記載のＩＣＥサーバ。
【００３８】
（付記３）前記所定手段は、前記複数のデバッガのうち、いずれかのデバッガが制御するプロセッサが、他のデバッガが設定したＳＷブレークポイントの命令コードを実行して命令ブレークが発生した場合、前記命令ブレークの発生を前記いずれかのデバッガに通知することなく、プログラムの命令コードを再実行させることを特徴とする付記１記載のＩＣＥサーバ。
【００３９】
（付記４）前記所定手段は、前記複数のデバッガが設定したＳＷブレークポイントのアドレスと、前記複数のデバッガが前記ＳＷブレークポイントを設定する前の元のプログラムの命令コードとを関連付けて保持する所定テーブルを有することを特徴とする付記１又は２記載のＩＣＥサーバ。
【００４０】
（付記５）複数のデバッガとＩＣＥとの間に接続されるＩＣＥサーバであって、前記複数のデバッガと前記ＩＣＥの通信プロトコルを変更することなく、前記複数のデバッガと前記ＩＣＥとの間の通信を可能とする所定手段を有することを特徴とするＩＣＥサーバ。
【００４１】
（付記６）複数のデバッガとＩＣＥとの間に接続されるＩＣＥサーバであって、各デバッガが対象とするプロセッサの状態を一括管理する所定手段を有することを特徴とするＩＣＥサーバ。
【００４２】
（付記７）前記所定手段は、前記プロセッサの状態を把握するプロセッサ状態把握部と、前記プロセッサ状態把握部が把握した前記プロセッサの状態を記憶するプロセッサ状態テーブルを有することを特徴とする付記６記載のＩＣＥサーバ。
【図面の簡単な説明】
【００４３】
【図１】本発明の第１実施形態を使用したマルチプロセッサ・デバッグシステムの一例を示す図である。
【図２】本発明の第１実施形態が備えるソフトウエアブレークポイントテーブルの構成例を示す図である。
【図３】本発明の第１実施形態を使用したマルチプロセッサ・デバッグシステムの他の例を示す図である。
【図４】本発明の第２実施形態を使用したマルチプロセッサ・デバッグシステムの一例を示す図である。
【図５】従来のマルチプロセッサ・デバッグシステムの一例を示す図である。
【符号の説明】
【００４４】
１Ａ、１Ｂ…デバッガ
２Ａ、２Ｂ…インサーキットエミュレータ
３Ａ、３Ｂ…プロセッサ
４Ａ、４Ｂ…デバッガ
５…本発明の第１実施形態（ＩＣＥサーバ）
６Ａ、６Ｂ…インサーキットエミュレータ
７Ａ、７Ｂ…プロセッサ
８Ａ、８Ｂ…デバッガ用インタフェース
９Ａ、９Ｂ…インサーキットエミュレータ用インタフェース
１０…マルチデバッガ通信部
１１…ＩＣＥ制御部
１２…ソフトウエアブレークポイントテーブル
１３…ソフトウエアブレーク管理部
１４Ａ、１５Ａ、１４Ｂ、１５Ｂ…ＩＣＥプロトコル変換部
１６…プロセッサ状態把握部
１７…プロセッサ状態テーブル
１８…アドレス表示欄
１９…命令コード表示欄
２０…ソフトウエアブレークポイント設定デバッガ表示欄
２１…プロセッサ
２２…本発明の第２実施形態（ＩＣＥサーバ）
２３…インサーキットエミュレータ
２４…インサーキットエミュレータ用インタフェース
【図１】
2006164001.tif 000003
【図２】
2006164001.tif 000004
【図３】
2006164001.tif 000005
【図４】
2006164001.tif 000006
【図５】
2006164001.tif 000007