JP3692898B2 - Debugger and data processing method - Google Patents

Debugger and data processing method Download PDF

Info

Publication number
JP3692898B2
JP3692898B2 JP2000069323A JP2000069323A JP3692898B2 JP 3692898 B2 JP3692898 B2 JP 3692898B2 JP 2000069323 A JP2000069323 A JP 2000069323A JP 2000069323 A JP2000069323 A JP 2000069323A JP 3692898 B2 JP3692898 B2 JP 3692898B2
Authority
JP
Japan
Prior art keywords
code file
execution code
instruction
execution
cpu
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.)
Expired - Lifetime
Application number
JP2000069323A
Other languages
Japanese (ja)
Other versions
JP2001256074A (en
Inventor
雅人 松澤
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan 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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2000069323A priority Critical patent/JP3692898B2/en
Publication of JP2001256074A publication Critical patent/JP2001256074A/en
Application granted granted Critical
Publication of JP3692898B2 publication Critical patent/JP3692898B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、効率的なアプリケーション開発のために考案された仮想プロセッサ・コードを用いたアプリケーション・プログラム開発用のデバッガ及びデータ処理方法に関する。
【0002】
【従来の技術】
アプリケーション・プログラムをいろいろなCPUプラットフォームの上で何ら変更することなく動かすことは、その開発コスト、流通コストの削減に大きなインパクトを与える。近年、仮想プロセッサとトランスレータの技術により、それが現実のものとなりつつある。
【0003】
通常、アプリケーション・プログラムを開発する場合、その動作チェックをするためにデバッガと呼ばれる装置が用いられる。デバッガは、アプリケーション・プログラムのバグを追跡し、特定し、排除する作業を支援する装置である。デバッガにはいくつかの以下に挙げる基本的な方式がある。
【0004】
(1)デバッガの表示部分並びに動作指示を発するホスト側と実機であるターゲット側が、シリアルケーブルやイーサネットケーブルなどで接続され、前記ターゲット側には、前記ホスト側と通信及び前記ホストの発する指示を実行するデバッガ用コードとデバッグされるプログラムが存在する方式(リモート方式)。
【0005】
(2)デバッガの表示部分並びに動作指示を発するホスト側と実機であるターゲット側が、ROMソケットで接続され、前記ホスト側と通信並びに前記ホストの発する指示を実行するデバッガ用コードとデバッグされるプログラムが存在する方式(ROM-ICEもしくはソフトICEと呼ばれる方式)。デバッガ用プログラムの一部がターゲット用のCPU空間に置かれる。
【0006】
(3)デバッガの表示部分並びに動作指示を発するホスト側と、実機のCPUに付属するデバッグ専用の端子で接続する方式(JTAG方式など)。デバッガ用プログラムはターゲットのCPU空間に置かれない。
【0007】
(4)デバッガの表示部分並びに動作指示を発するホスト側と、実機のCPUの代わりをする専用CPUとで構成される方式(イン・サーキット・エミュレータ(ICE)方式)。デバッガ用プログラムは実機の代わりをする専用CPUの空間に置かれるのが一般的である。
【0008】
上記のいずれの方式においても、デバッガを開発する場合、すでに他のCPU用に開発したものがあったとしても、ターゲットCPUが異なると、その既存のデバッガをそのまま転用することは不可能である。それは、CPU個々の割り込み機能や、レジスタの数、使用方法、プログラムのメモリ配置方法などが各CPUによって異なるからである。
【0009】
従来、内容が基本的に同一のプログラムであってもCPUやOSが異なることによって、それぞれに対応するコードを開発もしくは移植しなければならなかった。例えば特定のゲーム・ソフトなどが特定のゲーム機器のみで動作可能であることには、販売戦略といった非技術的要素も多く含まれているが、技術的に困難なことでもあった。複数の異なる機器に対応するように開発するためには、多大な時間と労力が必要とされていた。
【0010】
こうしたアプリケーション開発の非効率を是正するために、特表平8−502612号公報により、特定のCPUに依存しないVP(Virtual Processor:仮想プロセッサ)アセンブリ言語とその実行コードを定義した仮想プロセッサによる解決策が開示されている。それによれば、アプリケーション・プログラムはCなどの高級言語やVPアセンブリ言語で書かれ、コンパイラ、VPアセンブラによってVP実行コードになる。VP実行コードは、実CPUに応じたトランスレータによって実CPU実行コードに変換され、実行される。CPUごとにトランスレータを用意することにより、どのタイプの実CPUを使用することも可能であり、いろいろなタイプの実CPUを組み合わせて使用することも可能である。VP実行コードは、サポートされているトランスレータ及びCPUの上で動作することが保証されている。したがって、VP実行コード形式のプログラム・ファイルは、サポートされているどのプロセッサへも転送することができ、そこで実行され得る。
【0011】
【発明が解決しようとする課題】
通常、アプリケーション・プログラムの開発のために必要なデバッガは、実CPUを意識して、その実CPU向けに開発されたソフトウェアから成り立っている。すでに他のCPU用に開発されたものがあったとしても、実CPUが異なると、その既存のデバッガをそのまま転用することは不可能である。それは、CPU個々の割り込み機能や、レジスタの数、使用方法、プログラムのメモリ配置方法などが異なるからである。
【0012】
また、組み込み機器などの上で動作するアプリケーション・プログラムの開発に必要なデバッガは、従来、新CPUに対応するとき、そのソフトウェア一式がそろって開発されないと全く機能しないという問題を持っていた。本発明は、ソフトウェア一式全てを開発しなくても、C言語などの高級言語やVPアセンブリ言語、VP実行コードレベルでのデバッグを行うデバッガ及びデータ処理方法を提供することを目的としている。
【0013】
【課題を解決するための手段】
上記従来の問題に鑑み、本発明では、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用して、コマンド送出部側が、プログラムのソースコードファイルと、そのプログラムのソースコードファイルがVP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録し、VP実行コードでの指示をコマンド受信部側に発してデバッグを行う。
【0014】
すなわち本発明によれば、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、
VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するコマンド受信部側に対して、前記VP実行コードでの指示を発するコマンド送出部と、
前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、
前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガが提供される。
【0015】
また本発明によれば、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、
前記VP実行コードでの指示を発するコマンド送出部側と、
前記指示を受け取り、前記指示を実行するコマンド受信部側と、
前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、
前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有し、
前記コマンド受信部側は、前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガが提供される。
【0017】
また本発明によれば、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、前記VP実行コードでの指示を発するコマンド送出部側と、前記指示を受け取り、前記指示を実行するコマンド受信部側と、前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有し、前記コマンド受信部側は、前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガにおいて、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデータ処理方法であって、
前記コマンド送出部側が、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報を参照して、前記仮想プロセッサ・レベルの指示を発するステップと、
前記コマンド受信部側が、インターフェイスを介して前記指示を受け取るステップと、
前記コマンド受信部側が前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報を参照するステップと、
前記コマンド受信部側が前記指示を実行するステップとを、
有するデータ処理方法が提供される。
【0018】
また本発明によれば、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、前記VP実行コードでの指示を発するコマンド送出部側と、前記指示を受け取り、前記指示を実行するコマンド受信部側と、前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有し、前記コマンド受信部側は、前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガにおいて、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデータ処理方法であって、
前記コマンド送出部側がデバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードファイルとの関係を示す情報を参照して、前記仮想プロセッサ・レベルでの指示を発するステップと、
前記コマンド受信部側が、インターフェイスを介して前記指示を受け取るステップと、
前記コマンド受信部側が前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報を参照するステップとを有し、
CPU固有のステップ実行機能を利用して前記ステップを順次実行するデータ処理方法が提供される。
【0019】
【発明の実施の形態】
以下図面を参照して、本発明のデバッガ及びデータ処理方法について説明する。本発明では、特定のCPUに依存しないVPアセンブリ言語と前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用する。アプリケーション・プログラムは、C言語などの高級言語やVPアセンブリ言語によって記述されるものとする。
【0020】
図1は、本発明の実施例のうちデバッグ・レコードを示す構成図である。C言語の各行とVP実行プログラムの各行のオフセットとの関係は、デバッグ・レコード記録手段DBGR1に記録される。一方、VP実行ファイルを実CPUの実行コード(Nativeコード)に変換するトランスレータにより、VP実行コードの各オフセットに対応するNativeコードのオフセットは、デバッグ・レコード記録手段DBGR2に記録される。
【0021】
トランスレータは実CPUの種類ごとに作成されるが、VP実行コードとNative実行コード間のデバッグ・レコードの形式を統一し、不変とする。例えば図1に示すように、デバッグ・レコード記録手段DBGR2には、VP実行コードにおける各行がNative実行コードのオフセットでどの位置に対応するかが記録される。また、Cソースで定義された関数名や変数についてのマッピング情報が、図1に示すようにデバッグ・レコード記録手段DBGR3に記録される。すなわち、関数名もしくは変数名とその実体が配置されるメモリもしくはVPレジスタと、関数名もしくは変数名とその実体がメモリ、レジスタのいずれに配置されているかを示す項目がそれぞれ記録される。なお不図示ではあるが、関数や変数のスコープなども同時に、デバッグ・レコード記録手段DBGR3に記録される。
【0022】
上記説明はC言語で書かれたソース・プログラムについて説明してきたが、VPアセンブリ言語で書かれたソース・プログラムの場合は、デバッグ・レコード生成上同等である。すなわち、上記の説明のstabs以外についてはソース・プログラムという点でデバッグ・レコード生成上同等である。すなわち、VPアセンブリ言語で書かれたプログラムは、VPアセンブリ言語をソースとするDBGR1を生成する。なお、デバッグ・レコードDBGR1、DBGR3はVP実行コードを生成するコンパイラもしくはアセンブラで生成される。一方、DBGR2、DBGR4はトランスレータによって生成される。
【0023】
本発明は、アプリケーション・プログラムをデバッグするデバッグ方式に関し、前記DBGR2相当並びにDBGR4相当のデバッグ・レコードをアプリケーション・プログラムとともに、あるインターフェイス(ホスト、ターゲット間インターフェイス)のターゲット側に保持することを特徴としたデバッガ及びデータ処理方法である。なお、このインターフェイスは必ずしも物理的なインターフェイスではない。例えば、フルICEやJTAG-ICEの場合には、ホストと呼ばれるPCもしくはPCから接続されたプローブまでの間にインターフェイスが存在し、いわゆるホストと呼ばれるPC側とシリアルもしくはイーサネット、あるいはROMソケットなどのリモート接続で実機が接続される場合には、そのPC側と実機との間にインターフェイスが存在する。すなわち、ここでいうホスト(コマンド送出部)、ターゲット(コマンド受信部)とは上記インターフェイスの場所より明らかにされるものである。
【0024】
言い換えれば、本発明は同時にDBGR1、DBGR3を含む側とDBGR2、DBGR4を含む側の間にインターフェイスを設けることを特徴としたデバッグ方式とも言える。すなわち、通常、ホストはPC上のソフトウェアをして構成され、ターゲットとはシリアル・ケーブルやイーサネットなどで物理的に構成されたものをいうが、前記インターフェイスが実際にはPC上にあってもよい。以後説明の都合上、DBGR2、DBGR4は実機ターゲット上にあるということで説明する。また、PC上に前記インターフェイスがあるときにはターゲット機能の一部が物理的にPC上にあると解釈する。
【0025】
あらかじめターゲットにアプリケーション・プログラムがダウンロードにされている状況を想定して、本発明のデバッガ及びデータ処理方法に係る実施の形態を説明する。DBGR1によって、C言語で指定された行のVP実行コードにおける位置が判明する。ユーザがC言語のその行のステップ実行を要求すれば、デバッガ・ホストはそのDBGR1の情報からVPでのオフセットを取得し、その値を引数にCの1行に当たるVPコードの実行指示を、前記インターフェイスを介してターゲットに送る。
【0026】
ターゲットは前記インターフェイスを介して受け取った実行指示を解釈する。DBGR3を参照して実際のネイティブ・アドレスのオフセットと、関数の物理アドレス・マップを参照し、実際の実行アドレスを取得し実行する。関数の物理アドレス・マップはターゲット上での関数の実配置を決定するものである。それはトランスレータが出力するリロケータブル(オフセット・ベース)なネイティブ実行コードをユーザが指定するアドレスにマッピングするためのファイル形式(例えばIntel Hexなどの業界標準形式)に変換する指示を行う。
【0027】
C言語で定義されている変数はDBGR3で定義されている。ユーザがC言語で定義されている変数を参照しようとした場合、まずDBGR3を参照し、それがVPレジスタもしくはデータ領域でどこに配置されているかを知る。VPレジスタに配置されている場合、ターゲット側は前記インターフェイスを介してそのVPレジスタの値をターゲットに要求する。ターゲット側は、そのDBGR4を参照し、VPレジスタがネイティブ・レジスタに対応しているときには、その値を取得して前記インターフェイスを介してホストに値を返す。VPレジスタがメモリに配置されているときには、その情報がメモリにある場合は、DBGR4で示されるオフセットと既知の変数領域先頭のアドレスからその値を取得し、前記インターフェイスを介してホスト側にその値を返す。
【0028】
一方、C言語で定義された変数がDBGR3の検索の結果、メモリに配置されていることがこの時点で明らかになれば、前記インターフェイスを介して、そのメモリ・アドレスと既知の変数領域先頭アドレスからその値を取得し、前記インターフェイスを介して、値を返す。上記のように、DBGR1〜DBGR4なるデバッグ・レコードを設け、(DBGR1、DBGR3)と(DBGR2、DBGR4)の間にインターフェイスを設け、前者をホスト側、後者をターゲット側に配すれば、デバッガのホスト側ソフトウェアはターゲット側とVPレベルでやり取りすることが可能となる。一方、アプリケーション・プログラムのVP実行コードはDBGR1、DBGR3に相当するデバッグ・レコードとともに、共通のコンパイラ、アセンブラによって生成される。
【0029】
したがって、新規CPU用のデバッガを作成する場合、第1点としてトランスレータの開発を行い、VP実行コードとなっているアプリケーション・プログラムに対してDBGR2、DBGR4相当のデバッグ・レコードとともに実プロセッサコードを生成することと、第2点として、ホストPCとのやり取りをするデバッガ・スタブコードを開発すれば、すでに開発された(開発されていれば)ホスト側デバッガを、前記インターフェイスを介して使用することができる。
【0030】
すなわち、本発明によれば、(DBGR1、DBGR3)と(DBGR2、DBGR4)との間にインターフェイスを設け、前者をホスト側に、後者をターゲット側に配して、その間のやり取りをVPベースで行うことにより、上記2点の開発を行えば、C言語などの高級言語やVPコード・レベルでのデバッグが可能となる。これにより、ホスト側とターゲットが対で開発されないと、デバッガとして全く機能しないという問題が解決する。
【0031】
また、本発明のデータ処理方法を行うプログラムを記録媒体に記録することも可能である。上記データ処理方法が記録された記録媒体からプログラムをコンピュータにより読み出すことにより、本発明のデバッガで行われる機能が実現可能となり、また、本発明のデータ処理方法が実行可能となる。なお、記録媒体はコンピュータにより読み取り可能なものであり、記録媒体の具体的な例としては、ハードディスクやフロッピーディスクなどの磁気記録媒体、光記録媒体、光磁気記録媒体を含む記録手段がある。さらに、本発明のデータ処理方法を行うプログラムを伝送媒体で伝送することも可能である。伝送媒体によって接続されたコンピュータが、上記データ処理方法を行うプログラムを読み出すことにより、本発明のデバッガで行われる機能が実行可能となり、また、本発明のデータ処理方法が実行可能となる。なお、伝送媒体はコンピュータに所定の形式のデジタルデータを伝送可能とするものであり、伝送媒体の具体的な例としては、光ケーブルや無線LAN、公衆回線、ISDN、衛星放送回線、ケーブルテレビ回線などが挙げられる。
【0032】
【発明の効果】
本発明によれば、ホスト側ソフトウェアとターゲット側ソフトウェアが対で開発又は移植されないとデバッガとして全く機能しないという従来の問題を解決し、ホスト側の変更なしでCやVPコード・レベルでデバッグを行うので、ネイティブ・レジスタの細かい値を見るといった個々のCPUに依存するデバッグ機能を開発する前に、すでに開発済みのデバッガ・ホストを使用してC言語やVPレベルでデバッグを行うことが可能となる。また、C言語などでの開発の場合、必ずしもネイティブ・レジスタやネイティブ・アセンブラ・ベースでデバッグする必要はなくC言語ソースレベルで十分なことも多いので、一般に高額となるホスト側デバッガの開発を1回行えば、その後デバッガの開発を行わなくてもよいという利点がある。
【図面の簡単な説明】
【図1】本発明の実施例のうちデバッグ・レコードを示す構成図である。
【符号の説明】
1、3 デバッグ・レコード記録手段DBGR(ホスト側)
2、4 デバッグ・レコード記録手段DBGR(ターゲット側)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a debugger and a data processing method for developing an application program using a virtual processor code devised for efficient application development.
[0002]
[Prior art]
Running application programs on various CPU platforms without any change has a great impact on the reduction of development costs and distribution costs. In recent years, virtual processors and translator technology are becoming reality.
[0003]
Usually, when developing an application program, a device called a debugger is used to check its operation. A debugger is a device that supports the task of tracking, identifying, and eliminating bugs in application programs. There are several basic methods for debuggers:
[0004]
(1) The display side of the debugger and the host side that issues operation instructions and the target side that is the actual machine are connected by a serial cable, Ethernet cable, etc., and the target side communicates with the host side and executes instructions issued by the host A method in which there is a debugger code and a program to be debugged (remote method).
[0005]
(2) The display side of the debugger and the host side that issues an operation instruction and the target side that is the actual machine are connected by a ROM socket, and the debugger code that executes communication and instructions issued by the host and the program to be debugged are connected to the host side. Existing method (method called ROM-ICE or soft ICE). A part of the debugger program is placed in the target CPU space.
[0006]
(3) A method in which the display part of the debugger and the host side that issues an operation instruction are connected to a debugging terminal attached to the CPU of the actual machine (JTAG method or the like). The debugger program is not placed in the target CPU space.
[0007]
(4) A system (in-circuit emulator (ICE) system) composed of a debugger display portion and a host side that issues an operation instruction, and a dedicated CPU that replaces the actual CPU. The debugger program is generally placed in the space of a dedicated CPU that replaces the actual machine.
[0008]
In any of the above methods, when developing a debugger, even if there is one already developed for another CPU, if the target CPU is different, it is impossible to divert the existing debugger as it is. This is because the interrupt function of each CPU, the number of registers, the usage method, the memory allocation method of the program, and the like differ depending on each CPU.
[0009]
Conventionally, even if the content is basically the same program, the CPU and OS are different, so that the corresponding code has to be developed or ported. For example, the fact that a specific game software can be operated only by a specific game device includes many non-technical elements such as a sales strategy, but is also technically difficult. In order to develop to cope with a plurality of different devices, a great deal of time and labor has been required.
[0010]
In order to correct such inefficiency of application development, a solution by a virtual processor that defines a VP (Virtual Processor) assembly language that does not depend on a specific CPU and its execution code is disclosed in Japanese Patent Publication No. 8-502612. Is disclosed. According to this, an application program is written in a high-level language such as C or a VP assembly language, and becomes a VP execution code by a compiler or a VP assembler. The VP execution code is converted into a real CPU execution code by a translator corresponding to the real CPU and executed. By preparing a translator for each CPU, any type of real CPU can be used, and various types of real CPUs can be used in combination. The VP execution code is guaranteed to run on supported translators and CPUs. Thus, a program file in VP executable code format can be transferred to any supported processor and executed there.
[0011]
[Problems to be solved by the invention]
Usually, a debugger required for developing an application program is made up of software developed for the real CPU in consideration of the real CPU. Even if there is something that has already been developed for another CPU, it is impossible to divert the existing debugger as it is if the actual CPU is different. This is because the CPU interrupt function, the number of registers, the usage method, the memory allocation method of the program, and the like are different.
[0012]
In addition, a debugger necessary for developing an application program that runs on an embedded device or the like has conventionally had a problem that when it corresponds to a new CPU, it does not function at all unless the software set is developed together. An object of the present invention is to provide a debugger and a data processing method for performing debugging at a high level language such as C language, a VP assembly language, and a VP execution code level without developing the entire software set.
[0013]
[Means for Solving the Problems]
In view of the above-described conventional problems, in the present invention, a command sending unit uses a virtual processor that defines a VP assembly language that does not depend on a specific CPU and a VP execution code corresponding to the VP assembly language. The code file and the information indicating the relationship between the source code file of the program and the VP execution code file described in the VP execution code are recorded, and an instruction in the VP execution code is issued to the command receiving unit for debugging. .
[0014]
That is, according to the present invention, a debugger that uses a VP assembly language that does not depend on a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language,
And VP executable code file, to the command receiver side VP executable code file has a recording means for recording the information indicating the relationship between the native executable code file written in native executable code is a CPU-specific code A command sending unit for issuing an instruction in the VP execution code ;
An interface for delivering the instruction and delivering a response from the command receiving unit to the command sending unit in response to the instruction;
The command sending unit records recording means for recording a source code file of a program to be debugged and information indicating a relationship between the source code file of the program and a VP execution code file described in the VP execution code A debugger is provided.
[0015]
According to the present invention, there is provided a debugger that uses a VP assembly language that does not depend on a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language,
A command sending unit that issues an instruction in the VP execution code;
A command receiving unit that receives the instruction and executes the instruction;
An interface for delivering the instruction and delivering a response from the command receiving unit to the command sending unit in response to the instruction;
The command sending unit records recording means for recording a source code file of a program to be debugged and information indicating a relationship between the source code file of the program and a VP execution code file described in the VP execution code Have
The command receiving unit includes recording means for recording the VP execution code file and information indicating a relationship between the native execution code file described in a native execution code in which the VP execution code file is a CPU-specific code. A debugger is provided.
[0017]
According to the present invention, there is provided a debugger that uses a VP assembly language independent of a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language, and issues an instruction in the VP execution code. The command sending unit side, the command receiving unit side that receives the instruction and executes the instruction, the instruction delivery, and the response to the instruction from the command receiving unit side to the command sending unit side The command sending unit side includes information indicating a relationship between a source code file of a program to be debugged and a VP execution code file in which the source code file of the program is described by the VP execution code. And the command receiving unit side is configured to record the VP execution code. Files and, in the debugger having a recording means for the VP executable code file records and information indicating the relationship between the native executable code file written in native executable code is a CPU-specific code, it does not depend on the particular CPU VP A data processing method using an assembly language and a virtual processor that defines a VP execution code corresponding to the VP assembly language,
The command sending unit refers to information indicating a relationship between a source code file of a program to be debugged and a VP execution code file in which the source code file of the program is described by the VP execution code. Issuing processor level instructions; and
The command receiving unit receiving the instruction via an interface;
The command receiving unit refers to information indicating a relationship between the VP execution code file and a native execution code file described in a native execution code in which the VP execution code file is a CPU-specific code;
The command receiving unit side executing the instruction;
A data processing method is provided.
[0018]
According to the present invention, there is provided a debugger that uses a VP assembly language independent of a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language, and issues an instruction in the VP execution code. The command sending unit side, the command receiving unit side that receives the instruction and executes the instruction, the instruction delivery, and the response to the instruction from the command receiving unit side to the command sending unit side The command sending unit side includes information indicating a relationship between a source code file of a program to be debugged and a VP execution code file in which the source code file of the program is described by the VP execution code. And the command receiving unit side is configured to record the VP execution code. Files and, in the debugger having a recording means for the VP executable code file records and information indicating the relationship between the native executable code file written in native executable code is a CPU-specific code, it does not depend on the particular CPU VP A data processing method using an assembly language and a virtual processor that defines a VP execution code corresponding to the VP assembly language,
The command sending unit issues an instruction at the virtual processor level with reference to information indicating the relationship between the source code file of the program to be debugged and the source code file of the program and the VP execution code file. Steps,
The command receiving unit receiving the instruction via an interface;
The command receiving unit side refers to information indicating a relationship between the VP execution code file and a native execution code file described in a native execution code in which the VP execution code file is a CPU-specific code;
There is provided a data processing method for sequentially executing the steps using a CPU-specific step execution function.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
The debugger and data processing method of the present invention will be described below with reference to the drawings. In the present invention, a VP assembly language independent of a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language are used. The application program is described in a high-level language such as C language or a VP assembly language.
[0020]
FIG. 1 is a block diagram showing a debug record in the embodiment of the present invention. The relationship between each C language line and each line offset of the VP execution program is recorded in the debug record recording means DBGR1. On the other hand, the translator for converting the VP execution file into the execution code (Native code) of the real CPU records the offset of the Native code corresponding to each offset of the VP execution code in the debug record recording means DBGR2.
[0021]
Translators are created for each type of real CPU, but the format of the debug record between the VP execution code and the Native execution code is unified to be unchanged. For example, as shown in FIG. 1, the debug record recording unit DBGR2 records the position where each line in the VP execution code corresponds to the offset of the Native execution code. Also, mapping information for function names and variables defined in the C source is recorded in the debug record recording means DBGR3 as shown in FIG. In other words, a memory or VP register in which the function name or variable name and its entity are allocated, and an item indicating whether the function name or variable name and its entity are allocated in the memory or the register are recorded. Although not shown, the scope of functions and variables is also recorded in the debug record recording means DBGR3 at the same time.
[0022]
Although the above description has been given of a source program written in C language, the source program written in VP assembly language is equivalent in terms of debug record generation. That is, except for the stabs described above, the source code is equivalent in terms of debug record generation. That is, a program written in the VP assembly language generates DBGR1 with the VP assembly language as a source. The debug records DBGR1 and DBGR3 are generated by a compiler or assembler that generates VP execution code. On the other hand, DBGR2 and DBGR4 are generated by a translator.
[0023]
The present invention relates to a debugging method for debugging an application program, characterized in that the DBGR2 and DBGR4 equivalent debug records are held together with the application program on the target side of an interface (host-target interface). A debugger and a data processing method. Note that this interface is not necessarily a physical interface. For example, in the case of full ICE or JTAG-ICE, there is an interface between the PC called the host or the probe connected to the PC, so-called host called PC side and remote such as serial or Ethernet or ROM socket When a real machine is connected by connection, an interface exists between the PC side and the real machine. That is, the host (command sending unit) and the target (command receiving unit) here are clarified from the location of the interface.
[0024]
In other words, the present invention can be said to be a debugging method characterized by providing an interface between the side including DBGR1 and DBGR3 and the side including DBGR2 and DBGR4. That is, the host is normally configured as software on a PC, and the target is physically configured by a serial cable, Ethernet, or the like, but the interface may actually be on the PC. . Hereinafter, for convenience of explanation, DBGR2 and DBGR4 will be described as being on the actual machine target. Further, when the interface is on the PC, it is interpreted that a part of the target function is physically on the PC.
[0025]
An embodiment according to the debugger and data processing method of the present invention will be described on the assumption that an application program is downloaded to a target in advance. DBGR1 determines the position of the line designated in the C language in the VP execution code. When the user requests step execution of the line in C language, the debugger host obtains an offset in VP from the information of DBGR1, and uses the value as an argument to execute an instruction to execute VP code corresponding to one line of C. Send to target via interface.
[0026]
The target interprets the execution instruction received via the interface. Refer to DBGR3 to obtain the actual execution address by referring to the actual native address offset and the physical address map of the function. The function physical address map determines the actual placement of the function on the target. It instructs to convert the relocatable (offset-based) native execution code output by the translator into a file format (for example, an industry standard format such as Intel Hex) for mapping to an address specified by the user.
[0027]
Variables defined in C language are defined in DBGR3. When the user tries to refer to a variable defined in the C language, DBGR3 is first referred to, and it is known where it is arranged in the VP register or data area. If it is located in the VP register, the target side requests the value of the VP register from the target via the interface. The target side refers to the DBGR4, and when the VP register corresponds to the native register, acquires the value and returns the value to the host through the interface. When the VP register is arranged in the memory, if the information is in the memory, the value is obtained from the offset indicated by DBGR4 and the known variable area start address, and the value is sent to the host side via the interface. return it.
[0028]
On the other hand, if it becomes clear at this point that the variable defined in C language is located in the memory as a result of the search of DBGR3, the memory address and the known variable area start address are transmitted via the interface. Get the value and return the value through the interface. As described above, if debug records DBGR1 to DBGR4 are provided, an interface is provided between (DBGR1, DBGR3) and (DBGR2, DBGR4), the former is placed on the host side, and the latter is placed on the target side, the debugger host The side software can exchange with the target side at the VP level. On the other hand, the VP execution code of the application program is generated by a common compiler and assembler together with debug records corresponding to DBGR1 and DBGR3.
[0029]
Therefore, when creating a debugger for a new CPU, a translator is developed as the first point, and real processor code is generated together with a debug record equivalent to DBGR2 and DBGR4 for an application program that is a VP execution code. Secondly, if a debugger stub code that communicates with the host PC is developed, the host-side debugger that has already been developed (if developed) can be used via the interface. .
[0030]
That is, according to the present invention, an interface is provided between (DBGR1, DBGR3) and (DBGR2, DBGR4), the former is arranged on the host side, and the latter is arranged on the target side, and the exchange between them is performed on a VP basis. Thus, if the above two developments are performed, debugging in a high-level language such as C language or the VP code level becomes possible. This solves the problem that the debugger does not function at all unless the host and target are developed in pairs.
[0031]
It is also possible to record a program for performing the data processing method of the present invention on a recording medium. By reading a program from a recording medium on which the data processing method is recorded, a function performed by the debugger of the present invention can be realized, and the data processing method of the present invention can be executed. The recording medium can be read by a computer. Specific examples of the recording medium include a magnetic recording medium such as a hard disk and a floppy disk, an optical recording medium, and a recording means including a magneto-optical recording medium. Furthermore, it is possible to transmit a program for performing the data processing method of the present invention on a transmission medium. When a computer connected by a transmission medium reads a program for performing the data processing method, the function performed by the debugger of the present invention can be executed, and the data processing method of the present invention can be executed. The transmission medium can transmit digital data in a predetermined format to a computer. Specific examples of the transmission medium include an optical cable, a wireless LAN, a public line, an ISDN, a satellite broadcast line, a cable TV line, and the like. Is mentioned.
[0032]
【The invention's effect】
According to the present invention, the conventional problem that the debugger does not function at all when the host side software and the target side software are not developed or ported in pairs is solved, and debugging is performed at the C or VP code level without any change on the host side. Therefore, before developing a debugging function depending on individual CPUs such as seeing the detailed value of the native register, it becomes possible to debug at the C language or VP level using the already developed debugger host. . Also, in the case of development in C language or the like, it is not always necessary to debug with a native register or a native assembler base, and it is often sufficient at the C language source level. If it goes around, there is an advantage that it is not necessary to develop a debugger after that.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a debug record in an embodiment of the present invention.
[Explanation of symbols]
1, 3 Debug record recording means DBGR (host side)
2, 4 Debug record recording means DBGR (target side)

Claims (4)

特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、
VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するコマンド受信部側に対して、前記VP実行コードでの指示を発するコマンド送出部と、
前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、
前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガ。
A debugger that uses a VP assembly language independent of a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language,
And VP executable code file, to the command receiver side VP executable code file has a recording means for recording the information indicating the relationship between the native executable code file written in native executable code is a CPU-specific code A command sending unit for issuing an instruction in the VP execution code ;
An interface for delivering the instruction and delivering a response from the command receiving unit to the command sending unit in response to the instruction;
The command sending unit records recording means for recording a source code file of a program to be debugged and information indicating a relationship between the source code file of the program and a VP execution code file described in the VP execution code Debugger with
特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、
前記VP実行コードでの指示を発するコマンド送出部側と、
前記指示を受け取り、前記指示を実行するコマンド受信部側と、
前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、
前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有し、
前記コマンド受信部側は、前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガ。
A debugger that uses a VP assembly language independent of a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language,
A command sending unit that issues an instruction in the VP execution code;
A command receiving unit that receives the instruction and executes the instruction;
An interface for delivering the instruction and delivering a response from the command receiving unit to the command sending unit in response to the instruction;
The command sending unit records recording means for recording a source code file of a program to be debugged and information indicating a relationship between the source code file of the program and a VP execution code file described in the VP execution code Have
The command receiving unit includes recording means for recording the VP execution code file and information indicating a relationship between the native execution code file described in a native execution code in which the VP execution code file is a CPU-specific code. Has a debugger.
特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、前記VP実行コードでの指示を発するコマンド送出部側と、前記指示を受け取り、前記指示を実行するコマンド受信部側と、前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有し、前記コマンド受信部側は、前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガにおいて、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデータ処理方法であって、
前記コマンド送出部側が、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報を参照して、前記仮想プロセッサ・レベルの指示を発するステップと、
前記コマンド受信部側が、インターフェイスを介して前記指示を受け取るステップと、
前記コマンド受信部側が前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報を参照するステップと、
前記コマンド受信部側が前記指示を実行するステップとを、
有するデータ処理方法。
A debugger that uses a VP assembly language that does not depend on a specific CPU and a virtual processor that defines a VP execution code corresponding to the VP assembly language, the command sending unit issuing an instruction in the VP execution code; A command receiving unit that receives the instruction and executes the instruction; and an interface that transfers the instruction and passes a response from the command receiving unit to the command sending unit in response to the instruction, The command sending unit includes recording means for recording a source code file of a program to be debugged and information indicating a relationship between the source code file of the program and a VP execution code file described by the VP execution code. The command receiving unit side includes the VP execution code file and the V In debugger having a recording means for executing code file records and information indicating the relationship between the native executable code file written in native executable code is a CPU-specific code, and VP assembly language that is independent of the particular CPU, the A data processing method using a virtual processor that defines a VP execution code corresponding to a VP assembly language,
The command sending unit refers to information indicating a relationship between a source code file of a program to be debugged and a VP execution code file in which the source code file of the program is described by the VP execution code. Issuing processor level instructions; and
The command receiving unit receiving the instruction via an interface;
The command receiving unit refers to information indicating a relationship between the VP execution code file and a native execution code file described in a native execution code in which the VP execution code file is a CPU-specific code;
The command receiving unit side executing the instruction;
A data processing method.
特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブ リ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデバッガであって、前記VP実行コードでの指示を発するコマンド送出部側と、前記指示を受け取り、前記指示を実行するコマンド受信部側と、前記指示の受渡しと、前記指示に対する前記コマンド受信部側から前記コマンド送出部側への応答の受渡しとを行うインターフェイスとで構成され、前記コマンド送出部側は、デバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードで記述されたVP実行コードファイルとの関係を示す情報とを記録する記録手段を有し、前記コマンド受信部側は、前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報とを記録する記録手段を有するデバッガにおいて、特定のCPUに依存しないVPアセンブリ言語と、前記VPアセンブリ言語に対応するVP実行コードを定義した仮想プロセッサを利用するデータ処理方法であって、
前記コマンド送出部側がデバッグの対象となるプログラムのソースコードファイルと、前記プログラムのソースコードファイルが前記VP実行コードファイルとの関係を示す情報を参照して、前記仮想プロセッサ・レベルでの指示を発するステップと、
前記コマンド受信部側が、インターフェイスを介して前記指示を受け取るステップと、
前記コマンド受信部側が前記VP実行コードファイルと、前記VP実行コードファイルがCPU固有のコードであるネイティブ実行コードで記述されたネイティブ実行コードファイルとの関係を示す情報を参照するステップとを有し、
CPU固有のステップ実行機能を利用して前記ステップを順次実行するデータ処理方法。
And VP assembly language that is independent of the particular CPU, a said a debugger utilizes the virtual processor that defines the VP execution code corresponding to the VP assembly language, command sending portion that emits an indication in the VP execution code, The command receiving unit side that receives the instruction and executes the instruction, and an interface that performs the delivery of the instruction and the delivery of a response from the command receiving unit side to the command sending unit side with respect to the instruction, The command sending unit records recording means for recording a source code file of a program to be debugged and information indicating a relationship between the source code file of the program and a VP execution code file described in the VP execution code The command receiving unit side includes the VP execution code file and the V In debugger having a recording means for executing code file records and information indicating the relationship between the native executable code file written in native executable code is a CPU-specific code, and VP assembly language that is independent of the particular CPU, the A data processing method using a virtual processor that defines a VP execution code corresponding to a VP assembly language,
The command sending unit issues an instruction at the virtual processor level with reference to information indicating the relationship between the source code file of the program to be debugged and the source code file of the program and the VP execution code file. Steps,
The command receiving unit receiving the instruction via an interface;
The command receiving unit side refers to information indicating a relationship between the VP execution code file and a native execution code file described in a native execution code in which the VP execution code file is a CPU-specific code;
A data processing method for sequentially executing the steps using a step execution function unique to a CPU.
JP2000069323A 2000-03-13 2000-03-13 Debugger and data processing method Expired - Lifetime JP3692898B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000069323A JP3692898B2 (en) 2000-03-13 2000-03-13 Debugger and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000069323A JP3692898B2 (en) 2000-03-13 2000-03-13 Debugger and data processing method

Publications (2)

Publication Number Publication Date
JP2001256074A JP2001256074A (en) 2001-09-21
JP3692898B2 true JP3692898B2 (en) 2005-09-07

Family

ID=18588228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000069323A Expired - Lifetime JP3692898B2 (en) 2000-03-13 2000-03-13 Debugger and data processing method

Country Status (1)

Country Link
JP (1) JP3692898B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109508981A (en) * 2017-09-15 2019-03-22 富士通株式会社 Method and apparatus for testing intelligent contract

Also Published As

Publication number Publication date
JP2001256074A (en) 2001-09-21

Similar Documents

Publication Publication Date Title
US5715387A (en) Method and system for loading and confirming correct operation of an application program in a target system
KR100281901B1 (en) Dual Instruction Set Architecture
EP0567722B1 (en) System for analyzing and debugging embedded software through dynamic and interactive use of code markers
CN101084485A (en) Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems
EP0862116A3 (en) A smart debug interface circuit
US7647583B2 (en) Method and apparatus for emulating a hardware/software system using a computer
US6785884B1 (en) Symbolic debug interface for register transfer simulator debugger
US20040111707A1 (en) Debugger for multiple processors and multiple debugging types
JP4157771B2 (en) Method and system for efficient access to remote I / O functions in an embedded control environment
JP2008507025A (en) Emulation and debug interface for integrated circuit testing
US8533683B2 (en) Stack walking enhancements using sensorpoints
EP0939370B1 (en) Computer code translator
CN117369993A (en) Method for compatibly running different service systems in Linux environment and credit creation server
JP4187470B2 (en) Semiconductor device development support cooperation device and development support method
JP3692898B2 (en) Debugger and data processing method
KR100461535B1 (en) Apparatus and Implementation Method of Retargettable Incremental Linking Loarder for Embedded Systems
JP2000347896A (en) Method for debugging keyboard basic input/output system by developing notebook-sized computer system
CN115145595A (en) Dependency library installation method and device, server, electronic equipment and storage medium
Drongowski et al. Studying the performance of the FX! 32 binary translation system
JP2021026651A (en) Information processing system, information processor, and program
SK1394A3 (en) Interface system for coupling of two computer environments
JPH0758472B2 (en) Software development equipment
RU2390821C1 (en) Dynamic instrumentation technique
JP2005018485A (en) Method for debugging firmware
KR920003279B1 (en) Method for loading os & nos in data processing device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050506

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050613

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080701

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090701

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090701

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100701

Year of fee payment: 5