(57)【要約】【課題】第２のプロセッサが第１のプロセッサにそのプログラムモジュールをロードする場合、デバッガがロード先アドレスを知ることができないため、ユーザに対してデバッグ機能を提供できない。【解決手段】複数のモジュールから構成されたプログラムで動作する第１のプロセッサ１０にデバッガ４０が接続されている。第２のプロセッサは、モジュールを共有メモリ上にロードし、各モジュールとアドレスの対応関係を表すモジュール情報を生成し、第１のプロセッサに通知するモジュールロード処理手段２３を有する。第１のプロセッサは、共有メモリからモジュール情報を取得してデバッガに通知するデバッガ通信処理手段１２を有する。デバッガは、デバッガ通信処理手段から得た各モジュール情報を基に、各モジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段４３を有する。【選択図】図１
2006227706.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第２のプロセッサは、前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理手段を有し、
前記第１のプロセッサは、前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理手段を有し、
前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有しているプログラム開発装置。
【請求項２】
前記モジュールロード処理手段は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
プログラムモジュール間の各参照を解決する手段とを備える請求項１に記載のプログラム開発装置。
【請求項３】
前記モジュールロード処理手段は、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を前記共有メモリ上に生成する手段を備える請求項２に記載のプログラム開発装置。
【請求項４】
前記デバッガ通信処理手段は、前記共有メモリ上に生成された前記モジュール情報を読み取り、各々のモジュールとそのモジュールがロードされたアドレスを知る手段を備える請求項１から請求項３までのいずれかに記載のプログラム開発装置。
【請求項５】
前記第２のプロセッサは、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を直接、前記デバッガに通知する手段を備える請求項１から請求項４までのいずれかに記載のプログラム開発装置。
【請求項６】
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第１のプロセッサは、前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理手段を有し、
前記デバッガは、
前記第１のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理手段に転送するモジュールファイルロード処理手段と、
前記デバッガ通信処理手段から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段とを有しているプログラム開発装置。
【請求項７】
前記モジュールファイルロード処理手段は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段と
を備える請求項６に記載のプログラム開発装置。
【請求項８】
前記メモリ領域を確保する手段は、
前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する手段と、
前記手段で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める手段とを含む請求項２または請求項７に記載のプログラム開発装置。
【請求項９】
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第２のプロセッサは、
前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理手段と、
前記モジュール情報を前記デバッガに通知するデバッガ通信処理手段を有し、
前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有しているプログラム開発装置。
【請求項１０】
前記第２のプロセッサは、前記第１のプロセッサを起動し、前記デバッガに前記第１のプロセッサの起動を通知する手段を備える請求項１から請求項９までのいずれかに記載のプログラム開発装置。
【請求項１１】
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第２のプロセッサが前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理と、
前記第１のプロセッサが前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理と、
前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラム開発プログラム。
【請求項１２】
前記モジュールロード処理は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する処理と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する処理と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する処理と、
プログラムモジュール間の各参照を解決する処理と含む請求項１１に記載のプログラム開発プログラム。
【請求項１３】
前記モジュールロード処理は、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を前記共有メモリ上に生成する処理を含む請求項１２に記載のプログラム開発プログラム。
【請求項１４】
前記デバッガ通信処理は、前記共有メモリ上に生成された前記モジュール情報を読み取り、各々のモジュールとそのモジュールがロードされたアドレスを知る処理を含む請求項１１から請求項１３までのいずれかに記載のプログラム開発プログラム。
【請求項１５】
前記第２のプロセッサは、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を直接、前記デバッガに通知する処理を含む請求項１１から請求項１４までのいずれかに記載のプログラム開発プログラム。
【請求項１６】
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第１のプロセッサが前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理と、
前記デバッガが前記第１のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理に転送するモジュールファイルロード処理と、
前記デバッガが前記デバッガ通信処理から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築とを含むコンピュータ実行可能なプログラム開発プログラム。
【請求項１７】
前記モジュールファイルロード処理は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する処理と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する処理と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する処理と、
各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定する処理とを含む請求項１６に記載のプログラム開発プログラム。
【請求項１８】
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第２のプロセッサが前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理と、
前記第２のプロセッサが前記モジュール情報を前記デバッガに通知するデバッガ通信処理と、
前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラム開発プログラム。
【請求項１９】
前記メモリ領域確保処理は、
前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する処理と、
前記処理で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める処理とを含む請求項１２または請求項１７に記載のプログラム開発プログラム。
【請求項２０】
前記第２のプロセッサが前記第１のプロセッサを起動し、前記デバッガに前記第１のプロセッサの起動を通知する処理を含む請求項１１から請求項１９までのいずれかに記載のプログラム開発プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込み向けプロセッサのプログラム開発装置およびプログラム開発プログラムにかかわり、特にはプログラムの検証・動作確認のためのデバッグの技術に関するものである。
【背景技術】
【０００２】
組み込み向けプロセッサで動作するプログラムおよびプログラムが使用するデータについては、プログラムファイルの生成時にターゲット環境上でのアドレスが決定され、プログラムファイル内にそのアドレスについての情報が記録される。そのアドレスについての情報を基に、そのデータがターゲット環境上にロードされる。このとき、プログラムファイルに含まれているデバッグ情報は、プログラムおよびプログラムが使用するデータが配置されるアドレスとソースプログラムとの対応関係を表している。ＰＣ（パソコン）上で動作しターゲットプロセッサと接続しているデバッグ環境では、このデバッグ情報を使用する。
【０００３】
一方、ターゲット上で動作するプログラムが複数のモジュールファイルから構成されている場合には、プログラム実行時に各モジュールファイルがターゲット環境にロードされる。各モジュールファイルにはロードされるべきアドレスについての情報が含まれていない。ターゲット環境にロードされる際に、アドレスが決定される。このような環境でプログラムのデバッグを行う場合、ターゲットプロセッサ上で動作するオペレーティングシステムがモジュールファイルをロードする際のアドレスを決定し、デバッガに対してそのアドレスを通知する（例えば、特許文献１参照。）。
【０００４】
図１６に示すシステムは、ターゲット環境が複数のプロセッサ（ホストプロセッサ２０、メディアプロセッサ１０）で構成されている。メディアプロセッサ１０にデバッガ４０が接続されている。第１のプロセッサであるメディアプロセッサ１０のプログラムモジュールを、第２のプロセッサであるホストプロセッサ２０が共有メモリ３０上にロードする。
【特許文献１】特開平７−３０６８００号公報（第４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図１６のシステムにおいては、デバッガ４０は、モジュールのロード先アドレスを知ることができない。そのため、モジュール内のデバッグ情報に含まれているプログラム中の関数や変数のアドレスを特定できない。結局、ユーザに対してデバッグ機能を提供することができない。
【課題を解決するための手段】
【０００６】
本発明によるプログラム開発装置は、
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第２のプロセッサは、前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールとアドレスの対応関係を表すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理手段を有し、
前記第１のプロセッサは、前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理手段を有し、
前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有している。
【０００７】
これに対応する本発明によるプログラム開発プログラムは、
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第２のプロセッサが前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理と、
前記第１のプロセッサが前記共有メモリから前記モジュール情報を取得して前記デバッガに通知するデバッガ通信処理と、
前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラムである。
【０００８】
上記の構成によれば、第２のプロセッサのモジュールロード処理手段が第１のプロセッサのプログラムである複数のモジュールから構成されたプログラムを共有メモリにロードするとともに、個々のプログラムモジュールについてアドレスを示すモジュール情報を生成して共有メモリにロードし、さらに第１のプロセッサのデバッガ通信処理手段によってデバッガに伝える。そして、デバッガのデバッグ情報構築手段においてモジュール情報に基づいてプログラムの実体のアドレスを決定するので、第１のプロセッサのプログラムのデバッグ機能を実現できる。
【０００９】
上記の構成において好ましくは、前記モジュールロード処理手段は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
プログラムモジュール間の各参照を解決する手段とを備えるものである。
【００１０】
また、上記の構成において好ましくは、前記モジュールロード処理手段は、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を前記共有メモリ上に生成する手段を備えるものである。
【００１１】
また、上記の構成において好ましくは、前記デバッガ通信処理手段は、前記共有メモリ上に生成された前記モジュール情報を読み取り、各々のモジュールとそのモジュールがロードされたアドレスを知る手段を備えるものである。
【００１２】
また、上記の構成において好ましくは、前記第２のプロセッサは、各々のプログラムモジュールの内容を転送するアドレスを決定し、前記モジュール情報を直接、前記デバッガに通知する手段を備えるものである。
【００１３】
また、本発明によるプログラム開発装置は、
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第１のプロセッサは、前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理手段を有し、
前記デバッガは、
前記第１のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理手段に転送するモジュールファイルロード処理手段と、
前記デバッガ通信処理手段から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段とを有している。
【００１４】
これに対応する本発明によるプログラム開発プログラムは、
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第１のプロセッサが前記デバッガからモジュールファイルを前記共有メモリに転送してロードするデバッガ通信処理と、
前記デバッガが前記第１のプロセッサ用のプログラムのモジュールファイルを前記共有メモリにロードするために前記デバッガ通信処理に転送するモジュールファイルロード処理と、
前記デバッガが前記デバッガ通信処理から得た各モジュールのロード先の情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築とを含むコンピュータ実行可能なプログラムである。
【００１５】
上記の構成によれば、モジュールファイルロード処理の機能をデバッガ内に持つので、第１のプロセッサのプログラムのデバッグ作業を第２のプロセッサの動作から切り離し、第２のプロセッサの動作から独立した第１のプロセッサだけの動作に着目することができるプログラムデバッグ環境を実現できる。
【００１６】
上記の構成において好ましくは、前記モジュールファイルロード処理手段は、
ロードするプログラムモジュールの依存関係と一覧を前記プログラムモジュールの情報から取得する手段と、
前記プログラムモジュールをロードするためのメモリ領域サイズを計算し、前記共有メモリにおいてメモリ領域を確保する手段と、
前記プログラムモジュールを前記共有メモリ上に配置し、配置したアドレスについての情報を生成する手段と、
各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段と
を備えるものである。
【００１７】
また、上記の構成において好ましくは、前記メモリ領域を確保する手段は、
前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する手段と、
前記手段で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める手段とを含むものである。
【００１８】
また、本発明によるプログラム開発装置は、
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムのプログラム開発装置であって、
前記第２のプロセッサは、
前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理手段と、
前記モジュール情報を前記デバッガに通知するデバッガ通信処理手段を有し、
前記デバッガは、前記デバッガ通信処理手段から得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築手段を有している。
【００１９】
これに対応する本発明によるプログラム開発プログラムは、
複数のプログラムモジュールから構成されたプログラムで動作する第１のプロセッサと前記第１のプロセッサの起動を行う第２のプロセッサとがこれら両プロセッサに共通の共有メモリに接続され、前記第１のプロセッサにデバッガが接続されている組み込みシステムにおいて実行されるプログラムの開発プログラムであって、
前記第２のプロセッサが前記第１のプロセッサ用のプログラムモジュールを前記共有メモリ上にロードし、各プログラムモジュールのアドレスを示すモジュール情報を生成し、前記モジュール情報を前記第１のプロセッサに通知するモジュールロード処理と、
前記第２のプロセッサが前記モジュール情報を前記デバッガに通知するデバッガ通信処理と、
前記デバッガが前記デバッガ通信処理で得た各モジュール情報を基に、各プログラムモジュールのデバッグ情報に含まれるプログラムの実体のアドレスを決定するデバッグ情報構築処理とを含むコンピュータ実行可能なプログラムである。
【００２０】
上記の構成によれば、第２のプロセッサがモジュール情報を直接にデバッガに通知するデバッガ通信処理の機能を有するので、モジュール情報を高速にデバッガへ通知することが可能であるとともに、共有メモリにモジュール情報の領域を確保する必要がなく、メモリ資源を有効利用することが可能になる。
【００２１】
上記の構成において好ましくは、前記メモリ領域確保処理は、
前記プログラムモジュールに含まれる、各種データのための領域の大きさを示す値を前記収集したモジュール全てから取得する処理と、
前記処理で得た領域サイズから前記共有メモリ上に確保する領域のサイズを求める処理とを含むものである。
【００２２】
また、上記の構成において好ましくは、前記第２のプロセッサは、前記第１のプロセッサを起動し、前記デバッガに前記第１のプロセッサの起動を通知する手段を備えるものである。
【発明の効果】
【００２３】
本発明によれば、個々のプログラムモジュールについてアドレスを示すモジュール情報を生成して間接的または直接的にデバッガに伝え、デバッガのデバッグ情報構築手段においてモジュール情報に基づいてプログラムの実体のアドレスを決定するので、複数のプログラムモジュールから構成された組み込みシステムであっても、第１のプロセッサのプログラムのデバッグ機能を実現できる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明にかかわるプログラム開発装置の実施の形態を図面に基づいて詳細に説明する。
【００２５】
（実施の形態１）
本発明の実施の形態１におけるプログラム開発装置の全体構成を図１に示す。このシステムは、第１のプロセッサとしてのメディアプロセッサ１０と第２のプロセッサとしてのホストプロセッサ２０と両プロセッサの共有メモリ３０とデバッガ４０とを備えている。
【００２６】
ホストプロセッサ２０はターゲットシステム上で動作する組み込みプロセッサで、機器の制御、データの処理を行う。動画、音声などのメディアデータ処理はメディアプロセッサ１０が主に処理する。ホストプロセッサ２０は、メディアプロセッサ１０に対するデータ供給などの処理も行う。さらに、ホストプロセッサ２０は、メディアプロセッサ１０の起動時にメディアプロセッサ１０用のプログラムのロード処理も行う。メディアプロセッサ１０のプログラムは複数のモジュールから構成され、モジュールのうちいくつかを入れ替えることで、プログラムの不具合修正・機能追加などを実現可能である。モジュールのデータをホストプロセッサ２０に対して供給する箇所については、本発明の主眼ではないので説明を省略する。
【００２７】
ホストプロセッサ２０は、メディアプロセッサ起動処理部２１、モジュール保持部２２、モジュールロード処理部２３、モジュールロード部２４およびモジュール情報生成通知部２５などを備えている。
【００２８】
メディアプロセッサ起動処理部２１は、ホストプロセッサ２０がメディアプロセッサ１０を起動する処理を行う。
【００２９】
モジュール保持部２２は、メディアプロセッサ１０で動作するプログラム、データを構成するモジュールを保持する。
【００３０】
モジュールロード処理部２３は、モジュール保持部２２で保持しているメディアプロセッサ１０で動作するプログラムを構成するモジュールを共有メモリ３０上へロードする処理を行う。処理の内容は、モジュールロード部２４の処理とモジュール情報生成通知部２５の処理から構成される。
【００３１】
モジュールロード処理部２３は、モジュール保持部２２に格納されているモジュールの依存関係を調べ、各モジュールのコードサイズ、データサイズ、管理情報領域サイズを調べ、共有メモリ３０上に配置する。
【００３２】
モジュール情報生成通知部２５は、モジュールロード処理部２３が行ったモジュールの共有メモリ３０上へのロードの結果、どのモジュールのデータがどのアドレスにロードされたかを示すモジュール情報を生成する。
【００３３】
共有メモリ３０は、ホストプロセッサ２０とメディアプロセッサ１０の両方からアクセス可能なメモリである。
【００３４】
メディアプロセッサ１０は、起動処理部１１およびデバッガ通信処理部１２を備えている。
【００３５】
メディアプロセッサ１０はターゲットシステム上で動作する組み込みプロセッサで、動画、音声などのメディアデータ処理を主に担当する。メディアプロセッサ１０で動作するプログラムは、ホストプロセッサ２０で動作するモジュールロード処理部２３によってロードされる。ホストプロセッサ２０から起動されると、プログラムの実行を開始する。
【００３６】
起動処理部１１は、ホストプロセッサ２０からメディアプロセッサ１０が起動された際に動作し、デバッガ４０に対してプログラムがロードされたことを通知する処理も行う。
【００３７】
デバッガ通信処理部１２は、メディアプロセッサ１０の状態をデバッガ４０に通知するための処理を行い、メモリダンプ、プロセッサ状態の通知などを行う。
【００３８】
デバッガ４０は、メディアプロセッサ１０のプログラムをデバッグするためのもので、メディアプロセッサ１０と接続している。デバッガ４０は、モジュールファイル保持部４１、デバッグ情報保持部４２およびモジュールデバッグ情報構築部４３を備えている。
【００３９】
モジュールファイル保持部４１は、メディアプロセッサ１０で動作するプログラム、データを構成するモジュールのデータと、そのソースプログラムとの対応をとるためのデバッグ情報とで構成されているモジュールファイルを格納している。
【００４０】
デバッグ情報保持部４２は、モジュールファイル保持部４１に格納されているモジュールファイルからデバッグ情報を取り出して保持する。
【００４１】
モジュールデバッグ情報構築部４３は、メディアプロセッサ１０のプログラムが共有メモリ３０上にロードされて各モジュールが配置されたアドレスが確定した後、各モジュールのデバッグ情報内のアドレスを確定し、デバッグ可能な状態にする処理を行う。
【００４２】
なお、ここでの説明では、各モジュールに含まれる情報領域をコード領域３１・データ領域３２・管理情報領域３３の３種類としているが、モジュール内の構成に応じて複数の領域を設けることが可能であり、必ずしもこの３種類に限定するものではない。
【００４３】
次に、上記構成での動作を説明する。
【００４４】
図２は、ホストプロセッサ２０がメディアプロセッサ１０のプログラムをロードし、メディアプロセッサ１０を起動する手順を示したフローチャートである。
【００４５】
ステップＳ１１において、モジュールロード処理部２３を起動し、モジュール保持部２２に保持されているモジュール間の依存関係を調べ、必要なモジュールが全て保持されていることを確認し、図３に示すモジュールテーブル５０を生成する。
【００４６】
ステップＳ１２において、共有メモリ３０上にモジュールをロードするための準備として、コード・データ・管理情報などの各領域がどの程度必要かを計算し、共有メモリ３０上に領域を確保する。
【００４７】
ステップＳ１３において、モジュールロード部２４が、ステップＳ１２で確保した各領域にモジュールのデータを配置する処理を行い、モジュール情報生成通知部２５がモジュールの配置に関する情報を作成する。
【００４８】
ステップＳ１４において、ステップＳ１３でメモリ上に配置したコード・データを各モジュール間で参照するためのモジュール間結合に関する処理を行う。
【００４９】
ステップＳ１５において、モジュールロード処理を完了し、メディアプロセッサ１０を起動する処理を行う。
【００５０】
上記の処理についての詳細と、処理の中で使用するデータ構造について以下で述べる。
【００５１】
図３は、ステップＳ１１で生成するモジュールテーブル５０の構造を図示している。列５１はモジュール名を表し、列５２はそのモジュールのコード領域３１のサイズを、列５３はそのモジュールのデータ領域３２のサイズを、列５４はそのモジュールの管理情報領域３３のサイズをそれぞれ表している。
【００５２】
図４は、各モジュールが保持する当該のモジュールについての情報を格納するモジュールヘッダ部の構造を図示している。
【００５３】
フィールド６１はモジュール名を表し、フィールド６２はモジュールのコード領域が格納されている位置（オフセット）を、フィールド６３はモジュールのコード領域のサイズを、フィールド６４はモジュールのデータ領域が格納されている位置（オフセット）を、フィールド６５はモジュールのデータ領域のサイズを、フィールド６６はモジュールの管理情報領域が格納されている位置（オフセット）を、フィールド６７はモジュールの管理情報領域のサイズを、フィールド６８はそのモジュールが使用するモジュールの名前（依存モジュール情報）をそれぞれ表している。複数のモジュールを使用する場合には、複数のモジュール名が格納される。あるモジュールＡが他のモジュールＢを使用するとき、「モジュールＡはモジュールＢに依存する。」と呼ぶときがある。よって、「このフィールドの内容は、そのモジュールが依存するモジュール名を格納している。」と表現できる。
【００５４】
図５は、ステップＳ１３で生成するモジュール情報の構造を図示している。
【００５５】
フィールド７１はモジュール名を表し、フィールド７２はモジュールのコード領域がロードされたアドレスを、フィールド７３はモジュールのコード領域のサイズを、フィールド７４はモジュールのデータ領域がロードされたアドレスを、フィールド７５はモジュールのデータ領域のサイズを、フィールド７６はモジュールの管理情報領域がロードされたアドレスを、フィールド７７はモジュールの管理情報領域のサイズをそれぞれ表している。
【００５６】
なお、ホストプロセッサ２０のモジュール保持部２２で保持されている「モジュール」は、デバッガ４０のモジュールファイル保持部４１で保持されている「モジュールファイル」と一対一に対応するもので、コンパイラなどのプログラム処理系で生成された「モジュールファイル」から、ターゲット環境上で必要な情報（プログラムコード、データ、管理情報など）だけを取り出したものが「モジュール」である。「モジュールファイル」には、この他にシンボリックデバッグのためのデバッグ情報、シンボル情報などが含まれている。
【００５７】
図６は、図２のステップＳ１１の処理を詳細化したものである。
【００５８】
ステップＳ２１において、先頭モジュールについての情報をモジュールテーブル５０に登録する。モジュールテーブル５０に登録する情報は、図４に示すモジュールヘッダ６０のモジュール名６１と、コード領域サイズ６３と、データ領域サイズ６５と、管理情報領域サイズ６７から得て、図３に示すモジュールテーブル５０のモジュール名５１と、コード領域サイズ５２と、データ領域サイズ５３と、管理情報領域サイズ５４とにそれぞれ登録する。
【００５９】
ステップＳ２２において、モジュールテーブル５０上にある依存関係について調べていないモジュールを一つ処理対象として選択し、そのようなモジュールが存在する間繰り返すループを構成する。
【００６０】
ステップＳ２３において、処理対象のモジュールが持つ依存モジュール情報を順番に選択し、依存モジュール情報それぞれについて繰り返すループを構成する。
【００６１】
ステップＳ２４において、選択した依存モジュール情報が表すモジュールが既にモジュールテーブル５０に登録されているかどうかを判定する。もし既にモジュールテーブル５０に含まれていればステップＳ２５はスキップする。
【００６２】
ステップＳ２５において、選択した依存モジュール情報が表すモジュールをモジュールテーブル５０に登録する。モジュールテーブル５０に登録する情報は、図４に示すモジュールヘッダ６０のモジュール名６１と、コード領域サイズ６３と、データ領域サイズ６５と、管理情報領域サイズ６７から得て、図３に示すモジュールテーブル５０のモジュール名５１と、コード領域サイズ５２と、データ領域サイズ５３と、管理情報領域サイズ５４とにそれぞれ登録する。
【００６３】
図７は、図２のステップＳ１２の処理を詳細化したものである。
【００６４】
ステップＳ３１において、モジュールテーブル５０の各領域のサイズを合計し、メモリ上で必要となるモジュール情報、コード領域３１、データ領域３２、管理情報領域３３のサイズを求める。
【００６５】
ステップＳ３２において、コード領域３１の先頭アドレスを求める。使用可能なメモリの先頭アドレスにモジュール情報のサイズを加えて、適当なアライメントを行い、当該のアドレスを求める。
【００６６】
ステップＳ３３において、データ領域３２の先頭アドレスを求める。ステップＳ３２で求めたアドレスにコード領域３１のサイズを加えて、適当なアライメントを行い、当該のアドレスを求める。
【００６７】
ステップＳ３４において、管理情報領域３３の先頭アドレスを求める。ステップＳ３３で求めたアドレスに管理情報領域３３のサイズを加えて、適当なアライメントを行い、当該のアドレスを求める。
【００６８】
図８は、図２のステップＳ１３の処理を詳細化したものである。
【００６９】
ステップＳ４１において、ステップＳ１２で求めた各領域の先頭アドレスを、コード領域割り当てアドレス、データ領域割り当てアドレス、管理情報領域割り当てアドレスとして保持し、後続の処理に備える。
【００７０】
ステップＳ４２は、モジュールテーブル５０にあるモジュールを順に選択し、それぞれについて、各領域にロードするアドレスを決定し、モジュール情報を作成するためのループを構成する。
【００７１】
ステップＳ４３において、選択したモジュールについてのコード領域３１のアドレスを前記コード領域割り当てアドレスの値にし、選択したモジュールのコード領域分をそのアドレスからの領域にロードする。また、コード領域割り当てアドレスの値に、選択したモジュールのコード領域３１のサイズを加算して、コード領域割り当てアドレスの値を更新する。
【００７２】
ステップＳ４４において、選択したモジュールについてのデータ領域３２のアドレスを前記データ領域割り当てアドレスの値にし、選択したモジュールのデータ領域分をそのアドレスからの領域にロードする。また、データ領域割り当てアドレスの値に、選択したモジュールのデータ領域３２のサイズを加算して、データ領域割り当てアドレスの値を更新する。
【００７３】
ステップＳ４５において、選択したモジュールについての管理情報領域３３のアドレスを前記管理情報領域割り当てアドレスの値にし、選択したモジュールの管理情報領域分をそのアドレスからの領域にロードする。また、管理情報領域割り当てアドレスの値に、選択したモジュールの管理情報領域３３のサイズを加算して、管理情報領域割り当てアドレスの値を更新する。
【００７４】
ステップＳ４６において、前記ステップＳ４３〜ステップＳ４５で決定した、選択したモジュールのアドレスを反映したモジュール情報のエントリを作成し、モジュール情報領域３４に格納する。
【００７５】
図９は、デバッガ４０がモジュールをロードし、デバッグ情報を処理してデバッグ機能を有効にするための手順を示したフローチャートである。
【００７６】
デバッガ４０で扱うデータとして、各モジュール内に格納されているデバッグ情報がある。デバッグ情報は、図１０に示すような情報を含んでいる。デバッグ情報は、各モジュール内に含まれる関数や変数などのソースプログラムの要素が機械語プログラムに翻訳されたときに、メモリ上のどの位置に配置されているかを表すための情報である。関数や変数などのメモリ上の位置は、モジュールがメモリ上にロードされたときに決定するため、モジュール内に保持されているデバッグ情報には、モジュールがロードされた位置からアドレスを求める式を表す再配置情報が付帯している。再配置情報は、デバッグ情報内のどの位置のアドレスを再配置するための情報かを表すオフセットと、アドレスを求める式とから構成される。
【００７７】
ステップＳ５１において、モジュールファイルロードの指示が来たときに、モジュールファイル保持部４１に格納されているモジュールについて、前記ステップＳ１１と同様に依存関係をチェックし、ロードされるモジュールの一覧を得る。
【００７８】
ステップＳ５２において、各モジュールファイル内に格納されているデバッグ情報を取り出し、デバッグ情報保持部４２が取り出したデバッグ情報を保持する。
【００７９】
ステップＳ５３において、メディアプロセッサ１０の起動処理部１１からの、メディアプロセッサ１０の起動通知を待つ。
【００８０】
ステップＳ５４において、デバッガ通信処理部１２を介して共有メモリ３０上にあるモジュール情報を取得し、各モジュールがロードされたアドレスを取得する。
【００８１】
ステップＳ５５において、モジュールデバッグ情報構築部４３が、モジュール情報に含まれる各モジュールがロードされたアドレスと再配置情報を基に、デバッグ情報保持部４２で保持しているデバッグ情報内のアドレスを算出する処理を行う。
【００８２】
ステップＳ５６において、デバッグ機能を有効化し、ユーザに対してデバッグ機能を提供する。
【００８３】
以上のような構成および処理によって、複数のモジュールで構成されるメディアプロセッサ１０のプログラムをホストプロセッサ２０がロードするようなターゲット環境において、メディアプロセッサ１０のプログラムのデバッガを実現できる。
【００８４】
（実施の形態２）
本発明の実施の形態２の全体構成を図１１に示す。
【００８５】
実施の形態１との違いは、ホストプロセッサが行うモジュールファイルロード処理部４４をデバッガ４０内に持ち、その結果、メディアプロセッサ１０のプログラムのデバッグ作業をホストプロセッサの動作から切り離した状態にすることができる。
【００８６】
図１２は、図１１に示した構成でのデバッガ４０の動作手順を示したフローチャートである。
【００８７】
ステップＳ６１において、モジュールファイルロードの指示が来たときに、モジュールファイル保持部４１に格納されているモジュールについて、前記ステップＳ１１およびステップＳ２１〜ステップＳ２５と同様に依存関係をチェックし、ロードされるモジュールの一覧を得る。
【００８８】
ステップＳ６２において、前記ステップＳ１２およびステップＳ３１〜ステップＳ３４と同様に、共有メモリ３０上にモジュールをロードするための準備として、コード・データ・管理などの各領域がどの程度必要かを計算し、共有メモリ３０上に領域を確保する。
【００８９】
ステップＳ６３において、前記ステップＳ１３およびステップＳ４１〜ステップＳ４６と同様に、ステップＳ６２で確保された各領域に、各モジュールをロードする際のアドレスを決定する。
【００９０】
ステップＳ６４において、モジュールのデータをメディアプロセッサ１０のデバッガ通信処理部１２を通じて共有メモリ３０上へ転送する。
【００９１】
ステップＳ６５において、各モジュールファイル内のデバッグ情報を取り出し、各モジュールがロードされたアドレスとデバッグ情報内の再配置情報を基に、デバッグ情報内のアドレスの値を算出する。
【００９２】
ステップＳ６６において、デバッグ機能を有効化し、ユーザに対してデバッグ機能を提供する。
【００９３】
以上のような構成および処理によって、複数のモジュールで構成されるメディアプロセッサ１０のプログラムを、ホストプロセッサ２０がロードするようなターゲット環境において、ホストプロセッサの動作から独立したメディアプロセッサ１０だけの動作に着目することができるプログラムデバッグ環境を実現できる。
【００９４】
（実施の形態３）
本発明の実施の形態３の全体構成を図１３に示す。
【００９５】
実施の形態１との違いは、ホストプロセッサ２０内にデバッガ通信処理部２６を設けて、モジュール情報をメディアプロセッサ１０のデバッガ４０に直接通知する。すなわち、処理手順は、図２に示したステップＳ１３（図８のステップＳ４１〜ステップＳ４６）の処理手順を置き換える。図１４が、図１３に示した構成での、ステップＳ１３に相当するホストプロセッサ２０がメディアプロセッサ１０のプログラムをロードする手順を示したフローチャートである。
【００９６】
ステップＳ７１において、ステップＳ１２で求めた各領域の先頭アドレスを、コード領域割り当てアドレス、データ領域割り当てアドレス、管理情報領域割り当てアドレスとして保持し、後続の処理に備える。
【００９７】
ステップＳ７２は、モジュールテーブル５０にあるモジュールを順に選択し、それぞれについて、各領域にロードするアドレスを決定し、モジュール情報を作成するためのループを構成する。
【００９８】
ステップＳ７３において、選択したモジュールについてのコード領域３１のアドレスを前記コード領域割り当てアドレスの値にし、選択したモジュールのコード領域分をそのアドレスからの領域にロードする。また、コード領域割り当てアドレスの値に、選択したモジュールのコード領域３１のサイズを加算して、コード領域割り当てアドレスの値を更新する。
【００９９】
ステップＳ７４において、選択したモジュールについてのデータ領域３２のアドレスを前記データ領域割り当てアドレスの値にし、選択したモジュールのデータ領域分をそのアドレスからの領域にロードする。また、データ領域割り当てアドレスの値に、選択したモジュールのデータ領域３２のサイズを加算して、データ領域割り当てアドレスの値を更新する。
【０１００】
ステップＳ７５において、選択したモジュールについての管理情報領域３３のアドレスを前記管理情報領域割り当てアドレスの値にし、選択したモジュールの管理情報領域分をそのアドレスからの領域にロードする。また、管理情報領域割り当てアドレスの値に、選択したモジュールの管理情報領域３３のサイズを加算して、管理情報領域割り当てアドレスの値を更新する。
【０１０１】
ステップＳ７６において、前記ステップＳ４３〜ステップＳ４５で決定した、選択したモジュールのアドレスを反映したモジュール情報を作成し、デバッガ通信処理部２６を経由してデバッガ４０に通知する。
【０１０２】
以上のような構成および処理によって、複数のモジュールで構成されるメディアプロセッサ１０のプログラムを、ホストプロセッサ２０がロードするようなターゲット環境において、メディアプロセッサ１０のプログラムのデバッガを実現できる。実施の形態１の場合と比較して、モジュール情報を高速にデバッガへ通知することが可能なほか、共有メモリ３０上にモジュール情報の領域を確保する必要がなく、メモリ資源を有効利用することが可能になる。
【０１０３】
また、モジュールロード処理部２３でモジュールをロードする領域を求める際に、そのモジュールをロードする領域の最大値をモジュールヘッダから得る方法を示す。これは、実行時にモジュールを置き換えることを可能にするもので、モジュールヘッダにて、当該モジュールを実行時環境で置き換える可能性のあるモジュールが持つ各領域のサイズを示し、メモリ上での各領域の確保を可能にすることで実現される。図１５に、この場合のモジュールヘッダの構造を示す。
【０１０４】
フィールド８１はモジュール名を表し、フィールド８２はモジュールのコード領域が格納されている位置（オフセット）を、フィールド８３はモジュールのコード領域のサイズを、フィールド８４は当該モジュールを置き換えるモジュールが取り得るコード領域のサイズの最大値を、フィールド８５はモジュールのデータ領域が格納されている位置（オフセット）を、フィールド８６はモジュールのデータ領域のサイズを、フィールド８７は当該モジュールを置き換えるモジュールが取り得るデータ領域のサイズの最大値を、フィールド８８はモジュールの管理情報領域が格納されている位置（オフセット）を、フィールド８９はモジュールの管理情報領域のサイズを、フィールド９０は当該モジュールを置き換えるモジュールが取り得る管理情報領域のサイズの最大値を、フィールド９１はそのモジュールが使用するモジュールの名前（依存モジュール情報）をそれぞれ表している。
【０１０５】
このモジュールヘッダの情報を用いて、モジュールテーブル５０を生成する手順を示すフローチャート（図６）での処理は次のようになる。
【０１０６】
ステップＳ２１において、先頭モジュールについての情報をモジュールテーブル５０に登録する。モジュールテーブル５０に登録する情報は、図１５に示すモジュールヘッダのモジュール名８１と、コード領域最大サイズ８４と、データ領域最大サイズ８７と、管理情報領域最大サイズ９０から得て、図３に示すモジュールテーブル５０のモジュール名５１と、コード領域サイズ５２と、データ領域サイズ５３と、管理情報領域サイズ５４とにそれぞれ登録する。
【０１０７】
ステップＳ２２は、モジュールテーブル５０上にある、依存関係について調べていないモジュールを一つ処理対象として選択し、そのようなモジュールが存在する間繰り返すループを構成する。
【０１０８】
ステップＳ２３は、処理対象のモジュールが持つ依存モジュール情報を順番に選択し、依存モジュール情報それぞれについて繰り返すループを構成する。
【０１０９】
ステップＳ２４において、選択した依存モジュール情報が表すモジュールが、既にモジュールテーブル５０に登録されているかどうかを判定する。もし既にモジュールテーブル５０に含まれていればステップＳ２５はスキップする。
【０１１０】
ステップＳ２５において、選択した依存モジュール情報が表すモジュールをモジュールテーブル５０に登録する。モジュールテーブル５０に登録する情報は、図１５に示すモジュールヘッダのモジュール名８１と、コード領域最大サイズ８４と、データ領域最大サイズ８７と、管理情報領域最大サイズ９０から得て、図３に示すモジュールテーブル５０のモジュール名５１と、コード領域サイズ５２と、データ領域サイズ５３と、管理情報領域サイズ５４とにそれぞれ登録する。
【０１１１】
上記の処理により、メモリ上に確保される領域は、ロード対象となったモジュールを置き換えることができる大きさが確保され、全てのモジュールを再ロードすることなく、一部のモジュールのみを置き換えることが可能になる。
【０１１２】
なお、ここで説明した実施形態では、すべてのモジュールのロード処理後にプロセッサを起動しデバッガに通知する形をとっているが、各々のモジュールがロードされる都度デバッガに通知する形態も構成可能である。
【０１１３】
また、上記すべての実施形態における各プロセッサ部は、それを模擬するシミュレーション機能を有する装置でもよい。
【産業上の利用可能性】
【０１１４】
本発明にかかるプログラム開発装置は、複数のモジュールでプログラムが構成されるターゲット環境のデバッガ等として有用である。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施の形態１におけるプログラム開発装置の構成を示すブロック図
【図２】本発明の実施の形態１におけるホストプロセッサでのモジュールロード手順を示したフローチャート
【図３】本発明の実施の形態１におけるモジュールロード処理部で作成する、ロードするモジュールとその各領域のサイズを保持したテーブルの例
【図４】本発明の実施の形態１におけるモジュール自身の各種情報を収めたモジュールヘッダ部の例
【図５】本発明の実施の形態１におけるロードされたモジュールの各領域の情報を表すモジュール情報の例
【図６】本発明の実施の形態１におけるモジュールの依存関係を調べる手順を示したフローチャート
【図７】本発明の実施の形態１におけるモジュールをロードするために必要な領域を確保するための手順を示したフローチャート
【図８】本発明の実施の形態１におけるモジュールのメモリ配置を行う手順を示したフローチャート
【図９】本発明の実施の形態１におけるデバッガでのモジュールロードからデバッグ開始までの手順を示したフローチャート
【図１０】本発明の実施の形態１におけるモジュールファイル内に格納されたデバッグ情報および再配置情報の例
【図１１】本発明の実施の形態２におけるプログラム開発装置の構成を示すブロック図
【図１２】本発明の実施の形態２におけるデバッガのモジュールロードからデバッグ開始までの手順を示したフローチャート
【図１３】本発明の実施の形態３におけるプログラム開発装置の構成を示すブロック図
【図１４】本発明の実施の形態３におけるモジュールロード処理部の処理手順を示したフローチャート
【図１５】本発明の実施の形態３におけるモジュール自身の各種情報を収めたモジュールヘッダ部の第２の例
【図１６】従来技術のプログラム開発装置の構成を示すブロック図
【符号の説明】
【０１１６】
１０  メディアプロセッサ（第１のプロセッサ）
１１  起動処理部
１２  デバッガ通信処理部
２０  ホストプロセッサ（第２のプロセッサ）
２１  メディアプロセッサ起動処理部
２２  モジュール保持部
２３  モジュールロード処理部
２４  モジュールロード部
２５  モジュール情報生成部
２６  デバッガ通信処理部
３０  共有メモリ
３１  コード領域
３２  データ領域
３３  管理情報領域
３４  モジュール情報領域
４０  デバッガ
４１  モジュールファイル保持部
４２  デバッグ情報保持部
４３  モジュールデバッグ情報構築部
４４  モジュールファイルロード処理部
５０  モジュールテーブル
６０  モジュールヘッダ
【図１】
2006227706.tif 000003
【図２】
2006227706.tif 000004
【図３】
2006227706.tif 000005
【図４】
2006227706.tif 000006
【図５】
2006227706.tif 000007
【図６】
2006227706.tif 000008
【図７】
2006227706.tif 000009
【図８】
2006227706.tif 000010
【図９】
2006227706.tif 000011
【図１０】
2006227706.tif 000012
【図１１】
2006227706.tif 000013
【図１２】
2006227706.tif 000014
【図１３】
2006227706.tif 000015
【図１４】
2006227706.tif 000016
【図１５】
2006227706.tif 000017
【図１６】
2006227706.tif 000018