(57)【要約】【課題】実行時に実行メモリを任意に割り付けて転送及び実行可能なデバッガを提供する。【解決手段】ＩＣＥ装置１１０からの実行アドレスシリアル情報を実行アドレスパラレル情報に変換するパラレルデータ変換部３、メモリイメージリファレンス情報に基づいて実行アドレスパラレル情報を実行アドレストレース情報に変換するＰＣトレース変換部３、メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する分岐情報作成部５、実行アドレストレース情報、セクション分岐情報、及びソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するセクション情報付加部６、ソースリファレンス情報とセクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するソース行トレース情報結合部７を備える。【選択図】      図１
2004272364.tif 000002
【特許請求の範囲】
【請求項１】
デバッグの対象となるマイクロプロセッサと、
前記マイクロプロセッサに接続され、前記マイクロプロセッサのエミュレーションを行うインサーキットエミュレータ装置と、
前記インサーキットエミュレータ装置に接続され、前記インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換するパラレルデータ変換部と、メモリイメージリファレンス情報に基づいて、前記実行アドレスパラレル情報を実行アドレストレース情報に変換するＰＣトレース変換部と、前記メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する分岐情報作成部と、前記実行アドレストレース情報、前記セクション分岐情報、及び前記ソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するセクション情報付加部と、前記ソースリファレンス情報と前記セクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するソース行トレース情報結合部とを有するデバッガ
とを備えることを特徴とするデバッガシステム。
【請求項２】
前記セクション情報付加部は、
前記実行アドレストレース情報の実行アドレスを含むセクションを前記ソースリファレンス情報のセクション情報から求め、前記実行アドレスとセクション名をセクション情報付実行アドレストレース情報に保存するセクション分割部と、前記セクション情報付実行アドレストレース情報の仮セクション名の実行アドレス中の分岐命令アドレスを求め、前記セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求めるセクション名設定部
とを備えることを特徴とする請求項１に記載のデバッガシステム。
【請求項３】
インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換するパラレルデータ変換部と、
メモリイメージリファレンス情報に基づいて、前記実行アドレスパラレル情報を実行アドレストレース情報に変換するＰＣトレース変換部と、
前記メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する分岐情報作成部と、
前記実行アドレストレース情報、前記セクション分岐情報、及び前記ソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するセクション情報付加部と、
前記ソースリファレンス情報と前記セクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するソース行トレース情報結合部
とを備えることを特徴とするデバッガ。
【請求項４】
前記セクション情報付加部は、
前記実行アドレストレース情報の実行アドレスを含むセクションを前記ソースリファレンス情報のセクション情報から求め、前記実行アドレスとセクション名をセクション情報付実行アドレストレース情報に保存するセクション分割部と、前記セクション情報付実行アドレストレース情報の仮セクション名の実行アドレス中の分岐命令アドレスを求め、前記セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求めるセクション名設定部
とを備えることを特徴とする請求項３に記載のデバッガ。
【請求項５】
インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換するステップと、
メモリイメージリファレンス情報に基づいて、前記実行アドレスパラレル情報を実行アドレストレース情報に変換するステップと、
前記メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成するステップと、
前記実行アドレストレース情報、前記セクション分岐情報、及び前記ソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するステップと、
前記ソースリファレンス情報と前記セクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するステップ
とを備えることを特徴とするデバッグ方法。
【請求項６】
前記セクション情報付実行アドレストレース情報を作成するステップは、
前記実行アドレストレース情報の実行アドレスを含むセクションを前記ソースリファレンス情報のセクション情報から求め、前記実行アドレスとセクション名を前記セクション情報付実行アドレストレース情報に保存するステップと、
前記セクション情報付実行アドレストレース情報の仮セクション名の実行アドレス中の分岐命令アドレスを求め、前記セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求めるステップ
とを備えることを特徴とする請求項５に記載のデバッグ方法。
【請求項７】
デバッガシステムに、
インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換する命令と、
メモリイメージリファレンス情報に基づいて、前記実行アドレスパラレル情報を実行アドレストレース情報に変換する命令と、
前記メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する命令と、
前記実行アドレストレース情報、前記セクション分岐情報、及び前記ソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成する命令と、
前記ソースリファレンス情報と前記セクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成する命令
とを実行させるためのデバッグプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェア開発において使用されるデバッガシステムに関し、特にマイクロプロセッサに内蔵したデバッグ専用回路とＩＣＥ装置間をシリアル伝送により接続されるデバッガシステム、デバッガ、デバッグ方法、デバッグプログラムに関するものである。
【０００２】
【従来の技術】
従来より、マイクロプロセッサ（ＭＰＵ）を組み込んだ機器のソフトウェア開発においては、インサーキットエミュレータ  （ＩＣＥ）装置が広く使用されている。このＩＣＥ装置の重要な機能の１つにＰＣトレース機能がある。ＰＣトレース表示機能とは、ＭＰＵのソフトウェア開発を行う際に、ソフトウェアがメモリ上のどの番地を実行中であるかを表す実行番地（ＰＣ）の順番を履歴として表示する機能である。しかしながら、ＰＣが固定されていない複数のプログラム実行単位を、同じメモリ空間上に割り付けて転送及び実行を行うことができるシステムにおいてＰＣトレース表示をしようとした場合、次のような問題が発生する。すなわち、同じメモリ空間で動作させるので、ＭＰＵ動作中はＰＣトレースデータがどのプログラムが実行した結果なのかを特定できないため、ＰＣトレースデータに対応するプログラムのソース表示ができない問題があった。また、ＭＰＵ停止時は、メモリ空間上のコードと複数のプログラムのコードをパターンマッチングすれば、実行中のプログラムを特定できるが、複数のプログラムが混在しているＰＣトレースデータの場合は、過去に実行したプログラムのコードが、メモリ上に存在しないので、パターンマッチングできない問題があった。また更に、複数のプログラムを管理して動作させる基本ソフト（ＯＳ）上で動作する場合は、基本ソフトのプログラム管理情報をトレースデータに付加すれば、ＭＰＵ実行中でも、メモリ上で動作しているプログラムを特定できるのでトレース表示できるが、トレースデータ中にプログラム管理情報を埋め込む回路が必要になる。
【０００３】
【特許文献１】
特開２００２−１０８６５０号公報
【０００４】
【発明が解決しようとする課題】
そこで、本発明は上記問題に鑑みてなされたもので、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行うことができるデバッガシステム、デバッガ、デバッグ方法、及びデバッグプログラムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明の第１の特徴は、デバッグの対象となるマイクロプロセッサと、マイクロプロセッサに接続され、マイクロプロセッサのエミュレーションを行うインサーキットエミュレータ装置と、インサーキットエミュレータ装置に接続され、インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換するパラレルデータ変換部と、メモリイメージリファレンス情報に基づいて、実行アドレスパラレル情報を実行アドレストレース情報に変換するＰＣトレース変換部と、メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する分岐情報作成部と、実行アドレストレース情報、セクション分岐情報、及びソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するセクション情報付加部と、ソースリファレンス情報とセクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するソース行トレース情報結合部とを有するデバッガとを備えるデバッガシステムであることを要旨とする。
【０００６】
本発明の第１の特徴において、セクション情報付加部は、実行アドレストレース情報の実行アドレスを含むセクションをソースリファレンス情報のセクション情報から求め、実行アドレスとセクション名をセクション情報付実行アドレストレース情報に保存するセクション分割部と、セクション情報付実行アドレストレース情報の仮セクション名の実行アドレス中の分岐命令アドレスを求め、セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求めるセクション名設定部とを備えることが好ましい。
【０００７】
本発明の第１の特徴によれば、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行った場合のＰＣトレース表示が可能となる。
【０００８】
本発明の第２の特徴は、インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換するパラレルデータ変換部と、メモリイメージリファレンス情報に基づいて、実行アドレスパラレル情報を実行アドレストレース情報に変換するＰＣトレース変換部と、メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する分岐情報作成部と、実行アドレストレース情報、セクション分岐情報、及びソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するセクション情報付加部と、ソースリファレンス情報とセクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するソース行トレース情報結合部とを備えるデバッガであることを要旨とする。
【０００９】
本発明の第２の特徴において、セクション情報付加部は、実行アドレストレース情報の実行アドレスを含むセクションをソースリファレンス情報のセクション情報から求め、実行アドレスとセクション名をセクション情報付実行アドレストレース情報に保存するセクション分割部と、セクション情報付実行アドレストレース情報の仮セクション名の実行アドレス中の分岐命令アドレスを求め、セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求めるセクション名設定部とを備えることが好ましい。
【００１０】
本発明の第２の特徴によれば、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行った場合のＰＣトレース表示が可能となる。
【００１１】
本発明の第３の特徴は、インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換するステップと、メモリイメージリファレンス情報に基づいて、実行アドレスパラレル情報を実行アドレストレース情報に変換するステップと、メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成するステップと、実行アドレストレース情報、セクション分岐情報、及びソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するステップと、ソースリファレンス情報とセクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するステップとを備えるデバッグ方法であることを要旨とする。本発明の第３の特徴において、セクション情報付実行アドレストレース情報を作成するステップは、実行アドレストレース情報の実行アドレスを含むセクションをソースリファレンス情報のセクション情報から求め、実行アドレスとセクション名をセクション情報付実行アドレストレース情報に保存するステップと、セクション情報付実行アドレストレース情報の仮セクション名の実行アドレス中の分岐命令アドレスを求め、セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求めるステップとを備えることが好ましい。
【００１２】
本発明の第３の特徴によれば、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行うことが可能となる。また、トレースデータ上にプログラム識別専用のデータを出力しなくとも、自動的にプログラム識別を行い、プログラムのソースファイルをトレースデータと共に表示することが可能となる。
【００１３】
本発明の第４の特徴は、デバッガシステムに、インサーキットエミュレータ装置から入力される実行アドレスシリアル情報を実行アドレスパラレル情報に変換する命令と、メモリイメージリファレンス情報に基づいて、実行アドレスパラレル情報を実行アドレストレース情報に変換する命令と、メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する命令と、実行アドレストレース情報、セクション分岐情報、及びソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成する命令と、ソースリファレンス情報とセクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成する命令とを実行させるためのデバッグプログラムであることを要旨とする。
【００１４】
本発明の第４の特徴によれば、デバッガシステムに、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行った場合のＰＣトレース表示が可能となる。
【００１５】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分は同一又は類似の符号を付している。
【００１６】
本発明の実施の形態に係るデバッガシステムは、図１に示すように、ソフトウェアを開発する際にデバッグの対象となるＭＰＵ１０１と、ＭＰＵ１０１に接続され、ＭＰＵ１０１のエミュレーションを行うためのＩＣＥ装置１１０と、ＩＣＥ装置１１０に接続されるデバッガ１から構成される。
【００１７】
ＭＰＵ１０１は、図２に示すように、プリント基板１００上に配置されている。プリント基板１００は、更にＭＰＵ１０１とバス１０６を介して接続され、複数のアプリケーションプログラム等を格納するメモリ１０４と、ＩＣＥ装置１１０との間のデバッグ情報の入出力インターフェースとなる入出力インターフェース１０５とを備える。ＭＰＵ１０１は、メモリ１０４に格納されている複数のアプリケーションプログラムを実行するためのＣＰＵコア１０２と、ＣＰＵコア１０２の複数のアプリケーションプログラムの実行に応じて、複数のプログラム実行単位毎の実行アドレスシリアル情報をＩＣＥ装置１１０に出力するデバッグ専用回路１０３とを備える。
【００１８】
ＩＣＥ装置１１０は、図２に示すように、ＭＰＵ１０１との間のデバッグ情報の入出力インターフェースとなるデバッグ回路用インターフェース１１１と、デバッグ時における複数のプログラム実行単位毎のトレース情報を格納するトレース情報格納用メモリ１１２と、デバッガ１との間の入出力インターフェースとなる通信インターフェース１１３と、デバッグ回路用インターフェース１１１と通信インターフェース１１３を制御するコントローラ１１４を備える。
【００１９】
デバッガ１は、図１に示すように、演算処理部（ＣＰＵ）１０と、演算処理部１０に接続された入力装置２１、表示装置２２、データ記憶装置２３、プログラム記憶装置２４とから構成されている。ＣＰＵ１０は、ＩＣＥ装置１１０との間の入出力を行う入力部２と、入力部２を介してＩＣＥ装置１１０から入力される複数のプログラム実行単位毎の実行アドレスシリアル情報を実行アドレスパラレル情報に変換するパラレルデータ変換部３と、メモリイメージリファレンス情報に基づいて実行アドレスパラレル情報を実行アドレストレース情報に変換するＰＣトレース変換部４と、メモリイメージリファレンス情報とソースリファレンス情報に基づいてセクション分岐情報を作成する分岐情報作成部５と、実行アドレストレース情報、セクション分岐情報、及びソースリファレンス情報に基づいてセクション情報付実行アドレストレース情報を作成するセクション情報付加部６と、ソースリファレンス情報とセクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成するソース行トレース情報結合部７と、ソース行付トレース情報を表示装置２２に表示させる表示部８を備える。セクション情報付加部６は、セクション分割部６１とセクション名設定部６２とを備える。
【００２０】
デバッガ１のＣＰＵ１０に内蔵された入力部２は、ＩＣＥ装置１１０から実行アドレスシリアル情報を入力する。ＣＰＵ１０のパラレルデータ変換部３は、入力部２から入力した複数のプログラム実行単位毎の実行アドレスシリアル情報に基づいて実行アドレスパラレル情報（例えば、３２ビットのアドレス情報）を作成する。ＣＰＵ１０のＰＣトレース変換部４は、実行アドレスパラレル情報とメモリイメージリファレンス情報の命令語に含まれる分岐先アドレスを使用し、複数のプログラム実行単位毎の実行アドレストレース情報を作成する。ＣＰＵ１０の分岐情報作成部５は、メモリイメージリファレンス情報のメモリイメージ情報、ソースリファレンス情報のセクション情報を入力し、動的配置エリアのセクションの分岐命令アドレスを求め、セクション分岐情報の分岐命令アドレス情報に保存する。ＣＰＵ１０のセクション情報付加部６は、ＰＣトレース変換部４により作成した実行アドレストレース情報と分岐情報作成部５により作成したセクション分岐情報とをパターンマッチングし、実行アドレストレース情報にセクション分岐情報を付加してセクション情報付実行アドレストレース情報を作成する。セクション情報付加部６のセクション分割部６１は、実行アドレストレース情報の実行アドレスを入力し、その実行アドレスを含むセクションをソースリファレンス情報のセクション情報から求め、実行アドレスとセクション名をセクション情報付実行アドレストレース情報に保存する。セクション情報付加部６のセクション名設定部６２は、セクション情報付実行アドレストレース情報の仮セクション名の実行アドレス中の分岐命令アドレスを求め、セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求める。ＣＰＵ１０のソース行トレース情報結合部７は、セクション情報付実行アドレストレース情報のセクション名と実行アドレスを入力し、ソースリファレンス情報を使用して対応するソースファイル名と行番号を検索し、ソース行付トレース情報を作成する。ＣＰＵ１０の表示部８は、ソース行トレース情報結合部７により作成されたソース行付トレース情報を表示装置２２に表示する。
【００２１】
デバッガ１のＣＰＵ１０に接続される入力装置２１は、キーボード、マウス等の機器である。入力装置２１から入力操作が行われると対応するキー情報がデバッガ１に伝達される。データ記憶装置２３は、ＣＰＵ１０における処理において、計算途中や解析途中のデータを一時的に保存する。表示装置２２は、モニタなどの画面であり、例えば、液晶表示装置（ＬＣＤ）、発光ダイオード（ＬＥＤ）パネル、エレクトロルミネッサンス（ＥＬ）パネル等が使用可能である。この表示装置２２は、ＣＰＵ１０の表示部８により制御され、ソース行付トレース情報などを表示する。プログラム記憶装置２４は、各種情報の作成、変換、及び作成、変換した情報の表示等をＣＰＵ１０に実行させるためのプログラムを保存している。
【００２２】
デバッガ１には、更に、実行アドレスシリアル情報記憶装置１１、実行アドレスパラレル情報記憶装置１２、実行アドレストレース情報記憶装置１３、セクション情報付実行アドレストレース情報記憶装置１４、ソース行付トレース情報記憶装置１５、メモリイメージリファレンス情報記憶装置１６、ソースリファレンス情報記憶装置１７、セクション分岐情報記憶装置１８が接続されている。実行アドレスシリアル情報記憶装置１１は、入力部２により入力した実行アドレスシリアル情報を格納している。実行アドレスパラレル情報記憶装置１２は、パラレルデータ変換部３により作成した実行アドレスパラレル情報（３２ビットのアドレス情報）を格納している。実行アドレストレース情報記憶装置１３は、ＰＣトレース変換部４により作成した実行アドレストレース情報を格納している。セクション情報付実行アドレストレース情報記憶装置１４は、セクション情報付加部６により作成した実行セクション情報付実行アドレストレース情報を格納している。ソース行付トレース情報記憶装置１５は、ソース行トレース情報結合部７により作成したソース行付トレース情報を格納している。メモリイメージリファレンス情報記憶装置１６は、プリント基板１００上のメモリ１０４に格納されている複数のプログラムのメモリイメージリファレンス情報を格納している。ソースリファレンス情報記憶装置１７は、ソースリファレンス情報を格納している。セクション分岐情報記憶装置１８は、分岐情報作成部５により作成したセクション分岐情報セクション分岐情報を格納している。
【００２３】
以上説明したように、本発明の実施形態に係るデバッガシステムによれば、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行ったＰＣトレース表示が可能となる。また、トレースデータ上にプログラム識別専用のデータを出力しなくとも、自動的にプログラム識別を行い、プログラムのソースファイルをトレースデータと共に表示することが可能となる。
【００２４】
次に、本発明の実施の形態に係るデバッガシステムの動作について説明する。
【００２５】
始めに、本発明の実施の形態に係るデバッガシステムに用いるプリント基板１００及びＩＣＥ装置１１０の動作について説明する。
【００２６】
まず、図２に示すプリント基板１００上でプログラムを実行させると、ＭＰＵ１０１のデバッグ専用回路１０３は、シリアル伝送によりＩＣＥ装置１１０に実行アドレス情報を出力する。ＩＣＥ装置１１０は、プリント基板１００から入力した実行アドレス情報をトレース情報格納用メモリ１１２に保存し、デバッガ１の入力要求に応じてデバッガ１に実行アドレスシリアル情報を出力する。
【００２７】
次に、本発明の実施の形態に係るデバッガシステムに用いるデバッガ１の動作について、図３を参照して説明する。なお、プリント基板１００上のメモリ１０４に格納されている複数のプログラムのメモリイメージリファレンス情報は、図１に示すデバッガ１のメモリイメージリファレンス情報記憶装置１６に格納されているものとする。図４にメモリイメージリファレンス情報の一例を示す。図４において、メモリイメージ情報は、複数のプログラム実行単位毎の先頭アドレスとサイズとメモリイメージポインタの項目（フィールド）から構成される。
【００２８】
（イ）まず、ステップＳ１１において、入力部２は、ＩＣＥ装置１１０から複数のプログラム実行単位毎の実行アドレスシリアル情報を入力し、実行アドレスシリアル情報を実行アドレスシリアル情報記憶装置１１に格納する。
【００２９】
（ロ）次に、ステップＳ１２において、パラレルデータ変換部３は、入力部２を介して入力された実行アドレスシリアル情報に基づいて、実行アドレスパラレル情報を作成する。実行アドレスパラレル情報は、実行アドレスパラレル情報記憶装置１２に格納される。
【００３０】
（ハ）次に、ステップＳ１３において、ＰＣトレース変換部４は、パラレルデータ変換部３により作成した実行アドレスパラレル情報と、図４に示すメモリイメージリファレンス情報の命令語に含まれる分岐先アドレスとに基づいて、図５に示す実行アドレストレース情報を作成する。実行アドレストレース情報は、実行アドレストレース情報記憶装置１３に格納される。
【００３１】
（ニ）次に、ステップＳ１４において、分岐情報作成部５は、図６に示すソースリファレンス情報のセクション情報を入力し、動的配置エリアのセクションの分岐命令アドレスを求め、図７に示すセクション分岐情報の分岐命令アドレス情報に保存する。図７において、セクション分岐情報は、セクション名とそのセクションに存在する全ての分岐命令のアドレスとから構成される。
【００３２】
（ホ）次に、ステップＳ１５において、セクション情報付加部６のセクション分割部６１は、ＰＣトレース変換部４により作成された実行アドレストレース情報の実行アドレスを入力し、その実行アドレスを含むセクションを図６に示すソースリファレンス情報のセクション情報から求め、実行アドレスとセクション名をセクション情報付実行アドレストレース情報に保存する。図８にセクション情報付実行アドレストレース情報の一例を示す。図８において、セクション情報付実行アドレストレース情報は、複数のプログラム実行単位毎の実行アドレスとセクション名の項目（フィールド）から構成される。なお、具体的なセクション分割部６１のアルゴリズムについては後述する。
【００３３】
（ヘ）次に、ステップＳ１６において、セクション情報付加部６のセクション名設定部６２は、図８に示すセクション情報付実行アドレストレース情報の仮セクション名の実行アドレスの中の分岐命令アドレスを求め、図７に示すセクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求める。なお、具体的なセクション名設定部６２のアルゴリズムについては後述する。
【００３４】
（ト）次に、ステップＳ１７において、ソース行トレース情報結合部７は、図８に示すセクション情報付実行アドレストレース情報に基づいてソース行付トレース情報を作成する。具体的には、ソース行トレース情報結合部７は、セクション情報付実行アドレストレース情報のセクション名と実行アドレスを入力し、ソースリファレンス情報を使用して対応するソースファイル名と行番号を検索し、ソース行付トレース情報を作成する。ソース行付トレース情報は、ソース行付トレース情報記憶装置１５に格納される。図９にソース行付トレース情報の一例を示す。図９において、ソース行付トレース情報は、複数のプログラム実行単位毎の実行アドレスとソースファイル名と行番号の項目（フィールド）から構成される。
【００３５】
（チ）次に、ステップＳ１８において、表示部８は、ソース行トレース情報結合部７により作成されたソース行付トレース情報を表示装置２２に表示させる。
【００３６】
次に、セクション分割部６１のアルゴリズムの詳細について説明する。
【００３７】
セクション分割部６１は、図５に示す実行アドレストレース情報の実行アドレスを入力し、その実行アドレスを含むセクションを図６に示すソースリファレンス情報のセクション情報より求め、実行アドレスとセクション名を図８に示すセクション情報付実行アドレストレース情報に保存する。実行アドレスを含むセクションであるか否かは、セクション情報の配置アドレスとサイズにより示される各セクション空間内に実行アドレスがある否かで判断する。また、動的な実行配置エリア内の実行アドレスの場合は、仮のセクション名と実行アドレスを保存する。
【００３８】
以下、セクション分割部６１のアルゴリズムを図１０示すフローチャートを参照して説明する。なお、図１０示すセクション分割部６１のアルゴリズム、以下順に説明するセクション名設定部６２のアルゴリズムならびに分岐情報作成部５のアルゴリズム内で使用しているシンボルは、図１５に一括して示す。
【００３９】
（イ）まず、ステップＳ１０１において、変数”ＳＥＣＮＯ”に１を代入し、変数”ＩＮＤＥＸ”に１を代入し、変数”ＳＥＣＴＩＯＮＦＬＧ”に０を代入する。更に、”ＯＶＥＲＬＡＹ．ＳＴＡＲＴ”に動的な実行配置エリアのスタートアドレスを設定し、”ＯＶＥＲＬＡＹ．ＥＮＤ”に動的な実行配置エリアの終了アドレスを設定する。
【００４０】
（ロ）次に、ステップＳ１０２において、”ＰＣＴＲＡＣＥ”テーブルが終了しているか否かを判定し、終了している場合には、ステップＳ１０３において、変数”ＤＵＭＭＹＳＥＣＭＡＸ”に変数”ＳＥＣＮＯ”の値を代入し、処理を終了する。一方、”ＰＣＴＲＡＣＥ”テーブルが終了していない場合には、ステップＳ１０４に進む。
【００４１】
（ハ）次に、ステップＳ１０４において、変数”ＰＣＴＲＡＣＥ＿ＳＥＣＴＩＯＮ（ＩＮＤＥＸ）．ＡＤＲ”に変数”ＰＣＴＲＡＣＥ（ＩＮＤＥＸ）”を代入する。
【００４２】
（ニ）次に、ステップＳ１０５において、動的な実行エリアであるか否かを判定し、動的な実行エリアである場合には、ステップＳ１０６において、”ＰＣＴＲＡＣＥ＿ＳＥＣＴＩＯＮ（ＩＮＤＥＸ）．ＮＡＭＥ＝ＳＥＣＮＯ”に対応する仮セクション名を設定し、変数”ＳＥＣＴＩＯＮＦＬＧ”に１を代入する。一方、動的な実行エリアでない場合には、ステップＳ１０７に進む。
【００４３】
（ホ）次に、ステップＳ１０７において、変数”ＳＥＣＴＩＯＮＦＬＧ”の値が１であるか否かを判定し、変数”ＳＥＣＴＩＯＮＦＬＧ”の値が１である場合には、ステップＳ１０８において、変数”ＳＥＣＮＯ”をカウントアップし、変数”ＴＩＯＮＦＬＧ”に０を代入する。一方、変数”ＳＥＣＴＩＯＮＦＬＧ”の値が１でない場合には、ステップＳ１０９に進む。
【００４４】
（ヘ）次に、ステップＳ１０９において、”ＰＣＴＲＡＣＥ＿ＳＥＣＴＩＯＮ（ＩＮＤＥＸ）．ＮＡＭＥ＝ＰＣＴＲＡＣＥ（ＩＮＤＥＸ）”に対応するセクション名をソースリファレンス情報のセクション情報から求めて設定する。
【００４５】
（チ）次に、ステップＳ１１０において、変数”ＩＮＤＥＸ”をカウントアップし、ステップＳ１０２に戻る。
【００４６】
次に、セクション名設定部６２のアルゴリズムの詳細について説明する。
【００４７】
セクション名設定部６２は、図８に示すセクション情報付実行アドレストレース情報の仮セクション名の実行アドレスの中の分岐命令アドレスを求め、セクション分岐情報の分岐命令アドレスとパターンマッチングし、一致するセクション数を求める。分岐命令アドレスを含むセクション数が０の場合、図８に示すセクション情報付実行アドレストレース情報のセクション名に”ブランク”を保存し、実行アドレスには入力した実行アドレスを保存する。実行アドレスを含むセクション数が１の場合、図８に示すセクション情報付実行アドレストレース情報のセクション名に実行アドレスを含むセクション名を保存し、実行アドレスには入力した実行アドレスを保存し、セクション検索フラグ＝１をセットする。実行アドレスを含むセクション数が２以上の場合は、次の分岐命令アドレスをセクション空間の範囲で検索する。セクション空間内で一致セクション数が１にならなかった場合は、図８に示すセクション情報付実行アドレストレース情報のセクション名に”ブランク”を保存する。以上のような処理を、仮セクション名がなくなるまで繰り返す。なお、図８において、セクション名が特定できない場合は、例えば”＿０１”のように仮の番号を設定する。
【００４８】
以下、セクション名設定部６２のアルゴリズムを図１１、図１２に示すフローチャートを参照して説明する。
【００４９】
（イ）まず、ステップＳ２０１において、変数”ＳＥＣＮＯ”に１を代入し、変数”ＩＮＤＥＸ”に１を代入し、更に、変数”ＳＥＲＣＨＦＬＧ”に０を代入する。
【００５０】
（ロ）次に、ステップＳ２０２において、”ＰＣＴＲＡＣＥ＿ＳＥＣＴＩＯＮ”の設定が終了しているか否かを判定し、終了している場合には、処理を終了する。一方、終了していない場合には、ステップＳ２０３に進む。
【００５１】
（ハ）次に、ステップＳ２０３において、セクション分岐情報が終了しているか否かを判定し、終了している場合にはステップＳ２０４に進み、終了していない場合にはステップＳ２０６に進む。
【００５２】
（ニ）次に、ステップＳ２０４において、ＰＣアドレスのセクション情報が不明であるか否かを判定し、不明である場合には、ステップＳ２０５において、”ＰＣＴＲＡＣＥ＿ＳＥＣＴＩＯＮ．ＳＥＣＴＩＯＮ＿ＮＡＭＥ”の変数”ＳＥＣＮＯ”に対応する仮セクション名を全てブランクに置き換える。一方、不明でない場合には、ステップＳ２０６に進む。
【００５３】
（ホ）次に、ステップＳ２０６において、変数”ＳＥＣＮＯ”をカウントアップし、変数”ＩＮＤＥＸ”に１を代入し、変数”ＳＥＲＣＨＦＬＧ”に０を代入し、ステップＳ２０２に戻る。
【００５４】
（ヘ）次に、ステップＳ２０７において、変数”ＳＥＣＮＯ”の仮セクション名と一致しているか否かを判定し、一致していない場合にはステップＳ２１３に進み、一致している場合には、ステップＳ２０８に進む。
【００５５】
（ト）次に、ステップＳ２０８において、分岐アドレスであるか否かを判定し、分岐アドレスでない場合には、ステップＳ２１３に進む。一方、分岐アドレスである場合には、ステップＳ２０９において、分岐ＰＣアドレスと一致するセクション分岐情報の一致個数（ＮＵＭＢＥＲ）とセクション名（ＮＡＭＥ）を設定する。
【００５６】
（チ）次に、ステップＳ２１０において、変数”ＮＵＭＢＥＲ”の値を判定し、変数”ＮＵＭＢＥＲ”の値が１である場合には、ステップＳ２１１において、”ＰＣＴＲＡＣＥ＿ＳＥＣＴＩＯＮ．ＳＥＣＴＩＯＮ＿ＮＡＭＥ”の変数”ＳＥＣＮＯ”に対応する仮セクション名を”ＮＡＭＥ”に置き換える。一方、変数”ＮＵＭＢＥＲ”の値が０又は２である場合には、ステップＳ２１３に進む。
【００５７】
（リ）次に、ステップＳ２１２において、変数”ＳＥＲＣＨＦＬＧ”に１を代入する。
【００５８】
（ヌ）次に、ステップＳ２１３において、変数”ＩＮＤＥＸ”をカウントアップし、ステップＳ２０３に戻る。
【００５９】
次に、分岐情報作成部５のアルゴリズムの詳細について説明する。
【００６０】
分岐情報作成部５は、図６に示すソースリファレンス情報のセクション情報の配置アドレスとサイズにより示される各セクション空間に分岐命令があるかどうかを検索し、分岐命令がある場合はセクション分岐情報の分岐命令アドレス情報に保存する。セクション情報の配置アドレスとサイズにより示される各セクション空間のメモリ内容は、図４に示すメモリイメージリファレンス情報から抽出する。
【００６１】
以下、分岐情報作成部５のアルゴリズムを図１３、１４示すフローチャートを参照して説明する。
【００６２】
（イ）まず、ステップＳ３０１において、変数”ＢＲＡＮＣＨ＿ＩＮＤＥＸ”に１を代入し、変数”ＳＥＣＴＩＯＮ＿ＩＮＤＥＸ”に１を代入し、変数”ＳＥＣＴＩＯＮ＿ＩＮＤＥＸ”に０を代入する。更に、”ＯＶＥＲＬＡＹ．ＳＴＡＲＴ”に動的な実行配置エリアのスタートアドレスを設定し、”ＯＶＥＲＬＡＹ．ＥＮＤ”に動的な実行配置エリアの終了アドレスを設定する。
【００６３】
（ロ）次に、ステップＳ３０２において、”ＳＥＣＴＩＯＮ＿ＩＮＦ”が終了したか否かを判定し、終了している場合には、ステップＳ３０３において、変数”ＳＥＣＴＩＯＮ＿ＢＲＡＮＣＨ（ＳＥＣＴＩＯＮ＿ＩＮＤＥＸ）．ＳＥＣ＿ＮＡＭＥ”に１を代入し、変数”ＳＥＣＴＩＯＮ＿ＢＲＡＮＣＨ（ＳＥＣＴＩＯＮ＿ＩＮＤＥＸ）．ＩＮＤＥＸ”に１を代入して、処理を終了する。
【００６４】
（ハ）次に、ステップＳ３０４において、セクションは動的エリアであるか否かを判定し、動的エリアである場合には、ステップＳ３０５において、変数”ＳＥＣＴＩＯＮ＿ＢＲＡＮＣＨ（ＢＲＡＮＣＨ＿ＩＮＤＥＸ）．ＳＥＣＴＩＯＮ＿ＮＡＭＥ”に変数”ＳＥＣＴＩＯＮ＿ＩＮＦ（ＳＥＣＴＩＯＮ＿ＩＮＤＥＸ）．ＮＡＭＥ”を代入し、変数”ＳＥＣＴＩＯＮ＿ＢＲＡＮＣＨ（ＢＲＡＮＣＨ＿ＩＮＤＥＸ）．ＩＮＤＥＸ”に変数”ＢＲＵＮＣＨ＿ＩＮＤＥＸを代入する。一方、動的エリアでない場合には、ステップＳ３１５に進む。
【００６５】
（ニ）次に、ステップＳ３０６において、変数”ＳＴＡＲＴＡＤＲ”に変数”ＳＥＣＴＩＯＮ＿ＩＮＦ（ＳＥＣＴＩＯＮＩＮＦ＿ＩＮＤＥＸ）．ＡＤＲ”を代入し、変数”ＥＮＤＡＤＲ”に変数”ＳＥＣＴＩＯＮ＿ＩＮＦ（ＳＥＣＴＩＯＮＩＮＦ＿ＩＮＤＥＸ）．ＳＩＺＥ”と変数”ＳＴＡＲＴＡＤＲ”を代入する。
【００６６】
（ホ）次に、ステップＳ３０７において、セクションエリアが終了しているか否かを判定し、終了している場合には、ステップＳ３０８において、変数”ＳＥＣＴＩＯＮ＿ＩＮＤＥＸ”をカウントアップし、変数”ＢＲＡＮＣＨ＿ＡＤＲ（ＢＲＡＮＣＨ＿ＩＮＤＥＸ）”に−１を代入し、変数”ＢＲＡＮＣＨ＿ＩＮＤＥＸ”をカウントアップする。続いて、ステップＳ３０９において、変数”ＳＥＣＴＩＯＮ＿ＩＮＤＥＸ”をカウントアップし、ステップＳ３０２に戻る。一方、ステップＳ３０７で、セクションエリアが終了していない場合には、ステップＳ３１０に進む。
【００６７】
（ヘ）次に、ステップＳ３１０において、”ＯＰ＿ｃｏｄｅ＝ＳＴＡＲＴＡＤＲ”が示すアドレスの命令語をメモリイメージ情報より取り出して設定する。
【００６８】
（ト）次に、ステップＳ３１１において、”ＯＰ＿ｃｏｄｅ”が分岐命令であるか否かを判定し、分岐命令である場合には、ステップＳ３１２において、変数”ＢＲＡＮＣＨ＿ＡＤＲ（ＢＲＡＮＣＨ＿ＩＮＤＥＸ）”に変数”ＳＴＡＲＴＡＤＲ”を代入し、変数”ＢＲＡＮＣＨ＿ＩＮＤＥＸ”をカウントアップする。
【００６９】
（チ）次に、ステップＳ３１３において、変数”ＳＴＡＲＴＡＤＲ”に命令語のサイズを加え、ステップＳ３０７に戻る。
【００７０】
以上説明したように、本発明の実施形態に係るデバッグ方法によれば、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行うことが可能となる。また、トレースデータ上にプログラム識別専用のデータを出力しなくとも、自動的にプログラム識別を行い、プログラムのソースファイルをトレースデータと共に表示することが可能となる。
【００７１】
（その他の実施の形態）
本発明は上記の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００７２】
例えば、本発明の実施の形態では、入力部２、パラレルデータ変換部３、ＰＣトレース変換部４、分岐情報作成部５、セクション情報付加部６、ソース行トレース情報結合部７、表示部８を一つの演算処理部（ＣＰＵ）内にあるとして説明したが、それらが二つあるいはそれ以上の処理制御装置に分かれていても構わない。その際はそれらの処理制御装置間でデータのやりとりが行えるようにバスなどで装置間を接続しているとする。
【００７３】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【００７４】
【発明の効果】
本発明によれば、実行番地が固定されていない複数のプログラム実行単位を管理して、実行時に実行メモリを任意に割り付けて転送及び実行を行った場合のＰＣトレース表示が可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るデバッガシステムの構成図である。
【図２】本発明の実施の形態に係るデバッガシステムに用いるプリント基板及びＩＣＥ装置の構成図である。
【図３】本発明の実施の形態に係るデバッガの動作を説明するフローチャートである。
【図４】メモリイメージリファレンス情報の一例を示す図である。
【図５】実行アドレストレース情報の一例を示す図である。
【図６】ソースリファレンス情報の一例を示す図である。
【図７】セクション分岐情報の一例を示す図である。
【図８】セクション情報付実行アドレストレース情報の一例を示す図である。
【図９】ソース行付トレース情報の一例を示す図である。
【図１０】本発明の実施の形態に係るセクション分割部のアルゴリズムを示すフローチャートである。
【図１１】本発明の実施の形態に係るセクション名設定部のアルゴリズムを示すフローチャートである（その１）。
【図１２】本発明の実施の形態に係るセクション名設定部のアルゴリズムを示すフローチャートである（その２）。
【図１３】本発明の実施の形態に係る分岐情報作成部のアルゴリズムを示すフローチャートである（その１）。
【図１４】本発明の実施の形態に係る分岐情報作成部のアルゴリズムを示すフローチャートである（その２）。
【図１５】図５〜図１４におけるシンボルの内容を示す図である。
【符号の説明】
１…デバッガ
２…入力部
３…パラレルデータ変換部
４…ＰＣトレース変換部
５…分岐情報作成部
６…セクション情報付加部
７…ソース行トレース情報結合部
８…表示部
１０…演算処理部（ＣＰＵ）
１１…実行アドレスシリアル情報記憶装置
１２…実行アドレスパラレル情報記憶装置
１３…実行アドレストレース情報記憶装置
１４…セクション情報付実行アドレストレース情報記憶装置
１５…ソース行付トレース情報記憶装置
１６…メモリイメージリファレンス情報記憶装置
１７…ソースリファレンス情報記憶装置
１８…セクション分岐情報記憶装置
２１…入力装置
２２…表示装置
２３…データ記憶装置
２４…プログラム記憶装置
６１…セクション分割部
６２…セクション名設定部
１００…プリント基板
１０１…マイクロプロセッサ（ＭＰＵ）
１０２…ＣＰＵコア
１０３…デバッグ専用回路
１０４…メモリ
１０５…入出力インターフェース
１０６…バス
１１０…インサーキットエミュレータ  （ＩＣＥ）装置
１１１…デバッグ回路用インターフェース
１１２…トレース情報格納用メモリ
１１３…通信インターフェース
１１４…コントローラ
【図１】
2004272364.tif 000003
【図２】
2004272364.tif 000004
【図３】
2004272364.tif 000005
【図４】
2004272364.tif 000006
【図５】
2004272364.tif 000007
【図６】
2004272364.tif 000008
【図７】
2004272364.tif 000009
【図８】
2004272364.tif 000010
【図９】
2004272364.tif 000011
【図１０】
2004272364.tif 000012
【図１１】
2004272364.tif 000013
【図１２】
2004272364.tif 000014
【図１３】
2004272364.tif 000015
【図１４】
2004272364.tif 000016
【図１５】
2004272364.tif 000017