JP2000066920A - プログラムデバッガ,プログラムデバッグ方法および記録媒体 - Google Patents
プログラムデバッガ,プログラムデバッグ方法および記録媒体Info
- Publication number
- JP2000066920A JP2000066920A JP10238247A JP23824798A JP2000066920A JP 2000066920 A JP2000066920 A JP 2000066920A JP 10238247 A JP10238247 A JP 10238247A JP 23824798 A JP23824798 A JP 23824798A JP 2000066920 A JP2000066920 A JP 2000066920A
- Authority
- JP
- Japan
- Prior art keywords
- program
- file format
- data access
- access function
- debugger
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 複数ファイルフォーマットのプログラムに対
応できるデバッガの提供。 【解決手段】 利用者が入力装置1からデバッグ対象プ
ログラムのプログラム名を入力すると、ファイルフォー
マット自動判別部22は、そのファイルフォーマットを
判別し、対応するデータアクセス機能をファイルフォー
マット依存部23から呼び出す。ファイルフォーマット
依存部23は、デバッグ対象プログラム記憶部31から
当該プログラムのデバッグ情報を読み出す。ファイルフ
ォーマット自動判別部22は、デバッグ情報によってデ
ータベースを作成する。共通処理部21は、上述のデー
タアクセス機能により、ターゲット通信部24を介して
デバッグ対象プログラムをターゲットシステム部5にロ
ードしデバッグを実行する。このとき、上記データベー
スとデータアクセス機能が適時起動される。
応できるデバッガの提供。 【解決手段】 利用者が入力装置1からデバッグ対象プ
ログラムのプログラム名を入力すると、ファイルフォー
マット自動判別部22は、そのファイルフォーマットを
判別し、対応するデータアクセス機能をファイルフォー
マット依存部23から呼び出す。ファイルフォーマット
依存部23は、デバッグ対象プログラム記憶部31から
当該プログラムのデバッグ情報を読み出す。ファイルフ
ォーマット自動判別部22は、デバッグ情報によってデ
ータベースを作成する。共通処理部21は、上述のデー
タアクセス機能により、ターゲット通信部24を介して
デバッグ対象プログラムをターゲットシステム部5にロ
ードしデバッグを実行する。このとき、上記データベー
スとデータアクセス機能が適時起動される。
Description
【0001】
【発明の属する技術分野】本発明は、コンパイル後のプ
ログラムの正当性を検証するプログラムデバッガおよび
プログラムデバッグ方法に関する。
ログラムの正当性を検証するプログラムデバッガおよび
プログラムデバッグ方法に関する。
【0002】
【従来の技術】プログラムのファイルフォーマットの代
表的なものとしては、ELF,COFF,DWARFな
どがあるが、これらのファイルフォーマットはコンパイ
ラのベンダや、デバッグ対象プログラムがロードされる
ターゲットシステムによって異なったものとなる。ファ
イルフォーマットが異なれば、データを読み出す手順も
違ってくる。そのため、従来のプログラムデバッガは、
コンパイラやターゲットシステム等のデバッグ構成シス
テムごとに個別に提供されている。
表的なものとしては、ELF,COFF,DWARFな
どがあるが、これらのファイルフォーマットはコンパイ
ラのベンダや、デバッグ対象プログラムがロードされる
ターゲットシステムによって異なったものとなる。ファ
イルフォーマットが異なれば、データを読み出す手順も
違ってくる。そのため、従来のプログラムデバッガは、
コンパイラやターゲットシステム等のデバッグ構成シス
テムごとに個別に提供されている。
【0003】
【発明が解決しようとする課題】上述した従来のプログ
ラムデバッガでは、唯一つのファイルフォーマットにし
か対応できず、またそれぞれのファイルフォーマット間
に共通性はほとんどないため、もし開発途中で開発シス
テムを変更するなどしてプログラムのファイルフォーマ
ットが変更された場合、前のシステムで作成したプログ
ラムは新しい開発システムで使用できなくなってしま
う。また、過去に異なる環境で作成されたプログラムを
新たな環境で作成されたプログラムと同時使用したい場
合は、デバッガが単一のファイルフォーマットしか扱え
ない関係上、すべてのプログラムのファイルフォーマッ
トを統一する必要があった。そのため、旧フォーマット
で作成したプログラムを何らかの手段を用いて新しいフ
ォーマットに変更する必要があった。これは開発効率の
向上や過去の資源の再利用、という観点からみて有効で
はない。
ラムデバッガでは、唯一つのファイルフォーマットにし
か対応できず、またそれぞれのファイルフォーマット間
に共通性はほとんどないため、もし開発途中で開発シス
テムを変更するなどしてプログラムのファイルフォーマ
ットが変更された場合、前のシステムで作成したプログ
ラムは新しい開発システムで使用できなくなってしま
う。また、過去に異なる環境で作成されたプログラムを
新たな環境で作成されたプログラムと同時使用したい場
合は、デバッガが単一のファイルフォーマットしか扱え
ない関係上、すべてのプログラムのファイルフォーマッ
トを統一する必要があった。そのため、旧フォーマット
で作成したプログラムを何らかの手段を用いて新しいフ
ォーマットに変更する必要があった。これは開発効率の
向上や過去の資源の再利用、という観点からみて有効で
はない。
【0004】本発明の目的は、この問題を解決するため
に複数ファイルフォーマットに対応するプログラムデバ
ッガおよびプログラムデバッグ方法を提供することにあ
る。
に複数ファイルフォーマットに対応するプログラムデバ
ッガおよびプログラムデバッグ方法を提供することにあ
る。
【0005】また、本発明の他の目的は、ファイルフォ
ーマットの異なる複数のプログラムを同時にデバッグで
きるプログラムデバッガおよびプログラムデバッグ方法
を提供することにある。
ーマットの異なる複数のプログラムを同時にデバッグで
きるプログラムデバッガおよびプログラムデバッグ方法
を提供することにある。
【0006】
【課題を解決するための手段】本発明のプログラムデバ
ッガは、プログラムのファイルフォーマットごとに、該
ファイルフォーマットに依存する処理手段を備え、利用
者がデバッグ対象プログラムのプログラム名を入力する
と、これに対応する前記処理手段を起動し、記憶装置上
のデバッグ対象プログラムに対して所定の処理を施して
ターゲットシステムにロードし、また該ターゲットシス
テム上でデバッグを実行時には、適時前記処理手段を呼
び出すことを特徴とする。
ッガは、プログラムのファイルフォーマットごとに、該
ファイルフォーマットに依存する処理手段を備え、利用
者がデバッグ対象プログラムのプログラム名を入力する
と、これに対応する前記処理手段を起動し、記憶装置上
のデバッグ対象プログラムに対して所定の処理を施して
ターゲットシステムにロードし、また該ターゲットシス
テム上でデバッグを実行時には、適時前記処理手段を呼
び出すことを特徴とする。
【0007】本発明の好ましい実施の形態としてのプロ
グラムデバッガは、前記ファイルフォーマットごとのデ
ータアクセス機能を有し、前記プログラム名をもつデバ
ッグ対象プログラムを前記記憶装置から探し出して、そ
のデバッグ情報を読み出すファイルフォーマット依存部
と、前記プログラム名に対するファイルフォーマットを
判別して対応する前記ファイルフォーマット依存部を切
り替え起動し、ファイルフォーマット依存部からの前記
デバッグ情報によってデータベースを作成してデバッグ
に供するファイルフォーマット自動判別部と、当該デバ
ッガと前記ターゲットシステムとの間の情報の授受を行
うターゲット通信部と、前記利用者との間でユーザイン
タフェース部を形成するとともに、前記ファイルフォー
マット自動判別部と前記ターゲット通信部との間の情報
授受の仲介を行う共通処理部とを有することを特徴とす
る。
グラムデバッガは、前記ファイルフォーマットごとのデ
ータアクセス機能を有し、前記プログラム名をもつデバ
ッグ対象プログラムを前記記憶装置から探し出して、そ
のデバッグ情報を読み出すファイルフォーマット依存部
と、前記プログラム名に対するファイルフォーマットを
判別して対応する前記ファイルフォーマット依存部を切
り替え起動し、ファイルフォーマット依存部からの前記
デバッグ情報によってデータベースを作成してデバッグ
に供するファイルフォーマット自動判別部と、当該デバ
ッガと前記ターゲットシステムとの間の情報の授受を行
うターゲット通信部と、前記利用者との間でユーザイン
タフェース部を形成するとともに、前記ファイルフォー
マット自動判別部と前記ターゲット通信部との間の情報
授受の仲介を行う共通処理部とを有することを特徴とす
る。
【0008】本発明の好ましい実施の形態としてのプロ
グラムデバッガは、前記ファイルフォーマット依存部を
モジュール化し、新規のファイルフォーマットに対応し
て追加可能としたことを特徴とする。
グラムデバッガは、前記ファイルフォーマット依存部を
モジュール化し、新規のファイルフォーマットに対応し
て追加可能としたことを特徴とする。
【0009】また、本発明のプログラムデバッグ方法
は、利用者がデバッグ対象プログラムのプログラム名を
入力すると対応するプログラムのファイルフォーマット
を判別する手順と、該ファイルフォーマット対応のデー
タアクセス機能を呼び出す手順と、該データアクセス機
能によって当該デバッグ対象プログラムからデバッグ情
報を読み出してデータベースを作成する手順と、前記デ
ータアクセス機能によって当該デバッグ対象プログラム
をターゲットシステムにロードする手順と、該ターゲッ
トシステム上で当該デバッグ対象プログラムを実行する
手順と、該実行時に適時前記データベースおよびデータ
アクセス機能を起動する手順と、該デバッグの結果を出
力する手順とを有する。
は、利用者がデバッグ対象プログラムのプログラム名を
入力すると対応するプログラムのファイルフォーマット
を判別する手順と、該ファイルフォーマット対応のデー
タアクセス機能を呼び出す手順と、該データアクセス機
能によって当該デバッグ対象プログラムからデバッグ情
報を読み出してデータベースを作成する手順と、前記デ
ータアクセス機能によって当該デバッグ対象プログラム
をターゲットシステムにロードする手順と、該ターゲッ
トシステム上で当該デバッグ対象プログラムを実行する
手順と、該実行時に適時前記データベースおよびデータ
アクセス機能を起動する手順と、該デバッグの結果を出
力する手順とを有する。
【0010】本発明では、ダウンロードされるプログラ
ムのファイルフォーマットをデバッガ内で自動判別し、
デバッグの内部処理を切り変える。ファイルフォーマッ
ト間の差異は内部処理で解決してしまうことでユーザイ
ンタフェースを一律にすることができる。そのため、利
用者はプログラムのファイルフォーマットを変更する手
間をかけずにデバッガにプログラムをダウンロードする
ことができる。また、利用者はプログラムのファイルフ
ォーマットの違いを意識することなくインタフェース上
でデバッグ作業を行うことができるようになる。
ムのファイルフォーマットをデバッガ内で自動判別し、
デバッグの内部処理を切り変える。ファイルフォーマッ
ト間の差異は内部処理で解決してしまうことでユーザイ
ンタフェースを一律にすることができる。そのため、利
用者はプログラムのファイルフォーマットを変更する手
間をかけずにデバッガにプログラムをダウンロードする
ことができる。また、利用者はプログラムのファイルフ
ォーマットの違いを意識することなくインタフェース上
でデバッグ作業を行うことができるようになる。
【0011】
【発明の実施の形態】次に、本発明の実施の形態につい
て説明する。
て説明する。
【0012】本発明のプログラムデバッガは、プログラ
ムのファイルフォーマットごとに、該ファイルフォーマ
ットに依存する処理手段を備え、利用者がデバッグ対象
プログラムのプログラム名を入力すると、これに対応す
る前記処理手段を起動し、記憶装置上のデバッグ対象プ
ログラムに対して所定の処理を施してターゲットシステ
ムにロードし、また該ターゲットシステム上でデバッグ
を実行時には、適時前記処理手段を呼び出すことを特徴
とする。
ムのファイルフォーマットごとに、該ファイルフォーマ
ットに依存する処理手段を備え、利用者がデバッグ対象
プログラムのプログラム名を入力すると、これに対応す
る前記処理手段を起動し、記憶装置上のデバッグ対象プ
ログラムに対して所定の処理を施してターゲットシステ
ムにロードし、また該ターゲットシステム上でデバッグ
を実行時には、適時前記処理手段を呼び出すことを特徴
とする。
【0013】また、本発明のプログラムデバッグ方法
は、利用者がデバッグ対象プログラムのプログラム名を
入力すると対応するプログラムのファイルフォーマット
を判別する手順と、該ファイルフォーマット対応のデー
タアクセス機能を呼び出す手順と、該データアクセス機
能によって当該デバッグ対象プログラムからデバッグ情
報を読み出してデータベースを作成する手順と、前記デ
ータアクセス機能によって当該デバッグ対象プログラム
をターゲットシステムにロードする手順と、該ターゲッ
トシステム上で当該デバッグ対象プログラムを実行する
手順と、該実行時に適時前記データベースおよびデータ
アクセス機能を起動する手順と、該デバッグの結果を出
力する手順とを有する。
は、利用者がデバッグ対象プログラムのプログラム名を
入力すると対応するプログラムのファイルフォーマット
を判別する手順と、該ファイルフォーマット対応のデー
タアクセス機能を呼び出す手順と、該データアクセス機
能によって当該デバッグ対象プログラムからデバッグ情
報を読み出してデータベースを作成する手順と、前記デ
ータアクセス機能によって当該デバッグ対象プログラム
をターゲットシステムにロードする手順と、該ターゲッ
トシステム上で当該デバッグ対象プログラムを実行する
手順と、該実行時に適時前記データベースおよびデータ
アクセス機能を起動する手順と、該デバッグの結果を出
力する手順とを有する。
【0014】以下、本発明の実施例について図面を参照
して説明する。
して説明する。
【0015】通常、Cソースプログラムをコンパイラに
かけるとアセンブルプログラムだけが生成され、もとの
Cソースとの関連性は失われてしまう。つまり、Cソー
スプログラム中のどの行がどのアドレスに対応するか、
とかどの変数がどういったメモリ配置で置かれている
か、といった依存関係はコンパイルした後ではわからな
くなってしまうのである。そこで、本発明は、この依存
関係の情報をデバッグ情報としてプログラムに付加的に
追加し、デバッガは、このデバッグ情報内に記述されて
いる依存関係情報を読み取り、処理しやすい形のデータ
ベースとして蓄えることによってデバッガに必要な機能
を実現している。
かけるとアセンブルプログラムだけが生成され、もとの
Cソースとの関連性は失われてしまう。つまり、Cソー
スプログラム中のどの行がどのアドレスに対応するか、
とかどの変数がどういったメモリ配置で置かれている
か、といった依存関係はコンパイルした後ではわからな
くなってしまうのである。そこで、本発明は、この依存
関係の情報をデバッグ情報としてプログラムに付加的に
追加し、デバッガは、このデバッグ情報内に記述されて
いる依存関係情報を読み取り、処理しやすい形のデータ
ベースとして蓄えることによってデバッガに必要な機能
を実現している。
【0016】ここで、デバッグ対象となるプログラムが
もつファイルフォーマット(形式)については、EL
F,COFF,DWARFなど、幾つか制定されている
が、あるベンダの作成したコンパイラがどのようなファ
イルフォーマット(形式)を採用するかは任意であり、
各ファイルフォーマットが持つデバッグ情報のデータ形
式がそれぞれ異なっているため、データベースの構造も
それに依存した形で持つことにした。
もつファイルフォーマット(形式)については、EL
F,COFF,DWARFなど、幾つか制定されている
が、あるベンダの作成したコンパイラがどのようなファ
イルフォーマット(形式)を採用するかは任意であり、
各ファイルフォーマットが持つデバッグ情報のデータ形
式がそれぞれ異なっているため、データベースの構造も
それに依存した形で持つことにした。
【0017】データベース内に蓄えられる主なデータは
以下の通りである。
以下の通りである。
【0018】・プログラムを作成するときに使用された
Cソースプログラム名とそのファイルが保存されている
場所(ディレクトリ)の情報。
Cソースプログラム名とそのファイルが保存されている
場所(ディレクトリ)の情報。
【0019】・あるCソースファイル中にどのような関
数・変数が記述されているかを示す情報。またその関数
・変数がアセンブルプログラム中のどの位置に対応して
いるかの情報。
数・変数が記述されているかを示す情報。またその関数
・変数がアセンブルプログラム中のどの位置に対応して
いるかの情報。
【0020】・あるCソースファイル中に記述されてい
るCソース行について、アセンブルプログラム中のどの
位置に対応しているかを示す情報。
るCソース行について、アセンブルプログラム中のどの
位置に対応しているかを示す情報。
【0021】図1は、本発明の一実施例を示すブロック
図である。本デバッガ2は、プログラム制御により動作
するデータ処理装置であり、キーボード等の入力装置1
と、情報を記憶する記憶装置3と、ディスプレイ装置や
印刷装置等の出力装置4と、デバッグ対象プログラムが
ロードされるターゲットシステム5とに接続されてい
る。また、デバッガ2は、共通処理部21と、ファイル
フォーマット自動判別部22と、ファイルフォーマット
対応のファイルフォーマット依存部23と、ターゲット
通信部24とを備えている。
図である。本デバッガ2は、プログラム制御により動作
するデータ処理装置であり、キーボード等の入力装置1
と、情報を記憶する記憶装置3と、ディスプレイ装置や
印刷装置等の出力装置4と、デバッグ対象プログラムが
ロードされるターゲットシステム5とに接続されてい
る。また、デバッガ2は、共通処理部21と、ファイル
フォーマット自動判別部22と、ファイルフォーマット
対応のファイルフォーマット依存部23と、ターゲット
通信部24とを備えている。
【0022】デバッガ・共通処理部21はユーザインタ
フェース機能を備えており、利用者と下位モジュール
(ファイルフォーマット依存部23やターゲットシステ
ム5)との情報の仲介を行う。ファイルフォーマット依
存部23は、ターゲットシステム5にダウンロードする
プログラムに含まれるデバッグ情報を読み出し、共通処
理部21からの要求に応えてプログラムの情報を返却す
る。プログラムのファイルフォーマット毎にデータを読
み出す手順が異なるため、ファイルフォーマット依存部
23には、ファイルフォーマット毎に異なるデータアク
セス機能が用意されている。ファイルフォーマット自動
判別部22はターゲットシステム5にダウンロードされ
るプログラムのファイルフォーマット種別を判別し、そ
のフォーマットにあわせてファイルフォーマット依存部
23の中の適切なデータアクセス機能を呼び出す機能を
もつ。
フェース機能を備えており、利用者と下位モジュール
(ファイルフォーマット依存部23やターゲットシステ
ム5)との情報の仲介を行う。ファイルフォーマット依
存部23は、ターゲットシステム5にダウンロードする
プログラムに含まれるデバッグ情報を読み出し、共通処
理部21からの要求に応えてプログラムの情報を返却す
る。プログラムのファイルフォーマット毎にデータを読
み出す手順が異なるため、ファイルフォーマット依存部
23には、ファイルフォーマット毎に異なるデータアク
セス機能が用意されている。ファイルフォーマット自動
判別部22はターゲットシステム5にダウンロードされ
るプログラムのファイルフォーマット種別を判別し、そ
のフォーマットにあわせてファイルフォーマット依存部
23の中の適切なデータアクセス機能を呼び出す機能を
もつ。
【0023】記憶装置3は、ターゲットシステム5にダ
ウンロードするためのプログラムを予め記憶しているデ
バッグ対象プログラム記憶部31を備えている。
ウンロードするためのプログラムを予め記憶しているデ
バッグ対象プログラム記憶部31を備えている。
【0024】次に、図1,図2および図3を参照して本
実施例の動作について詳細に説明する。
実施例の動作について詳細に説明する。
【0025】まず、ターゲットシステム5にプログラム
をダウンロードする場合、入力装置1からダウンロード
したいプログラム名を入力する(図2ステップS1)。
このファイル名は共通処理部21に渡される。ファイル
フォーマット依存部23は、共通処理部21からの指示
により、デバッグ対象プログラム記憶部31の中から該
当するファイル名をもつプログラムを探し出し、このフ
ァイルに含まれるデバッグ情報を読み込む。この時、ま
だプログラムのファイルフォーマットは未知であり、デ
ータ読み出しの手順が決定できないため、ファイルフォ
ーマット自動判別部22は、先にプログラムのファイル
フォーマットがどの形式を持つものかを調べる。プログ
ラムはファイルフォーマット毎に判別用のキーを持って
おり(ファイルの先頭にある一定のパターンのデータの
並びを持つ、など)、ファイル中をシークすることでど
のファイルフォーマットを持つプログラムかを判断する
ことができる(S2)。
をダウンロードする場合、入力装置1からダウンロード
したいプログラム名を入力する(図2ステップS1)。
このファイル名は共通処理部21に渡される。ファイル
フォーマット依存部23は、共通処理部21からの指示
により、デバッグ対象プログラム記憶部31の中から該
当するファイル名をもつプログラムを探し出し、このフ
ァイルに含まれるデバッグ情報を読み込む。この時、ま
だプログラムのファイルフォーマットは未知であり、デ
ータ読み出しの手順が決定できないため、ファイルフォ
ーマット自動判別部22は、先にプログラムのファイル
フォーマットがどの形式を持つものかを調べる。プログ
ラムはファイルフォーマット毎に判別用のキーを持って
おり(ファイルの先頭にある一定のパターンのデータの
並びを持つ、など)、ファイル中をシークすることでど
のファイルフォーマットを持つプログラムかを判断する
ことができる(S2)。
【0026】この後、ファイルフォーマット自動判別部
22は、プログラムのファイルフォーマット用のダウン
ロード機能を呼び出し、このプログラムに関するデータ
ベースを作成する(S3)。データベースには、ファイ
ルフォーマット情報も含まれているため、これ以降にプ
ログラム情報にアクセスする場合でも、その都度プログ
ラムのファイルフォーマットを調べる必要はない。共通
処理部21は、作成されたデータベースの情報を基に、
プログラムに含まれるバイナリデータをターゲット通信
部24を経由してターゲットシステム5に書き込むこと
でデバッグのダウンロード処理を終了する。
22は、プログラムのファイルフォーマット用のダウン
ロード機能を呼び出し、このプログラムに関するデータ
ベースを作成する(S3)。データベースには、ファイ
ルフォーマット情報も含まれているため、これ以降にプ
ログラム情報にアクセスする場合でも、その都度プログ
ラムのファイルフォーマットを調べる必要はない。共通
処理部21は、作成されたデータベースの情報を基に、
プログラムに含まれるバイナリデータをターゲット通信
部24を経由してターゲットシステム5に書き込むこと
でデバッグのダウンロード処理を終了する。
【0027】次に、実際のデバッグ処理を行う場合、例
えば、プログラムAの中に記述されている変数aの値を
参照するとする。このとき、共通処理部21は、まずプ
ログラムAのデータベースを参照し、プログラムAのフ
ァイルフォーマットαを取得する(図3ステップS
5)。いまの場合は、フォーマットがAであるから(S
6)、ファイルフォーマットα用の変数参照機能を呼び
出すと、プログラムAのファイルの中からファイルフォ
ーマットαの読み出し方式に則って変数aの情報(アド
レスやサイズなど)を読み出してくれる(S7)。ここ
で得られたパラメータをターゲット通信部24に渡す
と、変数aに対応したアドレスから適切な値を読み出す
ことができる(S9)。
えば、プログラムAの中に記述されている変数aの値を
参照するとする。このとき、共通処理部21は、まずプ
ログラムAのデータベースを参照し、プログラムAのフ
ァイルフォーマットαを取得する(図3ステップS
5)。いまの場合は、フォーマットがAであるから(S
6)、ファイルフォーマットα用の変数参照機能を呼び
出すと、プログラムAのファイルの中からファイルフォ
ーマットαの読み出し方式に則って変数aの情報(アド
レスやサイズなど)を読み出してくれる(S7)。ここ
で得られたパラメータをターゲット通信部24に渡す
と、変数aに対応したアドレスから適切な値を読み出す
ことができる(S9)。
【0028】また、引き続いてプログラムBの中に記述
されている変数bの値を参照するとする。この時はプロ
グラムBのデータベースからプログラムBのファイルフ
ォーマットを取得する(S5)。プログラムBのファイ
ルフォーマットβがプログラムAのファイルフォーマッ
トαと異なっている場合でも、ファイルフォーマットが
プログラムAと異なっていることはデータベースの情報
から予めわかるため(S6)、ファイルフォーマットβ
に適した変数参照機能を呼び出すことができる(S
8)。
されている変数bの値を参照するとする。この時はプロ
グラムBのデータベースからプログラムBのファイルフ
ォーマットを取得する(S5)。プログラムBのファイ
ルフォーマットβがプログラムAのファイルフォーマッ
トαと異なっている場合でも、ファイルフォーマットが
プログラムAと異なっていることはデータベースの情報
から予めわかるため(S6)、ファイルフォーマットβ
に適した変数参照機能を呼び出すことができる(S
8)。
【0029】さらに、他のデバッガの機能を使用する場
合でも、変数の場合と同様に、ファイルフォーマットに
適した処理を行うことで、常に必要な情報を取得するこ
とができる。
合でも、変数の場合と同様に、ファイルフォーマットに
適した処理を行うことで、常に必要な情報を取得するこ
とができる。
【0030】次に、本実施例の他の動作例として、ファ
イルフォーマットが異なる複数のプログラムを同時にダ
ウンロードし、かつデバッグする場合について説明す
る。
イルフォーマットが異なる複数のプログラムを同時にダ
ウンロードし、かつデバッグする場合について説明す
る。
【0031】例えば、ファイルフォーマット形式αをも
つプログラムAと、ファイルフォーマット形式βを持つ
プログラムBを同時にダウンロードしたとする。また、
プログラムAはソースファイルaをコンパイルして生成
されたものとし、プログラムBはソースファイルbをコ
ンパイルして生成されたものとする。プログラムAとプ
ログラムBはターゲットシステム5のメモリ領域中にダ
ウンロードされており、また、プログラムAとプログラ
ムBのメモリ領域はまったく重複しないものとする。こ
のとき、ターゲットシステムのメモリ中のあるアドレス
に対して、一意的に対応するプログラムを決定すること
ができる。
つプログラムAと、ファイルフォーマット形式βを持つ
プログラムBを同時にダウンロードしたとする。また、
プログラムAはソースファイルaをコンパイルして生成
されたものとし、プログラムBはソースファイルbをコ
ンパイルして生成されたものとする。プログラムAとプ
ログラムBはターゲットシステム5のメモリ領域中にダ
ウンロードされており、また、プログラムAとプログラ
ムBのメモリ領域はまったく重複しないものとする。こ
のとき、ターゲットシステムのメモリ中のあるアドレス
に対して、一意的に対応するプログラムを決定すること
ができる。
【0032】例えば、プログラムAが0〜100、Bが
200〜300の領域を持つとすると、50番地のアド
レスに対するプログラムはAである、と一意的に決定す
ることができるのである。
200〜300の領域を持つとすると、50番地のアド
レスに対するプログラムはAである、と一意的に決定す
ることができるのである。
【0033】ここで、デバッガの表示として、ロードし
たプログラムに対するソースファイルの内容を表示させ
ようとした場合を考える。ロードしたプログラムをター
ゲットシステム5上で実行させた場合、ターゲットシス
テム5上のプログラムカウンタ(以下PC)レジスタ値
が実行に伴い変化していく。デバッガ上に表示させるプ
ログラムのソースファイル行をターゲットシステム5上
のプログラムの実行にあわせて移動させていくような場
合、ターゲットシステム5内部のPCレジスタ値の変化
を常にモニタリングして対応するソース行の位置を見つ
け出さなければならない。現在のPCレジスタ値はター
ゲット通信部24を通して取得することができ、このP
Cレジスタ値に対応するプログラムがA・Bいずれであ
るかは一意的に決定できる(この判断処理はファイルフ
ォーマット自動判別部22が行う)。すなわち、データ
ベース中にはソースファイルのある行がメモリ領域中の
どのアドレスに対応しているかを示す情報が含まれてい
るので、これを基にアドレス一行番号の関連付けの出力
などを行うことができる。
たプログラムに対するソースファイルの内容を表示させ
ようとした場合を考える。ロードしたプログラムをター
ゲットシステム5上で実行させた場合、ターゲットシス
テム5上のプログラムカウンタ(以下PC)レジスタ値
が実行に伴い変化していく。デバッガ上に表示させるプ
ログラムのソースファイル行をターゲットシステム5上
のプログラムの実行にあわせて移動させていくような場
合、ターゲットシステム5内部のPCレジスタ値の変化
を常にモニタリングして対応するソース行の位置を見つ
け出さなければならない。現在のPCレジスタ値はター
ゲット通信部24を通して取得することができ、このP
Cレジスタ値に対応するプログラムがA・Bいずれであ
るかは一意的に決定できる(この判断処理はファイルフ
ォーマット自動判別部22が行う)。すなわち、データ
ベース中にはソースファイルのある行がメモリ領域中の
どのアドレスに対応しているかを示す情報が含まれてい
るので、これを基にアドレス一行番号の関連付けの出力
などを行うことができる。
【0034】上記の例では、取得されたPCレジスタ値
が50だった場合、そのアドレスに対応するプログラム
はAであるので、プログラムAのデータベースの中から
50番地に対応するプログラム行の情報を取得し、その
情報を基にデバッガの表示を行う。さらにターゲット中
のプログラムを引き続き実行し、PCレジスタ値が25
0になったとする。この時、そのアドレスに対応するプ
ログラムはBであるので、プログラムBのデータベース
の中から250番地に対応するプログラム行の情報を取
得しその情報を基にデバッガの表示を行う。フォーマッ
トαに対する行番号検索処理とフォーマットβに対する
それとでは、処理内容が異なるが、ファイルフォーマッ
ト自動判別部22によってどちらか必要な方の処理を自
動的に呼び出して出力用のデータの取得を行うことがで
きる。この際、ファイルフォーマットの違いをすべてフ
ァイルフォーマット依存部23の中で吸収させること
で、出力内容をファイルフォーマットに依存しない、画
一的なものに統一することができる。したがってデバッ
ガのユーザはファイルフォーマットの差を気にすること
なく、どちらのプログラムもまったく同じ動作環境で使
用することができるようになる。
が50だった場合、そのアドレスに対応するプログラム
はAであるので、プログラムAのデータベースの中から
50番地に対応するプログラム行の情報を取得し、その
情報を基にデバッガの表示を行う。さらにターゲット中
のプログラムを引き続き実行し、PCレジスタ値が25
0になったとする。この時、そのアドレスに対応するプ
ログラムはBであるので、プログラムBのデータベース
の中から250番地に対応するプログラム行の情報を取
得しその情報を基にデバッガの表示を行う。フォーマッ
トαに対する行番号検索処理とフォーマットβに対する
それとでは、処理内容が異なるが、ファイルフォーマッ
ト自動判別部22によってどちらか必要な方の処理を自
動的に呼び出して出力用のデータの取得を行うことがで
きる。この際、ファイルフォーマットの違いをすべてフ
ァイルフォーマット依存部23の中で吸収させること
で、出力内容をファイルフォーマットに依存しない、画
一的なものに統一することができる。したがってデバッ
ガのユーザはファイルフォーマットの差を気にすること
なく、どちらのプログラムもまったく同じ動作環境で使
用することができるようになる。
【0035】次に、本発明の他の実施例を図4により説
明する。
明する。
【0036】図1におけるファイルフォーマット依存部
23は、本来はデバッガ2の中に含まれるものであり、
基本的には対応しようとするファイルフォーマットの種
類の数だけ、予め用意しておかなければならない(図4
A)。しかし、これでは未知のファイルフォーマットに
対して、対応できない。そこで、図4Bに示すように、
ファイルフォーマットを別モジュールとして扱い、新し
いファイルフォーマットに対応する時には、そのファイ
ルフォーマットに対応するファイルフォーマット依存部
分54だけを新たに作成し、旧来のモジュールとしての
ファイルフォーマット依存部52,53に追加すること
によって、どのようなファイルフォーマットにも対応で
きるようにすることができる様になる。
23は、本来はデバッガ2の中に含まれるものであり、
基本的には対応しようとするファイルフォーマットの種
類の数だけ、予め用意しておかなければならない(図4
A)。しかし、これでは未知のファイルフォーマットに
対して、対応できない。そこで、図4Bに示すように、
ファイルフォーマットを別モジュールとして扱い、新し
いファイルフォーマットに対応する時には、そのファイ
ルフォーマットに対応するファイルフォーマット依存部
分54だけを新たに作成し、旧来のモジュールとしての
ファイルフォーマット依存部52,53に追加すること
によって、どのようなファイルフォーマットにも対応で
きるようにすることができる様になる。
【0037】また、図1および図4に示したデバッガを
プログラムによって実現し、それを半導体メモリ,磁気
ディスク等コンピュータ読み込み可能な記録媒体に記録
して、コンピュータに読み込ませて実行させることによ
りデバッグを実行するようにしてもよい。
プログラムによって実現し、それを半導体メモリ,磁気
ディスク等コンピュータ読み込み可能な記録媒体に記録
して、コンピュータに読み込ませて実行させることによ
りデバッグを実行するようにしてもよい。
【0038】
【発明の効果】本発明によれば、第1に、プログラムの
ファイルフォーマットはデバッガ側で判断するため、利
用者がファイルフォーマットを意識する必要がなくな
る。すなわち、どのようなコンパイラで作成されたプロ
グラムでもダウンロードしてデバッグ作業を行うことが
できる。
ファイルフォーマットはデバッガ側で判断するため、利
用者がファイルフォーマットを意識する必要がなくな
る。すなわち、どのようなコンパイラで作成されたプロ
グラムでもダウンロードしてデバッグ作業を行うことが
できる。
【0039】第2に、ファイルフォーマットが異なる複
数のプログラムでも、ファイルフォーマットの変換をす
ることなく、ターゲットシステムに同時にロードして、
同時にデバッグすることができるという効果を有する。
数のプログラムでも、ファイルフォーマットの変換をす
ることなく、ターゲットシステムに同時にロードして、
同時にデバッグすることができるという効果を有する。
【図1】本発明の一実施例のブロック図
【図2】本発明におけるデバッグ対象のダウンロード時
のフローチャート
のフローチャート
【図3】本発明におけるデバッグ時における変数値取得
を例とする処理のフローチャート
を例とする処理のフローチャート
【図4】本発明の他の実施例の要部を示すブロック図
1 入力装置 2 デバッガ 3 記憶装置 4 出力装置 5 ターゲットシステム 21 共通処理部 22,51 ファイルフォーマット自動判別部 23,23a,23b,52,53,54 ファイルフ
ォーマット依存部 24 ターゲット通信部 31 デバッグ対象プログラム記憶部
ォーマット依存部 24 ターゲット通信部 31 デバッグ対象プログラム記憶部
Claims (6)
- 【請求項1】プログラムのファイルフォーマットごと
に、該ファイルフォーマットに依存する処理手段を備
え、利用者がデバッグ対象プログラムのプログラム名を
入力すると、これに対応する前記処理手段を起動し、記
憶装置上のデバッグ対象プログラムに対して所定の処理
を施してターゲットシステムにロードし、また該ターゲ
ットシステム上でデバッグを実行時には、適時前記処理
手段を呼び出すことを特徴とするプログラムデバッガ。 - 【請求項2】前記ファイルフォーマットごとのデータア
クセス機能を有し、前記プログラム名をもつデバッグ対
象プログラムを前記記憶装置から探し出して、そのデバ
ッグ情報を読み出すファイルフォーマット依存部と、 前記プログラム名に対するファイルフォーマットを判別
して対応する前記ファイルフォーマット依存部を切り替
え起動し、ファイルフォーマット依存部からの前記デバ
ッグ情報によってデータベースを作成してデバッグに供
するファイルフォーマット自動判別部と、 当該デバッガと前記ターゲットシステムとの間の情報の
授受を行うターゲット通信部と、 前記利用者との間でユーザインタフェース部を形成する
とともに、前記ファイルフォーマット自動判別部と前記
ターゲット通信部との間の情報授受の仲介を行う共通処
理部とを有することを特徴とする請求項1記載のプログ
ラムデバッガ。 - 【請求項3】前記ファイルフォーマット依存部をモジュ
ール化し、新規のファイルフォーマットに対応して追加
可能としたことを特徴とする請求項2記載のプログラム
デバッガ。 - 【請求項4】前記ファイルフォーマットは、ELF,C
OFFまたはDWARFであることを特徴とする請求項
1〜請求項3のいずれかに記載のプログラムデバッガ。 - 【請求項5】利用者がデバッグ対象プログラムのプログ
ラム名を入力すると対応するプログラムのファイルフォ
ーマットを判別する手順と、該ファイルフォーマット対
応のデータアクセス機能を呼び出す手順と、該データア
クセス機能によって当該デバッグ対象プログラムからデ
バッグ情報を読み出してデータベースを作成する手順
と、前記データアクセス機能によって当該デバッグ対象
プログラムをターゲットシステムにロードする手順と、
該ターゲットシステム上で当該デバッグ対象プログラム
を実行する手順と、該実行時に適時前記データベースお
よびデータアクセス機能を起動する手順と、該デバッグ
の結果を出力する手順とを有するプログラムデバッグ方
法。 - 【請求項6】利用者がデバッグ対象プログラムのプログ
ラム名を入力すると対応するプログラムのファイルフォ
ーマットを判別する手順と、該ファイルフォーマット対
応のデータアクセス機能を呼び出す手順と、該データア
クセス機能によって当該デバッグ対象プログラムからデ
バッグ情報を読み出してデータベースを作成する手順
と、前記データアクセス機能によって当該デバッグ対象
プログラムをターゲットシステムにロードする手順と、
該ターゲットシステム上で当該デバッグ対象プログラム
を実行する手順と、該実行時に適時前記データベースお
よびデータアクセス機能を起動する手順と、該デバッグ
の結果を出力する手順とを有するプログラムデバッグ方
法をコンピュータに実行させるためのプログラムを記録
したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10238247A JP2926590B1 (ja) | 1998-08-25 | 1998-08-25 | プログラムデバッガ,プログラムデバッグ方法および記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10238247A JP2926590B1 (ja) | 1998-08-25 | 1998-08-25 | プログラムデバッガ,プログラムデバッグ方法および記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2926590B1 JP2926590B1 (ja) | 1999-07-28 |
JP2000066920A true JP2000066920A (ja) | 2000-03-03 |
Family
ID=17027345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10238247A Expired - Lifetime JP2926590B1 (ja) | 1998-08-25 | 1998-08-25 | プログラムデバッガ,プログラムデバッグ方法および記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2926590B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005216286A (ja) | 2004-01-30 | 2005-08-11 | Microsoft Corp | コード・フリー・ファイルの検出 |
-
1998
- 1998-08-25 JP JP10238247A patent/JP2926590B1/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005216286A (ja) | 2004-01-30 | 2005-08-11 | Microsoft Corp | コード・フリー・ファイルの検出 |
Also Published As
Publication number | Publication date |
---|---|
JP2926590B1 (ja) | 1999-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6922827B2 (en) | Iterative software development environment with prioritized build rules | |
US20080127113A1 (en) | Method and system for implementing watchpoints | |
CN105468529A (zh) | 一种安卓应用ui控件精准遍历方法和装置 | |
JP4724660B2 (ja) | 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法 | |
CN112882718A (zh) | 编译处理方法、装置、设备及存储介质 | |
JP2007527562A5 (ja) | ||
CN112711427A (zh) | 一种镜像文件的获取方法以及装置 | |
JP2926590B1 (ja) | プログラムデバッガ,プログラムデバッグ方法および記録媒体 | |
JPH10214203A (ja) | 情報処理装置 | |
US20020129336A1 (en) | Automatic symbol table selection in a multi-cell environment | |
KR900006667B1 (ko) | 부분적 프로그램 결합 시스템 | |
CN112882701A (zh) | 一种支持多架构的可执行文件静态插桩技术框架 | |
JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
AU651682B2 (en) | Improved system and method for detecting cross-domain instruction calls and data references especiallly adapted for code interface jacketing in a multi-code execution and debugging system within a multi-architecture environment | |
JP2000076095A (ja) | プログラムトレース装置およびプログラムトレース方法およびそのプログラムを記憶した記憶媒体 | |
JPH0588879A (ja) | プログラム開発支援システム | |
JP3293821B2 (ja) | 動的リンクシステム | |
CN116048903A (zh) | 多线程测试用例的生成方法及装置、电子设备、存储介质 | |
JPH09251378A (ja) | クラスライブラリ更新方法および装置 | |
CN113535230A (zh) | 一种工程源码动态自适应不同硬件资源的方法及系统 | |
KR100293932B1 (ko) | 소프트웨어 코드인 이미지의 후처리 방법 | |
JPH07152577A (ja) | コンパイル、リンク方法の共通化方式 | |
JP2007257385A (ja) | ダイナミックリンクライブラリの競合検出方法及びこれを用いた計算機システム | |
JP2008234405A (ja) | 異常系テスト支援装置、異常系テスト支援方法、及びプログラム | |
JP2000231499A (ja) | 拡張検査プログラム読み込み試験装置 |