JP2004280476A - プログラム開発装置、およびプログラム開発プログラム - Google Patents

プログラム開発装置、およびプログラム開発プログラム Download PDF

Info

Publication number
JP2004280476A
JP2004280476A JP2003071114A JP2003071114A JP2004280476A JP 2004280476 A JP2004280476 A JP 2004280476A JP 2003071114 A JP2003071114 A JP 2003071114A JP 2003071114 A JP2003071114 A JP 2003071114A JP 2004280476 A JP2004280476 A JP 2004280476A
Authority
JP
Japan
Prior art keywords
program
debug
debugging
development
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003071114A
Other languages
English (en)
Inventor
Kiyohiko Sumida
清彦 隅田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003071114A priority Critical patent/JP2004280476A/ja
Publication of JP2004280476A publication Critical patent/JP2004280476A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】機器組込みプログラムの開発環境において、デバッグの際にデバッグデータをデバッガを搭載するホストの画面上に表示することを目的とする。
【解決手段】開発環境と動作環境が異なる機器組込みプログラムの開発において、デバッグ用のプログラムに、ターゲットを動作させるプログラムの他にデバッグ情報を含む実行形式プログラムD130と、デバッグデータをホスト上の画面に表示するための表示プラグインD140を備え、デバッグ情報に対応したデバッグデータを表示プラグインを起動することによりホスト上の画面に表示することができるため、機器組込みプログラムの開発環境において、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホスト上の画面に表示することができる。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、プログラム開発環境と異なる動作環境の機器に組込まれるプログラムの開発における、プログラム開発装置およびプログラム開発プログラムに関する。
【0002】
【従来の技術】
プログラムの開発を行なう際、プログラムの動作を確認/検証するためにデバッガが使用される。デバッガにはプログラムの動作を確認/検証するためのいくつかの機能を備えている。例えば、プログラム上のある位置で実行を停止するブレーク機能、停止した位置からソースプログラムの一行分の実行後に再び停止するステップ機能、プログラム上の変数の内容を表示する変数参照機能などの機能がある。このうち、変数参照機能は、プログラム上に変数として定義されたデータを、プログラム言語上で定義した型に従って表示するもので、プログラム作成者が意図した形式ではないことが多い。
【0003】
そのために、従来技術によると、プログラム中にデバッグデータ表示のためのルーチンを持たせて、デバッグの際に呼び出すことができるようにしていた。これにより、プログラム作成者が定義した型のデータをプログラム開発者にとって望む形式で表示させることが可能になる(例えば、特許文献1参照)。
【0004】
【特許文献1】
特開平3−22039号公報 (第2図)
【0005】
【発明が解決しようとする課題】
しかしながら、プログラム開発環境と機器の動作環境が、例えば共にウィンドウズ(登録商標)であるように、同じ環境である場合は従来の技術で問題はないが、通常、開発環境と動作環境が異なるプログラム(以下、機器組込みプログラムと称す)において、ターゲット上のプログラムではデータ構造を表示する手段がターゲットボード上のLED等に限られているため、デバックデータをプログラム開発者の望む形式表示できない。そのために、デバッグデータをデバッガを搭載するホスト上に表示しようとしても、ターゲット用のプログラムに動作環境の異なるデータ表示用のルーチンを含めて持たせる事はできず、また、ホスト上にデータ表示用ルーチンを含んだプログラムを準備しても、デバッグ環境内でデバッグ対象プログラムと該データ表示用ルーチンを含んだプログラムは動作環境が異なるので、両者を関連付けて実行する手段がない。そのために、機器組込みプログラムの開発環境において、従来技術では、プログラム中にデバッグの結果に基づくデバッグデータ表示のためのルーチンを持たせて、デバッグの際に呼び出すことが困難であるという問題点を有していた。
【0006】
上記問題点を解決するために、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホストの画面上に表示することを目的とする。
【0007】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項1記載のプログラム開発装置は、動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第1のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第2のプログラムから成る高級言語で書かれた第3のプログラムを用いて前記第1のプログラムをデバッグするプログラム開発装置であって、開発環境であるホストコンピュータと、前記第3のプログラムより前記第1のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第2のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイラと、ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行部と、デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理部と、デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行して前記プログラム開発装置のホスト上の画面にデバッグデータを表示するユーザインタフェース処理部とを有することを特徴とする。
【0008】
請求項2記載の前記プログラム開発装置は、請求項1記載のプログラム開発装置であって、ターゲット用コンパイラが、前記第3のプログラムを前記第1のプログラムと前記第2のプログラムに分離するプログラム分離部と、前記第1のプログラムからデバッグを行なう第4のプログラムを生成するコード生成部と、前記第1のプログラムから前記デバッグ情報を抽出するデバッグ情報生成部と、前記第2のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成部と、前記第4のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成部とを有することを特徴とする。
【0009】
請求項3記載のプログラム開発プログラムは、動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第1のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第2のプログラムから成る高級言語で書かれた第3のプログラムを用いて前記第1のプログラムをデバッグするプログラム開発プログラムであって、前記第3のプログラムより前記第1のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第2のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイルステップと、ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行ステップと、デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理ステップと、デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行してプログラム開発プログラムが動作するホスト上の画面にデバッグデータを表示するユーザインタフェース処理ステップとを有することを特徴とする。
【0010】
請求項4記載のプログラム開発プログラムは、請求項3記載のプログラム開発プログラムにおいて、前記ターゲット用コンパイルステップが、前記第3のプログラムを前記第1のプログラムと前記第2のプログラムに分離するプログラム分離ステップと、前記第1のプログラムからデバッグを行なう第4のプログラムを生成するコード生成ステップと、前記第1のプログラムから前記デバッグ情報を抽出するデバッグ情報生成ステップと、前記第2のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成ステップと、前記第4のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成ステップとを有することを特徴とする。
【0011】
以上により、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホストの画面上に表示することができる。
【0012】
【発明の実施の形態】
本発明の実施の形態について、図1,図2,図3,図4,図5,図6,図7,図8を引用しながら説明する。
【0013】
図1は本発明のプログラム開発装置の構成図であり、入出力ファイルおよび処理の流れを示している。図2はソースプログラムのヘッダを例示する図,図3はソースプログラムのターゲット用プログラムの実現部を例示する図,図4はソースプログラムのホスト用プログラムの実現部を例示する図,図5は本発明のターゲット用コンパイラの構成図,図6はデバッグ情報を例示する図,図7は本発明のデバッガの構成図,図8は本発明のデバッガ核部の構成図である。
【0014】
図1において、ソースプログラムD100は、プログラム開発環境とは異なるターゲットの動作環境で動作する高級言語で記述されたプログラムである。ソースプログラムD100は、ターゲット用コンパイラ110へ入力されるプログラムであり、ターゲット上で実行するためのプログラムと、ホスト上のデータ表示用ルーチンとして用いるプログラムを併せ持つ形となっている。
【0015】
ターゲット用コンパイラ110は、高級言語で記述されたプログラムをターゲットプロセッサ上で動作するプログラムに変換する装置である。本発明では、ソースプログラムD100を入力して、次に述べる表示プラグインソースプログラムD120と実行形式プログラムD130を出力する。なお、該ターゲット用コンパイラ110の詳細な構成は後で述べる。
【0016】
表示用プラグインソースプログラムD120は、ターゲット用コンパイラ110によって生成されるもので、データ表示ルーチンを含むソースプログラムである。
【0017】
実行形式プログラムD130は、ターゲット用のプログラムを含むバイナリファイルで、デバッガで参照するデバッグ情報なども含んでいる。
ホスト用コンパイラ120は、高級言語で記述されたプログラムをホストの動作環境で動作するプログラムに変換する装置であって、表示プラグインソースプログラムD120を入力して、表示プラグインD140を出力する。
【0018】
表示プラグインD140は、ホスト用コンパイラ120によって生成されるホスト上で動作するプログラムにより、指示された形式のデバッグデータをホスト上の画面に表示する。
【0019】
デバッガ200は、ターゲットプロセッサ用のプログラムの実行手段を備えており、本発明では実行形式プログラムD130と表示プラグインD140を入力する。ここで、デバッグ実行部(図示せず)にてターゲット用のプログラムを実行して、ユーザが該プログラムをデバッグする際に、表示プラグインD140を呼び出してプログラム中のデータ構造をホスト上の画面に表示する。該デバッガ200の詳細な構成は後で述べる。
【0020】
次に、ソースプログラムD100の具体的な構成例を図2,図3,図4に挙げる。
図2において、ソースプログラムD100のヘッダファイルにはプログラムの各種宣言が記述されており、表示ルーチンの宣言については、#pragma コンパイラ指示子を付記しておく。
【0021】
図3において、この実現部には、実動作に用いるターゲットプログラムのコードに関する記述が含まれ、ターゲットプロセッサ上で動作するプログラムとなる。
【0022】
図4において、この実現部はホスト用のプログラムで、データ表示ルーチンが記述される。
次に、前述のターゲット用コンパイラ110の構成について、図5を用いて詳しく説明する。
【0023】
図5において、該ターゲット用コンパイラ110は、ソースプログラムD100を入力として受け取り、以降で述べる各手段内で処理されて、実行形式プログラムD130および表示プラグインソースプログラムD120を生成する。
【0024】
まず、プログラム分離処理手段111は、ソースプログラムD100の前処理を行なう手段で、ソースプログラム中のコンパイラ指示子に基づいて、インクルードファイルの取り込み、定義/未定義シンボルによるソースファイル選択処理などを行なう。この時、#pragma コンパイラ指示子が付記されたシンボル(ルーチン)やファイルを、ターゲットプログラムから分離して、表示プラグインソース生成手段112へ渡す。
【0025】
表示プラグインソース生成手段112は、前記プログラム分離処理手段111から前処理されたソースプログラムを受け取って、表示プラグインソースプログラムD120を生成して出力する。
【0026】
構文解析手段113は、ソースプログラムの文字列を調べて、意味のある最小単位(トークン)に切り分ける処理を行ない、トークン列(構文解析木)を生成する。
【0027】
意味解析手段114は、トークン列(構文解析木)からその意味を解析し、中間コードを生成する。この時、表示プラグインに関するシンボルについての情報として表示プラグイン情報D111をデバッグ情報生成手段117に渡す。
【0028】
最適化手段115は、生成するターゲット用プログラムのコードD112のサイズを小さくしたり、実行速度が高速になるように、ターゲット用プログラムのコードD112の生成に用いる中間コードを最適化する。
【0029】
コード生成手段116は、中間コードからターゲットプログラム用のコードD112を生成する。
デバッグ情報生成手段117は、ソースプログラムD100とターゲットプログラム用のコードD112の対応関係を示すデバッグ情報D220を生成する。この時、表示プラグイン情報D111を入力として、表示プラグインに関する情報をデバッグ情報D220に付加する。例えば、図6に示したデバッグ情報は、ユーザが定義した型class Xについてのデバッグ情報である。該デバッグ情報は木構造になっており、通常、上位のノードと下位のノードの間には所有あるいは付帯の関係がある。例えば、クラスXを表すノードD2201は、該クラスXのメンバおよびメンバ関数を表すノードD2202,ノードD2203,ノードD2204,D2207,およびD2210を所有しており、関数を表すノードD2204は、該関数の引数を表すノードD2205およびノードD2206を所有している。ここで、ノードD2210は、クラスXのメンバ関数としてソースプログラム中に定義されているが、表示プラグイン情報D111に示されるコンパイル指示子によりデータ表示ルーチンであることがわかるので、該ノードに外部プログラムであることを示す情報を付加する。このデバッグ情報D220と前述のコードD112を合わせて実行形式プログラムD130が生成される。
【0030】
次に、前述のデバッガ200の構成について、図7を用いて詳しく述べる。
図7は該デバッガ200の簡単な内部構成を示し、ユーザインタフェース部210は、画面表示やホストコンピュータとの入出力処理などを行なうモジュールである。デバッガ核部220は、デバッグ機能の中心となるモジュールで、オブジェクトファイルの読み込み、ユーザからのコマンド入力の解釈および後述のターゲット処理部への指示と結果の解釈、表示データの構成などを行なう。ターゲット処理部230は、ターゲットプロセッサおよび該プロセッサのシミュレータに対する処理を行なう。本発明において重要なモジュールはデバッガ核部220である。
【0031】
以下、デバッガ核部について、図8を用いてさらに詳細に説明する。
図8は、デバッガ核部220の内部構成であり、実行形式ファイルロード処理部221は、オブジェクトファイルのロード処理を行なうモジュールであって、プログラムおよびデータを取り出してターゲットに置き、デバッグ情報D220を取り出してデバッグ情報管理部222に出力する。
【0032】
デバッグ情報D220は、ターゲット用コンパイラ110によって生成されたもので実行形式ファイルD130に含まれている。
デバッグ情報管理部222は、デバッグ情報D220を入力として受け取り、デバッグ情報D220に関する問い合わせに答える。例えば、関数名/変数名からアドレスを求める処理、ソースプログラムのファイル名と行番号からアドレスを求める処理、関数名からその関数の引数名と型を求める処理、型名からその型のサイズを求める処理などを行なう。
【0033】
コマンド入力処理部223は、デバッガに対するコマンドを解釈して、各処理部を起動する。本発明では、プログラム中のデータを参照するために、表示ルーチンを呼び出すコマンドが入力された場合には、次に述べる関数起動処理部224を起動し、表示プラグインD140を用いてデータの表示を行なう。
【0034】
関数起動処理部224は、表示プラグインD140を入力として受け取り、前述のコマンド入力処理部223から表示プラグイン起動指示があった場合には、デバッグ情報管理部222にデータ表示ルーチンに必要なデータについて問い合わせた後、表示プラグインD140を起動して実際にホスト上の画面にデバッグデータを表示させる。
【0035】
引数資源情報D221は、関数起動処理部224が表示ルーチンを起動するために必要な引数の式を評価する際に、デバッグ情報管理部222に対して必要なデータが存在するプロセッサ上の資源としてレジスタやアドレスを問い合わせて実際にターゲット上にあるデータを取得した結果である。
【0036】
ターゲット操作処理部225は、前述の引数資源情報D221を入力して、データ表示ルーチンの起動に必要となるターゲット上に存在するデータを取得する手段で、ターゲットに対するデータアクセス機構により実現される。
【0037】
ターゲット引数データD222は、前述のターゲット操作処理部225により取得された、ターゲット上に存在するデータを取り出したもので、データ表示ルーチンの起動に必要となる。
【0038】
データ変換処理部226は、前述のターゲット引数データD222のデータをホスト上で実行するデータ表示ルーチンに対応した形式に変換する処理を行なう。該変換処理には、ホストとターゲットのプロセッサの違いに起因するデータ変換が含まれ、ターゲット引数データD222を変換し、ホスト引数データD223を出力する。
【0039】
ホスト引数データD223は、前述のデータ変換処理部226によって生成された、ホスト上のプログラムで処理可能なデータである。
ユーザインタフェース処理部227は、関数起動処理部224から起動する関数が外部プログラムである場合に、表示プラグインに対して前述のホスト引数データD223を入力として与え、ホストコンピュータ上で表示プラグインを起動させて、ホスト上の画面に表示する。
【0040】
次に、例を用いて本発明の構成が動作する様子を説明する。
まず、図2〜4に示したソースプログラムは、ターゲット用コンパイラ110で翻訳され、プログラム分離手段111で、ターゲット用のソースプログラムとホスト用のソースプログラムに分離される。この時、図2に示したように、#pragma 指示子によりデバッガで表示するための関数として宣言された”ViewX”は、ターゲット用のプログラム内にデバッガでの表示を宣言する関数を呼び出すためのデバッグ情報を生成するために分離されずに残される。
【0041】
次に、構文解析手段113でソースプログラムの構文解析を行ない、続いて意味解析手段114で中間コード生成を行なう。意味解析時に、前述のデバッガでの表示を宣言する関数については、以降のコード生成に影響がないので、表示プラグイン情報D111として取り出す。
【0042】
次に、最適化手段115で中間コードの最適化処理を行ない、コード生成手段116でターゲット用プログラムのコードD112に変換する。最後にデバッグ情報生成手段117でコードD112とソースプログラムの対応についてのデバッグ情報を生成し、実行形式プログラムD130を出力する。この時、表示プラグイン情報D111の情報も含める。例えば、図6に示したデバッグ情報は、図2〜4についての情報の一部で、クラス型”X”についての情報を示している。その中で、ノードD2204,ノードD2207,ノードD2210は、関数についての情報を示しており、通常は関数名、戻り値型、開始アドレスの情報が含まれる。ノードD2210は表示プラグイン情報D111から生成されたノードで、ホスト上の画面に表示するための関数として宣言された”ViewX”についての情報および、該関数の引数”this”についての情報が含まれている。
【0043】
また、プログラム分離手段111から表示プラグインソース生成手段112により表示プラグインソースプログラムD120が生成される。そしてホスト用コンパイラ120は、表示プラグインソースプログラムD120から該表示プラグインD140を生成する。
【0044】
上記手順により、実行形式プログラムD130および表示プラグインD140が生成される。
次に、デバッガ220が起動し、実行形式プログラムD130がデバッガ核部220の実行形式ファイルロード処理部221によって読み込まれて、デバッグ処理を開始すると、実行形式プログラムD130に含まれるデバッグ情報D113がデバッグ情報管理部222に格納される。
【0045】
次に、コマンド入力処理部223がユーザからのコマンドとして、プログラム内の関数呼出しを含む処理を受け付けた場合は、関数起動処理部224がデバッグ情報管理部222に対して、起動する関数がターゲット用プログラム内の関数かデバッガで表示するための関数かを調べて、デバッガで表示するための関数である場合には、デバッガで表示するための関数を有するプログラムの起動に必要な引数の情報も得る。例えば、ユーザから式”obj.ViewX”を評価するコマンドが入力されると、図6のデバッグ情報D113を調べて、ノードD2212から”obj”がclass X 型の変数であり、ノードD2210からメンバ関数”ViewX”がデバッガで表示するための関数であることを認識する。この時、ノードD2211から、型”const class X*”の名前”this”の引数情報も得る。この場合は該引数は変数”obj”であり、該変数の値が存在するのがアドレス”0x8000”であることも認識され、引数資源情報D221となる。
【0046】
次に、ターゲット操作処理部225が、上記引数資源情報D221に基づいてターゲット処理部230にアクセスし、ターゲット引数データD222を得る。次に、データ変換処理部226が、上記ターゲット引数データD222を、ホスト上で実行するデータ表示ルーチンに対応した形式に変換する処理を行ない、ホスト引数データD226を得る。
【0047】
最後に、関数起動処理部224から起動する関数がデバッガで表示するための関数である場合に、ユーザインタフェース処理部227は、表示プラグインに対して前述のホスト引数データD223を入力として与え、ホストコンピュータ上で表示プラグインを起動させてホスト上の画面にデバッグデータを表示する処理を行ない、一連の処理が完了する。
【0048】
このように、デバッグ用のプログラムに、ターゲットを動作させるプログラムの他にデバッグ情報を含む実行形式プログラムと、デバッグデータをホスト上の画面に表示するための表示プラグインを備え、デバッグ情報に対応したデバッグデータを表示プラグインを起動することによりホスト上の画面に表示することができるため、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホスト上の画面に表示することができる。
【0049】
また、以上の説明では、デバッグをプログラム開発装置上の各装置にて行なう例を示したが、各工程をプログラムで処理するようにし、デバッグをプログラム開発プログラムを用いて行なうこともできる。
【0050】
【発明の効果】
以上の説明が示す通り、本発明のプログラム開発装置およびプログラム開発プログラムによると、開発環境と動作環境が異なる機器組込みプログラムの開発において、デバッグ用のプログラムに、ターゲットを動作させるプログラムの他にデバッグ情報を含む実行形式プログラムと、デバッグデータをホスト上の画面に表示するための表示プラグインを備え、デバッグ情報に対応したデバッグデータを表示プラグインを起動することによりホスト上の画面に表示することができるため、機器組込みプログラムの開発環境においても、デバッグの際に、プログラム上に変数として定義されたデバッグデータをデバッガを搭載するホスト上の画面に表示することができる。
【図面の簡単な説明】
【図1】本発明のプログラム開発装置の構成図
【図2】ソースプログラムのヘッダを例示する図
【図3】ソースプログラムのターゲット用プログラムの実現部を例示する図
【図4】ソースプログラムのホスト用プログラムの実現部を例示する図
【図5】本発明のターゲット用コンパイラの構成図
【図6】デバッグ情報を例示する図
【図7】本発明のデバッガの構成図
【図8】本発明のデバッガ核部の構成図
【符号の説明】
110 ターゲット用コンパイラ
120 ホスト用コンパイラ
111 プログラム分離処理手段
112 表示プラグインソース生成手段
113 構文解析手段
114 意味解析手段
115 最適化手段
116 コード生成手段
117 デバッグ情報生成手段
200 デバッガ
210 ユーザインタフェース部
220 デバッガ核部
221 実行形式ファイルロード処理部
222 デバッグ情報管理部
223 コマンド入力処理部
224 関数起動処理部
225 ターゲット操作処理部
226 データ変換処理部
227 ユーザインタフェース処理部
230 ターゲット処理部
D100 ソースプログラム
D111 表示プラグイン情報
D112 コード
D120 表示プラグインソースプログラム
D130 実行形式プログラム
D140 表示プラグイン
D220 デバッグ情報
D221 引数資源情報
D222 ターゲット引数データ
D223 ホスト引数データ
D2201 ノード
D2202 ノード
D2203 ノード
D2204 ノード
D2205 ノード
D2206 ノード
D2207 ノード
D2210 ノード
D2211 ノード
D2212 ノード

