(57)【要約】【課題】機器組込みプログラムの開発環境において、デバッグの際にデバッグデータをデバッガを搭載するホストの画面上に表示することを目的とする。【解決手段】開発環境と動作環境が異なる機器組込みプログラムの開発において、デバッグ用のプログラムに、ターゲットを動作させるプログラムの他にデバッグ情報を含む実行形式プログラムＤ１３０と、デバッグデータをホスト上の画面に表示するための表示プラグインＤ１４０を備え、デバッグ情報に対応したデバッグデータを表示プラグインを起動することによりホスト上の画面に表示することができるため、機器組込みプログラムの開発環境において、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホスト上の画面に表示することができる。【選択図】    図１
2004280476.tif 000002
【特許請求の範囲】
【請求項１】
動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第１のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第２のプログラムから成る高級言語で書かれた第３のプログラムを用いて前記第１のプログラムをデバッグするプログラム開発装置であって、
開発環境であるホストコンピュータと、
前記第３のプログラムより前記第１のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第２のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイラと、
ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行部と、
デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理部と、
デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行して前記プログラム開発装置のホスト上の画面にデバッグデータを表示するユーザインタフェース処理部と
を有することを特徴とするプログラム開発装置。
【請求項２】
前記ターゲット用コンパイラが、
前記第３のプログラムを前記第１のプログラムと前記第２のプログラムに分離するプログラム分離部と、
前記第１のプログラムからデバッグを行なう第４のプログラムを生成するコード生成部と、
前記第１のプログラムから前記デバッグ情報を抽出するデバッグ情報生成部と、
前記第２のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成部と、
前記第４のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成部と
を有することを特徴とする請求項１記載のプログラム開発装置。
【請求項３】
動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第１のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第２のプログラムから成る高級言語で書かれた第３のプログラムを用いて前記第１のプログラムをデバッグするプログラム開発プログラムであって、
前記第３のプログラムより前記第１のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第２のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイルステップと、
ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行ステップと、
デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理ステップと、
デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行してプログラム開発プログラムが動作するホスト上の画面にデバッグデータを表示するユーザインタフェース処理ステップと
を有することを特徴とするプログラム開発プログラム。
【請求項４】
前記ターゲット用コンパイルステップが、
前記第３のプログラムを前記第１のプログラムと前記第２のプログラムに分離するプログラム分離ステップと、
前記第１のプログラムからデバッグを行なう第４のプログラムを生成するコード生成ステップと、
前記第１のプログラムから前記デバッグ情報を抽出するデバッグ情報生成ステップと、
前記第２のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成ステップと、
前記第４のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成ステップと
を有することを特徴とする請求項３記載のプログラム開発プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム開発環境と異なる動作環境の機器に組込まれるプログラムの開発における、プログラム開発装置およびプログラム開発プログラムに関する。
【０００２】
【従来の技術】
プログラムの開発を行なう際、プログラムの動作を確認／検証するためにデバッガが使用される。デバッガにはプログラムの動作を確認／検証するためのいくつかの機能を備えている。例えば、プログラム上のある位置で実行を停止するブレーク機能、停止した位置からソースプログラムの一行分の実行後に再び停止するステップ機能、プログラム上の変数の内容を表示する変数参照機能などの機能がある。このうち、変数参照機能は、プログラム上に変数として定義されたデータを、プログラム言語上で定義した型に従って表示するもので、プログラム作成者が意図した形式ではないことが多い。
【０００３】
そのために、従来技術によると、プログラム中にデバッグデータ表示のためのルーチンを持たせて、デバッグの際に呼び出すことができるようにしていた。これにより、プログラム作成者が定義した型のデータをプログラム開発者にとって望む形式で表示させることが可能になる（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開平３−２２０３９号公報  （第２図）
【０００５】
【発明が解決しようとする課題】
しかしながら、プログラム開発環境と機器の動作環境が、例えば共にウィンドウズ（登録商標）であるように、同じ環境である場合は従来の技術で問題はないが、通常、開発環境と動作環境が異なるプログラム（以下、機器組込みプログラムと称す）において、ターゲット上のプログラムではデータ構造を表示する手段がターゲットボード上のＬＥＤ等に限られているため、デバックデータをプログラム開発者の望む形式表示できない。そのために、デバッグデータをデバッガを搭載するホスト上に表示しようとしても、ターゲット用のプログラムに動作環境の異なるデータ表示用のルーチンを含めて持たせる事はできず、また、ホスト上にデータ表示用ルーチンを含んだプログラムを準備しても、デバッグ環境内でデバッグ対象プログラムと該データ表示用ルーチンを含んだプログラムは動作環境が異なるので、両者を関連付けて実行する手段がない。そのために、機器組込みプログラムの開発環境において、従来技術では、プログラム中にデバッグの結果に基づくデバッグデータ表示のためのルーチンを持たせて、デバッグの際に呼び出すことが困難であるという問題点を有していた。
【０００６】
上記問題点を解決するために、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホストの画面上に表示することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１記載のプログラム開発装置は、動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第１のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第２のプログラムから成る高級言語で書かれた第３のプログラムを用いて前記第１のプログラムをデバッグするプログラム開発装置であって、開発環境であるホストコンピュータと、前記第３のプログラムより前記第１のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第２のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイラと、ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行部と、デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理部と、デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行して前記プログラム開発装置のホスト上の画面にデバッグデータを表示するユーザインタフェース処理部とを有することを特徴とする。
【０００８】
請求項２記載の前記プログラム開発装置は、請求項１記載のプログラム開発装置であって、ターゲット用コンパイラが、前記第３のプログラムを前記第１のプログラムと前記第２のプログラムに分離するプログラム分離部と、前記第１のプログラムからデバッグを行なう第４のプログラムを生成するコード生成部と、前記第１のプログラムから前記デバッグ情報を抽出するデバッグ情報生成部と、前記第２のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成部と、前記第４のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成部とを有することを特徴とする。
【０００９】
請求項３記載のプログラム開発プログラムは、動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第１のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第２のプログラムから成る高級言語で書かれた第３のプログラムを用いて前記第１のプログラムをデバッグするプログラム開発プログラムであって、前記第３のプログラムより前記第１のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第２のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイルステップと、ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行ステップと、デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理ステップと、デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行してプログラム開発プログラムが動作するホスト上の画面にデバッグデータを表示するユーザインタフェース処理ステップとを有することを特徴とする。
【００１０】
請求項４記載のプログラム開発プログラムは、請求項３記載のプログラム開発プログラムにおいて、前記ターゲット用コンパイルステップが、前記第３のプログラムを前記第１のプログラムと前記第２のプログラムに分離するプログラム分離ステップと、前記第１のプログラムからデバッグを行なう第４のプログラムを生成するコード生成ステップと、前記第１のプログラムから前記デバッグ情報を抽出するデバッグ情報生成ステップと、前記第２のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成ステップと、前記第４のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成ステップとを有することを特徴とする。
【００１１】
以上により、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホストの画面上に表示することができる。
【００１２】
【発明の実施の形態】
本発明の実施の形態について、図１，図２，図３，図４，図５，図６，図７，図８を引用しながら説明する。
【００１３】
図１は本発明のプログラム開発装置の構成図であり、入出力ファイルおよび処理の流れを示している。図２はソースプログラムのヘッダを例示する図，図３はソースプログラムのターゲット用プログラムの実現部を例示する図，図４はソースプログラムのホスト用プログラムの実現部を例示する図，図５は本発明のターゲット用コンパイラの構成図，図６はデバッグ情報を例示する図，図７は本発明のデバッガの構成図，図８は本発明のデバッガ核部の構成図である。
【００１４】
図１において、ソースプログラムＤ１００は、プログラム開発環境とは異なるターゲットの動作環境で動作する高級言語で記述されたプログラムである。ソースプログラムＤ１００は、ターゲット用コンパイラ１１０へ入力されるプログラムであり、ターゲット上で実行するためのプログラムと、ホスト上のデータ表示用ルーチンとして用いるプログラムを併せ持つ形となっている。
【００１５】
ターゲット用コンパイラ１１０は、高級言語で記述されたプログラムをターゲットプロセッサ上で動作するプログラムに変換する装置である。本発明では、ソースプログラムＤ１００を入力して、次に述べる表示プラグインソースプログラムＤ１２０と実行形式プログラムＤ１３０を出力する。なお、該ターゲット用コンパイラ１１０の詳細な構成は後で述べる。
【００１６】
表示用プラグインソースプログラムＤ１２０は、ターゲット用コンパイラ１１０によって生成されるもので、データ表示ルーチンを含むソースプログラムである。
【００１７】
実行形式プログラムＤ１３０は、ターゲット用のプログラムを含むバイナリファイルで、デバッガで参照するデバッグ情報なども含んでいる。
ホスト用コンパイラ１２０は、高級言語で記述されたプログラムをホストの動作環境で動作するプログラムに変換する装置であって、表示プラグインソースプログラムＤ１２０を入力して、表示プラグインＤ１４０を出力する。
【００１８】
表示プラグインＤ１４０は、ホスト用コンパイラ１２０によって生成されるホスト上で動作するプログラムにより、指示された形式のデバッグデータをホスト上の画面に表示する。
【００１９】
デバッガ２００は、ターゲットプロセッサ用のプログラムの実行手段を備えており、本発明では実行形式プログラムＤ１３０と表示プラグインＤ１４０を入力する。ここで、デバッグ実行部（図示せず）にてターゲット用のプログラムを実行して、ユーザが該プログラムをデバッグする際に、表示プラグインＤ１４０を呼び出してプログラム中のデータ構造をホスト上の画面に表示する。該デバッガ２００の詳細な構成は後で述べる。
【００２０】
次に、ソースプログラムＤ１００の具体的な構成例を図２，図３，図４に挙げる。
図２において、ソースプログラムＤ１００のヘッダファイルにはプログラムの各種宣言が記述されており、表示ルーチンの宣言については、＃ｐｒａｇｍａ  コンパイラ指示子を付記しておく。
【００２１】
図３において、この実現部には、実動作に用いるターゲットプログラムのコードに関する記述が含まれ、ターゲットプロセッサ上で動作するプログラムとなる。
【００２２】
図４において、この実現部はホスト用のプログラムで、データ表示ルーチンが記述される。
次に、前述のターゲット用コンパイラ１１０の構成について、図５を用いて詳しく説明する。
【００２３】
図５において、該ターゲット用コンパイラ１１０は、ソースプログラムＤ１００を入力として受け取り、以降で述べる各手段内で処理されて、実行形式プログラムＤ１３０および表示プラグインソースプログラムＤ１２０を生成する。
【００２４】
まず、プログラム分離処理手段１１１は、ソースプログラムＤ１００の前処理を行なう手段で、ソースプログラム中のコンパイラ指示子に基づいて、インクルードファイルの取り込み、定義／未定義シンボルによるソースファイル選択処理などを行なう。この時、＃ｐｒａｇｍａ  コンパイラ指示子が付記されたシンボル（ルーチン）やファイルを、ターゲットプログラムから分離して、表示プラグインソース生成手段１１２へ渡す。
【００２５】
表示プラグインソース生成手段１１２は、前記プログラム分離処理手段１１１から前処理されたソースプログラムを受け取って、表示プラグインソースプログラムＤ１２０を生成して出力する。
【００２６】
構文解析手段１１３は、ソースプログラムの文字列を調べて、意味のある最小単位（トークン）に切り分ける処理を行ない、トークン列（構文解析木）を生成する。
【００２７】
意味解析手段１１４は、トークン列（構文解析木）からその意味を解析し、中間コードを生成する。この時、表示プラグインに関するシンボルについての情報として表示プラグイン情報Ｄ１１１をデバッグ情報生成手段１１７に渡す。
【００２８】
最適化手段１１５は、生成するターゲット用プログラムのコードＤ１１２のサイズを小さくしたり、実行速度が高速になるように、ターゲット用プログラムのコードＤ１１２の生成に用いる中間コードを最適化する。
【００２９】
コード生成手段１１６は、中間コードからターゲットプログラム用のコードＤ１１２を生成する。
デバッグ情報生成手段１１７は、ソースプログラムＤ１００とターゲットプログラム用のコードＤ１１２の対応関係を示すデバッグ情報Ｄ２２０を生成する。この時、表示プラグイン情報Ｄ１１１を入力として、表示プラグインに関する情報をデバッグ情報Ｄ２２０に付加する。例えば、図６に示したデバッグ情報は、ユーザが定義した型ｃｌａｓｓ  Ｘについてのデバッグ情報である。該デバッグ情報は木構造になっており、通常、上位のノードと下位のノードの間には所有あるいは付帯の関係がある。例えば、クラスＸを表すノードＤ２２０１は、該クラスＸのメンバおよびメンバ関数を表すノードＤ２２０２，ノードＤ２２０３，ノードＤ２２０４，Ｄ２２０７，およびＤ２２１０を所有しており、関数を表すノードＤ２２０４は、該関数の引数を表すノードＤ２２０５およびノードＤ２２０６を所有している。ここで、ノードＤ２２１０は、クラスＸのメンバ関数としてソースプログラム中に定義されているが、表示プラグイン情報Ｄ１１１に示されるコンパイル指示子によりデータ表示ルーチンであることがわかるので、該ノードに外部プログラムであることを示す情報を付加する。このデバッグ情報Ｄ２２０と前述のコードＤ１１２を合わせて実行形式プログラムＤ１３０が生成される。
【００３０】
次に、前述のデバッガ２００の構成について、図７を用いて詳しく述べる。
図７は該デバッガ２００の簡単な内部構成を示し、ユーザインタフェース部２１０は、画面表示やホストコンピュータとの入出力処理などを行なうモジュールである。デバッガ核部２２０は、デバッグ機能の中心となるモジュールで、オブジェクトファイルの読み込み、ユーザからのコマンド入力の解釈および後述のターゲット処理部への指示と結果の解釈、表示データの構成などを行なう。ターゲット処理部２３０は、ターゲットプロセッサおよび該プロセッサのシミュレータに対する処理を行なう。本発明において重要なモジュールはデバッガ核部２２０である。
【００３１】
以下、デバッガ核部について、図８を用いてさらに詳細に説明する。
図８は、デバッガ核部２２０の内部構成であり、実行形式ファイルロード処理部２２１は、オブジェクトファイルのロード処理を行なうモジュールであって、プログラムおよびデータを取り出してターゲットに置き、デバッグ情報Ｄ２２０を取り出してデバッグ情報管理部２２２に出力する。
【００３２】
デバッグ情報Ｄ２２０は、ターゲット用コンパイラ１１０によって生成されたもので実行形式ファイルＤ１３０に含まれている。
デバッグ情報管理部２２２は、デバッグ情報Ｄ２２０を入力として受け取り、デバッグ情報Ｄ２２０に関する問い合わせに答える。例えば、関数名／変数名からアドレスを求める処理、ソースプログラムのファイル名と行番号からアドレスを求める処理、関数名からその関数の引数名と型を求める処理、型名からその型のサイズを求める処理などを行なう。
【００３３】
コマンド入力処理部２２３は、デバッガに対するコマンドを解釈して、各処理部を起動する。本発明では、プログラム中のデータを参照するために、表示ルーチンを呼び出すコマンドが入力された場合には、次に述べる関数起動処理部２２４を起動し、表示プラグインＤ１４０を用いてデータの表示を行なう。
【００３４】
関数起動処理部２２４は、表示プラグインＤ１４０を入力として受け取り、前述のコマンド入力処理部２２３から表示プラグイン起動指示があった場合には、デバッグ情報管理部２２２にデータ表示ルーチンに必要なデータについて問い合わせた後、表示プラグインＤ１４０を起動して実際にホスト上の画面にデバッグデータを表示させる。
【００３５】
引数資源情報Ｄ２２１は、関数起動処理部２２４が表示ルーチンを起動するために必要な引数の式を評価する際に、デバッグ情報管理部２２２に対して必要なデータが存在するプロセッサ上の資源としてレジスタやアドレスを問い合わせて実際にターゲット上にあるデータを取得した結果である。
【００３６】
ターゲット操作処理部２２５は、前述の引数資源情報Ｄ２２１を入力して、データ表示ルーチンの起動に必要となるターゲット上に存在するデータを取得する手段で、ターゲットに対するデータアクセス機構により実現される。
【００３７】
ターゲット引数データＤ２２２は、前述のターゲット操作処理部２２５により取得された、ターゲット上に存在するデータを取り出したもので、データ表示ルーチンの起動に必要となる。
【００３８】
データ変換処理部２２６は、前述のターゲット引数データＤ２２２のデータをホスト上で実行するデータ表示ルーチンに対応した形式に変換する処理を行なう。該変換処理には、ホストとターゲットのプロセッサの違いに起因するデータ変換が含まれ、ターゲット引数データＤ２２２を変換し、ホスト引数データＤ２２３を出力する。
【００３９】
ホスト引数データＤ２２３は、前述のデータ変換処理部２２６によって生成された、ホスト上のプログラムで処理可能なデータである。
ユーザインタフェース処理部２２７は、関数起動処理部２２４から起動する関数が外部プログラムである場合に、表示プラグインに対して前述のホスト引数データＤ２２３を入力として与え、ホストコンピュータ上で表示プラグインを起動させて、ホスト上の画面に表示する。
【００４０】
次に、例を用いて本発明の構成が動作する様子を説明する。
まず、図２〜４に示したソースプログラムは、ターゲット用コンパイラ１１０で翻訳され、プログラム分離手段１１１で、ターゲット用のソースプログラムとホスト用のソースプログラムに分離される。この時、図２に示したように、＃ｐｒａｇｍａ  指示子によりデバッガで表示するための関数として宣言された”ＶｉｅｗＸ”は、ターゲット用のプログラム内にデバッガでの表示を宣言する関数を呼び出すためのデバッグ情報を生成するために分離されずに残される。
【００４１】
次に、構文解析手段１１３でソースプログラムの構文解析を行ない、続いて意味解析手段１１４で中間コード生成を行なう。意味解析時に、前述のデバッガでの表示を宣言する関数については、以降のコード生成に影響がないので、表示プラグイン情報Ｄ１１１として取り出す。
【００４２】
次に、最適化手段１１５で中間コードの最適化処理を行ない、コード生成手段１１６でターゲット用プログラムのコードＤ１１２に変換する。最後にデバッグ情報生成手段１１７でコードＤ１１２とソースプログラムの対応についてのデバッグ情報を生成し、実行形式プログラムＤ１３０を出力する。この時、表示プラグイン情報Ｄ１１１の情報も含める。例えば、図６に示したデバッグ情報は、図２〜４についての情報の一部で、クラス型”Ｘ”についての情報を示している。その中で、ノードＤ２２０４，ノードＤ２２０７，ノードＤ２２１０は、関数についての情報を示しており、通常は関数名、戻り値型、開始アドレスの情報が含まれる。ノードＤ２２１０は表示プラグイン情報Ｄ１１１から生成されたノードで、ホスト上の画面に表示するための関数として宣言された”ＶｉｅｗＸ”についての情報および、該関数の引数”ｔｈｉｓ”についての情報が含まれている。
【００４３】
また、プログラム分離手段１１１から表示プラグインソース生成手段１１２により表示プラグインソースプログラムＤ１２０が生成される。そしてホスト用コンパイラ１２０は、表示プラグインソースプログラムＤ１２０から該表示プラグインＤ１４０を生成する。
【００４４】
上記手順により、実行形式プログラムＤ１３０および表示プラグインＤ１４０が生成される。
次に、デバッガ２２０が起動し、実行形式プログラムＤ１３０がデバッガ核部２２０の実行形式ファイルロード処理部２２１によって読み込まれて、デバッグ処理を開始すると、実行形式プログラムＤ１３０に含まれるデバッグ情報Ｄ１１３がデバッグ情報管理部２２２に格納される。
【００４５】
次に、コマンド入力処理部２２３がユーザからのコマンドとして、プログラム内の関数呼出しを含む処理を受け付けた場合は、関数起動処理部２２４がデバッグ情報管理部２２２に対して、起動する関数がターゲット用プログラム内の関数かデバッガで表示するための関数かを調べて、デバッガで表示するための関数である場合には、デバッガで表示するための関数を有するプログラムの起動に必要な引数の情報も得る。例えば、ユーザから式”ｏｂｊ．ＶｉｅｗＸ”を評価するコマンドが入力されると、図６のデバッグ情報Ｄ１１３を調べて、ノードＤ２２１２から”ｏｂｊ”がｃｌａｓｓ  Ｘ  型の変数であり、ノードＤ２２１０からメンバ関数”ＶｉｅｗＸ”がデバッガで表示するための関数であることを認識する。この時、ノードＤ２２１１から、型”ｃｏｎｓｔ  ｃｌａｓｓ  Ｘ＊”の名前”ｔｈｉｓ”の引数情報も得る。この場合は該引数は変数”ｏｂｊ”であり、該変数の値が存在するのがアドレス”０ｘ８０００”であることも認識され、引数資源情報Ｄ２２１となる。
【００４６】
次に、ターゲット操作処理部２２５が、上記引数資源情報Ｄ２２１に基づいてターゲット処理部２３０にアクセスし、ターゲット引数データＤ２２２を得る。次に、データ変換処理部２２６が、上記ターゲット引数データＤ２２２を、ホスト上で実行するデータ表示ルーチンに対応した形式に変換する処理を行ない、ホスト引数データＤ２２６を得る。
【００４７】
最後に、関数起動処理部２２４から起動する関数がデバッガで表示するための関数である場合に、ユーザインタフェース処理部２２７は、表示プラグインに対して前述のホスト引数データＤ２２３を入力として与え、ホストコンピュータ上で表示プラグインを起動させてホスト上の画面にデバッグデータを表示する処理を行ない、一連の処理が完了する。
【００４８】
このように、デバッグ用のプログラムに、ターゲットを動作させるプログラムの他にデバッグ情報を含む実行形式プログラムと、デバッグデータをホスト上の画面に表示するための表示プラグインを備え、デバッグ情報に対応したデバッグデータを表示プラグインを起動することによりホスト上の画面に表示することができるため、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホスト上の画面に表示することができる。
【００４９】
また、以上の説明では、デバッグをプログラム開発装置上の各装置にて行なう例を示したが、各工程をプログラムで処理するようにし、デバッグをプログラム開発プログラムを用いて行なうこともできる。
【００５０】
【発明の効果】
以上の説明が示す通り、本発明のプログラム開発装置およびプログラム開発プログラムによると、開発環境と動作環境が異なる機器組込みプログラムの開発において、デバッグ用のプログラムに、ターゲットを動作させるプログラムの他にデバッグ情報を含む実行形式プログラムと、デバッグデータをホスト上の画面に表示するための表示プラグインを備え、デバッグ情報に対応したデバッグデータを表示プラグインを起動することによりホスト上の画面に表示することができるため、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホスト上の画面に表示することができる。
【図面の簡単な説明】
【図１】本発明のプログラム開発装置の構成図
【図２】ソースプログラムのヘッダを例示する図
【図３】ソースプログラムのターゲット用プログラムの実現部を例示する図
【図４】ソースプログラムのホスト用プログラムの実現部を例示する図
【図５】本発明のターゲット用コンパイラの構成図
【図６】デバッグ情報を例示する図
【図７】本発明のデバッガの構成図
【図８】本発明のデバッガ核部の構成図
【符号の説明】
１１０    ターゲット用コンパイラ
１２０    ホスト用コンパイラ
１１１    プログラム分離処理手段
１１２    表示プラグインソース生成手段
１１３    構文解析手段
１１４    意味解析手段
１１５    最適化手段
１１６    コード生成手段
１１７    デバッグ情報生成手段
２００    デバッガ
２１０    ユーザインタフェース部
２２０    デバッガ核部
２２１    実行形式ファイルロード処理部
２２２    デバッグ情報管理部
２２３    コマンド入力処理部
２２４    関数起動処理部
２２５    ターゲット操作処理部
２２６    データ変換処理部
２２７    ユーザインタフェース処理部
２３０    ターゲット処理部
Ｄ１００    ソースプログラム
Ｄ１１１    表示プラグイン情報
Ｄ１１２    コード
Ｄ１２０    表示プラグインソースプログラム
Ｄ１３０    実行形式プログラム
Ｄ１４０    表示プラグイン
Ｄ２２０    デバッグ情報
Ｄ２２１    引数資源情報
Ｄ２２２    ターゲット引数データ
Ｄ２２３    ホスト引数データ
Ｄ２２０１    ノード
Ｄ２２０２    ノード
Ｄ２２０３    ノード
Ｄ２２０４    ノード
Ｄ２２０５    ノード
Ｄ２２０６    ノード
Ｄ２２０７    ノード
Ｄ２２１０    ノード
Ｄ２２１１    ノード
Ｄ２２１２    ノード
【図１】
2004280476.tif 000003
【図２】
2004280476.tif 000004
【図３】
2004280476.tif 000005
【図４】
2004280476.tif 000006
【図５】
2004280476.tif 000007
【図６】
2004280476.tif 000008
【図７】
2004280476.tif 000009
【図８】
2004280476.tif 000010