(57)【要約】  デバッグスタブサーバは、デバッグプログラムに対する複数の制御指示を複数の情報端末から受けるとともに、該複数の制御指示を調停することにより、該複数の制御指示のうちの同時に実行可能なものを選択して該デバッグプログラムに転送する調停部と、前記調停部により選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する転送部と、を備えている。複数の情報端末から独立に発せられた制御指示に応じて、デバッグプログラムにより得られたデバッグ結果を、複数の情報端末の間で共有できるようにする。
2012077704.tif 000002
【特許請求の範囲】
【請求項１】
デバッグプログラムに対する複数の制御指示を複数の情報端末から受けるとともに、該複数の制御指示を調停することにより、該複数の制御指示のうちの同時に実行可能なものを選択して該デバッグプログラムに転送する調停部と、
前記調停部により選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する転送部と、を備えていることを特徴とするデバッグスタブサーバ。
【請求項２】
前記調停部は、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知することを特徴とする、請求項１に記載のデバッグスタブサーバ。
【請求項３】
前記調停部は、前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停することを特徴とする、請求項１または２に記載のデバッグスタブサーバ。
【請求項４】
前記調停部は、前記デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停することを特徴とする、請求項１ないし３のいずれか１項に記載のデバッグスタブサーバ。
【請求項５】
請求項１ないし４のいずれか１項に記載のデバッグスタブサーバと、
利用者から受けた前記デバッグプログラムに対する制御指示を前記デバッグスタブサーバに送出するとともに、前記デバッグスタブサーバから転送されたデバッグ結果を表示するように、それぞれ構成された複数の情報端末と、を備えていることを特徴とするデバッグシステム。
【請求項６】
前記デバッグスタブサーバは、前記デバッグプログラムを実行するデバッグ対象装置または前記複数の情報端末のうちのいずれかに設けられていることを特徴とする、請求項５に記載のデバッグシステム。
【請求項７】
前記複数の情報端末は、それぞれ、デバッグ結果の表示方法を保持する表示方式ライブラリと、
前記表示方式ライブラリに格納された表示方法に応じて前記デバッグ結果を表示する表示指定部と、を備えていることを特徴とする、請求項５または６に記載のデバッグシステム。
【請求項８】
デバッグスタブサーバが、デバッグプログラムに対する複数の制御指示を複数の情報端末から受ける工程と、
前記複数の制御指示を調停することにより、前記複数の制御指示のうちの同時に実行可能なものを選択する工程と、
前記選択された制御指示を前記デバッグプログラムに転送する工程と、
前記選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する工程と、を含むことを特徴とするデバッグ方法。
【請求項９】
前記デバッグスタブサーバが、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知する工程を含むことを特徴とする、請求項８に記載のデバッグ方法。
【請求項１０】
前記デバッグスタブサーバが、前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停することを特徴とする、請求項８または９に記載のデバッグ方法。
【請求項１１】
前記デバッグスタブサーバが、前記デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停することを特徴とする、請求項８ないし１０のいずれか１項に記載のデバッグ方法。
【請求項１２】
デバッグプログラムに対する複数の制御指示を複数の情報端末から受ける処理と、
前記複数の制御指示を調停することにより、前記複数の制御指示のうちの同時に実行可能なものを選択する処理と、
前記選択された制御指示を前記デバッグプログラムに転送する処理と、
前記選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する処理とを、コンピュータに実行させることを特徴とするプログラム。
【請求項１３】
前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知する処理を、コンピュータに実行させることを特徴とする、請求項１２に記載のプログラム。
【請求項１４】
前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停する処理を、コンピュータに実行させることを特徴とする、請求項１２または１３に記載のプログラム。
【請求項１５】
前記デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停する処理を、コンピュータに実行させることを特徴とする、請求項１２ないし１４のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１０−２７２８４０号（２０１０年１２月０７日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、デバッグスタブサーバ、デバッグ方法およびプログラムに関し、特に、複数の情報端末からのデバッグを実現するデバッグスタブサーバ、デバッグ方法およびプログラムに関する。
【背景技術】
【０００２】
非特許文献１、非特許文献２、特許文献１、および、特許文献２において、デバッグシステムが記載されている。図１０は、これらの文献に記載されたデバッグシステムの構成を概略的に示すブロック図である。図１０を参照すると、デバッグシステムは、デバッグ対象装置２１０と、デバッグを行う作業者が用いる情報端末２２０とを備え、デバッグ対象装置２１０と、情報端末２２０とが１対１となるように構成されている。デバッグシステムが複数のデバッグ対象装置２１０を含む場合、または、複数のプロセスを含む場合もある。【０００３】
非特許文献１に記載されたデバッグシステムは、１つのデバッグ対象装置２１０と情報端末２２０とが１対１となり、デバッグ対象装置２１０の内部状態を表示するとともに、デバッグ対象装置２１０におけるプログラム実行の停止および再開の制御を可能とする画面を有する。かかるデバッグシステムによると、これらの制御に基づいて、デバッグ対象装置２１０の内部状態を表示しつつ、プログラムの誤りを検出し、または、ハードウエアの誤りを検出し、誤りを修復することができる。【０００４】
非特許文献１においては、デバッグ対象装置２１０と情報端末２２０とが、同一の計算機上に実装されている。一方、非特許文献２においては、デバッグ機能はデバッグ対象装置上２１０に存在し、外部接続された情報端末２２０からリモート（遠隔）でデバッグ操作が行われる。このとき、デバッグ機能はデバッグ対象装置２１０上のサーバにビルトインされており、予めビルトインされた機能以外のデバッグ機能を実行することはできない。【０００５】
図１１は、特許文献１に記載されたデバッグシステムの構成を示すブロック図である。このデバッグシステムは、複数のＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）準拠集積回路のテスト装置および複数の集積回路をテストするためのテストシステムである。図１１を参照すると、テストシステムにおいて、オンチップデバグプロトコルを含む集積回路のそれぞれに、対応するテストプロトコルを実行するために動作可能なマスタコントローラ１０２を設け、コンフィギュレーションデータにしたがってマスタコントローラ１０２が指令するように、マスタコントローラ１０２と、集積回路のうちの選択されたものとの間にテストループを選択的に形成するプログラマブルスイッチ（非図示）を設け、テストループは、テストプロトコルのうちの選択されたものを実行することを可能にし、集積回路のそれぞれにマスタコントローラ１０２を接続するデータバスを設ける。【０００６】
特許文献２の制御装置を調整するための方法および操作ユニットは、同様に複数の集積回路またはプロセスを扱う。特許文献２においては、メモリを使って複数のプロセスをバッファし、そのバッファをシリアルに読み出すことによって、複数プロセスの情報が外部に提供される。【０００７】
また、特許文献３において、タスク間共有ルーチンを使用したプログラムのデバッグを同時に並行して行う場合に、例えば、タスク間共有ルーチンを使用したオンラインプログラム等で、複数の端末すなわち複数のタスクで、互いに独立した環境でデバッグすることを可能とするデバッグ処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１４８５２８号公報（図１）
【特許文献２】特開２０１０−１７３６３３号公報
【特許文献３】特開平６−１０３１０５号公報
【非特許文献】
【０００９】
【非特許文献１】Ｊｏｎａｔｈａｎ  Ｂ．Ｒｏｓｅｎｂｅｒｇ著、吉川邦夫訳、「デバッガの理論と実装」、アスキー出版社、１９９８年、ｐ．４２‐５２
【非特許文献２】“ｇｄｂｓｅｒｖｅｒ，”［ｏｎｌｉｎｅ］，［平成２２年１０月１日検索］，インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｆｔｐ．ｇｎｕ．ｏｒｇ／ｏｌｄ−ｇｎｕ／Ｍａｎｕａｌｓ／ｇｄｂ−５．１．１／ｈｔｍｌ＿ｎｏｄｅ／ｇｄｂ＿１３０．ｈｔｍｌ＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記の特許文献等の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。【００１１】
複雑なシステム、または、複数のプロセスが同時に動作する装置に対しては、複数のプロセスを実際に同時に発生させて、その検証・デバッグを行う必要がある。例えば、１つのシステムを複数人で共有してデバッグを行う場合には、デバッグのための情報を共有し、複数の情報端末から同時にデバッグ画面を閲覧する必要がある。また、複数の情報端末から指示されたブレークポイントの設定、ステップ実行等の制御を排他的に行う必要がある。【００１２】
しかし、上述のデバッグシステムにおいては、デバッグの状態を複数の情報端末から監視することができない。また、複数の情報端末からの制御が競合した場合には、矛盾なくデバッグを進めることができない。【００１３】
特に、上述のデバッグシステムにおいては、複数の情報端末において同時にデバッグ情報を表示することができない。なぜなら、上述のデバッグシステムにおいては、単一の情報端末によるデバッグを想定しているからである。【００１４】
また、上述のデバッグシステムにおいては、複数の情報端末から同時にデバッグ制御を行うことができず、複数の情報端末からの制御により、矛盾が生じたり、または、制御不能な状態が生じたりするおそれがある。【００１５】
なお、特許文献３に記載されたデバッグ処理装置は、複数の情報端末から受けた命令を調停し、複数の情報端末のそれぞれに対して独立したデバッグ環境を提供するものである。すなわち、特許文献３に記載されたデバッグ処理装置によると、各情報端末から受けた命令に応じて、各情報端末には別個のデバッグ結果が出力される。このとき、複数の情報端末の間でデバッグ結果を共有することができず、一方の情報端末の命令に基づくデバッグ結果を、他方の情報端末は把握することができない。【００１６】
そこで、複数の情報端末から独立に発せられた制御指示に応じて、デバッグプログラムにより得られたデバッグ結果を、複数の情報端末の間で共有できるようにすることが課題となる。本発明の目的は、かかる課題を解決するデバッグスタブサーバ、デバッグ方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１７】
本発明の第１の視点に係るデバッグスタブサーバは、
デバッグプログラムに対する複数の制御指示を複数の情報端末から受けるとともに、該複数の制御指示を調停することにより、該複数の制御指示のうちの同時に実行可能なものを選択して該デバッグプログラムに転送する調停部と、
前記調停部により選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する転送部と、を備えている。【００１８】
本発明の第２の視点に係るデバッグ方法は、
デバッグスタブサーバが、デバッグプログラムに対する複数の制御指示を複数の情報端末から受ける工程と、
前記複数の制御指示を調停することにより、前記複数の制御指示のうちの同時に実行可能なものを選択する工程と、
前記選択された制御指示を前記デバッグプログラムに転送する工程と、
前記選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する工程と、を含む。【００１９】
本発明の第３の視点に係るプログラムは、
デバッグプログラムに対する複数の制御指示を複数の情報端末から受ける処理と、
前記複数の制御指示を調停することにより、前記複数の制御指示のうちの同時に実行可能なものを選択する処理と、
前記選択された制御指示を前記デバッグプログラムに転送する処理と、
前記選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する処理と、をコンピュータに実行させる。
【発明の効果】
【００２０】
本発明に係るデバッグスタブサーバ、デバッグ方法およびプログラムによると、複数の情報端末から独立に発せられた制御指示に応じて、デバッグプログラムにより得られたデバッグ結果を、複数の情報端末の間で共有することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明に係るデバッグスタブサーバの構成の概要を示すブロック図である。
【図２】第１の実施形態に係るデバッグシステムの構成を一例として示すブロック図である。
【図３】第１の実施形態に係るデバッグシステムの動作を一例として示すフローチャートである。
【図４】第１の実施形態に係るデバッグシステムの動作を一例として示すフローチャートである。
【図５】第２の実施形態に係るデバッグシステムの構成を一例として示すブロック図である。
【図６】実施例におけるデバッグスタブサーバの動作を一例として示すフローチャートである。
【図７】実施例における情報端末中のデバッグコントローラの構成を一例として示すブロック図である。
【図８】実施例における情報端末中のデバッグ画面の構成を一例として示すブロック図である。
【図９】実施例におけるデバッグスタブサーバの構成を一例として示すブロック図である。
【図１０】デバッグシステムの構成を一例として示すブロック図である。
【図１１】特許文献１に記載されたテスト装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２３】
図１を参照すると、デバッグスタブサーバ（１１）は、複数の情報端末（２０ａ〜２０ｃ）によるデバッグを可能とするための制御機構を有する。デバッグスタブサーバ（１１）は、デバッグプログラムを実行するデバッグ対象装置（１０）と、複数の情報端末（２０ａ〜２０ｃ）との間に設けられる。また、デバッグスタブサーバ（１１）と情報端末（２０ａ〜２０ｃ）とは、例えば、ＴＣＰ−ＩＰ、ＵＳＢ、シリアル等のネットワークで接続されている。本発明においては、このように、デバッグ対象装置（１０）に近いデバッグスタブサーバ（１１）と、情報端末（２０ａ〜２０ｃ）とを分けることで、複数の情報端末によるデバッグを実現する。デバッグスタブサーバ（１１）は、デバッグ対象装置（１０）で実行されるデバッグプログラムに対して、ブレークポイントの設定、ステップ実行等の制御や、プロファイルやカバレッジ収集等の性能品質情報の解析指示と、結果の表示を一括して扱う。
【００２４】
図１を参照すると、デバッグスタブサーバ（１１）は、調停部（１６）および転送部（１８）を備えている。調停部（１６）は、デバッグプログラムに対する複数の制御指示を複数の情報端末から受けるとともに、該複数の制御指示を調停することにより、該複数の制御指示のうちの同時に実行可能なものを選択して該デバッグプログラムに転送する。また、転送部（１８）は、調停部（１６）により選択された制御指示に応じて、デバッグプログラムによって取得されたデバッグ結果を、複数の情報端末に転送する。
【００２５】
調停部（１６）は、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知することが好ましい。また、調停部（１６）は、前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停するようにしてもよい。さらに、調停部（１６）は、デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停するようにしてもよい。
【００２６】
本発明に係るデバッグスタブサーバによると、複数の情報端末から独立に発せられた制御指示に応じて、デバッグプログラムにより得られたデバッグ結果を、複数の情報端末の間で共有することができる。なぜなら、デバッグスタブサーバは、複数の情報端末から受けた複数の制御指示のうちの同時に実行可能なものをデバッグプログラムに転送し、同時に実行可能な制御指示に応じてデバッグプログラムによって得られたデバッグ結果を、複数の情報端末に送出するからである。
【００２７】
また、本発明に係るデバッグスタブサーバによると、複数の情報端末へデバッグ情報を供給することができる。なぜなら、デバッグスタブサーバが一端デバッグ情報をとりまとめてから、情報端末への情報提供を行うからである。
【００２８】
さらに、本発明に係るデバッグスタブサーバによると、複数の情報端末から同時にデバッグ制御を行うことができる。なぜなら、デバッグスタブサーバは、制御条件ライブラリに基いて排他制御を行うからである。
【００２９】
また、本発明に係るデバッグスタブサーバによると、各情報端末におけるデバッグ画面を自由に構成することができる。なぜなら、デバッグスタブサーバは、デバッグ画面ではなく、デバッグ情報のみを転送することで、情報端末はデバッグ画面を自由に構成することができるからである。
【００３０】
また、本発明において、下記の形態が可能である。
［形態１］
上記第１の視点に係るデバッグスタブサーバのとおりである。
［形態２］
前記調停部は、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知することが好ましい。
［形態３］
前記調停部は、前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停するようにしてもよい。
［形態４］
前記調停部は、前記デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停するようにしてもよい。
［形態５］
デバッグシステムは、上記のデバッグスタブサーバと、利用者から受けた前記デバッグプログラムに対する制御指示を前記デバッグスタブサーバに送出するとともに、前記デバッグスタブサーバから転送されたデバッグ結果を表示するように、それぞれ構成された複数の情報端末と、を備えていることが好ましい。
［形態６］
前記デバッグスタブサーバは、前記デバッグプログラムを実行するデバッグ対象装置、または、前記複数の情報端末のうちのいずれかに設けられていてもよい。
［形態７］
前記複数の情報端末は、それぞれ、デバッグ結果の表示方法を保持する表示方式ライブラリと、
前記表示方式ライブラリに格納された表示方法に応じて前記デバッグ結果を表示する表示指定部と、を備えていることが好ましい。
［形態８］
上記第２の視点に係るデバッグ方法のとおりである。
［形態９］
上記形態に係るデバッグ方法において、デバッグスタブサーバが、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知する工程を含むことが好ましい。
［形態１０］
上記形態に係るデバッグ方法において、デバッグスタブサーバが、前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停するようにしてもよい。
［形態１１］
上記形態に係るデバッグ方法において、デバッグスタブサーバが、前記デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停するようにしてもよい。
［形態１２］
上記第３の視点に係るプログラムのとおりである。このプログラムは、ノントランジエントなコンピュータ読み取り可能な（ｎｏｎ−ｔｒａｎｓｉｅｎｔ  ｃｏｍｐｕｔｅｒ−ｒｅａｄａｂｌｅ）記録媒体に記憶することができ、かつ、記憶状態のものとして具体化されることができる。
［形態１３］
上記形態に係るプログラムにおいて、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知する処理をコンピュータに実行させることが好ましい。
［形態１４］
上記形態に係るプログラムにおいて、前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停するようにしてもよい。
［形態１５］
上記形態に係るプログラムにおいて、前記デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停するようにしてもよい。
【００３１】
（実施形態１）
第１の実施形態に係るデバッグシステムについて、図面を参照して説明する。
【００３２】
図２は、本実施形態に係るデバッグシステムの構成を示すブロック図である。図２を参照すると、デバッグシステムは、被検証装置であるデバッグ対象装置１０と、複数の情報端末２０ａ〜２０ｃとを備えている。図２において、一例として、情報端末の台数を３台としたが、情報端末の台数はこれに限られるものではない。
【００３３】
デバッグ対象装置１０は、デバッグスタブサーバ１１、検証ターゲットシステム１２、および制御条件ライブラリ１４を備えている。
【００３４】
プログラム実行部１３は、検証ターゲットシステム１２の中で、デバッグスタブサーバ１１と個別に起動される。情報端末２０ａ〜２０ｃは、それぞれ、デバッグコントローラ３１ａ〜３１ｃおよびデバッグ画面３２ａ〜３２ｃを備えている。また、デバッグシステムは、デバッグプログラム７１、および、デバッグ実行用データ７２を含む。
【００３５】
デバッグスタブサーバ１１は、各情報端末２０ａ〜２０ｃのデバッグコントローラ３１ａ〜３１ｃと、イーサネット、ＵＳＢ、シリアル通信等で接続される。デバッグスタブサーバ１１は、検証ターゲットシステム１２のデバッグおよび解析を行うプログラム実行部１３からデバッグプログラムおよびデータを受け、デバッグプログラムとデータに対して、各情報端末２０ａ〜２０ｃの指示に基づいてデバッグまたは解析を行う。デバッグスタブサーバ１１は、デバッグコントローラ３１ａ〜３１ｃを経由して、各情報端末２０ａ〜２０ｃのデバッグ画面３２ａ〜３２ｃに、デバッグまたは解析の結果を送出する。
【００３６】
デバッグスタブサーバ１１は、デバッグコントローラ３１ａ〜３１ｃから停止、ステップ、情報取得等の制御指示を受けると、制御条件ライブラリ１４に記載された制御条件に従って、相反する排他的な制御指示に対しては、実行可能な制御指示を決定して制御を行う。また、デバッグスタブサーバ１１は、制御指示のうちの実行できないものについては、デバッグコントローラ３１ａ〜３１ｃを経由してデバッグ画面３２ａ〜３２ｃにその旨を通知する。
【００３７】
プログラム実行部１３は、デバッガ、カバレッジ取得、自動テスト、メモリ管理、プロファイル取得等のデバッグ解析プログラムを起動する。プログラム実行部１３は、デバッグスタブサーバ１１の指示に基づいて動作し、結果をデバッグスタブサーバ１１に返す。
【００３８】
デバッグコントローラ３１ａ〜３１ｃは、デバッグプログラム７１およびデバッグ実行用データ７２を生成し、これらをデバッグスタブサーバ１１に転送する。また、デバッグコントローラ３１ａ〜３１ｃは、デバッグの開始、終了、停止、表示指示、停止位置の指定等を制御し、デバッグ画面３２ａ〜３２ｃへの表示を行う。
【００３９】
デバッグ画面３２ａ〜３２ｃは、デバッグコントローラ３１ａ〜３１ｃを経由してデバッグスタブサーバ１１から受信したデバッグ情報、デバッグ指示のためのボタン、コマンド入力画面、ソースコードを表示するとともに、ソースコード中の停止場所を指定できるように表示を行う。
【００４０】
制御条件ライブラリ１４は、複数の情報端末２０ａ〜２０ｃから同時に同様の指示を受けた場合のように、同時に実行することができない複数の指示を受けた場合における調停のルールを保持する。デバッグスタブサーバ１１は、制御条件ライブラリ１４を参照して、複数の指示に対する排他制御を行う。
【００４１】
デバッグプログラム７１およびデバッグ実行用データ７２は、それぞれ、デバッグ対象装置１０での実行およびデバッグを目的とし、検証ターゲットシステム向けにコンパイルされたプログラム、および、その実行用データである。
【００４２】
図３および図４は、本実施形態に係るデバッグシステムの動作を一例として示すフローチャートである。図２〜図４を参照して、本実施形態のデバッグシステム全体の動作について説明する。
【００４３】
まず、図３のフローチャートを参照して、動作中に複数の情報端末から制御指示が出される場合について説明する。
【００４４】
情報端末２０ａ〜２０ｃ、または、別のシステムにて、デバッグ対象装置１０の検証ターゲットシステム１２で実行しうるデバッグプログラム７１として、内部状態を知るためのデバッグプログラム、または、解析を目的したデバッグプログラムを生成する（ステップＳ１１）。これらのデバッグプログラムは、コンパイルオプションを設定したり、または、コンパイル中もしくはコンパイル後に別プログラムを実行したりすることによって生成される。
【００４５】
また、デバッグまたは解析を行うためのデータとして、デバッグ実行用データ７２を準備する（ステップＳ１２）。
【００４６】
ステップＳ１１、Ｓ１２と並んで、デバッグコントローラ３１ａ〜３１ｃを起動するとともに、デバッグ画面３２ａ〜３２ｃを起動する（ステップＳ３１）。
【００４７】
デバッグ対象装置１０上にデバッグスタブサーバ１１を起動し、イーサネット、ＵＳＢ、ＰＣＩ、シリアル等の通信手段により、デバッグスタブサーバ１１とデバッグコントローラ３１ａ〜３１ｃとの間の接続を確立する（ステップＳ３２）。
【００４８】
ステップＳ３２で確立されたネットワークを用いて、ステップＳ１１、Ｓ１２で準備されたデバッグプログラム７１およびデバッグ実行用データ７２を、デバッグスタブサーバ１１を経由して、プログラム実行部１３に転送する（ステップＳ１３）。
【００４９】
デバッグコントローラ３１ａ〜３１ｃのうちのいずれかから、デバッグプログラム７１の起動指示が出力され（ステップＳ１４）、デバッグプログラム７１が起動される（ステップＳ１５）。
【００５０】
デバッグプログラム７１の起動後に、プログラムの停止位置の指定や、取得情報の種類の量の変更の指示がデバッグ画面３２ａ〜３２ｃで指示され、デバッグコントローラ３１ａ〜３１ｃから出力される（ステップＳ１６−１、Ｓ１６−２）。
【００５１】
デバッグスタブサーバ１１は、予め制御条件が設定されている制御条件ライブラリ１４に問い合わせて、制御条件に合致する制御を実行し、実行されない制御に関しては、制御指定元のデバッグコントローラ３１ａ〜３１ｃを経由して、デバッグ画面３２ａ〜３２ｃにその旨を表示する（ステップＳ１７）。
【００５２】
実行可能な制御付きでプログラム実行部１３からデバッグプログラム７１にデータが投入されて実行され（ステップＳ１８）、デバッグ結果の取得と転送が行われる（ステップＳ１９）。
【００５３】
ステップＳ１９で取得された結果は、プログラム実行部１３、デバッグスタブサーバ１１およびデバッグコントローラ３１ａ〜３１ｃを経由して、デバッグコントローラ３１ａ〜３１ｃが指定する表示方法によって、デバッグ画面３２ａ〜３２ｃに表示される（ステップＳ２０）。
【００５４】
表示された結果に応じて、デバッグを実行する場合には、ステップＳ１６−１、Ｓ１６−２に戻り、再度条件を変えて制御を行う。
【００５５】
一方、デバッグを終了する場合には、デバッグ画面３２ａ〜３２ｃから終了指示が出力される（ステップＳ２１）。終了指示がデバッグスタブサーバ１１に到着すると、デバッグが終了する（ステップＳ２２）。
【００５６】
次に、図４のフローチャートを参照して、動作前に複数の情報端末から制御指示が出される場合について説明する。
【００５７】
情報端末２０ａ〜２０ｃ、または、別のシステムにて、デバッグ対象装置１０の検証ターゲットシステム１２で実行しうるデバッグプログラム７１として、内部状態を知るためのデバッグプログラム、または、解析を目的したデバッグプログラムを生成する（ステップＳ４１）。これらのデバッグプログラムは、コンパイルオプションを設定したり、または、コンパイル中もしくはコンパイル後に別プログラムを実行したりすることによって生成される。
【００５８】
また、デバッグまたは解析を行うためのデータとして、デバッグ実行用データ７２を準備する（ステップＳ４２）。
【００５９】
ステップＳ４１、Ｓ４２と並んで、デバッグコントローラ３１ａ〜３１ｃを起動するとともに、デバッグ画面３２ａ〜３２ｃを起動する（ステップＳ６１）。
【００６０】
デバッグ対象装置１０上にデバッグスタブサーバ１１を起動し、イーサネット、ＵＳＢ、ＰＣＩ、シリアル等の通信手段により、デバッグスタブサーバ１１とデバッグコントローラ３１ａ〜３１ｃとの間の接続を確立する（ステップＳ６２）。
【００６１】
ステップＳ６２で確立されたネットワークを用いて、ステップＳ４１、Ｓ４２で準備されたデバッグプログラム７１およびデバッグ実行用データ７２を、デバッグスタブサーバ１１を経由して、プログラム実行部１３に転送する（ステップＳ４３）。
【００６２】
次に、デバッグプログラムの実行条件の指定が行われる（ステップＳ４４−１、Ｓ４４−２）。
【００６３】
デバッグスタブサーバ１１は、制御条件ライブラリ１４に保存されている制御条件に問い合わせて、実行条件を設定する。実行されない制御に関しては、制御指定元のデバッグコントローラ３１ａ〜３１ｃを経由して、デバッグ画面３２ａ〜３２ｃにその旨を表示する（ステップＳ４５）。
【００６４】
実行可能な制御付きデバッグプログラム７１の起動が指示され（ステップＳ４６）、デバッグプログラム７１が起動する（ステップＳ４７）。
【００６５】
プログラム実行部１３からデバッグプログラム７１にデータが投入され、デバッグプログラム７１が実行される（ステップＳ４８）。
【００６６】
ステップＳ４８で取得された結果は、プログラム実行部１３、デバッグスタブサーバ１４およびデバッグコントローラ３１ａ〜３１ｃを経由して、デバッグコントローラ３１ａ〜３１ｃが指定する表示方法により、デバッグ画面３２ａ〜３２ｃに表示される（ステップＳ４９）。
【００６７】
デバッグ画面３２ａ〜３２ｃから終了指示が出力され、出力された終了指示がデバッグスタブサーバ１１に到着すると、デバッグが終了する（ステップＳ５０）。
【００６８】
また、動作前および動作中の両方において、複数の制御指示が到来する場合には、上述の２通りの動作を組み合わせた動作を行うようにする。
【００６９】
（実施形態２）
第２の実施形態に係るデバッグシステムについて、図面を参照して説明する。
【００７０】
図５は、本実施形態に係るデバッグシステムの構成を示すブロック図である。図５を参照すると、デバッグシステムは、被検証装置であるデバッグ対象装置１０と、複数の情報端末２０ａ〜２０ｃとを備えている。図５において、一例として、情報端末の台数を３台としたが、情報端末の台数はこれに限られるものではない。
【００７１】
第１の実施形態においては、デバッグスタブサーバ１１は、デバッグ対象装置１０上に設けられている（図２）。一方、本実施形態においては、デバッグスタブサーバ１１は、情報端末２０ａ上に設けられている。図５に示した各部の動作は、第１の実施形態における各部の動作と同様であることから、説明を省略する。
【００７２】
本実施形態のように、情報端末２０ａ〜２０ｃのいずれかの上にデバッグスタブサーバ１１を設けるようにしてもよい。また、デバッグスタブサーバ１１とプログラム実行部１３との間に、何らかの通信手段が存在するようなデバッグシステムであれば、デバッグ対象装置１０および情報端末２０ａ〜２０ｃ以外の別個の装置上に、デバッグスタブサーバ１１を設けるようにしてもよい。本実施形態のデバッグシステムによると、第１の実施形態に係るデバッグシステムと同様の動作を実現することができる。
【実施例】
【００７３】
次に、具体的な実施例に基づいて、上記実施形態に係るデバッグシステムの動作を説明する。本実施例では、情報端末の台数を３台とするが、情報端末の台数は任意の台数に拡張することができる。【００７４】
本実施例では、図２に示すように、デバッグスタブサーバ１１とプログラム実行部１３とが独立している。また、デバッグスタブサーバ１１は、複数の情報端末２０ａ〜２０ｃのデバッグコントローラ３１ａ〜３１ｃとネットワーク接続されている。さらに、デバッグスタブサーバ１１は、デバッグの実行および制御、結果の転送、ならびに、デバッグコントローラ３１ａ〜３１ｃとの通信を行う。これにより、複数情報端末２０ａ〜２０ｃによるデバッグが実現される。【００７５】
ここでは、３台の情報端末２０ａ〜２０ｃから、デバッグ対象装置１０をデバッグするものとする。デバッグ対象装置１０と情報端末２０ａ〜２０ｃとは、イーサネット、ＵＳＢ、ＰＣＩ、ＰＣＩＥｘｐｒｅｓｓ、シリアル等で物理的に接続されている。したがって、デバッグ対象装置１０と情報端末２０ａ〜２０ｃとの間で、データの授受を行うことができる。【００７６】
デバッグを開始する前に、例えば、ＵＮＩＸのＣ言語のｄｂｘコマンドでデバッグを可能とする「−ｇ」コマンドを用いたコマンドＣＣによるコンパイルを行い、実行可能なデバッグプログラムを準備する（図３のステップＳ１１）。このとき、プロファイルの取得、カバレッジの取得、自動テスト、メモリ管理状況の調査等のコマンドが実行可能となる。【００７７】
また、デバッグを行うためのテストデータ、および、デバッグデータを準備する（ステップＳ１２）。これらのデータは、情報端末２０ａ〜２０ｃまたはデバッグ対象装置１０で生成してもよいし、これら以外の他の装置で生成してもよい。【００７８】
ステップＳ１１、Ｓ１２における準備の後、各情報端末２０ａ〜２０ｃ上で、デバッグコントローラ３１ａ〜３１ｃおよびデバッグ画面３２ａ〜３２ｃを起動する（ステップＳ３１）。また、デバッグ対象装置１０上で、デバッグスタブサーバ１１を起動する（ステップＳ３２）。デバッグ画面３２ａ〜３２ｃを起動すると、デバッグコントローラ３１ａ〜３１ｃが同時に起動されるようにしてもよい。【００７９】
次に、複数の情報端末２０ａ〜２０ｃのうちの１つの情報端末２０ａのデバッグ画面３２ａから、デバッグプログラム７１の起動指示が出力される（ステップＳ１４）。【００８０】
プログラム実行部１３は、デバッグコントローラ３１ａおよびデバッグスタブサーバ１１を経由して、起動指示を受けると、デバッグプログラム７１を起動する（ステップＳ１５）。【００８１】
ここで、デバッグプログラム７１の起動時に複数の制御指定がある場合には、デバッグスタブサーバ１１は排他制御判定を行い、同時に行うことができる制御のみをオプションとして指定し、それ以外の制御をデバッグ画面３２ａ〜３２ｃ上にエラーとして表示する（図４のステップＳ４５）。【００８２】
一方、各情報端末２０ａ〜２０ｃのデバッグ画面３２ａ〜３２ｃにおいて、デバッグプログラム７１の動作時に複数の制御指定がある場合には、デバッグスタブサーバ１１は排他制御判定を行い、同時に行うことができる制御のみをオプションとして指定し、それ以外の制御をデバッグ画面３２ａ〜３２ｃ上にエラーとして表示する（図３のステップＳ１７）。【００８３】
次に、制御付きのデバッグプログラム７１で、例えば、停止、再開等の制御を繰り返しつつ、デバッグが終了するまでデバッグが継続され、デバッグの結果が各デバッグ画面３２ａ〜３２ｃに表示される（ステップＳ１８〜Ｓ２０）。制御の追加または削除を行いつつ、デバッグ終了の指示（ステップＳ２１）があるまで、デバッグが繰り返される。【００８４】
図６は、デバッグスタブサーバ１１により制御の排他性を判定する方法を示すフローチャートである。図６を参照すると、デバッグスタブサーバ１１は、すべての制御を一括して受け付ける（ステップＳ７１）。【００８５】
次に、デバッグスタブサーバ１１は、制御条件ライブラリ１４に記載されている制御の排他性または処理の優先順を利用して、制御可能な処理とその順序を決定する（ステップＳ７２）。【００８６】
制御条件ライブラリ１４において、制御の先着順、情報端末の優先度、制御の優先度等の処理の優先度がライブラリ化されている。制御条件ライブラリ１４は、デバッグスタブサーバ１１から参照可能な場所であれば、いずれの場所に配置してもよい。図２に示すように、制御条件ライブラリ１４をデバッグ対象装置１０上に設けてもよい。【００８７】
制御条件ライブラリ１４では、所定の方法で、排他性のある制御の検出、排他性がある場合の制御の決定、および、排他性のある制御の処理順が設定されている。例えば、停止と再開とでは排他性があるが、これらの制御の到着順、または、情報端末に付された番号順等の予め設定された方法で、停止または再開のいずれの制御を行うかが決定される。【００８８】
デバッグスタブサーバ１１において、これらの処理を実現するために、情報端末２０ａにおけるデバッグコントローラ３１ａは、以下の構成を有する。図７は、情報端末２０ａにおけるデバッグコントローラ３１ａの構成を示すブロック図である。図７を参照すると、デバッグコントローラ３１ａは、デバッグスタブサーバ１１との通信を受け持つネットワークインタフェース４１、制御条件を転送する制御条件転送部４２、制御エラーを受け取る制御エラー受け取り部４３、実行開始部４４、デバッグ結果を受け取る結果受け取り部４５、および、終了指示部４６を備えている。【００８９】
図８は、情報端末２０ａの構成のうちの図７に示した構成以外の構成を示すブロック図である。図８を参照すると、情報端末２０ａは、さらに、表示方式ライブラリ５６を備えている。また、デバッグ画面３２ａは、起動時制御部５１、動作時制御部５２、表示方法を指定する表示指定部５３、デバッグ結果を表示する結果表示部５４、および、制御エラーを表示する制御エラー表示部５５を有する。【００９０】
表示方式ライブラリ５６は、表示方式を設定する。表示方式ライブラリ５６と表示指定部５３により、例えば、あるレジスタの表示の非表示または表示、画面の配置および大きさをデバッグ画面ごとに切り替えたりすることが可能となる。【００９１】
図９は、デバッグスタブサーバ１１の構成を示すブロック図である。図９を参照すると、デバッグスタブサーバ１１は、情報端末２０ａとの通信を行う外部ネットワークインタフェース６１と、実行制御部６２と、データ、プログラムおよび結果を転送する転送部６３と、検証ターゲットシステム１２との通信を行う検証ターゲットインタフェース６４と、制御条件ライブラリ１４からの情報に基づいて制御順を決定する調停部６５とを備えている。【００９２】
さらに、デバッグ対象装置１０で複数のプロセスが動作している場合には、情報端末をプロセスごとに起動する方法を採用することで、本実施例と同様に、複数の情報端末からのデバッグが可能となる。【００９３】
本発明に係るデバッグシステムは、組込みシステム、計算機、マイクロプロセッサ、デジタル家電用途または携帯電話向けＬＳＩの検証、デバッグ、品質解析、性能解析等に適用することができる。【００９４】
本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００９５】
１０    デバッグ対象装置
１１    デバッグスタブサーバ
１２    検証ターゲットシステム
１３    プログラム実行部
１４    制御条件ライブラリ
１６    調停部
１８    転送部
２０ａ〜２０ｃ    情報端末
３１ａ〜３１ｃ    デバッグコントローラ
３２ａ〜３２ｃ    デバッグ画面
４１    ネットワークインタフェース
４２    制御条件転送部
４３    制御エラー受け取り部
４４    実行開始部
４５    結果受け取り部
４６    終了指示部
５１    起動時制御部
５２    動作時制御部
５３    表示指定部
５４    結果表示部
５５    制御エラー表示部
５６    表示方式ライブラリ
６１    外部ネットワークインタフェース
６２    実行制御部
６３    転送部
６４    検証ターゲットインタフェース
６５    調停部
７１    デバッグプログラム
７２    デバッグ実行用データ
１００    テストアーキテクチャ
１０２    マスタコントローラ
１０４    スレイブＪＴＡＧターゲット
１０６，１０８    ＪＴＡＧコネクタ
１１０    直列レジスタチェーン
１２０〜１２４    境界相互接続
２１０    デバッグ対象装置
２２０    情報端末
ＩＣ１１２〜ＩＣ１１８    集積回路
【図１】
2012077704.tif 000003
【図２】
2012077704.tif 000004
【図３】
2012077704.tif 000005
【図４】
2012077704.tif 000006
【図５】
2012077704.tif 000007
【図６】
2012077704.tif 000008
【図７】
2012077704.tif 000009
【図８】
2012077704.tif 000010
【図９】
2012077704.tif 000011
【図１０】
2012077704.tif 000012
【図１１】
2012077704.tif 000013
【手続補正書】
【提出日】平成25年6月7日(2013.6.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デバッグプログラムに対する複数の制御指示を複数の情報端末から受けるとともに、該複数の制御指示を調停することにより、該複数の制御指示のうちの同時に実行可能なものを選択して該デバッグプログラムに転送する調停部と、
前記調停部により選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する転送部と、を備える、デバッグスタブサーバ。
【請求項２】
前記調停部は、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知する、請求項１に記載のデバッグスタブサーバ。
【請求項３】
前記調停部は、前記デバッグプログラムに対する複数の制御指示を調停するためのルールを保持する制御条件ライブラリを参照して、受信した複数の制御指示を調停する、請求項１または２に記載のデバッグスタブサーバ。
【請求項４】
前記調停部は、前記デバッグプログラムに対する複数の制御指示を、制御指示の優先度、制御指示を送出した情報端末に付された番号、および、制御指示を受信した順序の少なくともいずれかに応じて調停する、請求項１ないし３のいずれか１項に記載のデバッグスタブサーバ。
【請求項５】
請求項１ないし４のいずれか１項に記載のデバッグスタブサーバと、
利用者から受けた前記デバッグプログラムに対する制御指示を前記デバッグスタブサーバに送出するとともに、前記デバッグスタブサーバから転送されたデバッグ結果を表示するように、それぞれ構成された複数の情報端末と、を備える、デバッグシステム。
【請求項６】
前記デバッグスタブサーバは、前記デバッグプログラムを実行するデバッグ対象装置または前記複数の情報端末のうちのいずれかに設けられている、請求項５に記載のデバッグシステム。
【請求項７】
前記複数の情報端末は、それぞれ、デバッグ結果の表示方法を保持する表示方式ライブラリと、
前記表示方式ライブラリに格納された表示方法に応じて前記デバッグ結果を表示する表示指定部と、を備える、請求項５または６に記載のデバッグシステム。
【請求項８】
デバッグスタブサーバが、デバッグプログラムに対する複数の制御指示を複数の情報端末から受ける工程と、
前記複数の制御指示を調停することにより、前記複数の制御指示のうちの同時に実行可能なものを選択する工程と、
前記選択された制御指示を前記デバッグプログラムに転送する工程と、
前記選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する工程と、を含む、デバッグ方法。
【請求項９】
前記デバッグスタブサーバが、前記複数の制御指示のうちの調停によって選択されなかった制御指示を送出した情報端末に、該制御指示が選択されなかった旨を通知する工程を含む、請求項８に記載のデバッグ方法。
【請求項１０】
デバッグプログラムに対する複数の制御指示を複数の情報端末から受ける処理と、
前記複数の制御指示を調停することにより、前記複数の制御指示のうちの同時に実行可能なものを選択する処理と、
前記選択された制御指示を前記デバッグプログラムに転送する処理と、
前記選択された制御指示に応じて前記デバッグプログラムによって取得されたデバッグ結果を、前記複数の情報端末に転送する処理と、をコンピュータに実行させる、プログラム。
【国際調査報告】
2012077704.tif 000014
2012077704.tif 000015
2012077704.tif 000016
2012077704.tif 000017