Claims (4)

  1. 動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第1のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第2のプログラムから成る高級言語で書かれた第3のプログラムを用いて前記第1のプログラムをデバッグするプログラム開発装置であって、
    開発環境であるホストコンピュータと、
    前記第3のプログラムより前記第1のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第2のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイラと、
    ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行部と、
    デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理部と、
    デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行して前記プログラム開発装置のホスト上の画面にデバッグデータを表示するユーザインタフェース処理部と
    を有することを特徴とするプログラム開発装置。
  2. 前記ターゲット用コンパイラが、
    前記第3のプログラムを前記第1のプログラムと前記第2のプログラムに分離するプログラム分離部と、
    前記第1のプログラムからデバッグを行なう第4のプログラムを生成するコード生成部と、
    前記第1のプログラムから前記デバッグ情報を抽出するデバッグ情報生成部と、
    前記第2のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成部と、
    前記第4のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成部と
    を有することを特徴とする請求項1記載のプログラム開発装置。
  3. 動作環境と異なる開発環境で開発され、デバッグ情報を有しデバッグ対象となる第1のプログラムと、デバッグデータを開発環境のホストの画面上に表示するための第2のプログラムから成る高級言語で書かれた第3のプログラムを用いて前記第1のプログラムをデバッグするプログラム開発プログラムであって、
    前記第3のプログラムより前記第1のプログラムをコンパイルしたデバッグを行なうための実行形式プログラムおよび前記第2のプログラムをコンパイルした表示プラグインを生成するターゲット用コンパイルステップと、
    ホストコンピュータに搭載されたデバッガにてデバッグを実行するデバッグ実行ステップと、
    デバッグデータ表示指示に対応してデバッグデータ表示に必要な引数を前記デバッグ情報から取得する関数起動処理ステップと、
    デバッグの実行結果から前記引数に対応するデータを取得し前記表示プラグインを実行してプログラム開発プログラムが動作するホスト上の画面にデバッグデータを表示するユーザインタフェース処理ステップと
    を有することを特徴とするプログラム開発プログラム。
  4. 前記ターゲット用コンパイルステップが、
    前記第3のプログラムを前記第1のプログラムと前記第2のプログラムに分離するプログラム分離ステップと、
    前記第1のプログラムからデバッグを行なう第4のプログラムを生成するコード生成ステップと、
    前記第1のプログラムから前記デバッグ情報を抽出するデバッグ情報生成ステップと、
    前記第2のプログラムから表示プラグインソースプログラムを生成する表示プラグインソース生成ステップと、
    前記第4のプログラムと前記デバッグ情報を合成して前記実行形式プログラムを生成する実行形式プログラム生成ステップと
    を有することを特徴とする請求項3記載のプログラム開発プログラム。
