(57)【要約】【課題】ユーザの操作性及び利便性を向上させてデバッグ効率を高めることができるデバッグ装置を提供する。【解決手段】デバッグ装置１は、半導体デバイスの試験を行うテスタＴＥで用いられるテストプログラムＰのデバッグを行う汎用デバッガ２０と、汎用デバッガ２０の制御の下でテストプログラムＰの内容に応じたテスタＴＥに対する制御を行うテスト制御モジュール３０と、汎用デバッガ２０及びテスト制御モジュール３０の制御並びに汎用デバッガ２０及びテスト制御モジュール３０で得られる情報の取得が可能であって、テストプログラムＰの作成に必要な統合開発環境を提供するＩＤＥ１０とを備える。【選択図】図１
2010079341.tif 000002
【特許請求の範囲】
【請求項１】
半導体デバイスの試験を行う半導体試験装置で用いられる試験プログラムのデバッグを行うデバッグ手段と、当該デバッグ手段の制御の下で前記試験プログラムの内容に応じた前記半導体試験装置に対する制御を行う試験制御手段とを備えるデバッグ装置において、
前記デバッグ手段及び前記試験制御手段の制御並びに前記デバッグ手段及び前記試験制御手段で得られる情報の取得が可能であって、前記試験プログラムの作成に必要な統合開発環境を提供する開発環境提供手段を備えることを特徴とするデバッグ装置。
【請求項２】
前記開発環境提供手段は、前記デバッグ手段の制御及び前記デバッグ手段で得られる情報の取得が可能なデバッグ制御手段と、
前記試験制御手段に前記半導体試験装置の動作を中断させる制御を行うとともに、前記試験制御手段から前記半導体試験装置の動作が中断した旨を示す通知を取得した場合に前記デバッグ制御手段に前記デバッグ手段の動作を中断させる制御を行わせる中断制御手段と
を備えることを特徴とする請求項１記載のデバッグ装置。
【請求項３】
前記開発環境提供手段は、前記デバッグ制御手段が前記デバッグ手段から前記デバッグ手段の動作が中断した旨を示す通知を取得した場合に、当該通知に基づいて前記デバッグ手段の動作中断を示す情報の表示を行うことを特徴とする請求項２記載のデバッグ装置。
【請求項４】
前記開発環境提供手段は、前記デバッグ手段の制御及び前記デバッグ手段で得られる情報の取得が可能なデバッグ制御手段と、
前記デバッグ制御手段に前記デバッグ手段の動作開始又は動作停止の制御を行わせるとともに、前記デバッグ制御手段に前記デバッグ手段の動作開始の制御を行わせた場合には前記試験制御手段に前記試験プログラムを実行させる制御を行う実行制御手段と
を備えることを特徴とする請求項１記載のデバッグ装置。
【請求項５】
前記開発環境提供手段は、前記デバッグ制御手段から得られる前記試験プログラムの実行履歴情報に、ユーザによって記述されたユーザ記述関数の呼び出しが含まれているか否かを判断して、前記デバッグ手段による前記試験プログラムのステップ実行を前記デバッグ制御手段に制御させるステップ実行制御手段を備えることを特徴とする請求項２から請求項４記載のデバッグ装置。
【請求項６】
前記開発環境提供手段は、前記デバッグ制御手段から得られる前記試験プログラムの実行履歴情報に、ユーザによって記述されたユーザ記述関数の呼び出しが含まれているか否かの判断と、前記実行履歴情報で示される前記ユーザ記述関数及び他の関数の呼び出し状況の判断との少なくとも一方の判断を行って、前記実行履歴情報の表示制御を行う表示制御手段を備えることを特徴とする請求項２から請求項５記載のデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイスの試験を行う半導体試験装置で用いられる試験プログラムのデバッグを行うデバッグ装置に関する。
【背景技術】
【０００２】
周知の通り、半導体試験装置は、ユーザによって作成された試験プログラムに従って、被試験対象である半導体デバイス（以下、ＤＵＴ（Device Under Test）という）の試験を行う。デバッグ装置は、ユーザによって作成された試験プログラムが、半導体試験装置によって正常に解釈・実行されるように作成（記述）されているか否かを予め確認し、誤りがあればその誤りを修正するために用いられる。近年においては、Ｃ言語又はＣ＋＋言語等の汎用プログラミング言語の文法に則して試験プログラムが記述される傾向にあり、試験プログラム用のデバッグ装置も汎用プログラミング言語のデバッグに用いられるような汎用的なものが用いられている。
【０００３】
図１０は、従来のデバッグ装置の要部構成を示すブロック図である。図１０に示す通り、従来のデバッグ装置１００は、汎用ＩＤＥ（Integrated Development Environment：統合開発環境）１１０、汎用デバッガ１２０、テスト制御モジュール１３０、及び端末ソフト１４０を備えており、テスタ（半導体試験装置）２００に接続されて、テスタ２００で用いられるテストプログラム（試験プログラム）Ｐ１００のデバッグを行う。
【０００４】
汎用ＩＤＥ１１０は、デバッグ操作ツール１１１及びデバッグ制御モジュール１１２を備えており、デバッグ対象であるテストプログラムＰ１００に対するエディタ及びコンパイラ（図示省略）並びに汎用デバッガ１２０等のテストプログラムＰ１００の作成に必要なツールを１つのインターフェイスで統合して扱うことのできる環境を提供する。デバッグ操作ツール１１１は、デバッグ制御モジュール１１２との間でイベント制御を行うことにより、ユーザＵの指示に応じたデバッグ機能（ブレークポイント機能、ステップ実行機能、及びトレース機能等）を制御する。
【０００５】
デバッグ制御モジュール１１２は、テストプログラムＰ１００の実行プロセスを生成し、テストプログラムＰ１００と汎用デバッガ１２０との関連付けを行う。また、ユーザＵの指示に応じたデバッグ機能を実現するコマンドを生成して汎用デバッガ１２０に出力することにより、ユーザＵの指示に応じたデバッグ機能を実現する。更に、汎用デバッガ１２０から得られる各種情報をイベントとしてデバッグ操作ツール１１１に通知する。
【０００６】
汎用デバッガ１２０は、デバッグ制御モジュール１１２の制御の下で、Ｃ言語等の汎用プログラミング言語で記述されたプログラムのデバッグを行うものであり、テストプログラムＰ１００が汎用プログラミング言語の文法に則して記述されている場合には、そのデバッグを行うことも可能である。テスト制御モジュール１３０は、テスタ２００でテストプログラムＰ１００を実行させる上で必要となるテスト制御ライブラリＬ１００を備えており、このテスト制御ライブラリＬ１００を用いて、テストプログラムＰ１００に基づいてテスタ２００で行われるテスト（試験）の制御を行う。
【０００７】
端末ソフト１４０は、テスト制御モジュール１３０に対してユーザＵの指示を直接入力するものである。例えば、テスタ２００に特有の命令であって、汎用ＩＤＥ１１０で扱うことのできない特殊命令（例えば、テスタ２００の動作中断（テスタブレーク）を指示する命令）をテスト制御モジュール１３０に入力する。或いは、テストプログラムＰ１００の特殊な実行制御（例えば、テストプログラムＰ１００を実行させるためのスレッドを別途生成してテストプログラムＰ１００の実行を開始させる制御）を行うために、テストプログラムＰ１００の実行指示をテスト制御モジュール１３０に入力する。
【０００８】
次に、上記構成における従来のデバッグ装置１００の動作について説明する。デバッグ装置１００の動作は、（１）通常のデバッグ時の動作、（２）テスタブレークを行う場合の動作、（３）テストプログラムＰ１００の特殊な実行制御を行う場合の動作、に大別される。以下、これらについて順に説明する。
【０００９】
（１）通常のデバッグ時の動作
テストプログラムＰ１００のデバッグを行う場合には、ユーザＵがデバッグ操作ツール１１１を操作してテストプログラムＰ１００のデバッグ開始指示を行う。デバッグ開始指示がなされると、デバッグ操作ツール１１１からデバッグ制御モジュール１１２に対して、ユーザＵの指示に応じたテストプログラムＰ１００のデバッグを開始する旨の通知がなされる。かかる通知によって、デバッグ制御モジュール１１２はテストプログラムＰ１００の実行プロセスを生成し、テストプログラムＰ１００と汎用デバッガ１２０との関連付けを行って、汎用デバッガ１２０からテストプログラムＰ１００のデバッグを制御可能な状態にする。
【００１０】
以上の処理が終了すると、デバッグ制御モジュール１１２は汎用デバッガ１２０に対してコマンドを出力してテストプログラムＰ１００の実行を開始させる。すると、デバッグ制御モジュール１１２からデバッグ操作ツール１１１に対し、テストプログラムＰ１００の実行開始を示すプログラム開始イベントが通知され、デバッグ操作ツール１１１の表示はテストプログラムＰ１００が実行されている状態である旨を示す表示に更新される。ここで、ユーザＵがブレークポイント機能、ステップ実行機能、又はトレース機能等を指示した上でデバッグ開始指示を行うことにより、ユーザＵの指示に応じたデバッグ機能を実現することができる。
【００１１】
尚、テストプログラムＰ１００の実行が終了すると、汎用デバッガ１２０がデバッグ制御モジュール１１２によってなされたテストプログラムＰ１００と汎用デバッガ１２０との関連付けを自動的に解除し、デバッグ制御モジュール１１２に対してテストプログラムＰ１００の実行終了を通知する。すると、デバッグ制御モジュール１１２はデバッグ操作ツール１１１に対してプログラム終了イベントを通知し、これによりデバッグ操作ツール１１１の表示はテストプログラムＰ１００が実行が終了した状態である旨を示す表示に更新される。
【００１２】
（２）テスタブレークを行う場合の動作
テスタ２００の動作を中断させるテスタブレークを行う場合には、ユーザＵは汎用ＩＤＥ１１０とは別に端末ソフト１４０を用いてテスタブレークを実施するための特殊命令を入力する。この特殊命令が入力されると、テスト制御モジュール１３０はテスタ２００の動作を中断させ、動作の再開を示す命令が入力されるまで待ち状態になる。尚、かかる待ち状態のときに、ユーザＵが端末ソフト１４０を操作すれば、動作が中断したテスタ２００の状態を得ることもできる。また、ユーザＵが端末ソフト１４０を用いて所定の命令を入力すれば、中断したテスタ２００の動作を再開させることもできる。
【００１３】
（３）テストプログラムＰ１００の特殊な実行制御を行う場合の動作
テストプログラムＰ１００の特殊な実行制御を行う場合には、まずユーザＵが汎用ＩＤＥ１１０を用いてテストプログラムＰ１００を実行させる。次にユーザＵはデバッグ操作ツール１１１に指示を行い、実行状態にあるテストプログラムＰ１００を汎用デバッガ１２０の管理下に登録（アタッチ）する。尚、かかる登録によってテストプログラムＰ１００は一時停止状態になる。テストプログラムＰ１００が一時停止状態にあるときに、ユーザＵがテストプログラムＰ１００の実行指示をテスト制御モジュール１３０に入力することにより、テストプログラムＰ１００の実行が再開される。
【００１４】
尚、テストプログラムＰ１００の実行が終了した場合には、テストプログラムＰ１００を汎用デバッガ１２０の管理下から解除（デタッチ）する必要がある。しかしながら、テストプログラムＰ１００の実行が終了しても、テストプログラムＰ１００は解除されずに汎用デバッガ１２０の管理下に登録された状態のままになる。このため、ユーザＵは、端末ソフト１４０を用いてテストプログラムＰ１００の実行終了を確認し、テストプログラムＰ１００の実行終了が確認された場合にはデバッグ操作ツール１１１に指示を行い、実行が終了したテストプログラムＰ１００を汎用デバッガ１２０の管理下から解除する。
【００１５】
尚、半導体試験装置で用いられる試験プログラムのデバッグを行う従来のデバッグ装置の詳細については、例えば以下の非特許文献１を参照されたい。
【非特許文献１】石川淳也，他８名，「開発のプロが教える標準Ｅｃｌｉｐｓｅ３．１完全解説−インストールからリッチクライアント開発まで」，株式会社アスキー，２００５年１２月１６日，第５章
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ところで、上述した通り、従来のデバッグ装置では、テスタブレークを実施する命令のような特殊命令を汎用ＩＤＥ１１０で取り扱うことができないため、ユーザＵが端末ソフト１４０を用いてテスト制御モジュール１３０に特殊命令を直接入力している。仮に、この特殊命令を汎用ＩＤＥ１１０で扱うことができれば、ユーザＵが汎用ＩＤＥ１１０を用いてブレークポイント機能によりテストプログラムＰ１００の実行を中断する場合と同様の操作でテスタ２００の動作を中断させることができ、ユーザＵの手間が省けて操作性及び利便性が向上し、この結果としてデバッグ効率を高められると考えられる。
【００１７】
また、テストプログラムＰ１００の特殊な実行制御を行う場合にも、ユーザＵは汎用ＩＤＥ１１０のデバッグ操作ツール１１１の操作と端末ソフト１４０の操作とを行う必要がある。しかも、テストプログラムＰ１００の実行開始時及び実行終了時に端末ソフト１４０を操作しなければならず極めて煩雑である。仮に、以上のテストプログラムＰ１００の実行開始及び実行終了を汎用ＩＤＥ１１０から制御できれば、煩雑な操作が不要になって操作性及び利便性が向上し、この結果としてデバッグ効率も高められると考えられる。
【００１８】
ここで、テストプログラムＰ１００の大部分はテスタ２００のメーカによって提供され、ユーザＵによって作成される部分は僅かである。テストプログラムＰ１００のデバッグを行う場合には、ユーザＵによって作成された部分の実行結果がユーザＵにとっては重要であり、テスタ２００のメーカによって提供された部分の実行結果はユーザＵにとってはさほど重要ではない。このため、上述した特殊命令によるテストブレークやテストプログラムＰ１００の実行開始及び実行終了の制御を汎用ＩＤＥ１１０から実現する場合であっても、ユーザＵによって作成された部分の実行結果のみが表示されることが望ましい。何故ならば、ユーザＵにとって必要な情報のみが表示されて不要な情報が表示されないため、ユーザＵが実行結果を容易に把握することができ、これによりデバッグ効率を高めることができると考えられるからである。
【００１９】
本発明は上記事情に鑑みてなされたものであり、ユーザの操作性及び利便性を向上させてデバッグ効率を高めることができるデバッグ装置を提供することを目的とする。
【課題を解決するための手段】
【００２０】
上記課題を解決するために、本発明のデバッグ装置は、半導体デバイスの試験を行う半導体試験装置（ＴＥ）で用いられる試験プログラム（Ｐ）のデバッグを行うデバッグ手段（２０）と、当該デバッグ手段の制御の下で前記試験プログラムの内容に応じた前記半導体試験装置に対する制御を行う試験制御手段（３０）とを備えるデバッグ装置（１〜３）において、前記デバッグ手段及び前記試験制御手段の制御並びに前記デバッグ手段及び前記試験制御手段で得られる情報の取得が可能であって、前記試験プログラムの作成に必要な統合開発環境を提供する開発環境提供手段（１０、４０、５０）を備えることを特徴としている。
この発明によると、デバッグ手段及び試験制御手段の制御が開発環境提供手段によって直接行われるとともに、デバッグ手段及び試験制御手段で得られる情報の取得が開発環境提供手段によって直接行われる。
また、本発明のデバッグ装置は、前記開発環境提供手段が、前記デバッグ手段の制御及び前記デバッグ手段で得られる情報の取得が可能なデバッグ制御手段（１２、５２）と、前記試験制御手段に前記半導体試験装置の動作を中断させる制御を行うとともに、前記試験制御手段から前記半導体試験装置の動作が中断した旨を示す通知を取得した場合に前記デバッグ制御手段に前記デバッグ手段の動作を中断させる制御を行わせる中断制御手段（１３）とを備えることを特徴としている。
更に、本発明のデバッグ装置は、前記開発環境提供手段が、前記デバッグ制御手段が前記デバッグ手段から前記デバッグ手段の動作が中断した旨を示す通知を取得した場合に、当該通知に基づいて前記デバッグ手段の動作中断を示す情報の表示を行うことを特徴としている。
或いは、本発明のデバッグ装置は、前記開発環境提供手段が、前記デバッグ手段の制御及び前記デバッグ手段で得られる情報の取得が可能なデバッグ制御手段（４２、５２）と、前記デバッグ制御手段に前記デバッグ手段の動作開始又は動作停止の制御を行わせるとともに、前記デバッグ制御手段に前記デバッグ手段の動作開始の制御を行わせた場合には前記試験制御手段に前記試験プログラムを実行させる制御を行う実行制御手段（４１ａ）とを備えることを特徴としている。
また、本発明のデバッグ装置は、前記開発環境提供手段が、前記デバッグ制御手段から得られる前記試験プログラムの実行履歴情報に、ユーザによって記述されたユーザ記述関数の呼び出しが含まれているか否かを判断して、前記デバッグ手段による前記試験プログラムのステップ実行を前記デバッグ制御手段に制御させるステップ実行制御手段（５３）を備えることを特徴としている。
また、本発明のデバッグ装置は、前記開発環境提供手段が、前記デバッグ制御手段から得られる前記試験プログラムの実行履歴情報に、ユーザによって記述されたユーザ記述関数の呼び出しが含まれているか否かの判断と、前記実行履歴情報で示される前記ユーザ記述関数及び他の関数の呼び出し状況の判断との少なくとも一方の判断を行って、前記実行履歴情報の表示制御を行う表示制御手段（５１ａ）を備えることを特徴としている。
【発明の効果】
【００２１】
本発明によれば、デバッグ手段及び試験制御手段の制御を開発環境提供手段によって直接行うとともに、デバッグ手段及び試験制御手段で得られる情報の取得を開発環境提供手段で直接行っている。このため、半導体試験装置に関する特殊命令の開発環境提供手段から試験制御手段への直接出力、半導体試験装置の動作停止に合わせたデバッグ手段の停止、デバッグ手段の動作開始・動作停止に合わせた試験プログラムの実行開始等を実現することができる。また、デバッグ手段による試験プログラムのステップ実行制御や試験プログラムの実行結果の表示制御も実現できる。これにより、ユーザの操作性及び利便性が向上し、デバッグ効率を高めることができるという効果がある。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施形態によるデバッグ装置について詳細に説明する。
【００２３】
〔第１実施形態〕
図１は、本発明の第１実施形態によるデバッグ装置の要部構成を示すブロック図である。図１に示す通り、本実施形態のデバッグ装置１は、ＩＤＥ１０（開発環境提供手段）、汎用デバッガ２０（デバッグ手段）、及びテスト制御モジュール３０（試験制御手段）を備えており、テスタＴＥ（半導体試験装置）に接続されて、テスタＴＥで用いられるテストプログラムＰ（試験プログラム）のデバッグを行う。このデバッグ装置１は、ユーザＵがＩＤＥ１０を用いてブレークポイント機能によりテストプログラムＰの実行を中断する場合と同様の操作で、テスタＴＥの動作中断（テスタブレーク）を実現するものである。
【００２４】
ＩＤＥ１０は、デバッグ操作ツール１１、デバッグ制御モジュール１２（デバッグ制御手段）、及びテスタブレーク制御モジュール１３（中断制御手段）を備えており、テスト制御モジュール３０及び汎用デバッガ２０の制御が可能であるとともに、これらテスト制御モジュール３０及び汎用デバッガ２０で得られる各種情報の取得が可能である。また、ＩＤＥ１０は、デバッグ対象であるテストプログラムＰに対するエディタ及びコンパイラ（図示省略）並びに汎用デバッガ２０等のテストプログラムＰの作成に必要なツールを１つのインターフェイスで統合して扱うことのできる環境（統合開発環境）を提供する。
【００２５】
尚、ＩＤＥ１０は、Ｃ言語等のＣ＋＋言語等の汎用プログラミング言語で記述されたプログラムの開発に用いられる汎用ＩＤＥに対して、テスタＴＥの制御を行う上で必要となるテスタブレーク制御モジュール１３の追加等を行ったものである。汎用ＩＤＥを用いなくともＩＤＥ１０を作成することは可能であるが、既存の汎用ＩＤＥに対して新たな機能（テスタブレーク制御モジュール１３）を追加し、この機能追加に伴う汎用ＩＤＥの改変を行えばＩＤＥ１０を作成することができるため、汎用ＩＤＥを用いずにＩＤＥ１０を作成する場合に比べてデバッグ装置１の作成コストを低減することができる。
【００２６】
デバッグ操作ツール１１は、デバッグ制御モジュール１２との間でイベント制御を行うことにより、ユーザＵの指示に応じたデバッグ機能を制御する。ここで、ユーザＵの指示に応じたデバッグ機能としては、ブレークポイント機能、ステップ実行機能、及びトレース機能等が挙げられる。ブレークポイント機能とは、テストプログラムＰの実行をテストプログラムＰの特定の位置で中断させる機能である。ステップ実行機能とは、テストプログラムＰの実行をユーザＵの指示に応じてテストプログラムＰの行毎に順次実行させる機能である。トレース機能とは、テストプログラムＰの実行中に用いられる各種変数の内容や状態を参照する機能である。
【００２７】
デバッグ制御モジュール１２は、テストプログラムＰの実行プロセスを生成し、テストプログラムＰと汎用デバッガ２０との関連付けを行う。また、ユーザＵの指示に応じたデバッグ機能を実現するコマンドを生成して汎用デバッガ２０に出力することにより、ユーザＵの指示に応じたデバッグ機能を実現する。更に、汎用デバッガ２０から得られる各種情報をイベントとしてデバッグ操作ツール１１に通知する。
【００２８】
また、デバッグ制御モジュール１２は、デバッグ操作ツール１１との間で行われるイベント制御に応じたデバッグイベントをテスタブレーク制御モジュール１３に対して発行する。更に、テスタブレーク制御モジュール１３から出力されるテストプログラムＰの一時中断指示に基づいて、汎用デバッガ２０にテストプログラムＰの実行を中断させる。尚、テストプログラムＰの実行を中断させた場合には、汎用デバッガ２０から得られる各種情報をＩＤＥブレークイベントとしてテスタブレーク制御モジュール１３に通知する。
【００２９】
テスタブレーク制御モジュール１３は、デバッグ制御モジュール１２から発行されるデバッグイベントがテスタＴＥの動作中断（テスタブレーク）に関するイベントである場合には、テスト制御モジュール３０に対してテスタブレークを実施するための制御（設定）を行う。また、テスト制御モジュール３０からテスタＴＥの動作が中断した旨を示すテスタブレークイベントを取得した場合には、汎用デバッガ２０の動作を中断させてテストプログラムＰの実行を一時的に中断させる指示（テストプログラムＰの一時中断指示）をデバッグ制御モジュール１２に出力する。尚、テスタブレーク制御モジュール１３は、上記のテスタブレークイベントを取得した場合には、動作モードをテスタブレーク制御モードに移行してテスタブレーク制御に係る各種制御を行う。
【００３０】
ここで、テスタブレーク制御モジュール１３がテスタブレークイベントを取得した場合にテストプログラムＰの実行を中断させるのは、汎用デバッガ２０からブレーク情報（テストプログラムＰのファイル名や中断した行を示す情報）を得るためである。つまり、テスタＴＥの動作が中断されてもテストプログラムＰは見かけ上実行が中断された状態にあって実際には実行が中断されていない。テストプログラムＰの実行が実際に中断されれば汎用デバッガ２０からブレーク情報（テストプログラムＰのファイル名や中断した行を示す情報）を得ることができるが、実行が中断されていないとデバッグ情報を取得することができない。そこで、テスタブレークイベントを取得した場合にテストプログラムＰの実行を中断させて、汎用デバッガ２０からブレーク情報の取得を可能としている。
【００３１】
汎用デバッガ２０は、デバッグ制御モジュール１２の制御の下で、Ｃ言語等の汎用プログラミング言語で記述されたプログラムのデバッグを行うものであり、テストプログラムＰが汎用プログラミング言語の文法に則して記述されている場合には、そのデバッグを行うことも可能である。テスト制御モジュール３０は、テスタＴＥでテストプログラムＰを実行させる上で必要となるテスト制御ライブラリＬを備えており、汎用デバッガ２０の制御の下でテスト制御ライブラリＬを用いてテストプログラムＰの内容に応じたテスタＴＥに対する制御を行う。このテスト制御ライブラリＬは、テスタブレークが実施されてテスタＴＥの動作が中断した場合には、テスタブレーク制御モジュール１３に対してテスタＴＥの動作が中断した旨を示すテスタブレークイベントを出力する。
【００３２】
尚、テスタＴＥは、テスト制御モジュール３０の制御の下でＤＵＴ（図示省略）のテスト（試験）を行う。このテスタＴＥは、半導体メモリのテストを行うメモリテスタ、半導体論理回路をテストするロジックテスタ、ＬＣＤ（Liquid Crystal Display：液晶表示ディスプレイ）の駆動ドライバをテストするトライバテスタ等の何れのテスタであっても良い。
【００３３】
次に、上記構成におけるデバッグ装置１の動作について説明する。図２は本発明の第１実施形態によるデバッグ装置におけるテスタブレーク設定時の動作を示すフローチャートであり、図３は同デバッグ装置におけるテスタブレーク制御時の動作を示すフローチャートである。ユーザＵがデバッグ操作ツール１１に対して、テストプログラムＰのデバッグ開始の指示を行うと、テストプログラムＰの内容が表示されて、図２に示すフローチャートが繰り返し実行される。
【００３４】
テストプログラムＰが表示された状態で、ユーザＵはデバッグ操作ツール１１を操作して、テストプログラムＰの編集、従来から用いられているブレークポイントの設定、又はテスタブレークについてのブレークポイント（テスタブレークポイント）の設定等を行う。かかる操作が行われると、デバッグ制御モジュール１２からテスタブレーク制御モジュール１３及び汎用デバッガ２０に対して、その操作に応じたデバッグイベント発行される。
【００３５】
デバッグ制御モジュール１２からデバッグイベントが発行されると、テスタブレーク制御モジュール１３において、そのデバッグイベントがユーザＵによってブレークポイントの設定がされた場合に発行されるイベント（ブレークポイント設定イベント）であるが否かが判断される（ステップＳ１１）。この判断結果が「ＮＯ」の場合には図２に示すフローチャートが再度最初から開始される。
【００３６】
これに対し、ステップＳ１１でブレークポイント設定イベントであると判断された場合（判断結果が「ＹＥＳ」の場合）には、テスタブレーク制御モジュール１３でブレークポイント設定イベントが解析され、そのブレークポイント設定イベントがテスタブレークポイントの設定によって発生したものであるか否かが判断される（ステップＳ１２）。この判断結果が「ＮＯ」の場合には図２に示すフローチャートが再度最初から開始される。
【００３７】
他方、ステップＳ１２の判断結果が「ＹＥＳ」の場合には、テスタブレーク制御モジュール１３によって、テスト制御モジュール３０に対するテスタブレークポイントの設定が行われる（ステップＳ１３）。このテスタブレークポイントの設定は、ブレークポイント設定イベントに含まれる設定情報に基づいて行われる。テスタブレークポイント設定が終了すると図２に示すフローチャートが再度最初から開始される。
【００３８】
ここで、テスタブレークポイントはユーザＵによって新たに設定される場合のみならず、一度設定されたものがユーザＵによって取り消される場合もある。テスタブレークポイントが取り消された場合には、ステップＳ１３において先にテスト制御モジュール３０に設定したテスタブレークポイントを削除する設定が行われる。以上の動作が繰り返されることにより、ＩＤＥ１０を用いたテスト制御モジュール３０に対するテスタブレークポイントの設定が行われる。
【００３９】
以上の操作を終えて、ユーザＵがデバッグ操作ツール１１に対して、テストプログラムＰの実行の指示を行うと、デバッグ制御モジュール１２がテストプログラムＰの実行プロセスを生成し、テストプログラムＰと汎用デバッガ２０との関連付けを行って、汎用デバッガ２０からテストプログラムＰのデバッグを制御可能な状態にしてテストプログラムＰの実行を開始させる。また、上記のユーザＵによるテストプログラムの実行指示により、図３に示すフローチャートが繰り返し実行される。
【００４０】
図３に示すフローチャートが開始されると、まずテスト制御モジュール３０からテスタＴＥの動作が中断した旨を示すテスタブレークイベントを受信したか否かがテスタブレーク制御モジュール１３によって判断される（ステップＳ２１）。この判断結果が「ＹＥＳ」の場合には、テスタブレーク制御モジュール１３の動作モードがテスタブレーク制御モードに移行する（ステップＳ２２）。
【００４１】
以上の移行処理が行われると、テスタブレーク制御モジュール１３からデバッグ制御モジュール１２に対して、テストプログラムＰの一時中断指示が出力される。デバッグ制御モジュール１２は、テスタブレーク制御モジュール１３からの一時中断指示を一時中断コマンドに変換して汎用デバッガ２０に出力し、テストプログラムＰの実行を中断させる（ステップＳ２３）。この中断処理によってテストプログラムＰの実行が中断した位置がテスタブレークのブレーク地点となる。尚、以上の中断処理を行うと、デバッグ制御モジュール１２でテストプログラムＰの実行が中断された旨を示すＩＤＥ一時中断イベントが発行される。以上の処理が終了すると、図３に示すフローチャートが再度最初から開始される。
【００４２】
他方、ステップＳ２１の判断結果が「ＮＯ」の場合には、デバッグ制御モジュール１２で発行されたＩＤＥ一時中断イベントを受信したか否かがテスタブレーク制御モジュール１３によって判断される（ステップＳ２４）。この判断結果が「ＹＥＳ」の場合には、テスタブレーク制御モジュール１３の動作モードがテスタブレーク制御モードであるか否かが判断される（ステップＳ２５）。この判断結果が「ＮＯ」の場合は、図３に示すフローチャートが再度最初から開始される。
【００４３】
これに対し、ステップＳ２５の判断結果が「ＹＥＳ」の場合には、テスタブレーク制御モジュール１３によってＩＤＥ一時中断イベントからブレーク情報が取得され、ＩＤＥブレークイベントが作成される（ステップＳ２６）。ＩＤＥブレークイベントが作成されると、テスタブレーク制御モジュール１３からデバッグ制御モジュール１２に対して、ＩＤＥブレークイベントの発行が指示される（ステップＳ２７）。これによりＩＤＥ１０に設けられた不図示のエディタ及びコンパイラ等にＩＤＥブレークイベントが通知され、ブレーク情報の表示が行われる。以上の処理が終了すると、図３に示すフローチャートが再度最初から開始される。
【００４４】
他方、ステップＳ２４の判断結果が「ＮＯ」の場合には、デバッグ制御モジュール１２で発行されたＩＤＥブレークイベントを受信したか否かがテスタブレーク制御モジュール１３によって判断される（ステップＳ２８）。この判断結果が「ＮＯ」の場合は、図３に示すフローチャートが再度最初から開始される。これに対し、ステップＳ２８の判断結果が「ＹＥＳ」の場合には、テスタブレーク制御モジュール１３の動作モードがテスタブレーク制御モードであるか否かが判断される（ステップＳ２９）。この判断結果が「ＮＯ」の場合は、図３に示すフローチャートが再度最初から開始される。
【００４５】
これに対し、ステップＳ２９の判断結果が「ＹＥＳ」の場合には、テスタブレーク制御モジュール１３からテスト制御モジュール３０に、テスタブレーク制御が完了した旨が通知され（ステップＳ３０）。かかる通知がなされると、テスタブレーク制御モジュール１３のテスタブレーク制御モードが解除される（ステップＳ３１）。以上説明した一連の処理によってテスタブレーク制御が実施される。
【００４６】
以上の通り、本実施形態のデバッグ装置１は、テスト制御モジュール３０及び汎用デバッガ２０の制御が可能であるとともに、これらテスト制御モジュール３０及び汎用デバッガ２０で得られる各種情報の取得が可能であるＩＤＥ１０を備えている。このため、ユーザＵがＩＤＥ１０のデバッグ操作ツール１１を操作してテスト制御モジュール３０に対するテスタブレークポイントの設定を行うことができる。また、テスト制御モジュール３０からのテスタブレークイベントを取得した場合に、汎用デバッガ２０の動作を中断させてテストプログラムＰの実行を中断させるテスタブレーク制御モジュール１３をＩＤＥ１０に設けているため、テストプログラムＰの実行が中断されたときのブレーク情報を得ることもできる。これにより、ユーザＵの操作性及び利便性を向上させてデバッグ効率を高めることができる。
【００４７】
〔第２実施形態〕
図４は、本発明の第２実施形態によるデバッグ装置の要部構成を示すブロック図である。図４に示す通り、本実施形態のデバッグ装置２は、図１に示すデバッグ装置１が備えるＩＤＥ１０に代えてＩＤＥ４０を設けた構成であり、テスタＴＥに接続されて、テスタＴＥで用いられるテストプログラムＰのデバッグを行う。このデバッグ装置２は、ユーザＵがＩＤＥ４０を操作している状態で、テストプログラムＰの特殊な実行制御を実現するものである。
【００４８】
ＩＤＥ４０は、デバッグ操作ツール４１及びデバッグ制御モジュール４２（デバッグ制御手段）を備えており、テスト制御モジュール３０及び汎用デバッガ２０の制御が可能であるとともに、これらテスト制御モジュール３０及び汎用デバッガ２０で得られる各種情報の取得が可能である。このＩＤＥ４０は、図１に示すＩＤＥ１０と同様の統合開発環境を提供するものであり、汎用ＩＤＥを用いて作成することができる。
【００４９】
デバッグ操作ツール４１は、図１に示すデバッグ操作ツール１１と同様に、デバッグ制御モジュール４２との間でイベント制御を行うことにより、ユーザＵの指示に応じたデバッグ機能を制御する。このデバッグ操作ツール４１は、デバッグ制御モジュール４２に汎用デバッガ２０の動作開始又は動作停止の制御を行わせる実行制御モジュール４１ａ（実行制御手段）を備える。
【００５０】
ここで、実行制御モジュール４１ａは、デバッグ制御モジュール４２に汎用デバッガ２０の動作開始の制御を行わせた場合には、テスト制御モジュール３０に対してテストプログラムＰを実行させる制御を行う。これは、実行状態にあるテストプログラムＰを汎用デバッガ２０の管理下に登録（アタッチ）するとテストプログラムＰは命令待ち状態になって停止し、汎用デバッガ２０の動作を開始させただけではテストプログラムＰの実行が開始されないからである。
【００５１】
デバッグ制御モジュール４２は、図１に示すデバッグ制御モジュール１２と同様に、テストプログラムＰの実行プロセスを生成し、テストプログラムＰと汎用デバッガ２０との関連付けを行う。また、ユーザＵの指示に応じたデバッグ機能を実現するコマンドを生成して汎用デバッガ２０に出力することにより、ユーザＵの指示に応じたデバッグ機能を実現する。更に、汎用デバッガ２０から得られる各種情報をイベントとしてデバッグ操作ツール４１に通知する。
【００５２】
次に、上記構成におけるデバッグ装置２の動作について説明する。図５は、本発明の第２実施形態によるデバッグ装置の動作を示すフローチャートである。まず、ユーザＵの操作によって予めテストプログラムＰが実行されている状態にあるものとする。かかる状態において、ユーザＵがデバッグ操作ツール４１に対して、テストプログラムＰのデバッグの指示を行うと、図５に示すフローチャートが開始される。
【００５３】
テストプログラムＰのデバッグが開始されると、デバッグ操作ツール４１に設けられた実行制御モジュール４１ａからデバッグ制御モジュール４２に対してテストプログラムＰのアタッチが指示される（ステップＳ４１）。このアタッチ指示によって、デバッグ制御モジュール４２から汎用デバッガ２０に対してテストプログラムＰのアタッチコマンドが出力され、これにより実行状態にあるテストプログラムＰが汎用デバッガ２０の管理下に登録（アタッチ）される（ステップＳ４２）。尚、テストプログラムＰをアタッチすると、テストプログラムＰは命令待ち状態になって停止し、汎用デバッガ２０は一時停止状態になる。
【００５４】
次に、汎用デバッガ２０が一時停止状態であるため、実行制御モジュール４１ａからデバッグ制御モジュール４２に対して汎用デバッガ２０の再開が指示される（ステップＳ４３）。この再開指示によって、デバッグ制御モジュール４２から汎用デバッガ２０に対して再開コマンドが出力され、これにより汎用デバッガ２０の動作が再開される（ステップＳ４４）。
【００５５】
以上の処理によって汎用デバッガ２０は再開されたものの、テストプログラムＰは命令待ち状態になって停止している。このため、実行制御モジュール４１ａからテスト制御モジュール３０に対してテストプログラムＰの実行開始が指示される（ステップＳ４５）。この実行開始指示がなされると、テスト制御モジュール３０は命令待ち状態になって停止しているテストプログラムＰの実行が開始され、汎用デバッガ２０によるテストプログラムＰのデバッグが行われる。
【００５６】
テストプログラムＰのデバッグが開始されると、テスト制御モジュール３０からテスタＴＥの制御状況を示すテスタイベントが通知されて実行制御モジュール４１ａで受信される（ステップＳ４６）。次に、受信したテスタイベントがテストプログラムＰの実行終了時に発行されるテストプログラム終了イベントであるか否かが実行制御モジュール４１ａで判断される（ステップＳ４７）。テストプログラム終了イベントではないと判断された場合（判断結果が「ＮＯ」の場合）にはテスト制御モジュール３０から通知されるテスタイベントの受信（ステップＳ４６）が繰り返される。
【００５７】
これに対し、テストプログラム終了イベントであると判断された場合（判断結果が「ＹＥＳ」の場合）には、実行制御モジュール４１ａからデバッグ制御モジュール４２に対してテストプログラムＰのデタッチが指示される（ステップＳ４８）。このデタッチ指示によって、デバッグ制御モジュール４２から汎用デバッガ２０に対してテストプログラムＰのデタッチコマンドが出力され、これによりテストプログラムＰが汎用デバッガ２０の管理下から解除（デタッチ）される（ステップＳ４９）。尚、テストプログラムＰがデタッチされると、実行制御モジュール４１ａはＩＤＥ４０上でのデバッグを終了する。
【００５８】
以上の通り、本実施形態のデバッグ装置２は、テスト制御モジュール３０及び汎用デバッガ２０の制御が可能であるとともに、これらテスト制御モジュール３０及び汎用デバッガ２０で得られる各種情報の取得が可能であるＩＤＥ４０を備えている。このＩＤＥ４０には、汎用デバッガ２０の動作開始又は動作停止をデバッグ制御モジュール４２に制御させるとともにテストプログラムＰをテスト制御モジュール３０実行させる実行制御モジュール４１ａが設けられている。このため、ユーザＵが煩雑な操作を行わなくともテストプログラムＰの特殊な実行制御が自動的に行われ、ユーザＵの操作性及び利便性を向上させてデバッグ効率を高めることができる。
【００５９】
〔第３実施形態〕
図６は、本発明の第３実施形態によるデバッグ装置の要部構成を示すブロック図である。図６に示す通り、本実施形態のデバッグ装置３は、図１に示すデバッグ装置１が備えるＩＤＥ１０に代えてＩＤＥ５０を設けた構成であり、テスタＴＥに接続されて、テスタＴＥで用いられるテストプログラムＰのデバッグを行う。このデバッグ装置３は、テストプログラムＰを実行して得られる実行結果のうち、ユーザＵによって作成された部分のみのステップ実行を実現し、またその部分の実行結果のみの表示を実現するものである。
【００６０】
ＩＤＥ５０は、デバッグ操作ツール５１、デバッグ制御モジュール５２（デバッグ制御手段）、及びステップ実行制御モジュール５３（ステップ実行制御手段）を備えており、汎用デバッガ２０の制御が可能であるとともに、汎用デバッガ２０で得られる各種情報の取得が可能である。このＩＤＥ５０は、図１，図４に示すＩＤＥ１０，４０と同様の統合開発環境を提供するものであり、汎用ＩＤＥを用いて作成することができる。
【００６１】
尚、図６においては説明を簡単にするために図示を省略しているが、図１に示すテスタブレーク制御モジュール１３或いは図４に示す実行制御モジュール４１ａをＩＤＥ５０内に設けた構成にすることもできる。かかる構成にすることで、汎用デバッガ２０の制御及び汎用デバッガ２０で得られる各種情報の取得のみならず、テスト制御モジュール３０の制御及びテスト制御モジュール３０で得られる各種情報の取得が可能になり、第１実施形態で説明したＩＤＥ５０を用いたテスタブレーク又は第２実施形態で説明したテストプログラムＰの特殊な実行制御も実現できる。
【００６２】
デバッグ操作ツール５１は、図１に示すデバッグ操作ツール１１と同様に、デバッグ制御モジュール５２との間でイベント制御を行うことにより、ユーザＵの指示に応じたデバッグ機能を制御する。このデバッグ操作ツール５１は、デバッグ制御モジュール５２から得られるテストプログラムＰ１のスレッド情報及びスタック情報（実行履歴情報）の表示制御を行う表示制御モジュール５１ａ（表示制御手段）を備える。
【００６３】
ここで、上記のスレッド情報は実行されたスレッド（プログラムの実行単位）を特定する情報であり、上記のスタック情報はそのスレッドにおける関数（テストプログラムＰに記述された関数）の呼び出し履歴を示す情報である。尚、テストプログラムＰには、ユーザＵによって記述された関数（ユーザ記述関数）とシステム関数（例えば、テスタＴＥの製造メーカによって予め用意された関数）とが記述されており、スタック情報はこれらユーザ記述関数及びシステム関数を特定する情報が、呼び出された順で時系列的に格納された情報である。
【００６４】
表示制御モジュール５１ａは、表示すべき対象（表示アイテム）がスレッド情報である場合には、上記のスタック情報にユーザ記述関数が含まれるか否かを判断し、ユーザ記述関数が含まれると判断した場合に表示アイテムの表示を行う。また、表示アイテムがスタック情報である場合には、スタック情報に基づいてユーザ記述関数及びシステム関数の呼び出し状況を判断し、その判断結果から表示アイテムの表示を行う。
【００６５】
具体的には、ユーザ記述関数の呼び出しと他の関数（システム記述関数を含む）の呼び出しとの前後関係を判断し、ユーザ記述関数の呼び出し以降に呼び出された関数についてのスタック情報を表示アイテムとして表示する。これは、システム関数からユーザ記述関数の呼び出しが行われることはあるが、ユーザ記述関数からシステム関数の呼び出しが行われることはないため、ユーザ記述関数の呼び出し以降に呼び出された関数についてのスタック情報のみを表示すれば、ユーザＵにとって不要なシステム関数についてのスタック情報の表示がなされることはないためである。
【００６６】
デバッグ制御モジュール５２は、図１に示すデバッグ制御モジュール１２と同様に、テストプログラムＰの実行プロセスを生成し、テストプログラムＰと汎用デバッガ２０との関連付けを行う。また、ユーザＵの指示に応じたデバッグ機能を実現するコマンドを生成して汎用デバッガ２０に出力することにより、ユーザＵの指示に応じたデバッグ機能を実現する。更に、汎用デバッガ２０から得られる各種情報をイベントとしてデバッグ操作ツール５１及びステップ実行制御モジュール５３に通知する。また更に、ステップ実行制御モジュール５３の制御の下で、汎用デバッガ２０によるテストプログラムＰのステップ実行を制御する。
【００６７】
ステップ実行制御モジュール５３は、デバッグ制御モジュール５２から得られるテストプログラムＰ１のスレッド情報及びスタック情報に応じて、汎用デバッガ２０によるテストプログラムＰのステップ実行を、デバッグ制御モジュール５２に制御させる。具体的には、上記のスタック情報にユーザ記述関数が含まれるか否かを判断し、ユーザ記述関数が含まれると判断した場合に上記のステップ実行をデバッグ制御モジュール５２に制御させる。
【００６８】
次に、上記構成におけるデバッグ装置３の動作について説明する。図７は、本発明の第３実施形態によるデバッグ装置におけるステップ実行時の動作を示すフローチャートである。ユーザＵがデバッグ操作ツール５１に対して、テストプログラムＰのステップ実行の指示を行うと、デバッグ制御モジュール５２がテストプログラムＰの実行プロセスを生成し、テストプログラムＰと汎用デバッガ２０との関連付けを行って、汎用デバッガ２０からテストプログラムＰのデバッグを制御可能な状態にしてテストプログラムＰのステップ実行を開始させる。尚、ステップ実行の開始により、図７に示すフローチャートが繰り返し実行される。
【００６９】
テストプログラムＰのステップ実行が行われると、汎用デバッガ２０からデバッグ制御モジュール５２に対してステップ完了が通知され、これによりデバッグ制御モジュール５２からステップイベントが発行される。図７に示す通り、まずデバッグ制御モジュール５２から発行されるステップイベントがステップ実行制御モジュール５３で受信されたか否かが判断される（ステップＳ５１）。
【００７０】
ステップイベントが受信されたと判断された場合（判断結果が「ＹＥＳ」の場合）には、ステップ実行制御モジュール５３において、ステップイベントに含まれるスレッド情報及びスタック情報が取得され、そのスタック情報にユーザ記述関数が含まれているか否かが判断される（ステップＳ５２）。この判断結果が「ＹＥＳ」の場合には図７に示すフローチャートが再度最初から開始される。
【００７１】
これに対し、ステップＳ５２の判断結果が「ＮＯ」の場合には、ステップ実行制御モジュール５３の動作モードが、ステップ実行終了位置の調整を行うステップ実行制御モードに移行する（ステップＳ５３）。ここで、ステップ実行終了位置を調整するのは、スタック情報にユーザ記述関数が含まれておらず、テストプログラムＰのステップ実行がユーザＵに対する非公開領域（例えば、システム関数が記述された領域）で終了したと考えられるためである。
【００７２】
以上の移行処理が行われると、ステップ実行制御モジュール５３によって、テストプログラムＰに記述された全てのユーザ記述関数にブレークポイントが設定される（ステップＳ５４）。ここで、ステップ実行終了位置から次のユーザ記述関数が記述されている位置まで処理を進めれば、上記のステップ実行終了位置の調整を行うことができる。しかしながら、次に実行されるユーザ記述関数を特定することができないため、全てのユーザ記述関数に対してブレークポイントの設定を行っている。
【００７３】
ブレークポイントの設定が終了すると、ステップ実行制御モジュール５３からデバッグ制御モジュール５２に対して、テストプログラムＰの実行再開指示がなされる。デバッグ制御モジュール５２は、ステップ実行制御モジュール５３からの実行再開指示を再開コマンドに変換して汎用デバッガ２０に出力し、テストプログラムＰの実行を再開させる（ステップＳ５５）。以上の処理が終了すると図７に示すフローチャートが再度最初から開始される。
【００７４】
他方、ステップＳ５１の判断結果が「ＮＯ」の場合には、デバッグ制御モジュール５２で発行されたＩＤＥブレークイベントを受信したか否かがステップ実行制御モジュール５３によって判断される（ステップＳ５６）。この判断結果が「ＮＯ」の場合は、図７に示すフローチャートが再度最初から開始される。これに対し、ステップＳ５６の判断結果が「ＹＥＳ」の場合には、ステップ実行制御モジュール５３の動作モードがステップ実行制御モードであるか否かが判断される（ステップＳ５７）。この判断結果が「ＮＯ」の場合は、図７に示すフローチャートが再度最初から開始される。
【００７５】
これに対し、ステップＳ５７の判断結果が「ＹＥＳ」の場合には、ステップＳ５４の処理でユーザ記述関数に対して設定されたブレークポイントの全てがステップ実行制御モジュール５３によって解除される（ステップＳ５８）。ブレークポイントが解除されると、ステップ実行制御モジュール５３のステップ実行制御モードも解除される（ステップＳ５９）。以上説明した一連の処理によってステップ実行制御が実施される。
【００７６】
以上の通り、本実施形態のデバッグ装置３は、デバッグ制御モジュール５２から得られるスタック情報にユーザ記述関数が含まれるか否かを判断し、ユーザ記述関数が含まれると判断した場合にテストプログラムＰのステップ実行をデバッグ制御モジュール５２に制御させるステップ実行制御モジュール５３を備えている。このため、ユーザＵによって記述された領域（公開領域）とユーザに対する非公開領域とがテストプログラムＰ内に存在していても、公開領域に記述されたユーザ記述関数のみを対象にステップ実行することができる。これにより、ユーザＵの操作性及び利便性を向上させてデバッグ効率を高めることができる。
【００７７】
図８は、本発明の第３実施形態によるデバッグ装置における表示制御時の動作を示すフローチャートである。ユーザＵがデバッグ操作ツール５１に対して、デバッグの指示を行い、汎用デバッガ２０によるテストプログラムＰのデバッグが開始されると、図８に示すフローチャートが実行される。テストプログラムＰのデバッグ中に、ブレークポイントによるブレーク、ステップ実行の実行終了、又は強制的な一時中断等によって汎用デバッガ２０によるテストプログラムＰの実行が中断されると、デバッグ制御モジュール５２からその旨を示すプログラム中断イベントが発行される。
【００７８】
図８に示す通り、まずデバッグ制御モジュール５２から発行されるプログラム中断イベントがデバッグ操作ツール５１に設けられた表示制御モジュール５１ａで受信されたか否かが判断される（ステップＳ６１）。この判断結果が「ＮＯ」の場合にはステップＳ６１の処理が繰り返される。これに対し、ステップＳ６１の判断結果が「ＹＥＳ」の場合には、表示制御モジュール５１ａによって、プログラム中断イベントに含まれるスレッド情報及びスタック情報から表示すべき表示アイテムが取得される（ステップＳ６２）。
【００７９】
次に、取得された表示アイテムがスレッドであるか否かが表示制御モジュール５１ａによって判断される（ステップＳ６３）。表示アイテムがスレッドであると判断された場合（ステップＳ６３の判断結果が「ＹＥＳ」の場合）には、そのスレッドにおけるスタック情報にユーザ記述関数が含まれているか否かが表示制御モジュール５１ａによって判断される（ステップＳ６４）。
【００８０】
この判断結果が「ＹＥＳ」の場合には、表示制御モジュール５１ａによって、ステップＳ６２で取得された表示アイテム（スレッド）の表示が行われ（ステップＳ６５）、他の表示アイテムが有るか否かが判断される（ステップＳ６６）。これに対し、ステップＳ６４の判断結果が「ＮＯ」の場合には、表示アイテムの表示が行われずに他の表示アイテムが有るか否かが判断される（ステップＳ６６）。
【００８１】
他方、ステップＳ６３における判断結果が「ＮＯ」の場合には、取得された表示アイテムがスタックであるか否かが表示制御モジュール５１ａによって判断される（ステップＳ６７）。表示アイテムがスタックであると判断された場合（ステップＳ６７の判断結果が「ＹＥＳ」の場合）には、その表示アイテム（スタック情報）に係る関数の呼び出しがユーザ記述関数の呼び出し以降に行われたか否かが判断される（ステップＳ６８）。
【００８２】
この判断結果が「ＹＥＳ」の場合には、表示制御モジュール５１ａによって、ステップＳ６２で取得された表示アイテム（スタック）の表示が行われ（ステップＳ６５）、他の表示アイテムが有るか否かが判断される（ステップＳ６６）。これに対し、ステップＳ６８の判断結果が「ＮＯ」の場合には、表示アイテムの表示が行われずに他の表示アイテムが有るか否かが判断される（ステップＳ６６）。
【００８３】
ステップＳ６６において、他の表示アイテムが有ると判断された場合（判断結果が「ＹＥＳ」の場合）には、プログラム中断イベントに含まれるスレッド情報及びスタック情報から表示すべき表示アイテムが取得され（ステップＳ６２）、上述した処理が繰り返される。これに対し、ステップＳ６６の判断結果が「ＮＯ」の場合には、図８に示すフローチャートが再度最初から開始される。
【００８４】
以上の処理が行われると、テストプログラムＰの実行結果のうち、ユーザ記述関数が関連する実行結果（スレッド情報及びスタック情報）のみが表示される。図９は、テストプログラムＰの実行結果の表示例を示す図である。図９に示す例では、テストプログラムＰの実行結果がツリー形式で表示されている。つまり、ツリーの大元の部分にテストプログラムＰを示す情報Ｑ１（例えば、テストプログラムの名称やファイル名）が表示され、この情報にぶら下がる形で、デバッグ時に起動されたデバッガプロセスを示す情報Ｑ２が表示される。
【００８５】
また、デバッガプロセスを示す情報Ｑ２にぶら下がる形で、そのデバッガプロセスで生成された複数のスレッドを示す情報Ｑ３が表示され、これらスレッドを示す情報Ｑ３にぶら下がる形で、スタック情報Ｑ４が表示される。尚、スレッドを示す情報Ｑ３及びスタック情報Ｑ４は、テストプログラムＰに記述された関数のうちのユーザ記述関数に関連するもののみが表示され、システム関数に関連するものが表示されることはない。
【００８６】
以上の通り、本実施形態のデバッグ装置３は、デバッグ制御モジュール５２から得られるプログラム中断イベントに含まれるスレッド情報にユーザ記述関数が含まれるか否かを判断し、ユーザ記述関数が含まれると判断した場合にその表示を行い、また、プログラム中断イベントに含まれるスタック情報に基づいてユーザ記述関数及びシステム関数の呼び出し状況を判断し、その判断結果からその表示を行う表示制御モジュール５１ａを備えている。このため、ユーザＵによって記述された領域（公開領域）とユーザに対する非公開領域とがテストプログラムＰ内に存在していても、公開領域に記述されたユーザ記述関数の実行結果のみを表示させることができる。これにより、ユーザＵの操作性及び利便性を向上させてデバッグ効率を高めることができる。
【００８７】
以上、本発明の実施形態によるデバッグ装置について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態で説明したデバッグ装置１〜３は、ハードウェアにより実現されていても良く、ソフトウェアにより実現されていても良い。ソフトウェアにより実現する場合には、デバッグ装置１〜３に設けられた各ブロックの機能を実現するプログラムをコンピュータに実行させることにより実現される。
【００８８】
上記のプログラムは、ネットワークを介してダウンロードすることにより、コンピュータにインストールすることができる。或いは、例えばＣＤ−ＲＯＭ又はＤＶＤ（登録商標）−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に記憶されていてもよい。この記録媒体に記録されたプログラムをＣＤ−ＲＯＭドライブ又はＤＶＤ（登録商標）−ＲＯＭドライブ等のドライブ装置を用いて読み取れば、コンピュータにインストールすることができる。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１実施形態によるデバッグ装置の要部構成を示すブロック図である。
【図２】本発明の第１実施形態によるデバッグ装置におけるテスタブレーク設定時の動作を示すフローチャートである。
【図３】本発明の第１実施形態によるデバッグ装置におけるテスタブレーク制御時の動作を示すフローチャートである。
【図４】本発明の第２実施形態によるデバッグ装置の要部構成を示すブロック図である。
【図５】本発明の第２実施形態によるデバッグ装置の動作を示すフローチャートである。
【図６】本発明の第３実施形態によるデバッグ装置の要部構成を示すブロック図である。
【図７】本発明の第３実施形態によるデバッグ装置におけるステップ実行時の動作を示すフローチャートである。
【図８】本発明の第３実施形態によるデバッグ装置における表示制御時の動作を示すフローチャートである。
【図９】テストプログラムＰの実行結果の表示例を示す図である。
【図１０】従来のデバッグ装置の要部構成を示すブロック図である。
【符号の説明】
【００９０】
１〜３    デバッグ装置
１０      ＩＤＥ
１２      デバッグ制御モジュール
１３      テスタブレーク制御モジュール
２０      汎用デバッガ
３０      テスト制御モジュール
４０      ＩＤＥ
４１ａ    実行制御モジュール
４２      デバッグ制御モジュール
５０      ＩＤＥ
５１ａ    表示制御モジュール
５２      デバッグ制御モジュール
５３      ステップ実行制御モジュール
Ｐ        テストプログラム
ＴＥ      テスタ
【図１】
2010079341.tif 000003
【図２】
2010079341.tif 000004
【図３】
2010079341.tif 000005
【図４】
2010079341.tif 000006
【図５】
2010079341.tif 000007
【図６】
2010079341.tif 000008
【図７】
2010079341.tif 000009
【図８】
2010079341.tif 000010
【図９】
2010079341.tif 000011
【図１０】
2010079341.tif 000012