(57)【要約】    【課題】  デバッグ専用の特別なハードウェアを付加することなく、複数のブレークポイントを設定でき、デバッグ効率を向上できるようにする。    【解決手段】  デバッガプログラム２０２では、ブレークポイントの設定に関して、ブレークポイント設定テーブル２０５を用いて、複数のＣＰＵ１０２，１０３ａ〜１０３ｄにおいてブレークポイント発生条件を個別に設定できるようにし、それらの条件がすべて満たされ、かつ、ブレークポイント設定テーブル２０５とブレークポイント履歴テーブル２０６とが一致した場合にデバッグ対象プログラム２０１の実行を中断し、デバッガプログラム２０２を呼び出すようにする。【選択図】      図２
2005352591.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、
デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件が設定されるブレークポイント設定テーブルと、
前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因を格納するブレークポイント履歴テーブルと、
前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが一致したか否かを判定する判定手段と、
前記判定手段によって肯定の判定がなされたとき、デバッガプログラムを起動させる起動手段と
を有することを特徴とするマルチプロセッサシステム。
【請求項２】
複数のプロセッサを備えたマルチプロセッサシステムにおいて、
デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件が時系列に沿って設定されるブレークポイント設定テーブルと、
前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因を時系列に沿って格納するブレークポイント履歴テーブルと、
前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが、時系列順序を含めて一致したか否かを判定する判定手段と、
前記判定手段によって肯定の判定がなされたとき、デバッガプログラムを起動させる起動手段と
を有することを特徴とするマルチプロセッサシステム。
【請求項３】
前記複数のプロセッサは、メインプロセッサと、該メインプロセッサにバスを介して接続され、該メインプロセッサによって制御される少なくとも１つのサブプロセッサとから成り、
前記デバッガプログラムは前記メインプロセッサによって実行されて、該メインプロセッサ及び前記少なくとも１つのサブプロセッサの実行情報を収集することを特徴とする請求項１または請求項２記載のマルチプロセッサシステム。
【請求項４】
前記複数のプロセッサがアクセス可能であり、前記デバッグ対象プログラム及び前記デバッガプログラムが格納された共有メモリを更に有することを特徴とする請求項１または請求項２記載のマルチプロセッサシステム。
【請求項５】
複数のプロセッサを備えたマルチプロセッサシステムに適用されるデバッグ方法において、
デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件をブレークポイント設定テーブルに設定する設定ステップと、
前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因をブレークポイント履歴テーブルに格納する格納ステップと、
前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが一致したか否かを判定する判定ステップと、
前記判定ステップによって肯定の判定がなされたとき、デバッガプログラムを起動させる起動ステップと
を有することを特徴とするデバッグ方法。
【請求項６】
複数のプロセッサを備えたマルチプロセッサシステムに適用されるデバッグ方法において、
デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件を時系列に沿ってブレークポイント設定テーブルに設定する設定ステップと、
前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因を時系列に沿ってブレークポイント履歴テーブルに格納する格納ステップと、
前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが、時系列順序を含めて一致したか否かを判定する判定ステップと、
前記判定ステップによって肯定の判定がなされたとき、デバッガプログラムを起動させる起動ステップと
を有することを特徴とするデバッグ方法。
【請求項７】
複数のプロセッサを備えたマルチプロセッサシステムに適用されるデバッグ方法を、コンピュータに実行させるためのプログラムにおいて、
デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件をブレークポイント設定テーブルに設定する設定ステップと、
前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因をブレークポイント履歴テーブルに格納する格納ステップと、
前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが一致したか否かを判定する判定ステップと、
前記判定ステップによって肯定の判定がなされたとき、デバッガプログラムを起動させる起動ステップと
を有することを特徴とするプログラム。
【請求項８】
複数のプロセッサを備えたマルチプロセッサシステムに適用されるデバッグ方法を、コンピュータに実行させるためのプログラムにおいて、
デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件を時系列に沿ってブレークポイント設定テーブルに設定する設定ステップと、
前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因を時系列に沿ってブレークポイント履歴テーブルに格納する格納ステップと、
前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが、時系列順序を含めて一致したか否かを判定する判定ステップと、
前記判定ステップによって肯定の判定がなされたとき、デバッガプログラムを起動させる起動ステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム、デバッグ方法、及びプログラムに関し、特に、複数のプロセッサを備えたマルチプロセッサシステム、該マルチプロセッサシステムに適用されるデバッグ方法、及び該デバッグ方法をコンピュータに実行させるためのプログラムに関する。
【０００２】
具体的には、デバッグ対象プログラムにブレークポイントを設け、ブレークポイントにおいてデバッグ対象プログラムの実行を中断し、デバッグ端末からオペレータがコマンドを与えることでデバッグ対象プログラムのデバッグを行うマルチプロセッサシステムに係わるものである。
【背景技術】
【０００３】
プログラム開発時にプログラムの挙動を確認したり、不具合を発見、修正したりするために利用するデバッガプログラムには、デバッグ対象プログラムの実行を所定の命令で中断するブレークポイント機能が備えられている。この機能は、デバッグ対象プログラム上のあらかじめ指定した任意の命令でデバッグ対象プログラムの実行を中断させるものである。オペレータは、あらかじめ実行を停止させたい命令を指定しておいてから、デバッグ対象プログラムを始動させる。デバッグ対象プログラムが指定された命令で停止した時点で、オペレータはレジスタやメモリの値を調べたり、また、変更したりすることも可能である。その後、デバッグ対象プログラムをブレークポイントで停止した時点の状態から再開させることが可能である。このブレークポイント機能の実現手段としては、従来、次のような方法が知られている（非特許文献１および非特許文献２参照）。
【０００４】
（１）オペレータによりブレークポイントに指定された命令をトラップ命令で置き換え、デバッグ対象プログラムの実行中にトラップ命令が検知されると、トラップが発生し、トラップ処理ルーチンを介してデバッガプログラムが起動される。デバッグ対象プログラムの実行再開が指示されると、トラップ命令に置き換えられた元の命令の実行をシミュレートした後、制御をデバッグ対象プログラムに戻す。この方法には次の特徴がある。
【０００５】
デバッグ対象プログラム中に複数のブレークポイントを設定できる。また、ブレークポイントを検知するための特別なハードウェアを必要としない。
【０００６】
（２）ハードウェアにブレークポイントレジスタを設け、実行を停止させたいデバッグ対象プログラムの命令アドレスをブレークポイントレジスタ内に保持する。デバッグ対象プログラム実行中に、このブレークポイントレジスタで指定される命令が検知されると、トラップが発生し、トラップ処理ルーチンを介してデバッガプログラムが起動される。デバッグ対象プログラムの実行再開が指示されると、制御をデバッグ対象プログラムに戻す。この方法では次の特徴がある。
【０００７】
デバッグ対象プログラムを書き換えることがなく、また、命令の置き換えがないため命令の実行をシミュレートする必要がない。
【０００８】
（３）デバッグ対象プログラムの命令ごとにブレークポイントを制御するフラグを用意し、オペレータによりブレークポイントに指定された命令のフラグをセットする。このフラグがセットされている命令が検知されると、トラップが発生し、トラップ処理ルーチンを介してデバッガプログラムが起動される。デバッグ対象プログラムの実行再開が指示されると、制御をデバッグ対象プログラムに戻す。この方法では次の特徴がある。
【０００９】
デバッグ対象プログラムに複数のブレークポイントを設定でき、また、命令の置き換えがないため命令の実行をシミュレートする必要がない。
【００１０】
また、複数のプロセッサを有したマルチプロセッサシステムにおけるデバッガプログラムとしては、特許文献１および特許文献２に記載されたものがある。ここでは、ブレークポイント機能は、従来技術を使用しており、複数のプロセッサのうち、ある１つのプロセッサの状態によりトラップを発生し、デバッガプログラムを起動している。
【非特許文献１】「３２ビット・マイクロプロセッサ」日経マグロウヒル（ｐ．１７８）
【非特許文献２】飯塚・田中著「ソフトウェア指向アーキテクチャ」オーム社（ｐ．２１２）
【特許文献１】特開平６−３３２７４７号公報
【特許文献２】特開平１０−１８７４８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述したブレークポイントを設定しプログラムデバッガを起動する従来の方式では、ブレークポイントの発生条件が単一であるため、マルチプロセッサシステムで実行されるプログラムのデバッグを行う場合に、ある１つのプロセッサの状態によりブレーク要因が発生すると、常にデバッグ対象プログラムが中断される。このため、マルチプロセッサシステムでの複数のプロセッサの動作状態によっては、デバッグ情報が変わってしまったり、また、複数のプロセッサ間の通信状態によっては、本来のデバッグ対象プログラムを中断してデバッグを行うべき状態ではないにも拘わらず、デバッグ対象プログラムを中断してデバッグを行ってしまったりする不具合が発生する可能性があった。
【００１２】
また、オペレータが、デバッグ対象プログラム中にブレークポイントを複数設定することができても、実際にデバッグを行いたい状態でデバッグ対象プログラムを中断させるためには、所望の状態に各プロセッサの状態が遷移するまで、何度もブレークポイントをヒットさせ、デバッグ対象プログラムの実行を中断させる必要があり、デバッグの効率が悪いという問題点があり、複数のプロセッサが密に連結し同時並列動作を行うようなプログラムのデバッグには適していなかった。
【００１３】
本発明はこのような問題点に鑑みてなされたものであって、デバッグ専用の特別なハードウェアを付加することなく、複数のブレークポイントを設定でき、デバッグ効率を向上できるマルチプロセッサシステム、デバッグ方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、請求項１記載の発明によれば、複数のプロセッサを備えたマルチプロセッサシステムにおいて、デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件が設定されるブレークポイント設定テーブルと、前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因を格納するブレークポイント履歴テーブルと、前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが一致したか否かを判定する判定手段と、前記判定手段によって肯定の判定がなされたとき、デバッガプログラムを起動させる起動手段とを有することを特徴とするマルチプロセッサシステムが提供される。
【００１５】
また、請求項２記載の発明によれば、複数のプロセッサを備えたマルチプロセッサシステムにおいて、デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件が時系列に沿って設定されるブレークポイント設定テーブルと、前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因を時系列に沿って格納するブレークポイント履歴テーブルと、前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが、時系列順序を含めて一致したか否かを判定する判定手段と、前記判定手段によって肯定の判定がなされたとき、デバッガプログラムを起動させる起動手段とを有することを特徴とするマルチプロセッサシステムが提供される。
【００１６】
また、請求項５記載の発明によれば、複数のプロセッサを備えたマルチプロセッサシステムに適用されるデバッグ方法において、デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件をブレークポイント設定テーブルに設定する設定ステップと、前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因をブレークポイント履歴テーブルに格納する格納ステップと、前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが一致したか否かを判定する判定ステップと、前記判定ステップによって肯定の判定がなされたとき、デバッガプログラムを起動させる起動ステップとを有することを特徴とするデバッグ方法が提供される。
【００１７】
また、請求項６記載の発明によれば、複数のプロセッサを備えたマルチプロセッサシステムに適用されるデバッグ方法において、デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件を時系列に沿ってブレークポイント設定テーブルに設定する設定ステップと、前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因を時系列に沿ってブレークポイント履歴テーブルに格納する格納ステップと、前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが、時系列順序を含めて一致したか否かを判定する判定ステップと、前記判定ステップによって肯定の判定がなされたとき、デバッガプログラムを起動させる起動ステップとを有することを特徴とするデバッグ方法が提供される。
【００１８】
さらに、上記デバッグ方法をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００１９】
本発明によれば、デバッグ対象プログラムを複数のプロセッサが実行した場合の前記デバッグ対象プログラムにおける所定のブレークポイントに対応する各プロセッサにおける各ブレークポイント発生条件をブレークポイント設定テーブルに設定するとともに、前記デバッグ対象プログラムを前記複数のプロセッサが実行した場合に各プロセッサで発生した各ブレーク要因をブレークポイント履歴テーブルに格納する。そして、前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件が全て成立し、かつ、前記ブレークポイント履歴テーブルに格納されたブレーク要因と前記ブレークポイント設定テーブルに設定されたブレークポイント発生条件とが一致したとき、デバッガプログラムを起動させる。
【００２０】
これにより、デバッグ専用の特別なハードウェアを付加することなく、複数のブレークポイントを設定でき、デバッグ効率を向上できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００２２】
〔第１の実施の形態〕
図１は、本発明の第１の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図である。
【００２３】
図中、１０１はマルチプロセッサシステムであり、オペレーティングシステムおよび主要なアプリケーションプログラムが実行されるメインプロセッサ（以下「メインＣＰＵ」という）１０２と、メインＣＰＵ１０２に制御信号１０９により接続された複数（ｎ個）のサブプロセッサ（以下「サブＣＰＵ」という）１０３ａ〜１０３ｄと、これらのＣＰＵ１０２，１０３ａ〜１０３ｄと共有バス１０８により接続されるメモリコントローラ１０７と、メモリコントローラ１０７に接続された共有メモリ１０６とから構成される。
【００２４】
マルチプロセッサシステム１０１内の各ＣＰＵは、メモリコントローラ１０７を介して、共有メモリ１０６に対し情報の書き込みと読み出しの機能を持っており、共有メモリ１０６を介して情報交換を行う。また、マルチプロセッサシステム１０１の動作手順を定めるプログラムは共有メモリ１０６内に記憶され、メインＣＰＵ１０２はそのプログラムに従い、制御信号１０９を介して複数のサブＣＰＵ１０３ａ〜１０３ｄの制御を行いながら動作する。マルチプロセッサシステム１０１で実行されるプログラムのデバッグは、メインＣＰＵ１０２にデバッガ制御部１０４を介して接続されたデバッガ端末１０５を用いて行う。
【００２５】
なお、マルチプロセッサシステム１０１内のメインＣＰＵ１０２とサブＣＰＵ１０３ａ〜１０３ｄとは異なるタイプのプロセッサである。
【００２６】
すなわち、メインＣＰＵ１０２は、オペレーティングシステムやアプリケーションプログラムを実行するための高性能なプロセッサで構成される。メインＣＰＵ１０２からは、制御信号１０９を介して複数のサブＣＰＵ１０３ａ〜１０３ｄの起動・停止・再開といった制御が可能である。
【００２７】
複数のサブＣＰＵ１０３ａ〜１０３ｄは全て、同一タイプのプロセッサで構成され、マルチプロセッサシステム１０１内にある機能モジュール間の通信制御など、限られた目的で使用される専用プロセッサである。
【００２８】
図２は、共有メモリ１０６に設定格納される情報や領域を示す図である。なお、図２でも、図１と同様に、メインＣＰＵ１０２と複数のサブＣＰＵ１０３ａ〜１０３ｄとデバッガ制御部１０４とデバッガ端末１０５とを示すが、メモリコントローラ１０７の図示は省略している。
【００２９】
共有メモリ１０６内には、メインＣＰＵ１０２で実行されるデバッグ対象プログラム２０１、デバッガプログラム２０２、デバッガインタフェース２０３、コマンドインタフェース２０４、ブレークポイント設定テーブル２０５、ブレークポイント履歴テーブル２０６、命令退避領域２０７、レジスタ退避領域２０８が設定されている。
【００３０】
ここで、デバッガインタフェース２０３は、デバッガプログラム２０２とデバッグ対象プログラム２０１との間の情報交換に使用される。コマンドインタフェース２０４は、デバッガ端末１０５からオペレータにより入力されるコマンドを受け付け、デバッガプログラム２０２に情報を受け渡すのに使用される。またコマンドインタフェース２０４は、デバッガプログラム２０２からの情報をデバッガ端末１０５に表示し、オペレータに対してデバッグ情報を通知するのに使用される。ブレークポイント設定テーブル２０５は、デバッガ対象プログラム２０１を中断させるためのブレークポイントを設定するためのテーブルである（図３を参照して後述）。ブレークポイント履歴テーブル２０６は、発生したブレーク要因の履歴を格納するテーブルである（図６を参照して後述）。命令退避領域２０７は、ブレークポイント発生条件を示す命令がトラップ命令などに置換される場合、元の命令の退避格納領域として使用される。レジスタ退避領域２０８は、デバッグ対象プログラム２０１の実行が中断され、デバッガプログラム２０２が呼び出され実行されるときに、各ＣＰＵのレジスタ内容を退避させ、格納しておくための退避格納領域として使用される。
【００３１】
つぎに、ブレークポイントの設定について説明する。
【００３２】
ここで、メインＣＰＵ１０２上においてアプリケーションプログラムが実行され、メインＣＰＵ１０２の制御の下で、サブＣＰＵ１０３ａ〜１０３ｄが同時並列的にマルチプロセッサシステム１０１内の機能モジュール間の通信制御プログラムを実行しているものとする。このような状態において、メインＣＰＵ１０２上で実行されているアプリケーションプログラムをデバッグ対象プログラム２０１としてデバッグを行う場合、オペレータは、予めプログラムを中断してレジスタやメモリの情報を調べるためのブレークポイントを、デバッガ端末１０５からコマンドを入力して設定する。オペレータがデバッガ端末１０５から入力したコマンドは、コマンドインタフェース２０４を介してデバッガプログラム２０２で受け付けられる。デバッガプログラム２０２は、コマンドを解析し、デバッガインタフェース２０３を介して、共有メモリ１０６内のブレークポイント設定テーブル２０５にブレークポイントを設定する。
【００３３】
図３は、本発明の第１の実施の形態におけるブレークポイント設定テーブル２０５の記載内容を示す図である。
【００３４】
メインＣＰＵ１０２とｎ個のサブＣＰＵ１０３ａ〜１０３ｄとに対してブレークポイント発生条件をそれぞれ設定し、各ＣＰＵでブレークポイント発生条件が満たされたときトラップを発生し、デバッグ対象プログラムを中断させるために、ブレークポイント設定テーブル２０５は、１つのブレークポイントに対し複数個の設定フィールド（図３に示すテーブルの各行）を持っている。
【００３５】
各フィールドは、ＣＰＵ／ＩＤが記載される列２０５ａと、ブレークポイント発生条件が記載される列２０５ｃと、その条件を有効にするか否かを示すフラグが記載される２０５ｂとから構成される。ブレーク要因を発生させる対象となる全てのＣＰＵについて、このブレークポイント設定テーブル２０５に、ＣＰＵ／ＩＤとブレークポイント発生条件と有効フラグとを設定することで、デバッグ対象プログラム２０１に対するブレークポイントの設定が終了する。
【００３６】
列２０５ａに記載されるＣＰＵ／ＩＤは、各ＣＰＵに一意に付与されている個別の識別子であり、マルチプロセッサシステム１０１内に同一のＣＰＵ／ＩＤを持つＣＰＵが複数存在することは無い。列２０５ｃに記載されるブレークポイント発生条件としては、対応のＣＰＵが実行する命令の中で、対象となる１つの命令の命令アドレスが設定される。列２０５ｂに記載される有効フラグは、対応のブレークポイント発生条件が有効であるか、すでにそのブレーク要因が発生して無効になっているかを示す。
【００３７】
なお、ブレーク要因を発生させるＣＰＵは複数である必要はない。また、ブレークポイント発生条件が１つしか設定されていなくても問題はない。ブレーク要因を発生させる対象とならないＣＰＵに関しては、フィールドを設定する必要はない。
【００３８】
また、ブレークポイント発生条件として設定された命令アドレスに対応する命令は、デバッガプログラム２０２によりトラップ命令に置換される。置換される前の命令は命令退避領域２０７に退避格納される。
【００３９】
ブレークポイント設定テーブル２０５は、図３では１つのみ示しているが、ブレークポイント設定テーブル２０５は、異なるブレークポイントごとに設けられ、したがって、共有メモリ１０６内に複数格納されることもある。
【００４０】
オペレータが所望のブレークポイントの設定を終了すると、デバッガプログラム２０２からデバッグ対象プログラム２０１に制御を移し、デバッガ対象プログラム２０１を始動させる。
【００４１】
次に、図４を参照してデバック処理を説明する。
【００４２】
図４は、本発明の第１の実施の形態におけるデバッグ処理の手順を示すフローチャートである。
【００４３】
デバッグ対象プログラム２０１実行中に、デバッガプログラム２０２により各サブＣＰＵ１０３ａ〜１０３ｄとメインＣＰＵ１０２とのプログラムカウンタの情報が、マルチプロセッサシステム１０１の動作クロックに合わせて収集される。
【００４４】
メインＣＰＵ１０２及び複数のサブＣＰＵ１０３ａ〜１０３ｄのうちの１つが、ブレークポイント発生条件の設定により置換されたトラップ命令を検知すると、図５に示すトラップ処理ルーチンが実行される（Ｓ１）。
【００４５】
なお、ブレーク要因が発生していない場合、デバッグ対象プログラム２０１の実行は要因が発生するまで続けられる。
【００４６】
図５は、トラップ処理ルーチンの手順を示すフローチャートである。
【００４７】
図５において、トラップ命令が検知されると、トラップ命令を検知したＣＰＵがトラップ処理ルーチンを実行する。すなわち、トラップ命令を検知したＣＰＵがサブＣＰＵ１０３ａ〜１０３ｄのうちの１つである場合、メインＣＰＵ１０２へトラップ命令の検知を通知し、メインＣＰＵ１０２は、制御信号１０９を介して他のサブＣＰＵの実行を停止する。サブＣＰＵからメインＣＰＵ１０２へのトラップ命令の検知通知は、割り込み処理により行なわれる。一方、トラップ命令を検知したＣＰＵがメインＣＰＵ１０２である場合、メインＣＰＵ１０２は、制御信号１０９を介して全てのサブＣＰＵ１０３ａ〜１０３ｄの実行を停止する（Ｓ１１）。
【００４８】
次に、トラップ命令を検知したＣＰＵは、デバッガプログラム２０２を介してブレークポイント履歴テーブル２０６にアクセスして、ＣＰＵ／ＩＤ、プログラムカウンタの内容、および、システムタイマの値を格納する（Ｓ１２）。
【００４９】
図６は、ブレークポイント履歴テーブル２０６の記載内容を示す図である。
【００５０】
ブレークポイント履歴テーブル２０６には、トラップ命令を検知したＣＰＵのＣＰＵ／ＩＤが記載される列２０６ａと、該ＣＰＵのプログラムカウンタの値が記載される列２０６ｂと、システムタイマの値が記載される列２０６ｃとが設けられ、トラップ命令の検知ごとに１行ずつ記載が行なわれる。
【００５１】
ステップＳ１２では同時に、トラップ命令を検知したＣＰＵが、ブレークポイント設定テーブル２０５にアクセスして、該ＣＰＵのＣＰＵ／ＩＤに対応するフィールド（行）の列２０５ｂの有効フラグをクリアし、そのフィールドを無効にする。また、命令をトラップ命令に置換する前の命令に書き戻す。
【００５２】
次に、ブレークポイント設定テーブル２０５内の列２０５ｂにおいて、有効フラグが有効に設定されているものが残っていないかを走査する（Ｓ１３）。その結果、有効フラグが有効になっているものがあった場合（Ｓ１３でＹＥＳ）、トラップ命令を検知したＣＰＵでトラップ命令に置換される前の命令をシミュレートした後、実行停止しているサブＣＰＵの実行を再開させ、デバッグ対象プログラム２０１の実行を再開させる（Ｓ１１）。次のトラップ命令が検知されるまでデバッグ対象プログラム２０１の実行が進められる。これにより、このブレークポイントに関して、ブレークポイント設定テーブル２０５内の全てのブレークポイント発生条件が満たされるまで、デバッグ対象プログラム２０１の実行が進められる。
【００５３】
一方、ブレークポイント設定テーブル２０５内の列２０５ｂにおいて有効フラグがすべて無効に設定されている場合（Ｓ１３でＮＯ）、トラップ命令を検知したＣＰＵのＣＰＵ／ＩＤがメインＣＰＵ１０２のものであれば、メインＣＰＵ１０２は、全てのサブＣＰＵ１０３ａ〜１０３ｄの動作を停止し、さらに、全てのＣＰＵレジスタの内容をレジスタ退避領域２０８に退避格納する（Ｓ１４）。その後、デバッガプログラム２０２を呼び出し（Ｓ１５）、デバッガプログラム２０２に制御を移す（図４のステップＳ２へ進む）。
【００５４】
一方、トラップ命令を検知したＣＰＵのＣＰＵ／ＩＤがサブＣＰＵ１０３ａ〜１０３ｄうちの１つであれば、メインＣＰＵ１０２へのトラップ命令の検知の通知が発生し、トラップ処理ルーチンを介して全てのＣＰＵレジスタの内容が、レジスタ退避領域２０８に退避格納された後（Ｓ１４）、デバッガプログラム２０２が呼び出され（Ｓ１５）、デバッガプログラム２０２に制御が移される（図４のステップＳ２へ進む）。同時に、メインＣＰＵ１０２は、制御信号１０９を介して、それぞれ同時並列的に動作している他のサブＣＰＵの実行を停止する。
【００５５】
次に図４のステップＳ２に戻って、該ステップＳ２では、デバッガプログラム２０２が呼び出され、起動されるが、この詳細な内容を、図７を参照して説明する。
【００５６】
図７は、図４のステップＳ２の詳細な内容を示すフローチャートである。
【００５７】
デバッガプログラム２０２が呼び出されると、デバッガプログラム２０２に制御を移すための環境が設定される（Ｓ２１）。つぎに、全てのＣＰＵの情報をデバッガプログラム２０２から走査できるようにするために、全てのＣＰＵの同期化処理が行われる（Ｓ２２）。
【００５８】
ここで、デバッガプログラム２０２は、デバッガインタフェース２０３を介して、ブレークポイント設定テーブル２０５とブレークポイント履歴テーブル２０６との比較処理を行う（Ｓ２３）。すなわち、ブレークポイント設定テーブル２０５内のブレークポイント発生条件（図３の列２０５ｃ）と、ブレークポイント履歴テーブル２０６内のプログラムカウンタの値（図６の列２０６ｂ）とが一致し、かつ、それらに対応するＣＰＵ／ＩＤ同士が一致していた場合には（Ｓ２４でＹＥＳ）、ブレークポイント履歴テーブル２０６の内容を基に、ＣＰＵ／ＩＤ、ブレーク発生条件、及びブレーク要因発生時のシステムタイマ値を含むブレークヒットメッセージを生成する（Ｓ２５）。一方、一致していない場合には（Ｓ２４でＮＯ）、エラーメッセージを生成する（Ｓ２６）。
【００５９】
デバッガプログラム２０２は、生成されたメッセージをデバッガ端末１０５に表示して（Ｓ２６）、オペレータに対しブレークヒットの状況を通知した後、図４のステップＳ３へ進む。
【００６０】
図４のステップＳ３では、デバッグ対象プログラム２０１の実行が中断され、デバッガプログラム２０２に制御が移ることによって、オペレータがデバッグ端末１０５からデバッグコマンドの入力を行い、デバッグ作業を開始する。この処理内容を、図８を参照して説明する。
【００６１】
図８は、図４のステップＳ３の詳細な内容を示すフローチャートである。
【００６２】
オペレータによりデバッガ端末１０５からコマンドが入力されると、デバッガプログラム２０２は、コマンドインタフェース２０４を介してコマンドを受け付け、コマンドの解析を行う（Ｓ３１）。その結果、デバッガ端末１０５から入力されたコマンドが、デバッグ対象プログラム２０１への復帰コマンドであった場合（Ｓ３２でＹＥＳ）、デバッガプログラム２０１が呼び出された時点の環境へ設定を戻し（Ｓ３３）、デバッグ対象プログラム２０１のデバッグ作業を終了する。
【００６３】
一方、デバッガ端末１０５から入力されたコマンドが、デバッグ対象プログラム２０１への復帰コマンドでなかった場合（Ｓ３２でＮＯ）、デバッガプログラム２０２は、さらにコマンドインタフェース２０４を介して、オペレータによるデバッガ端末１０５からの入力を受け付け、デバッグ対象プログラム２０１によるデバッグ作業を継続させる。オペレータが所望のデバッグ情報を収集し、デバッグ対象プログラム２０１への復帰コマンドをデバッガ端末１０５から入力するまでデバッグ作業が続けられる。
【００６４】
図４に戻って、デバッガ端末１０５からオペレータにより、デバッグ対象プログラム２０１への復帰が指示されると（Ｓ４）、命令退避領域２０７に退避されていた、トラップ命令へ置換される前の命令を、トラップ命令を検知したＣＰＵでシミュレートし、次に、レジスタ退避領域２０８に退避されていた他の全てのＣＰＵのレジスタ情報を復帰させた後で、デバッグ対象プログラム２０１の実行が再開され（Ｓ５）、次のブレークポイントにヒットするまでデバッグ対象プログラム２０１の実行が続けられる。
【００６５】
なお、上記の第１の実施の形態では、デバッグ対象プログラム２０１は、メインＣＰＵ１０２上で実行されるアプリケーションプログラムとして説明したが、サブＣＰＵ１０３ａ〜１０３ｄ上で実行される、マルチプロセッサシステム１０１内の機能モジュール間の通信制御プログラムをデバッグ対象プログラム２０１として、同じ方法でデバッグすることも可能である。
【００６６】
以上説明したように、本発明の第１の実施の形態におけるデバッガプログラム２０２では、ブレークポイントの設定に関して、ブレークポイント設定テーブル２０５を用いて、複数のＣＰＵにおいてブレークポイント発生条件を個別に設定できるようにし、それらの条件がすべて満たされ、かつ、ブレークポイント設定テーブル２０５とブレークポイント履歴テーブル２０６とが一致した場合に、デバッグ対象プログラム２０１の実行を中断し、デバッガプログラム２０２を呼び出すようにしたので、次のような効果を奏することができる。
【００６７】
１）マルチプロセッサシステム１０１の所望の状態からデバッグ作業を開始でき、デバッグの効率を向上させることができる。
【００６８】
２）ブレークポイント設定テーブル２０５を、共有メモリ１０６内に任意個数、設定することができ、したがって、複数個のブレークポイントを設定できる。
【００６９】
３）デバッグ専用の特別なハードウェアを必要とせず、マルチプロセッサシステム１０１でデバッグ作業を容易に行うことができる。
【００７０】
〔第２の実施の形態〕
次に、本発明の第２の実施の形態を説明する。
【００７１】
第２の実施の形態の構成は、基本的に第１の実施の形態の構成と同じであるので、第２の実施の形態の説明においては、第１の実施の形態の構成と同一部分には同一の参照符号を付して、第１の実施の形態の説明を流用し、異なる部分だけを説明する。
【００７２】
図９は、本発明の第２の実施の形態におけるブレークポイント設定テーブルの記載内容を示す図である。
【００７３】
メインＣＰＵ１０２とｎ個のサブＣＰＵ１０３ａ〜１０３ｄとに対してブレークポイント発生条件をそれぞれ設定し、各ＣＰＵでブレークポイント発生条件が満たされたときトラップを発生し、デバッグ対象プログラムを中断させるために、第２の実施の形態におけるブレークポイント設定テーブルも、１つのブレークポイントに対し複数個の設定フィールド（図９に示すテーブルの各行）を持っている。
【００７４】
各フィールドは、ＣＰＵ／ＩＤが記載される列２０５ｇと、ブレークポイント発生条件が記載される列２０５ｆと、そのブレークポイント発生条件の前に発生するブレークポイント発生条件を表す先行ＩＤが記載される列２０５ｈと、そのブレークポイント発生条件の後に発生するブレークポイント発生条件を表す後続ＩＤが記載される列２０５ｉと、そのブレークポイント発生条件を有効にするか否かを示すフラグが記載される列２０５ｅと、そのブレークポイント発生条件個別の識別子であるＩＤが記載される列２０５ｄとから構成される。
【００７５】
ブレーク要因を発生させる対象となる全てのＣＰＵについて、ブレークポイント発生条件を発生させたい順番に、ブレークポイント設定テーブルにおける最上のフィールドから順に、ＩＤ、ＣＰＵ／ＩＤ、先行ＩＤ、後続ＩＤ、ブレークポイント発生条件を設定し、また有効フラグを設定する。これによって、デバッグ対象プログラム２０１に対するブレークポイントの設定が終了する。
【００７６】
列２０５ｇに記載されるＣＰＵ／ＩＤは、各ＣＰＵに一意に付与される識別子であり、マルチプロセッサシステム１０１内に同一のＣＰＵ／ＩＤを持つＣＰＵが複数存在することは無い。列２０５ｆに記載されるブレークポイント発生条件としては、対応のＣＰＵが実行する命令の中で、対象となる１つの命令の命令アドレスが設定される。列２０５ｅに記載される有効フラグは、対応のブレークポイント発生条件が有効であるか、すでにそのブレーク要因が発生して無効になっているかを示す。列２０５ｄに記載されるＩＤは、対応のフィールドを識別するための識別子であり、ブレークポイント設定テーブル内で重複する値になることは無い。列２０５ｈに記載される先行ＩＤは、対応のブレークポイント発生条件の１つ前に発生するブレークポイント発生条件のＩＤを示す。一連のブレークポイント発生条件のうちで最初に発生させたいブレークポイント発生条件には、先行ＩＤに、ＳＴＡＲＴ条件であることを示すＩＤが設定される。列２０５ｉに記載される後続ＩＤは、対応のブレークポイント発生条件の次に発生するブレークポイント発生条件のＩＤを示す。一連のブレークポイント発生条件で最後に発生させたいブレークポイント発生条件には、後続ＩＤに、ＥＮＤ条件であることを示すＩＤが設定される。
【００７７】
なお、ブレーク要因を発生させるＣＰＵは複数である必要はない。ある１つのＣＰＵでのブレークポイント発生条件を、時系列に沿って設定するようにしてもよい。また、ブレークポイント発生条件が１つのみ設定されていてもよい。ブレーク要因を発生させる対象とならないＣＰＵに関しては、フィールドを設定する必要はない。
【００７８】
また、ブレークポイント設定テーブル内の列２０５ｈの先行ＩＤに、ＳＴＡＲＴ条件のＩＤが設定され、一連のブレークポイント発生条件で発生順序が最初のブレークポイント発生条件に設定されたフィールド（行）において、列２０５ｆに記載されたブレークポイント発生条件で示されるアドレスに対応する命令は、デバッガプログラム２０２によりトラップ命令に書き変えられる。置換される前の命令は命令退避領域２０７に退避格納される。
【００７９】
次に、図４に示す第１の実施の形態におけるデバッグ処理のフローチャートを流用して、第２の実施の形態におけるデバッグ処理を説明する。
【００８０】
デバッグ対象プログラム２０１の実行中に、メインＣＰＵ１０２を介して各サブＣＰＵ１０３ａ〜１０３ｄとメインＣＰＵ１０２のプログラムカウンタの情報が、マルチプロセッサシステム１０１の動作クロックに合わせて収集されている。
【００８１】
メインＣＰＵ１０２及び複数のサブＣＰＵ１０３ａ〜１０３ｄのうちの１つのＣＰＵがブレークポイント発生条件の設定により置換されたトラップ命令を検知すると、図１０に示すトラップ処理ルーチンが実行される（Ｓ１）。
【００８２】
なお、ブレーク要因が発生していない場合、デバッグ対象プログラム２０１の実行は要因が発生するまで続けられる。
【００８３】
図１０は、トラップ処理ルーチンの手順を示すフローチャートである。
【００８４】
図１０において、トラップ命令が検知されると、トラップ命令を検知したＣＰＵがトラップ処理ルーチンを実行する。すなわち、トラップ命令を検知したＣＰＵがサブＣＰＵ１０３ａ〜１０３ｄのうちの１つである場合、トラップ命令が検知されたことがメインＣＰＵ１０２へ通知され、メインＣＰＵ１０２は制御信号１０９を介して他のサブＣＰＵの実行を停止する。サブＣＰＵからメインＣＰＵ１０２へのトラップ命令の検知通知は割り込み処理により通知される。一方、トラップ命令を検知したＣＰＵがメインＣＰＵ１０２である場合、メインＣＰＵ１０２は制御信号１０９を介して全てのサブＣＰＵ１０３ａ〜１０３ｄの実行を停止する（Ｓ４１）。
【００８５】
次に、トラップ命令を検知したＣＰＵは、デバッガプログラム２０２を介してブレークポイント履歴テーブル２０６にアクセスし、ＣＰＵ／ＩＤとプログラムカウンタの内容とシステムタイマの値とを格納する。同時に、トラップ命令を検知したＣＰＵは、ブレークポイント設定テーブル２０５において、該ＣＰＵのＣＰＵ／ＩＤに対応するフィールドの有効フラグをクリアし、そのフィールドを無効にする。また、命令をトラップ命令に置換する前の命令に書き戻す（Ｓ４２）。
【００８６】
次に、ブレークポイント設定テーブル２０５内に、次に発生すべきブレーク要因が設定されていないか走査する（Ｓ４３）。その結果、次に発生すべきブレーク要因が設定されている場合（Ｓ４３でＹＥＳ）、次のブレークポイント発生条件に設定されたフィールドに対応する命令はトラップ命令に置換される。そして、置換される前の命令は命令退避領域２０７に退避格納される。トラップ命令を検知したＣＰＵは、トラップ命令に置換される前の命令をシミュレートした後、メインＣＰＵ１０２が、実行停止しているサブＣＰＵの動作を再開させ、デバッグ対象プログラム２０１の実行を再開させる（Ｓ４４）。次のトラップ命令が検知されるまでデバッグ対象プログラム２０１の実行が進められる。
【００８７】
ブレークポイント設定テーブル２０５内の有効フラグがすべて無効に設定され、かつ、後続ＩＤにＥＮＤ条件を示すＩＤが設定されて、次に発生すべきブレーク要因が設定されていない場合（Ｓ４３でＮＯ）、トラップ命令を検知したＣＰＵのＣＰＵ／ＩＤがメインＣＰＵ１０２のものであれば、メインＣＰＵ１０２は全てのサブＣＰＵ１０３ａ〜１０３ｄの実行動作を停止し、さらに、全てのＣＰＵレジスタの内容をレジスタ退避領域２０８に退避格納した後（Ｓ４５）、デバッガプログラム２０２を呼び出し（Ｓ４６）、デバッガプログラム２０２に制御を移す（図４のステップＳ２へ進む）。
【００８８】
一方、トラップ命令を検知したＣＰＵのＣＰＵ／ＩＤがサブＣＰＵ１０３ａ〜１０３ｄうちの１つのものであれば、メインＣＰＵ１０２へのトラップ命令の検知の通知が発生し、トラップ処理ルーチンを介して全てのＣＰＵレジスタの内容がレジスタ退避領域２０８に退避された後（Ｓ４５）、デバッガプログラム２０２が呼び出され（Ｓ４６）、デバッガプログラム２０２に制御が移される（図４のステップＳ２へ進む）。同時に、メインＣＰＵ１０２は制御信号１０９を介して、それぞれ同時並列的に動作している他のサブＣＰＵを停止する。
【００８９】
なお、ブレークポイント設定テーブル２０５内の有効フラグがすべて無効に設定され、かつ、次に発生すべき要因が設定されている場合には、エラーメッセージを生成し、デバッガ端末１０５にエラーメッセージを表示し、オペレータにエラーの発生を通知する。
【００９０】
次に図４のステップＳ２に戻って、該ステップＳ２では、デバッガプログラム２０２が呼び出され、起動されるが、この詳細な処理内容は、図７に示す第１の実施の形態の処理と同じである。
【００９１】
ただし、ステップＳ２４において、第２の実施の形態では、ブレークポイント設定テーブル２０５内のブレークポイント発生条件と、ブレークポイント履歴テーブル２０６内のプログラムカウンタの値とが全て一致し、かつ、該当するＣＰＵ／ＩＤがすべて一致し、かつ、ブレークポイント設定テーブル２０５内で設定されたブレークポイント発生順序とブレークポイント履歴テーブル２０６内に記録されたブレークポイント発生順序とが一致した場合に（Ｓ２４でＹＥＳ）、ブレークポイント履歴テーブル２０６の内容を基に、ＣＰＵ／ＩＤ、ブレークポイント発生条件、及びブレーク要因発生時のシステムタイマ値を含むブレークヒットメッセージが生成される（Ｓ２５）。一方、それらのいずれかの１つでも一致していない場合には、エラーメッセージが生成される（Ｓ２６）。
【００９２】
上記以外のステップでの処理内容は、第１の実施の形態と同じである。
【００９３】
以上説明したように、第２の実施の形態におけるデバッガプログラム２０２では、ブレークポイントの設定に関して、ブレークポイント設定テーブルを用いて、複数のＣＰＵにおいてブレークポイント発生条件を個別に設定できるようにし、かつ、ブレークポイントの発生順序を設定できるようにする。そして、それらのブレークポイント発生条件がすべて発生し、かつ、ブレークポイント設定テーブルとブレークポイント履歴テーブルとが発生順序を含めて一致した場合に、デバッグ対象プログラム２０１を中断し、デバッガプログラム２０２を呼び出すようにしたので、次のような効果を奏することができる。
【００９４】
１）ブレーク要因の発生順序を時系列に指定できるため、複数プロセッサの各々で細かな条件を設定でき、デバッグ効率を向上させることが可能である。
【００９５】
２）第２の実施の形態でも、ブレークポイント設定テーブル２０５を、共有メモリ１０６内に任意個数、設定することができ、したがって、複数個のブレークポイントを設定できる。
【００９６】
３）第２の実施の形態でも、デバッグ専用の特別なハードウェアを必要とせず、マルチプロセッサシステム１０１でデバッグ作業を容易に行うことができる。
【００９７】
４）ある１つのＣＰＵに注目し、そのＣＰＵのみで発生するブレークポイント発生条件を時系列に沿って複数設定し、デバッグすることが可能である。
【００９８】
〔他の実施の形態〕
なお、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ、ＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００９９】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
【０１００】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１０１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【０１０２】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の第１の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図である。
【図２】共有メモリに設定格納される情報や領域を示す図である。
【図３】本発明の第１の実施の形態におけるブレークポイント設定テーブルの記載内容を示す図である。
【図４】本発明の第１の実施の形態におけるデバッグ処理の手順を示すフローチャートである。
【図５】第１の実施の形態におけるトラップ処理ルーチンの手順を示すフローチャートである。
【図６】ブレークポイント履歴テーブルの記載内容を示す図である。
【図７】図４のステップＳ２の詳細な内容を示すフローチャートである。
【図８】図４のステップＳ３の詳細な内容を示すフローチャートである。
【図９】本発明の第２の実施の形態におけるブレークポイント設定テーブルの記載内容を示す図である。
【図１０】第２の実施の形態におけるトラップ処理ルーチンの手順を示すフローチャートである。
【符号の説明】
【０１０４】
１０１  マルチプロセッサシステム
１０２  メインＣＰＵ（プロセッサ）
１０３ａ〜１０３ｄ    サブＣＰＵ（プロセッサ）
１０４      デバッガ制御部
１０５  デバッガ端末
１０６  共有メモリ
１０７  メモリコントローラ
１０８  システムバス
１０９  制御信号
２０１  デバッグ対象プログラム
２０２  デバッガプログラム
２０３  デバッガインタフェース
２０４  コマンドインタフェース
２０５  ブレークポイント設定テーブル
２０６  ブレークポイント履歴テーブル
２０７  命令退避領域
２０８  レジスタ退避領域
【図１】
2005352591.tif 000003
【図２】
2005352591.tif 000004
【図３】
2005352591.tif 000005
【図４】
2005352591.tif 000006
【図５】
2005352591.tif 000007
【図６】
2005352591.tif 000008
【図７】
2005352591.tif 000009
【図８】
2005352591.tif 000010
【図９】
2005352591.tif 000011
【図１０】
2005352591.tif 000012