JP2003071114A 2003-03-17 2003-03-17 プログラム開発装置、およびプログラム開発プログラム Pending JP2004280476A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003071114A JP2004280476A (ja) 2003-03-17 2003-03-17 プログラム開発装置、およびプログラム開発プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003071114A JP2004280476A (ja) 2003-03-17 2003-03-17 プログラム開発装置、およびプログラム開発プログラム

Publications (1)

Publication Number Publication Date
JP2004280476A true JP2004280476A (ja) 2004-10-07

Family

ID=33287627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003071114A Pending JP2004280476A (ja) 2003-03-17 2003-03-17 プログラム開発装置、およびプログラム開発プログラム

Country Status (1)

Country Link
JP (1) JP2004280476A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013080406A (ja) * 2011-10-05 2013-05-02 Fujitsu Ltd コンパイル装置、情報処理システム、コンパイル方法、コンパイルプログラム、記録媒体
JP2015534688A (ja) * 2012-09-29 2015-12-03 中▲興▼通▲訊▼股▲フン▼有限公司 アプリの開発・コンパイル・デバッグ方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013080406A (ja) * 2011-10-05 2013-05-02 Fujitsu Ltd コンパイル装置、情報処理システム、コンパイル方法、コンパイルプログラム、記録媒体
JP2015534688A (ja) * 2012-09-29 2015-12-03 中▲興▼通▲訊▼股▲フン▼有限公司 アプリの開発・コンパイル・デバッグ方法及び装置

