(57)【要約】【課題】H/Wモデルプログラムと制御ソフトウエアの２つのプログラムを同時にデバッグするときに、デバッグし易いデバッグ装置を提供する。【解決手段】デバッグ装置１は、チップ上に設けられる機能ブロックを動作させるための動作プログラムのデバッグを行うデバッグ装置であり、ターゲットシミュレータ２５に含まれる機能ブロックの所定の処理を実行するための定義コードの文字列情報を生成し、文字列情報を送信するための文字列情報送信プログラムを生成して、生成された文字列情報と生成された文字列情報送信プログラムとを、定義コードに付加する付加処理プログラム３１と、命令対応情報に基づいて、定義コードの文字列情報を取得する文字列情報取得部と、取得した定義コードの文字列情報を、指定された命令と合成して表示するための合成表示部と、を有する。【選択図】図１２
2010044577.tif 000002
【特許請求の範囲】
【請求項１】
チップ上に設けられる機能ブロックを動作させるための動作プログラムのデバッグを行うデバッグ装置であって、
シミュレータに含まれる定義コードであって前記機能ブロックの所定の処理を実行するための前記定義コードの文字列情報を生成し、前記文字列情報を送信するための文字列情報送信プログラムを生成して、生成された前記文字列情報と生成された前記文字列情報送信プログラムとを、前記定義コードに付加する付加処理部と、
前記動作プログラム中の命令と、前記所定の処理との命令対応情報を記憶する命令対応情報記憶部と、
前記命令対応情報に基づいて、前記定義コードの文字列情報を取得する文字列情報取得部と、
取得した前記定義コードの文字列情報を、指定された命令と合成して表示するための合成表示部と、
を有することを特徴とするデバッグ装置。
【請求項２】
前記付加処理部は、前記定義コードの各行に、前記所定の処理の実行を停止させる停止コードを付加することを特徴とする請求項１に記載のデバッグ装置。
【請求項３】
前記チップ上に前記機能ブロックが複数設けられた場合に、各機能ブロックを識別するための機能ブロック識別情報を記憶する機能ブロック識別情報記憶部を有し、
前記文字列情報取得部は、前記命令対応情報と、前記機能ブロック識別情報とに基づいて、前記定義コードの文字列情報を取得するための取得コマンドを生成して実行することによって、前記定義コードの文字列情報の取得を行うことを特徴とする請求項１に記載のデバッグ装置。
【請求項４】
前記所定の処理をシングルステップで実行するためのモードが設定されているときに、前記シミュレータは、前記定義コードに付加された前記停止コードを実行することを特徴とする請求項２に記載のデバッグ装置。
【請求項５】
チップ上に設けられる機能ブロックを動作させるための動作プログラムのデバッグを行うデバッグ方法であって、
シミュレータに含まれる定義コードであって前記機能ブロックの所定の処理を実行するための前記定義コードの文字列情報を生成し、
前記文字列情報を送信するための文字列情報送信プログラムを生成し、
生成された前記文字列情報と生成された前記文字列情報送信プログラムとを、前記定義コードに付加し、
前記動作プログラム中の指定された命令と、前記所定の処理との命令対応情報に基づいて、前記定義コードの文字列情報を取得し、
取得した前記定義コードの文字列情報を、前記指定された命令と合成して表示する、
ことを特徴とするデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ装置及びデバッグ方法に関する。
【背景技術】
【０００２】
従来より、SoC（System On a Chip）等の半導体装置として、１以上の機能ブロックのハードウェア（以下、H/Wと略す）回路を含み、半導体装置全体の動作はソフトウエアプログラム（以下、S/Wと略す）である制御S/Wにより実行が規定されるような半導体装置がある。このような半導体装置において、H/W回路と制御S/Wが同時に並行して開発される場合は、H/W回路が開発される前に、制御S/Wの動作確認を行うために、H/W回路に代えて、H/W回路のモデル（以下、H/Wモデルという）を含むシミュレーションプログラム、すなわちシミュレータが用いられる。
【０００３】
また、H/Wモデルをシミュレータに組み込む場合、そのH/Wモデルのプログラム（以下、H/Wモデルプログラムという）と制御S/Wとを協調させて動作確認を行う必要がある。その場合、シミュレータはネイティブデバッガでデバッグされ、制御S/Wはクロスデバッガでデバッグされることになる。
【０００４】
このため、制御S/W中のある命令によって実行されるあるH/Wモデルプログラム中の対応部分の動作を確認する場合には、デバッグを行う者は、その命令と、その命令に対応する部分のAPI情報を予め対応付けておき、その命令と、そのAPI情報の部分にブレークポイントを設定する、等の繁雑な作業をしながら、動作確認を行わなければならなかった。
【０００５】
また、S/WとH/Wの協調検証に関する技術も提案されている（例えば、特許文献１参照）。  
しかし、その提案では、H/WモデルプログラムとS/Wとを協調して検証する方法は開示されているが、２つのプログラムのデバッグをするときの、デバッグのし易さについての具体的な方法については、何ら提案されていない。
【特許文献１】特開２００６−７９４１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は、H/Wモデルプログラムと制御S/Wの２つのプログラムを同時にデバッグするときに、デバッグし易いデバッグ装置及びデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、チップ上に設けられる機能ブロックを動作させるための動作プログラムのデバッグを行うデバッグ装置であって、シミュレータに含まれる定義コードであって前記機能ブロックの所定の処理を実行するための前記定義コードの文字列情報を生成し、前記文字列情報を送信するための文字列情報送信プログラムを生成して、生成された前記文字列情報と生成された前記文字列情報送信プログラムとを、前記定義コードに付加する付加処理部と、前記動作プログラム中の命令と、前記所定の処理との命令対応情報を記憶する命令対応情報記憶部と、前記命令対応情報に基づいて、前記定義コードの文字列情報を取得する文字列情報取得部と、取得した前記定義コードの文字列情報を、指定された命令と合成して表示するための合成表示部と、を有するデバッグ装置を提供することができる。
【発明の効果】
【０００８】
本発明によれば、H/Wモデルプログラムと制御S/Wの２つのプログラムを同時にデバッグするときに、デバッグし易いデバッグ装置及びデバッグ方法を実現することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施の形態を説明する。
【００１０】
まず図１に基づき、本実施の形態に係わるデバッグ装置の構成を説明する。図１は、本実施の形態に係わるデバッグ装置の構成を示す構成図である。
【００１１】
図１に示すように、デバッグ装置１は、パーソナルコンピュータ（以下、PCという）、サーバ、ワークステーション等のコンピュータである。デバッグ装置１は、コンピュータ本体１１と、表示装置１２と、ハードディスク装置等の記憶装置１３とを含んで構成される。以下に説明する各種処理は、ソフトウエアプログラムによって実行され、そのソフトウエアプログラムは記憶装置１３に記憶され、コンピュータ本体１１内のCPU（以下、ホストCPUという）１１ａによって読み出されて実行される。表示装置１２の表示画面１２ａ上には、プロセッサの開発者等のデバッグを行うユーザが各種処理の実行を指示し、かつ処理結果を表示するためのグラフィカルユーザインターフェース（GUI）が表示される。  
ユーザの開発対象となるチップ（SoC）は、ユーザが定義した１以上の機能ブロック、すなわちH/W回路を有し、ユーザによって定義あるいは記述されたユーザプログラム（チップ上のCPUによって実行される）によって、チップ全体の動作が決定される、構成変更可能なチップである。ユーザプログラムは、１以上の機能ブロックのH/W回路の動作を制御する制御S/Wである。制御S/Wは、1以上の機能ブロックの動作を含めて、チップ全体の動作を制御する動作プログラムである。１以上の機能ブロックは、それぞれの所定の機能を有し、各機能はモデル化されてソフトウエアプログラムで記述される。すなわち、各機能ブロックは、所定の機能を実現するための所定の処理を実行するための定義コードにより表現されている。ユーザは、デバッグ装置１を用いて、SoCのプロセッサである構成変更可能なプロセッサの制御S/Wと、H/W回路のH/Wモデルのプログラムとのデバッグを行うことができる。
【００１２】
図２は、デバッグ装置１に含まれるソフトウエアの構成を説明するための図である。デバッグ装置１は、ホストCPU１１ａ上で実行される、ネイティブコンパイラ２１、ネイティブデバッガ２２，クロスコンパイラ２３、クロスデバッガ２４、及びターゲットシミュレータ２５を含む。これらのソースプログラムは、記憶装置１３に記憶され、コンパイルされた実行プログラムが、ホストCPU１１ａ上で実行される。さらに、デバッグ装置１は、ターゲットシミュレータ２５上で実行されるユーザプログラム実行ファイル２６も含んでいる。
【００１３】
ユーザプログラムは、対象チップ上で実行される、ユーザが定義あるいは記述したプログラムで、構成変更可能な特定のチップ上で実行される制御S/Wのプログラム、すなわち動作プログラムである。ユーザプログラムは、専用命令を含んで記述される。ユーザプログラム実行ファイル２６は、ユーザプログラムの実行ファイル形式のプログラムである。
【００１４】
各機能ブロックの機能をモデル化して記述されたH/Wモデルプログラムは、各H/W毎に、ユーザが定義したプログラムで、複数ある。  
ターゲットシミュレータ２５は、これらの１以上のH/Wモデルプログラム２７と、ターゲットシミュレータ２５のプログラム本体２５ａ（図３参照）と合わせて、コンパイルされて生成された実行ファイルである。ターゲットシミュレータ２５は、各H/Wモデルプログラム２７を実行させて動作のシミュレートをすることができる。従って、ターゲットシミュレータ２５は、１以上のH/Wモデルを含む実行ファイル形式のシミュレーションプログラムである。
【００１５】
ネイティブコンパイラ２１とネイティブデバッガ２２は、それぞれホストCPU１１ａ上で実行されるコンパイラとデバッガである。  
クロスコンパイラ２３、クロスデバッガ２４、及びターゲットシミュレータ２５は、ネイティブコンパイラ２１によりコンパイルされた、ホストCPU１１ａ上で実行可能な実行形式のプログラムである。
【００１６】
クロスコンパイラ２３は、ユーザプログラムをコンパイルしてユーザプログラム実行ファイル２６を生成するプログラムである。ユーザプログラムは、専用命令を含んで記述されるため、クロスコンパイラ２３によってのみコンパイル可能である。
【００１７】
また、ユーザプログラム実行ファイル２６は、ターゲットシミュレータ２５によってのみ実行可能であり、H/Wモデルプログラム２７は、ターゲットシミュレータ２５によってシミュレーションが可能であり、さらにクロスデバッガ２４によってデバッグ可能である。
【００１８】
クロスデバッガ２４は、ユーザプログラムをデバッグするときに、ターゲットシミュレータ２５と通信あるいは情報のやりとりをして、後述するような合成表示を行うことができる。
【００１９】
図３は、ターゲットシミュレータ実行ファイル２５の生成処理の流れを説明するためのフローチャートである。  
まず、図３に示すように、H/Wモデルプログラム２７に対して、付加処理プログラム３１によって、所定の付加情報を付加する付加処理が行われる。H/Wモデルプログラム２７は、ソースプログラムであり、複数のH/Wモデルプログラム２７がある場合は、それぞれについて付加処理が行われる。付加処理の内容については、後述する。
【００２０】
付加処理の結果、クロスデバッガ用H/Wモデルプログラム２７ａが生成される。クロスデバッガ用H/Wモデルプログラム２７ａも、ソースプログラムである。
【００２１】
生成されたクロスデバッガ用H/Wモデルプログラム２７ａは、開発対象のプロセッサモデルを含むターゲットシミュレータ本体のプログラム２５ａと組み合わされて、ホストマシン用のネイティブコンパイラ２１によりコンパイルされ、ターゲットシミュレータ実行ファイル２５が生成される。
【００２２】
次に、付加処理プログラム３１による付加処理について、例を挙げて説明する。  
図４は、H/Wモデルプログラム２７の例を示す図である。図５は、付加処理により生成されたクロスデバッガ用H/Wモデルプログラム２７ａの例を示す図である。  
図４には、例として、「Simple HWE」というソースファイル名のH/Wモデルプログラム２７が示されている。図４に示すように、H/Wモデルプログラム２７は、クラス名は「HWE」であり、それぞれメソッド名「writeCntlBus」と「readCntlBus」の、２つのメソッドを含むプログラムである。
【００２３】
図４に示すH/Wモデルプログラム２７は、付加処理部である付加処理プログラム３１によって、所定の付加情報を付加する処理が施され、その結果、図５のクロスデバッガ用H/Wモデルプログラム２７ａが生成される。図５に示すように、クロスデバッガ用H/Wモデルプログラム２７ａは、所定の付加情報として、構造体定義部５１と、メソッド文字列部５２，５３と、メソッド内容送信メソッド部５４とが、H/Wモデルプログラム２７のコード部の前に、付加されたプログラムである。
【００２４】
構造体定義部５１は、構造体として記述されたメソッド文字列部５２，５３の構造体の定義が記述された定義情報を含む。メソッド文字列部５２，５３は、２つのメソッド「writeCntlBus」と「readCntlBus」の文字列情報を含む。メソッド内容送信メソッド部５４は、メソッド文字列部５２，５３の文字列情報を送信するためのメソッドの情報を含む。これらの付加情報が、H/Wモデルプログラム２７の前に付加されたのが、クロスデバッガ用H/Wモデルプログラム２７ａである。
【００２５】
図３の付加処理プログラム３１の処理内容について、図６を用いて説明する。  
図６は、付加処理部としての付加処理プログラム３１の処理内容の例を示すフローチャートである。付加処理プログラム３１は、記憶装置１３に記憶されており、ホストCPU１１ａにより読み出されて実行される。
【００２６】
H/Wモデルプログラム２７に対する付加処理を実行するとき、ユーザは、H/Wモデルプログラム２７のソースファイル名と、H/Wモデルプログラム２７に含まれるクラス名の情報を、ホストCPU１１ａに与える。ここでは、ソースファイル名として、「Simple HWE」が、クラス名として「HWE」が与えられたとする。
【００２７】
従って、ホストCPU１１ａは、図４の場合、その入力されたソースファイル名「Simple HWE」とクラス名「HWE」の情報を引数として受け取る（ステップS1）。
【００２８】
ホストCPU１１ａは、受け取ったソースファイル名とクラス名とに基づいて、対象ファイル中のメソッドを文字列情報として取得する（ステップS2）。このとき、H/Wモデルプログラム２７は、「クラス名：：メソッド名」というルールに基づいて記述されているので、まず、２つのメソッドが文字列情報として取得される。
【００２９】
具体的には、図４において、クラス名「HWE」と、メソッド名「writeCntlBus」とから、コード部４１の文字列情報が取得され、クラス名「HWE」と、メソッド名「readCntlBus」とから、コード部４２の文字列情報が取得される。メソッド名は、ユーザによって予め定義されているので、ホストCPU１１ａは、「クラス名：：writeCntlBus」と、「クラス名：：readCntlBus」の２つのメソッドの文字列情報を、取得することができる。
【００３０】
次に、ホストCPU１１ａは、取得した文字列情報を、構造体配列として定義する（ステップS3）。ここでは、構造体配列は、文字列を含む構造体の配列である。
【００３１】
そして、ホストCPU１１ａは、定義された構造体配列から文字列情報を、要求があったときに送信するためのメソッド内容送信メソッドを定義する（ステップS4）。図５では、そのメソッド内容送信メソッドは、メソッド内容送信メソッド部５４において「getFuncLine」として記述されている。すなわち、ステップS4で定義されて生成されたメソッド内容送信メソッドのコードは、クロスデバッガ２４からの要求に応じて、メソッド内容の文字列をクロスデバッガ２４へ送信するコードである。
【００３２】
ホストCPU１１ａは、定義した構造体配列とメソッド内容送信メソッドを含む付加情報を、H/Wモデルプログラム２７に追加する（ステップS5）。  
ステップS5の結果、図５に示すように、H/Wモデルプログラム２７の部分の前に、構造体定義部５１と、ステップS3で定義されて生成された文字列情報の構造体配列部５２，５３と、ステップS4で定義されて生成されたメソッド内容送信メソッド部５４が、追加されて、クロスデバッガ用H/Wモデルプログラム２７ａが生成される。
【００３３】
クロスデバッガ用H/Wモデルプログラム２７ａは、ホストマシン用ネイティブコンパイラ２１でコンパイルされると、上述した付加情報を含む実行形式のターゲットシミュレータ実行ファイル２５となる。
【００３４】
以上のように、付加処理プログラム３１は、ターゲットシミュレータ２５に含まれる各機能ブロックの所定の処理を実行するための定義コードの文字列情報を生成する。そして、付加処理プログラム３１は、その文字列情報を送信するための文字列情報送信プログラムとしてのメソッド内容送信メソッド部５４を生成して、生成された文字列情報と生成された文字列情報送信プログラムとを、各機能ブロックの定義コードに付加する処理を実行する。
【００３５】
ターゲットシミュレータ実行ファイル２５は、コード部４１、４２のメソッド文字列部５２，５３と、メソッド内容送信メソッド部５４とを含むようにしたので、クロスデバッガ２４からの、文字列の送信要求コマンドを受信すると、メソッド内容送信メソッド部５４のメソッドを実行させて、コード部４１、４２のメソッド文字列部５２，５３の情報を、クロスデバッガ２４へ送信する。
【００３６】
そして、クロスデバッガ２４は、受信したメソッド文字列部５２，５３の情報を、ユーザプログラム２６中に含めて表示するミックス表示処理を行う。
【００３７】
図７は、クロスデバッガ２４を利用して、ユーザプログラム２６をデバッグするために表示装置１２に表示されている画面の例を示す図である。図８は、ユーザプログラム２６中のユーザによって指定された命令に対応する、H/Wモデルプログラム２７が表示されている画面の例を示す図である。
【００３８】
例えば、図７のように、表示装置１２の表示画面１２ａ上に、ユーザプログラム２６の一部が表示されている状態で、ユーザが、表示されているある行（ここでは「stcb(a[0],HWE_CBBASE);」の行）に対応するH/Wモデルプログラムの表示の指定を、所定の操作によって、行うと、図８の画面が表示装置１２の表示画面１２ａ上に表示される。
【００３９】
図７における印６１の指す行についてのミックス表示がユーザにより指示されたとすると、図８に示すように、行「stcb(a[0],HWE_CBBASE);」の下に、対応するH/Wモデルプログラムのソースコードを含むソースコード表示部６２が表示される。言い換えると、ユーザの指定した行「stcb(a[0],HWE_CBBASE);」と次の行「ldcb(b[0],HWE_CBBASE);」の間に、行「stcb(a[0],HWE_CBBASE);」に対応するH/Wモデルプログラムのソースコードが追加され合成される。  
ユーザは、他の行についても、同様に指定すると、同様に対応するH/Wモデルプログラムのソースコードをミックス表示させることができる。
【００４０】
次に、そのミックス表示のためのクロスデバッガ２４における処理内容について説明する。  
クロスデバッガ２４における処理の説明の前に、モデル識別テーブルと命令API対応テーブルの２つのテーブルデータについて説明する。
【００４１】
ネイティブコンパイラ２１が、クロスコンパイラ２３と、クロスデバッガ２４と、ターゲットシミュレータ２５をコンパイルするとき、コンパイルの対象である制御S/WとH/Wモデルプログラムのコンフィギュレーションデータが生成される。コンフィギュレーションデータは、複数のH/Wモデルプログラムのそれぞれが、ホストCPU１１ａの制御バスアドレス上のどのアドレスの範囲にあるかの情報を含んでいる。よって、各H/Wモデルすなわち各機能ブロックは、制御バスアドレスのデータに基づいて区別すなわち識別することができる。
【００４２】
そこで、そのコンフィギュレーションデータに基づいて、図９に示すようなテーブルが予め作成される。図９は、モデル識別テーブルの例を示す図である。モデル識別テーブル７１は、記憶装置１３に記憶され、各機能ブロックを識別するための機能ブロック識別情報を記憶する機能ブロック識別情報記憶部を構成する。
【００４３】
機能ブロック識別情報記憶部としてのモデル識別テーブル７１は、制御バスアドレス欄７１ａと、モデルを特定するためのモデル識別番号欄７１ｂを有し、制御バスアドレスとモデル識別番号のデータが登録されている。図９では、例えば、制御バスアドレス「0x4****」には、機能ブロック識別番号としてのモデル識別番号「０」が対応することが示されている。
【００４４】
また、ユーザプログラム中の命令と、その命令に対応するH/Wモデルプログラムの対応関係は、ユーザによって予め決められている。図１０は、命令API対応テーブルの例を示す図である。命令API対応テーブル７２は、記憶装置１３に記憶され、動作プログラムとしての制御S/W中の命令と、各機能ブロックにおける所定の処理との命令対応情報を記憶する命令対応情報記憶部を構成する。
【００４５】
命令対応情報記憶部としての命令API対応テーブル７２は、命令欄７２ａと、API欄７２ｂと、API番号欄７２ｃを有し、ユーザプログラム中の命令と、H/Wモデルプログラムの所定の処理すなわちメソッド名を示すAPIと、APIを特定するAPI番号のデータが登録されている。図１０では、例えば、命令「stcb」には、API「writeCntBus」と、そのAPIに対応するAPI番号「１」が対応することが示されている。
【００４６】
図１１は、クロスデバッガ２４におけるミックス表示処理の流れの例を示すフローチャートである。図１２は、ミックス表示が行われるときのユーザインターフェースとしての画面表示、クロスデバッガ２４、及びターゲットシミュレータ２５間の処理の流れを説明するための図である。
【００４７】
ユーザは、クロスデバッガ２４を用いて、図７に示すような表示画面１２ａ上にユーザプログラムを表示させながら、ユーザプログラムのデバッグを行うことができる。そのデバッグ中において、ユーザプログラム中のある命令が、ある機能ブロックに対応するH/Wモデルプログラムを動作させるための命令である場合がある。そして、ユーザは、その命令に対応するH/Wモデルプログラム２７のソースプログラムを見て確認するためにミックス表示をさせたい場合、所定の操作を行うことにより、図１１の処理を実行させることができる。例えば、その命令を含む行を選択して、所定のコマンドを指定することによって、図１１の処理の実行を指示することができる。例えば、図７に示す行についてミックス表示のコマンドが指示されたとする。
【００４８】
そのようなコマンドが入力されると、ホストCPU１１ａは、指定された命令のコードを逆アセンブルする（ステップS11）。  
そして、逆アセンブルの結果から、ニモニックとオペランドの情報を取得する（ステップ（S12）。
【００４９】
図１２に示すように、逆アセンブルの結果から、例えば、「stcb $r11, 0x4000」のニモニックとオペランドの情報が得られる。ここで、「0x4000」は、制御バスアドレスを示す。
【００５０】
そこで、上述したモデル識別テーブル７１と命令API対応テーブル７２とから、モデルの番号と、命令に対応するAPIの番号から、H/WモデルとAPIの特定をすることができる（ステップS13）。すなわち、制御バスアドレスデータ「0x4000」からH/Wモデルの識別番号が特定され、ニモニック「stcb」からAPI番号が特定される。
【００５１】
そして、その得られたH/Wモデルのモデル識別番号とAPI番号を利用して、H/Wモデルプログラムの文字列の送信要求コマンドを生成して、ターゲットシミュレータ２５へ送信する（ステップ（S14）。
【００５２】
送信要求コマンドは、モデル識別番号とAPI番号の２つの情報を含んだ、例えば、コマンド「getlinestr(0,1)」のようなコマンドである。この場合、そのコマンドにおいて、左側の第１引数「０」はモデル識別番号に対応し、右側の第２引数「１」はAPI番号に対応する。すなわち、制御バスアドレス「0x4000」から、モデル識別番号「０」が抽出され、ニモニック「stcb」から、API番号「１」が抽出されて、送信要求コマンド「getlinestr(0,1)」が生成される。
【００５３】
ターゲットシミュレータ２５はその送信要求コマンドを受信すると（ステップS21）、そのH/Wモデルプログラム中に含まれるメソッド内容送信メソッドを実行する（ステップS22）。
【００５４】
具体的には、ターゲットシミュレータ２５は、送信要求コマンドに含まれるH/Wモデル識別番号とAPI番号とから特定されるH/Wモデルプログラムの、図５のメソッド内容送信メソッド部５４のメソッド内容送信メソッドを実行する。  
図１３は、メソッド内容送信メソッドを実行させるためのプログラムの例を示す図である。例えば、ターゲットシミュレータ２５は、図１３に示すようなプログラムを実行することによって、対応するメソッド内容送信メソッドを実行させる。図１３において、「int num」がモデル識別番号を示し、「int type」がAPI番号を示す。
【００５５】
そのメソッド内容送信メソッドが実行されると、ターゲットシミュレータ２５から、H/Wモデルプログラムの文字列情報が、クロスデバッガ２４へ送信され、クロスデバッガ２４は、そのH/Wモデルプログラムの文字列情報を受信する（ステップS15）。  
ステップS14とS15が、命令対応情報に基づいて、機能ブロックの定義コードの文字列情報を取得する文字列情報取得部を構成する。
【００５６】
クロスデバッガ２４は、図８に示すように、受信したH/Wモデルプログラムの文字列情報を、指令された命令の下に表示するミックス表示を行う（ステップS16）。  
その結果、図８に示すようなミックス表示が画面１２ａ上に行われる。ステップS16が、取得した定義コードの文字列情報を、指定された命令と合成して表示するための合成表示部を構成する。
【００５７】
以上のように、本実施の形態によれば、ユーザは、ユーザプログラムのデバッグ時に、ユーザプログラムにおける命令に対応するH/Wモデルプログラムの内容を、併せて見て確認することができる。
【００５８】
なお、H/Wモデルプログラムは、図８のような途中にコードを挿入するだけでなく、挿入部分を見やすくするために、挿入されたH/Wモデルプログラム部分の色を、他のコード部とは異なる色にするようにして表示するようにしてもよい。
【００５９】
さらに、H/Wモデルプログラムを、図１４に示すような別のウインドウ枠内に表示するようにしてもよい。図１４は、H/Wモデルプログラムのミックス表示の例を示す図である。例えば、図１４に示すように、ウインドウ枠６２ａ内に、H/Wモデルプログラムが表示される。
【００６０】
以上のように、ユーザは、ユーザプログラム中の命令に対応するH/Wモデルプログラムの内容を確認することができるが、さらに、H/Wモデルプログラムを１ステップずつ実行させる、すなわちシングルステップ実行をさせたい、という場合がある。
【００６１】
そこで、シングルステップ実行を可能とするための所定のコードの追加処理を、上述した付加処理において、さらに行うようにしてもよい。
【００６２】
図１５は、H/Wモデルプログラム２７ｃの例を示す図である。図１６は、シングルステップ処理に対応するための所定のコードが付加されたH/Wモデルプログラム２７ｄの例を示す図である。
【００６３】
図１５には、H/Wモデルプログラム２７ｃの２つのコード部４１ａ、４２ａが示されている。図１６には、それらの２つのコード部４１ａ，４２ａに所定のコードが追加されたH/Wモデルプログラム２７ｄの２つのコード部４１ｂ、４２ｂが示されている。
【００６４】
図１６に示すように、各H/Wモデルプログラムの各行の最後に所定のコードが追加されている。追加されたコードは、「if (ssmode= =1) gmon->singleStep();」である。追加されたコードは、クロスデバッガ２４にプログラムの実行制御を戻すためのコードである。言い換えると、このコードは、シングルステップモードに設定されているときには、gmonのクラス中のシングルステップのメソッドを実行させるためのコードである。そして、そのメソッドは、クロスデバッガ２４に、H/Wモデルプログラムの実行が停止されたことを通知する処理を行う。
【００６５】
そして、クロスデバッガ２４において、ユーザがシングルステップモードに設定されると、ターゲットシミュレータ２５に、シングルステップモードが設定されたことが通知される。
【００６６】
その結果、ターゲットシミュレータ２５内には、「ssmode」の値が「１」に設定される。よって、ターゲットシミュレータ２５は、シングルステップモードであるか否かを判定することができる。
【００６７】
ターゲットシミュレータ２５は、H/Wモデルプログラム４１ｂ、４２ｂを実行したときに、「ssmode」を参照して、シングルステップモードであるか否かが判定できるので、シングルステップモードのときに各行を実行すると、クロスデバッガ２４へ、H/Wモデルプログラムの実行が停止されたことが通知され、クロスデバッガ２４に、プログラムの実行制御が戻される。
【００６８】
クロスデバッガ２４は、ターゲットシミュレータ２５から、H/Wモデルプログラムの実行が停止したことが通知されると、ユーザは、画面上でその停止を認識することができるので、実行を再開させる、別の処理を行う、等のコマンドを指示することができる。
【００６９】
以上のように、上述したデバッグ装置によれば、ユーザプログラムのデバッグ時に、ユーザプログラムにおける命令に対応するH/Wモデルプログラムの内容を、併せて見て確認でき、さらに、H/Wモデルプログラムもシングルステップで動作させることも可能となる。
【００７０】
以上説明した構成によれば、ユーザは、ユーザプログラムをデバッグするとき、プログラム中に、特に検証したい部分にブレークポイントを設定して、そのブレークポイントを設定した行の直前の行を実行した状態で、シミュレータの実行を停止することをしばしば行う。
【００７１】
その停止状態において、上述したように、対応するH/Wモデルプログラムの内容を確認したり、さらにシングルステップモードに設定して、H/Wモデルプログラムをシングルステップで実行させることが可能となる。
【００７２】
なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬媒体や、ハードディスク等の記憶媒体に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明のデバッグ装置を実現することができる。
【００７３】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施の形態に係わるデバッグ装置の構成を示す構成図である。
【図２】本発明の実施の形態に係わるデバッグ装置に含まれるソフトウエアの構成を説明するための図である。
【図３】本発明の実施の形態に係わるターゲットシミュレータ実行ファイルの生成処理の流れを説明するためのフローチャートである。
【図４】本発明の実施の形態に係わるH/Wモデルプログラムの例を示す図である。
【図５】本発明の実施の形態に係わる、付加処理により生成されたクロスデバッガ用H/Wモデルプログラムの例を示す図である。
【図６】本発明の実施の形態に係わる、付加処理プログラムの処理内容の例を示すフローチャートである。
【図７】本発明の実施の形態に係わる、クロスデバッガを利用して、ユーザプログラムをデバッグするために表示装置に表示されている画面の例を示す図である。
【図８】本発明の実施の形態に係わる、ユーザプログラム中のユーザによって指定された命令に対応する、H/Wモデルプログラムが表示されている画面の例を示す図である。
【図９】本発明の実施の形態に係わるモデル識別テーブルの例を示す図である。
【図１０】本発明の実施の形態に係わる命令API対応テーブルの例を示す図である。
【図１１】本発明の実施の形態に係わる、クロスデバッガにおけるミックス表示処理の流れの例を示すフローチャートである。
【図１２】本発明の実施の形態に係わる、ミックス表示が行われるときのユーザインターフェースとしての画面表示、クロスデバッガ、及びターゲットシミュレータ間の処理の流れを説明するための図である。
【図１３】本発明の実施の形態に係わる、メソッド内容送信メソッドを実行させるためのプログラムの例を示す図である。
【図１４】本発明の実施の形態に係わる、H/Wモデルプログラムのミックス表示の例を示す図である。
【図１５】本発明の実施の形態に係わる、H/Wモデルプログラムの例を示す図である。
【図１６】本発明の実施の形態に係わる、シングルステップ処理に対応するための所定のコードが付加されたH/Wモデルプログラムの例を示す図である。
【符号の説明】
【００７５】
１  デバッグ装置、１１  コンピュータ本体、１１ａ  CPU、１２  表示装置、１２ａ  表示画面、１３  記憶装置、２７、H/Wモデルプログラム、２７ａ  クロスデバッガ用H/Wモデルプログラム
【図１】
2010044577.tif 000003
【図２】
2010044577.tif 000004
【図３】
2010044577.tif 000005
【図４】
2010044577.tif 000006
【図５】
2010044577.tif 000007
【図６】
2010044577.tif 000008
【図７】
2010044577.tif 000009
【図８】
2010044577.tif 000010
【図９】
2010044577.tif 000011
【図１０】
2010044577.tif 000012
【図１１】
2010044577.tif 000013
【図１２】
2010044577.tif 000014
【図１３】
2010044577.tif 000015
【図１４】
2010044577.tif 000016
【図１５】
2010044577.tif 000017
【図１６】
2010044577.tif 000018