Similar Documents

Publication Publication Date Title
US7496906B2 (en) Evaluation of a code segment
JP4057938B2 (ja) コンパイラ、コンパイル方法、及びプログラム開発ツール
JP4822817B2 (ja) コンパイルシステム
US7478366B2 (en) Debugger and method for debugging computer programs across multiple programming languages
US8122440B1 (en) Method and apparatus for enumerating external program code dependencies
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
Bagge et al. Design of the CodeBoost transformation system for domain-specific optimisation of C++ programs
Gargantini et al. A semantic framework for metamodel-based languages
CN110149800A (zh) 一种用于处理与源程序的源代码相关联的抽象语法树的装置
Tuong et al. Deeply integrating C11 code support into Isabelle/PIDE
Diatchki et al. High-level views on low-level representations
Blanchard et al. Logic against ghosts: comparison of two proof approaches for a list module
Culpepper et al. Debugging macros
JP2004280476A (ja) プログラム開発装置、およびプログラム開発プログラム
JP3196675B2 (ja) 言語処理方式
Chang et al. Analysis of low-level code using cooperating decompilers
Lopez-Rojas OMCCp: A MetaModelica Based Parser Generator Applied to Modelica
CN114489653A (zh) 基于编译器的数据处理方法、装置以及可读存储介质
GB2420638A (en) Method of substituting code fragments in Internal Representation
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
Stucki Scalable metaprogramming in scala 3
JP2014106770A (ja) 型チェック装置、型チェック方法および型チェックプログラム
JP2003050722A (ja) プログラム解析システムとプログラム解析方法
Lucas Mode Diagram Extraction from Blech Code