JPH09297695A - シンボリッククロスデバッガおよび作成システム - Google Patents

シンボリッククロスデバッガおよび作成システム

Info

Publication number
JPH09297695A
JPH09297695A JP8111406A JP11140696A JPH09297695A JP H09297695 A JPH09297695 A JP H09297695A JP 8111406 A JP8111406 A JP 8111406A JP 11140696 A JP11140696 A JP 11140696A JP H09297695 A JPH09297695 A JP H09297695A
Authority
JP
Japan
Prior art keywords
mpu
program
function
symbolic
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.)
Pending
Application number
JP8111406A
Other languages
English (en)
Inventor
Jun Shimabukuro
潤 島袋
Yukie Hiratsuka
幸恵 平塚
Tamotsu Sasaki
保 佐々木
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8111406A priority Critical patent/JPH09297695A/ja
Publication of JPH09297695A publication Critical patent/JPH09297695A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 シンボリッククロスデバッガの作成を容易か
つ短期間とする。 【解決手段】 まず、ターゲットMPUおよびコンパイ
ラに依存する部分であるプログラムローダ2、スタック
フレーム生成関数3、スタックアクセス関数4、リソー
ステーブル5とMPU模擬部10を入力させ、次に、予
め用意した、マンマシンインタフェース部6、コマンド
実行部7、インタフェーステーブル8、シンボルテーブ
ル9とを合わせて、部品合成部80で各部のインタフェ
ースをチェックしてから合成し、シンボリッククロスデ
バッガ1を作成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、汎用計算機上でこ
の汎用計算機のMPU(Micro Processing Unit)とは
異なるMPU(ターゲットMPU)向けにコンパイルさ
れたプログラムのデバッグをソースプログラムのレベル
で行なうシンボリッククロスデバッガに係り、特に、早
期開発を行なうのに好適なシンボルクロスデバッガおよ
びその作成システムに関するものである。
【0002】
【従来の技術】デバッガには、例えば、磯部俊夫著「U
NIXとC言語」(1989年、工学図書株式会社発
行)の第198頁〜第203頁に記載(「6−6 db
x−シンボリック・デバッガ」)のように、Cなどの高
級言語で書かれたプログラムを、ソースプログラムのレ
ベルでデバッグできるシンボリックデバッガがある。こ
のシンボリックデバッガでは、デバッグ対象のプログラ
ムに基づきCコンパイラが生成・出力する情報(「シン
ボル情報テーブル(記号表)」や「スタックフレームテ
ーブル(棚表)等」を利用しており、ユーザは、メモリ
内容の参照と変更、プログラム動作のトレース、ブレー
クポイントの設定、変数の値設定、変数の値表示などを
高水準プログラム言語のレベルで行ない、デバッグ対象
プログラムの実行の様子を確認することができる。
【0003】さらに、このシンボリックデバッガをクロ
ス環境で実行するツール、すなわち、汎用計算機上で、
この汎用計算機のMPUとは異なるターゲットMPUを
持つ組込みシステムを制御するソフトウェアをシンボリ
ックデバッグするためのツールとして、汎用計算機上で
ターゲットMPUの動作をソフトウェアにより模擬し、
かつ、ソースプログラム中の変数を、ターゲットMPU
のランタイムスタックに対応付ける、シンボリッククロ
スデバッガがある。
【0004】しかし、このようなシンボリッククロスデ
バッガを含むクロスデバッガは、ある特定のターゲット
MPU用に作成されているため、新たなMPUに対する
デバッガは新たに作成する必要がある。このため、新た
なMPUに対するデバッガが利用できるまでに時間がか
かるという問題点があった。このような問題を解決する
ために、クロスデバッガに関しては、このクロスデバッ
ガをターゲットMPUに依存する部分と依存しない部分
に分割することにより、プログラムの再利用を図る技術
が種々提案されている。
【0005】例えば、「情報処理学会 第38回(昭和
64年前期) 全国大会 SE−68−3」(PP.1217-1
218)に記載の「ハードウェア動作記述からのシミュレー
タ自動生成」のように、ターゲットMPUのハードウェ
ア構成要素(リソース)と各命令コードに対する動作と
を定義したMPU動作記述から、クロスデバッガを作成
するための技術が知られている。しかし、このクロスデ
バッガ作成技術では、コンパイラにより異なるシンボル
情報の取得方法、および、MPUにより異なるランタイ
ムスタックへのアクセス方法については考慮しておら
ず、シンボリックデバッグを行なうことができないとい
う問題点があった。
【0006】また、多様なMPUに対するシンボリック
デバッグを行なうのに用いるシンボリッククロスデバッ
ガとして、例えば、「Proceedings of the ACM SIGPLA
N'92Conference on Programming Language Design and
Inplementation」(pp.22-31)に記載の「A Retargetable
Debugger」のように、シンボリックデバッグを行なう
のに必要なシンボル情報をターゲットMPUに依存しな
い形式で生成するコンパイラによってコンパイルされた
プログラムをデバッグするためのシンボリッククロスデ
バッガが知られている。
【0007】しかし、この「A Retargetable Debugge
r」の技術は、デバッグ対象のプログラムが、オブジェ
クトプログラムに特殊な形式の情報を付加するコンパイ
ラによってコンパイルされていることを前提としてい
る。そのため、従来用いられているコンパイラによって
コンパイルされたプログラムに対しては適用することは
できないという問題点があった。
【0008】尚、シンボリックデバッグを行なうには、
プログラム中の変数の型や記憶領域についての情報が、
オブジェクトプログラム中に格納されていることが必要
である。一般には、そのフォーマットは、対象プログラ
ムをコンパイルしたコンパイラにより異なるが、Gintar
as R. Gircys著「Understanding and Using COFF」(O'
Reilly & Associates, Inc.)に記載の「COFF(Common
Object File Format)」に代表されるように、いくつか
の標準フォーマットが提唱されている。しかし、この
「COFF」などの標準フォーマットを適用したシンボリッ
ククロスデバッガの作成技術は検討されていない。
【0009】
【発明が解決しようとする課題】解決しようとする問題
点は、従来の技術では、新たなMPUに組み込むデバッ
ガ対象のプログラムが特殊な形式の情報を付加するコン
パイラによってコンパイルされていなければ、新たなM
PUに対するシンボリッククロスデバッガを新たに作成
しなければならない点である。本発明の目的は、これら
従来技術の課題を解決し、従来のコンパイラを用いる場
合でも、新たなMPUに組み込むプログラムに対応して
短期間での開発が可能なシンボリッククロスデバッグお
よびその作成システムを提供することである。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明のシンボリッククロスデバッガは、(1)少
なくとも、ターゲットMPUに対応して作成されたMP
U模擬部10とリソーステーブル5、プログラムのコン
パイルに用いられたコンパイラに対応して作成されたプ
ログラムローダ2、ターゲットMPUおよびコンパイラ
の両方に対応して作成されたスタックフレーム生成関数
3とスタックアクセス関数4を有し、MPU模擬部10
によりターゲットMPUの動作を模擬し、リソーステー
ブル5によりターゲットMPUのレジスタとメモリを模
擬し、プログラムローダ2により、コンパイルされたデ
バッグ対象プログラム11を解析して、このデバッグ対
象プログラム11をコンパイルしたコンパイラが作成し
たシンボル情報をコンパイラに対応するフォーマット形
式でシンボルテーブル9に、および、プログラムの命令
列をリソーステーブル5に、それぞれロードし、スタッ
クフレーム生成関数3により、ユーザがプログラムのデ
バッグ指示コマンドで指定した関数の呼出しに対応する
スタックフレームを、プログラムローダ2がシンボルテ
ーブル9にロードしたシンボル情報を参照してリソース
テーブル5上に作成し、スタックフレームアクセス関数
4により、ユーザがプログラムのデバッグ指示コマンド
で指定した表示変数もしくは設定変数に対応する記憶領
域を、スタックフレーム生成関数3がリソーステーブル
5上に作成したスタックフレーム、および、プログラム
ローダ2がシンボルテーブル9にロードしたシンボル情
報を参照して特定することにより、ユーザが指定した所
定のトレース条件およびブレーク条件でのデバッグ実行
指示コマンドに対応してのMPU模擬部10によるリソ
ーステーブル5にロードされた命令の逐次実行とこの実
行の結果出力、および、この実行の結果出力後にユーザ
が指定した変数の表示コマンドもしくは設定コマンドに
対応してのスタックフレームアクセス関数4による変数
の記憶領域の取得とこの取得した記憶領域に対応するリ
ソーステーブル5上の値の出力もしくは設定を少なくと
も含むデバッグ動作を行なうことを特徴とする。また、
本発明のシンボリッククロスデバッガ作成システムは、
(2)プログラムをコンパイルしたコンパイラに対応し
たフォーマットのプログラムローダ2を特定する手段
(プログラムローダ獲得機能81、部品合成部80)
と、ターゲットMPUの動作およびメモリとレジスタを
それぞれ模擬するMPU模擬部10とリソーステーブル
5の内、ターゲットMPUに対応するものを特定する手
段(MPU模擬部獲得機能84、部品合成部80)と、
シンボリックデバッグで指示される関数のスタックフレ
ームをリソーステーブル5上に、特定されたプログラム
ローダ2がコンパイルされたプログラムからロードした
シンボル情報に基づき生成するスタックフレーム生成関
数3の内、ターゲットMPUおよびコンパイラの両方に
対応するものを特定する手段(スタックフレーム生成関
数獲得機能82、部品合成部80)と、シンボリックデ
バッグで指示される実行中の関数の変数のアドレスをス
タックフレームおよびシンボル情報に基づき抽出するス
タックアクセス関数4の内、ターゲットMPUおよびコ
ンパイラの両方に対応するものを特定する手段(スタッ
クアクセス関数獲得機能83、部品合成部80)と、各
手段(プログラムローダ獲得機能81、スタックフレー
ム生成関数獲得機能82、スタックアクセス関数獲得機
能83、MPU模擬部獲得機能84、部品合成部80)
で特定されたプログラムローダ2、MPU模擬部10、
スタックフレーム生成関数3およびスタックアクセス関
数4と、予め用意されているターゲットMPUおよびコ
ンパイラのいずれにも依存しないシンボリッククロスデ
バッグの構成要素(マシンインタフェース部6、コマン
ド実行部7、インタフェーステーブル8、シンボルテー
ブル9)とを統合コンパイルして、シンボリッククロス
デバッガ1を作成する手段(部品合成部80)とを少な
くとも有することを特徴とする。また、(3)上記
(2)に記載のシンボリッククロスデバッガ作成システ
ムにおいて、プログラムローダ2を特定する手段(プロ
グラムローダ獲得機能81)は、ユーザが指定したフォ
ーマットの種別を判別する手段(フォーマット獲得機能
102)と、このフォーマット獲得機能102で判別し
た種別のフォーマットに対応するプログラムローダ2
を、予め複数のプログラムローダ2を各々のフォーマッ
ト種別に対応付けて格納したプログラムローダライブラ
リ101から抽出する手段(プログラムローダ選択機能
104)とを具備し、ユーザによるフォーマットの指定
に基づき、このフォーマットに対応するプログラムロー
ダ2を特定することを特徴とする。また、(4)上記
(3)に記載のシンボリッククロスデバッガ作成システ
ムにおいて、プログラムローダ2を特定する手段(プロ
グラムローダ獲得機能81)は、ユーザが指定したフォ
ーマットに対応するプログラムローダ2がプログラムロ
ーダライブラリ101に格納されていない場合に、ユー
ザに通知する手段(フォーマット獲得機能102)と、
この通知に基づきユーザが入力したプログラムローダ2
とフォーマット種別を対応付けてプログラムローダライ
ブラリ101に格納する手段(プログラムローダ獲得機
能81a)とを具備することを特徴とする。また、
(5)上記(2)から(4)のいずれか一つに記載のシ
ンボリッククロスデバッガ作成システムにおいて、MP
U模擬部10とリソーステーブル5を特定する手段(M
PU模擬部獲得機能84)は、ユーザからターゲットM
PUの構成と動作を定義したMPU動作記述105を入
力する手段(MPU動作記述獲得機能106)と、この
MPU動作記述獲得機能106で入力したMPU動作記
述105に基づき、MPU模擬部10とリソーステーブ
ル5を生成する手段(MPU模擬部生成機能106)と
を具備することを特徴とする。
【0011】
【発明の実施の形態】本発明においては、シンボリック
クロスデバッガを、コンパイラおよびターゲットMPU
に依存しない部分と、コンパイラやターゲットMPUに
依存する部分に分けて構成する。コンパイラとターゲッ
トMPUに依存しない部分としては、マンマシンインタ
ーフェース部とコマンド実行部、および、各部の間のイ
ンタフェース情報を保持するテーブル群があり、シンボ
リッククロスデバッガの作成時には、これらを、シンボ
リッククロスデバッガの機能に合わせて予め作成してお
く。
【0012】そして、コンパイラやターゲットMPUに
依存する部分を、それぞれに対応して作成し、作成した
各部分を、予め作成したマンマシンインターフェース部
やコマンド実行部と合成して、シンボリッククロスデバ
ッガを作成する。このように、シンボリッククロスデバ
ッガを、コンパイラおよびターゲットMPUに依存しな
い部分と、コンパイラやターゲットMPUに依存する部
分に分けて構成することにより、コンパイラの種類や新
たなターゲットMPUに対応してコンパイラやターゲッ
トMPUに依存する部分を作成する必要がなくなり、短
時間で新たなターゲットMPU用のシンボリッククロス
デバッガを作成することができる。
【0013】また、シンボリッククロスデバッガを構成
する部分のうち、オブジェクトプログラムのフォーマッ
トに依存する部分であるプログラムローダを、各フォー
マットに対応して、予めライブラリに用意しておく。そ
して、シンボリッククロスデバッガの作成時には、ユー
ザが指定したフォーマットに基づきライブラリを検索し
て、デバッグ対象プログラムに対応するプログラムロー
ダを抽出する。
【0014】このように、プログラムローダを各フォー
マットに対応して予めライブラリに用意しておくことに
より、ユーザは、デバッグ対象プログラムに対応するフ
ォーマットを指定するだけで、シンボリッククロスデバ
ッガにプログラムローダを組み込むことができる。尚、
対応するプログラムローダがライブラリに用意されてい
ない場合には、ユーザは、オブジェクトプログラムに対
応するプログラムローダを作成しなければならないが、
このようにして作成したプログラムローダを、オブジェ
クトプログラムのフォーマットに対応付けてライブラリ
に登録することにより、再利用することができる。
【0015】また、従来技術で述べた、ターゲットMP
Uのハードウェア構成要素(リソース)と各命令コード
に対する動作とを定義したMPU動作記述から、クロス
デバッガを作成するための技術を利用し、このMPU動
作記述をユーザから獲得することによって、シンボリッ
ククロスデバッガを構成する部分のうち、ターゲットM
PUに依存する部分であるMPU模擬部を生成する。
【0016】以下、本発明の実施形態例を、図面により
詳細に説明する。図1は、本発明のシンボリッククロス
デバッガの本発明に係る構成の一実施例を示すブロック
図であり、図2は、図1におけるシンボリッククロスデ
バッガを作成するシステムのハードウェア構成例を示す
ブロック図である。図2において、21はCPU(Cent
ral Processing Unit)を具備した処理装置、22はキ
ーボード等からなる入力装置、23はCRT(Cathode
Ray Tube)等からなる表示装置、24はDRAM(Dyna
mic Random Access Memory)等からなるメモリ、25は
HDD(Hard Disk Drive)等の外部記憶装置である。
このようなハードウェア構成により、図1で示すシンボ
リッククロスデバッガを作成する。
【0017】図1において、11はデバック対象プログ
ラム、12はデバッグ操作を行なうユーザ、そして、1
は本発明に係るシンボリッククロスデバッガであり、こ
のシンボリッククロスデバッガ1は、プログラムローダ
2、スタックフレーム生成関数3、スタックアクセス関
数4、リソーステーブル5、マンマシンインタフェース
部6、コマンド実行部7、インタフェーステーブル8、
シンボルテーブル9、MPU模擬部10により構成され
ている。
【0018】このような構成のシンボリッククロスデバ
ッガ1により、ユーザ12は、デバッグ対象プログラム
11の実行の様子(現在事項している行/変数値)を確
認したり、実行内容の変更を、ソースプログラム上で行
なう。すなわち、シンボリッククロスデバッガ1は、ユ
ーザ12から指示されたとおりにデバッグ対象プログラ
ムの動作を制御したり、その時点での変数値を表示す
る。以下、これらのシンボリッククロスデバッガ1の各
構成要素の説明を行なう。
【0019】まず、プログラムローダ2は、デバッグ作
業の開始時に、デバッグ対象プログラム11を解析し、
シンボリックデバッグを行なうのに必要な情報の格納を
行なう。すなわち、シンボルテーブル9へデータを格納
し(シンボルローダの機能)、プログラムを構成する命
令列をメモリに対応するリソーステーブル5に格納する
(オブジェクトローダの機能)。図3に、既にデータが
格納されているシンボルテーブル9の構成例を示す。
【0020】シンボルテーブル9は、生成するシンボリ
ッククロスデバッグ1の初期状態、すなわち、デバッグ
対象プログラム11のロード以前の状態には、図3に示
すテーブルの「枠」のみが用意されている。そして、シ
ンボリッククロスデバッグ1がデバッグ対象プログラム
11をロードする際に、プログラムローダ2のシンボル
ローダが、デバッグ対象プログラム11から具体的デー
タを抽出して、「枠」内に設定する。
【0021】このため、シンボルテーブル9は、そのテ
ーブル自体はコンパイラに依存しないが、シンボルテー
ブル9に格納されるデータは、シンボリックデバッガを
行なうために必須のものであるので、各コンパイラが生
成するオブジェクトプログラムには、このデータが含ま
れており、このデータを、オブジェクトファイル中にど
こにどのような形で格納するか(オブジェクトファイル
のフォーマット)は、コンパイラに依存する。尚、この
フォーマットは、いくつかに標準化されている。また、
このように、プログラムローダ2のシンボルローダは、
デバッグ対象プログラム11のロード時に、このプログ
ラムのデータを取り出し、シンボルテーブル9に格納す
るので、プログラムローダ2は、オブジェクトファイル
のフォーマットに依存し、引いてはコンパイラに依存す
る。
【0022】図3において、「記憶領域区分」欄31
は、その変数に対する記憶領域が、メモリ中に常に一つ
確保され、絶対アドレスによって参照されるものである
のか「abs」、または、プログラムの実行に伴ってメモ
リ上のスタックフレームに動的に確保されて相対アドレ
スによって参照されるものであるのか「rel」、あるい
は、同様にレジスタ上のスタックフレームに動的に確保
されて相対レジスタ番号によって参照されるものである
のか「reg」などを表す。「記憶領域」欄32は、「記
憶領域区分」欄31の値に対応し、絶対アドレス、相対
アドレス、相対レジスタ番号などを表す。
【0023】シンボリックデバッグを行なうのに必要な
これらの情報は、コンパイラにより図1のデバッグ対象
プログラム11中に必ず含まれているが、その形式はコ
ンパイラにより異なる。また、オブジェクトローダが行
なう処理には、図1のデバッグ対象プログラム11のフ
ァイル中で、プログラムを構成する命令列が格納されて
いる位置に関する情報が必要であるが、この情報の形式
もコンパイラにより異なる。
【0024】図1に戻り、さらにシンボリッククロスデ
バッガ1の各構成要素の説明を続ける。リソーステーブ
ル5は、ターゲットMPUのレジスタとメモリを模擬す
るテーブルからなり、レジスタを模擬する部分では絶対
レジスタ番号で要素を特定し、メモリを模擬する部分で
は絶対アドレスで要素を特定する。MPU模擬部10
は、命令のフェッチを制御する実行制御部とターゲット
MPUの動作を模擬する動作模擬関数群からなる。これ
らリソーステーブル5とMPU模擬部10は、ターゲッ
トMPUにより異なる。
【0025】スタックフレーム生成関数3は、シンボリ
ッククロスデバッガの関数実行コマンドにおいて、関数
の呼び出しに対するスタックフレームをリソーステーブ
ル5上に実現する関数である。ここで、スタックフレー
ムに関しての説明を行なう。プログラム実行時に関数呼
出し(call)が発生した場合、MPU内部には、各
引数/ローカル変数の値を格納するための領域「スタッ
クフレーム」が生成される。プログラムの実行時には関
数の呼出しがネスト(入れ子)しているので、スタック
フレームは、いわゆるスタック構造となっている。この
機構はMPUには依存しないが、スタックフレームは、
各引数/ローカル変数をMPUのレジスタにマッピング
するものであり、MPUに依存する。
【0026】尚、デバッガ上で動作しているデバッグ対
象プログラム中に、関数呼出しがあった場合には、この
関数に対するスタックフレームを作成する命令がデバッ
グ対象プログラム(のオブジェクトファイル)にあるの
で、MPU動作模擬部10は、その命令を模擬するの
で、スタックフレーム生成関数3を用いる必要はない。
スタックフレーム生成関数3は、ユーザがプログラムや
関数の実行開始を指示したとき、ユーザから指摘される
引数値に基づいて、このプログラムや関数のスタックフ
レームを作成する。そして、スタックフレーム生成関数
3の入力引数は、実行関数を特定するためのモジュール
名および関数名と、関数の呼び出しに対して与えられる
実引数値の列である。以下、スタックフレーム生成関数
3の処理動作例を、図4を用いて説明する。
【0027】図4は、図1におけるスタックフレーム生
成関数の本発明に係る処理動作例を示すフローチャート
である。ステップ401において、まず、入力引数とし
て与えられたモジュール名と関数名に基づいて、図3に
示すシンボル情報テーブル9から、関数の全引数の個数
と記憶領域、および記憶領域区分を得る。次に、ステッ
プ402では、ステップ401の結果に基づいて、引数
値用の記憶領域を、図1のリソーステーブル5上に確保
すると共に、リターンアドレスやスタックフレームポイ
ンタなどのスタック情報を同じリソーステーブル5に設
定する。そして、ステップ403では、実行関数の全て
の引数値をスタックフレーム上に設定したか否かを判定
し、設定していない引数値があれば、ステップ404に
おいて設定することを繰り返す。
【0028】図1に戻り、シンボリッククロスデバッガ
1の次の構成要素の説明を続ける。スタックアクセス関
数4は、シンボリッククロスデバッガの変数値表示コマ
ンドにおいて、変数名とリソーステーブル5の要素を対
応付ける関数である。そして、デバッガ固有のものであ
り、ユーザによる「実行中のこの関数のこの変数の値を
参照/設定する」操作に対応して動作するものである。
その具体的な処理は、スタックフレームの内容に依存す
るので、スタックアクセス関数4も、ターゲットMPU
に依存する(対応して作成しなけらばならない)。
【0029】このスタックアクセス関数4の入力引数
は、表示変数を特定するためのモジュール名、関数名お
よび変数名であり、出力引数は、リソーステーブル5の
要素を特定する絶対アドレスまたは絶対レジスタ番号で
ある。以下、スタックフレームアクセス関数4の処理動
作例を、図5を用いて説明する。
【0030】図5は、図1におけるスタックフレームア
クセス関数の本発明に係る処理動作例を示すフローチャ
ートである。尚、この例では、指定関数がネストして複
数回実行中である場合、現在実行中の関数レベルにもっ
とも近いものについての変数値を表示するものとしてい
る。まずステップ501において、現実行関数側からス
タックフレームを一つ選択する。次のステップ502で
は、ステップ501において選択したスタックフレーム
が入力引数として与えられたモジュール、関数に対する
ものであるか否かを判定し、そうであればステップ50
5に進み、そうでなければステップ503に進む。
【0031】ステップ503では、全てのスタックフレ
ームを選択したか否かを判定し、選択していないスタッ
クフレームがあればステップ501へ戻り、全てを選択
していればステップ504として処理を終え、エラーを
返す。ステップ505では、入力引数に基づいて、図3
のシンボルテーブル9から指定変数のシンボル情報を取
得する。ステップ506では、図3のシンボルテーブル
9の「記憶領域区分」欄31の値を参照し、記憶領域が
絶対アドレスによって参照されている「abs」ならば、
ステップ507で処理を終え、図3の「記憶領域」欄3
2の値である絶対アドレスを返す。
【0032】また、ステップ506において、記憶領域
が相対アドレスによって参照されている「rel」なら
ば、ステップ508で、図3の「記憶領域」欄32の値
である相対アドレスを、そのスタックフレームにおける
絶対アドレスに変換し、ステップ509で処理を終え、
絶対アドレスを返却する。また、ステップ506におい
て、記憶領域が相対レジスタ番号によって参照されてい
る「reg」ならば、まずステップ510で、図3の「記
憶領域」欄32の値である相対レジスタ番号をそのスタ
ックフレームにおける絶対アドレスに変換し、次にステ
ップ511で、そのスタックフレームにおいて、図3の
「記憶領域」欄32に値の相対レジスタ番号で示される
レジスタの値がメモリに退避されている(スピルされて
いる)か否かを判定する。
【0033】スピルされている場合には、ステップ51
2で処理を終え、ステップ510で求めた相対アドレス
を返す。また、ステップ511でスピルされていない場
合には、ステップ513で、図3の「記憶領域」欄32
の値である相対レジスタ番号を、そのスタックフレーム
における絶対レジスタ番号に変換し、ステップ514で
処理を終えて、求めた絶対レジスタ番号を返す。
【0034】図1に戻り、シンボリッククロスデバッガ
1の次の構成要素の説明を続ける。マンマシンインタフ
ェース部6は、シンボリッククロスデバッガ1のユーザ
12から、プログラムの実行、変数値の表示、ブレイク
ポイントの設定などのコマンドを受けとるコマンド受付
機能6aと、コマンドの実行結果をユーザ12に示す表
示機能6bからなる。コマンド実行部7は、マンマシン
インターフェース部6から渡されたコマンドを解析する
コマンド解析機能7aと、それぞれのコマンドに対する
処理を行なうコマンド実行関数群7bからなる。
【0035】インタフェーステーブル8は、MPU模擬
部10とコマンド実行部7との間で必要となる各種イン
タフェース情報を保持するテーブルであり、図6にその
構成例を示す。図6に示すインタフェーステーブル8
は、絶対アドレスとアクセス種別(リード/ライト)を
予め指定しておき、プログラム実行中に指定されたアド
レスに対してプログラムが指定された種別のアクセスを
行なった時、実行を中断する機能(アクセスブレイク)
を実現するものである。
【0036】図1におけるMPU模擬部5の動作模擬関
数のうち、メモリへのアクセスが発生する命令に対する
ものを、このインタフェーステーブル8のデータ値を更
新するように作成する。すなわち、アクセスが発生した
場合に、図6において、「アクセスフラグ」欄61の値
に「ON」を設定し、「アクセスアドレス」欄62の値
に、アクセスしたアドレス「0xA000」を設定し、
「アクセスモード」欄63に、アクセスモード「Wri
te」を設定する。図1におけるコマンド実行部7のコ
マンド実行関数のうち、実行コマンドに対するもので
は、1命令実行毎に「アクセスフラグ」欄61の値を参
照し、「ON」である場合には、「アクセスアドレス」
欄62の値および「アクセスモード」欄63の値を、指
定されていたアドレスおよびアクセス種別と比較し、一
致した場合に実行を中断するようにする。
【0037】以上説明したように、図1におけるマンマ
シンインタフェース部6とコマンド実行部7とインタフ
ェーステーブル8は、作成するシンボリッククロスデバ
ッガ1の持つ機能のみに依存しており、機能の追加/変
更がなければ変更する必要はない。このような構成で、
図1のシンボリッククロスデバッガ1は、ユーザが指示
し呈するコマンドに基づき、デバッグ処理を行なう。
【0038】すなわち、シンボリッククロスデバッガ1
は、プログラムローダ2により、あるコンパイラにより
コンパイルされたデバッグ対象プログラム11を解析し
て、このコンパイラが作成したシンボル情報を、コンパ
イラに対応するフォーマット形式でシンボルテーブル9
に、および、プログラムの命令列をリソーステーブル5
に、それぞれロードする。そして、スタックフレーム生
成関数3により、例えばユーザがプログラムのデバッグ
指示コマンドで指定した関数の呼出しに対応するスタッ
クフレームを、シンボルテーブル9のシンボル情報を参
照してリソーステーブル5上に作成する。
【0039】また、スタックフレームアクセス関数によ
り、ユーザがプログラムのデバッグ指示コマンドで指定
した表示変数もしくは設定変数に対応する記憶領域を、
リソーステーブル5上のスタックフレーム、および、シ
ンボルテーブル9のシンボル情報を参照して特定する。
そして、例えば、ユーザから指定された所定のトレース
条件およびブレーク条件に対応して、MPU模擬部10
により、リソーステーブル5にロードされた命令を逐次
実行し、この実行結果を出力する。また、この実行結果
の出力後にユーザが指定した変数の表示コマンドもしく
は設定コマンドに対応して、スタックフレームアクセス
関数3により変数の記憶領域を取得し、この記憶領域に
対応するリソーステーブル5上の値を出力もしくは設定
する。このようなシンボリッククロスデバッガ1の動作
説明を、次の図7を用いて行なう。
【0040】図7は、図1におけるシンボリッククロス
デバッガの動作例を示すフローチャートである。ユーザ
の起動指示操作に基づき起動する(ステップ701)。
ユーザからデバッグ対象が指定されれば(ステップ70
2)、図1のプログラムローダ2により、デバッグ対象
のプログラム(図1のデバッグ対象プログラム10)を
ロードし、命令列を図1のリソーステーブル5に、シン
ボル情報を図1のシンボルテーブル9に格納する(ステ
ップ703)。
【0041】そして、図1のスタックフレーム生成関数
3により、ユーザが「プログラム」の指示と共に指定し
た引数値に基づき、このプログラムのスタックフレーム
を生成し(ステップ704)、図1のMPU模擬部10
により、プログラムを実行する(ステップ705)。こ
こで、図1のMPU模擬部10は、デバッグ対象のプロ
グラムの実行を終了する条件が成立するまで、すなわ
ち、図1のコマンド実行部7の実行コマンド処理が、実
行停止を指示するまで、1命令ずつ実行する。実行が終
了すると、ステップ706のコマンド入力処理に移る。
【0042】ステップ705の処理後、あるいは、ステ
ップ702においてユーザからデバッグ対象が指定され
ないまま、ユーザからコマンドが入力されると(ステッ
プ706)、このコマンドを、図1におけるマンマシン
インタフェース206により取り込み、図1のコマンド
実行部7により解析する(ステップ707)。解析した
結果が「ロード指示」であれば、ステップ703の処理
と同様にして、指定のプログラムをロードし(ステップ
708)、ステップ706の処理に戻り、次のコマンド
入力を待つ。
【0043】次のコマンドの解析結果が「ブレイクポイ
ントの設定」であれば(ステップ706,707)、そ
のブレイクポイント情報の設定を図1のコマンド実行部
7により行なう(ステップ709)。すなわち、図1の
シンボルテーブル9から、ブレイク対象の行または変数
のアドレスを取得し、このアドレスを図1のリソーステ
ーブル5に記憶する。そして、ステップ706の処理に
戻り、次のコマンドを待つ。
【0044】次のコマンドの解析結果が「実行開始」で
あれば(ステップ706,707)、まず、対象のプロ
グラムがロード済であるか否かを判別する(ステップ7
10)。ロード済であればそのまま、また、ロード済み
でなければ、ステップ703の処理によりプログラムの
ロードを行ない、ステップ704,705の処理により
スタックフレームの生成と実行を行なう。そして、ステ
ップ706の処理に戻り、次のコマンドを待つ。
【0045】次のコマンドの解析結果が「変数値の表示
/設定」であれば(ステップ706,707)、図1の
スタックアクセス関数4により、その変数のアドレスを
取得し(ステップ711)、このアドレスに対する図1
のリソーステーブル5条の値を表示/設定する(ステッ
プ712)。そして、ステップ706の処理に戻り、次
のコマンドを待つ。このように、ユーザからの操作に基
づき、デバッグ対象プログラムのデバッグを行なう。
【0046】次に、図8を用いて、図1におけるシンボ
リッククロスデバッガ1の作成技術に関して説明する。
図8は、本発明に係るシンボリッククロスデバッガ作成
システムの本発明に係る構成の第1の実施例を示すブロ
ック図である。本例のシンボリッククロスデバッガ作成
システムは、図1におけるシンボリッククロスデバッガ
1を作成するものであり、本図8におけるプログラムロ
ーダ2、スタックフレーム生成関数3、スタックアクセ
ス関数4、リソーステーブル5、MPU模擬部10、マ
ンマシンインタフェース部6、コマンド実行部7、イン
タフェーステーブル(図中、I/Fテーブルと記載)8
およびシンボルテーブル9は、それぞれ、図1において
同じ符号をつけたものと同一であり、その説明は、ここ
では省略する。また、装置構成としては、図2に示した
ものとなる。
【0047】プログラムローダ獲得機能81はプログラ
ムローダ2を、スタックフレーム生成関数獲得機能82
はスタックフレーム生成関数3を、スタックアクセス関
数獲得機能83はスタックアクセス関数4を、MPU模
擬部獲得機能84はリソーステーブル5とMPU模擬部
10を、それぞれ獲得するためのものであり、マンマシ
ンインタフェース部6、コマンド実行部7、インタフェ
ーステーブル8、シンボルテーブル9のそれぞれは、予
め用意されている。
【0048】そして、部品合成部81は、プログラムロ
ーダ獲得機能81により獲得したプログラムローダ2
と、スタックフレーム生成関数獲得機能82により獲得
したスタックフレーム生成関数3、スタックアクセス関
数獲得機能83により獲得したスタックアクセス関数
4、MPU模擬部獲得機能により獲得したリソーステー
ブル5とMPU模擬部10、および、予めそれぞれ用意
されたマンマシンインタフェース部6、コマンド実行部
7、インタフェーステーブル8、シンボルテーブル9か
ら、目的のシンボリッククロスデバッガ1を作成する。
この部品合成部80によるシンボリッククロスデバッガ
1の作成手順を、図9を用いて説明する。
【0049】図9は、図8における部品合成部の処理動
作例を示すフローチャートである。本例は、図8におけ
るプログラムローダ獲得機能81、スタックフレーム生
成関数獲得機能82、スタックアクセス関数獲得機能8
3、MPU模擬部獲得機能84の各機能を、部品合成部
80でチェックするものである。以下、図8における構
成に基づき図9の処理を説明する。
【0050】まず、シンボルテーブル9の項目を一つ選
択し(ステップ801)、図8におけるプログラムロー
ダ獲得機能81で獲得したプログラムローダ2が、その
項目を設定しているか否かをチェックする(ステップ8
02)。設定していない場合には、そのプログラムロー
ダ2を破棄し、改めてプログラムローダ獲得機能81に
よりプログラムローダ2を獲得する。一つのプログラム
ローダ2に対して全てのシンボルテーブル9の項目をチ
ェックするまで、ステップ801とステップ802を繰
り返して(ステップ803)、ステップ804に進む。
【0051】ステップ804ではインタフェーステーブ
ル8の項目を一つ選択し、ステップ805で、MPU模
擬部獲得機能84で獲得したMPU模擬部10がその項
目を設定しているか否かをチェックする。設定していな
い場合には、そのMPU模擬部10を破棄し、改めてM
PU模擬部獲得機能84によりMPU模擬部10を獲得
する。一つのMPU模擬部10に対して全てのインタフ
ェーステーブル8の項目をチェックするまでステップ8
04とステップ805を繰り返し(ステップ806)、
ステップ807に進む。
【0052】ステップ807では、スタックフレーム生
成関数獲得機能82で獲得した関数の仮引数がモジュー
ル名、関数名、実引数値の列であるか否かをチェック
し、そうでない場合には、その関数を破棄し、改めてス
タックフレーム生成関数獲得機能82によりスタックフ
レーム生成関数3を獲得する。仮引数が正しい場合には
ステップ808に進む。ステップ808では、スタック
アクセス関数獲得機能83で獲得した関数の仮引数がモ
ジュール名、関数名、変数名であるか否かをチェック
し、そうでない場合には、その関数を破棄し、改めてス
タックアクセス関数獲得機能83によりスタックアクセ
ス関数4を獲得する。
【0053】仮引数が正しい場合にはステップ809に
進み、全ての部品を統合コンパイルして、目的とするシ
ンボリッククロスデバッガ1を作成し、処理を終える。
尚、スタックフレーム生成関数獲得機能82は、図4に
示したフローチャートを表示し、ユーザに各ステップに
対応するプログラムの部分を入力させることにより、対
話的にスタックフレーム生成関数3を獲得する。同様
に、スタックアクセス関数獲得機能83は、図5に示し
たフローチャートを表示し、ユーザに各ステップに対応
するプログラムの部分を入力させることにより、対話的
にスタックアクセス関数4を獲得する。
【0054】以上のシンボリッククロスデバッガの作成
手順によれば、ターゲットMPUに依存するリソーステ
ーブル5とMPU模擬部10と、デバッグ対象プログラ
ムをコンパイルするコンパイラに依存するプログラムロ
ーダ2と、ターゲットMPUとデバッグ対象プログラム
をコンパイルするコンパイラの両者に依存するスタック
フレーム生成関数3およびスタックアクセス関数4を与
えるだけでよく、その他のマンマシンインタフェース部
6、コマンド実行部7、インタフェーステーブル8、シ
ンボルテーブル9を作成する必要はないので、短期間に
図1のシンボリッククロスデバッガ1を作成することが
できる。
【0055】また、図9にその動作例を示した図8の部
品合成部80を用いれば、ユーザが作成した各部をチェ
ックして、誤りの原因を示すことができるので、さらに
好適にシンボリッククロスデバッガの作成を支援するこ
とができる。次に、図10を用いて、図1におけるシン
ボリッククロスデバッガ1の他の作成技術に関して説明
する。
【0056】図10は、本発明に係るシンボリッククロ
スデバッガ作成システムの本発明に係る構成の第2の実
施例を示すブロック図である。本例のシンボリッククロ
スデバッガ作成システムは、ユーザから獲得するものが
クロスデバッガの部品そのものではなく、各種情報を対
話的に入力させることによって、シンボリッククロスデ
バッガ1を自動生成するものである。その装置構成は、
図8の第1の実施例のシンボリッククロスデバッガ作成
システムと同様、図2に示したものとなる。
【0057】図8と同じ参照番号をつけたものは、図8
のものと同一であり、その説明は省略し、図10に特徴
的なものとして、プログラムローダライブラリ101、
フォーマット獲得機能102、指定フォーマット10
3、プログラムローダ選択機能104、MPU動作記述
105、MPU動作記述獲得機能106、MPU模擬部
生成機能107がある。また、プログラムローダ獲得機
能81aは、図8におけるプログラムローダ獲得機能8
1と同じ機能を有すると共に、プログラムローダ2のプ
ログラムローダライブラリ101への格納機能も有す
る。以下、これらの各機能の説明を行なう
【0058】プログラムローダライブラリ101は、従
来技術で提供される「COFF」など、いくつかのオブジェ
クトプログラムファイルのフォーマットに対するプログ
ラムローダ2を格納するものであり、図11に例示する
ような構造を持ち、図11のテーブル111によって、
フォーマット名とプログラムローダとを対応させて管理
する。フォーマット獲得機能102は、図12に示す画
面内容で、対話的に、ユーザに指定フォーマット103
を指定させる。図12において、ユーザは、既存フォー
マット一覧121に目的のフォーマットがある場合には
その一つを選択し、ない場合には、新規フォーマット名
入力欄122に名称を入力する。
【0059】既存フォーマットが選択された場合には、
フォーマット獲得機能102は、その名称をプログラム
ローダ選択機能104に渡す。プログラムローダ選択機
能104では、渡された名称に対応するプログラムロー
ダ2を、図11のテーブル111を参照して選択する。
例えば、既存フォーマットの「COFF」が選択された
場合には、「COFF用プログラムローダ」を選択す
る。
【0060】指定フォーマット103が新規フォーマッ
ト名で入力された場合には、フォーマット獲得機能10
2は、プログラムローダ獲得機能81aを起動し、新た
にプログラムローダ2をユーザから獲得する。新たに獲
得したプログラムローダ2は、指定フォーマット103
のフォーマット名とともにプログラムローダライブラリ
101に格納しても良いし、格納しなくても良い。
【0061】MPU動作記述105は、図13に例示す
るように、リソース宣言部131と動作記述部132か
ら成る。図13のリソース宣言部131の記述はターゲ
ットMPUの持つリソースを、属性を指定することによ
り宣言的に記述しており、シンボリッククロスデバッガ
1のリソーステーブル5に対応する。また、図13の動
作記述部132の記述は、ターゲットMPUの命令セッ
トの各命令について、命令コードとニーモニックと動作
を命令一覧表の形式で記述しており、シンボリッククロ
スデバッガ1の各動作模擬関数に対応する。
【0062】MPU動作記述獲得機能106は、MPU
動作記述105を読み込み、MPU模擬部生成機能10
7に渡す。MPU模擬部生成機能107では、MPU動
作記述105に基づいて、図13のリソース宣言部13
1からリソーステーブル5を、図13の動作記述部13
2から各動作模擬関数を生成する。MPU模擬部10の
うち、実行制御部の機能は、命令のフェッチと実行の繰
り返しなど、ターゲットMPUに依存しない一般的な処
理手順の模擬であり、自動生成することが可能であるの
で、MPU動作記述105からリソーステーブル5およ
びMPU模擬部10を生成することが可能である。
【0063】尚、本図10に示す例では、MPU動作記
述獲得機能106を、予め用意されたMPU動作記述1
05を読み込むようにしている。しかし、MPU動作記
述105に相当する情報を、ユーザとの対話によって獲
得するようにMPU動作記述獲得機能106を実現する
ことも可能である。図14に、MPU動作記述106に
よる、MPU動作記述105の対話入力の例を示す。
【0064】図14は、図10におけるMPU動作記述
によるMPU動作記述の対話入力に係る操作画面例を示
す説明図である。本図14において、141が基本画面
であり、レジスタリソースとメモリリソースを、それぞ
れリスト142、リスト143に加えることで定義す
る。命令セットの各命令は、リスト144に加えること
で、ニーモニックと命令コードとサイクル数を定義す
る。
【0065】命令に対する動作は、リスト144の要素
を一つ選択した後、「動作」ボタン145を押すと、画
面146が開くので、この画面146に動作を記述す
る。基本画面141において「OK」ボタン147を押
すことで、定義が完了する。このように、図10に示し
たシンボリックデバッガの作成システムによれば、ユー
ザは、指定フォーマット103を与えるだけでプログラ
ムローダ2を得ることができ、また、MPU動作記述1
05を与えるだけでリソーステーブル5とMPU模擬部
10を得ることができるので、好適にシンボリッククロ
スデバッガ1の作成を支援することができる。
【0066】以上、図1〜図14を用いて説明したよう
に、本実施例のシンボリッククロスデバッガでは、コン
パイラおよびターゲットMPUに依存しない部分と、コ
ンパイラやターゲットMPUに依存する部分に分けて構
成する。そして、本実施例のシンボリックデバッガの作
成システムでは、シンボリッククロスデバッガ作成者
は、コンパイラの種類や新たなターゲットMPUに対応
してコンパイラやターゲットMPUに依存しない部分を
作成する必要がなくなり、デバッグ対象プログラムをコ
ンパイルしたコンパイラに依存する部分と、ターゲット
MPUに依存する部分のみを作成するだけでよく、短時
間で新たなターゲットMPU用のシンボリッククロスデ
バッガを作成することができる。
【0067】さらに、デバッグ対象プログラムをコンパ
イルしたコンパイラに依存する部分については、そのも
のを作成することなく、デバッグ対象プログラムのフォ
ーマットを指定するだけで良い場合もある。また、ター
ゲットMPUに依存する部分についても、関数自体を作
成するのではなく、ターゲットMPUの構成と動作を入
力するだけで良いようにもできる。従って、シンボリッ
ククロスデバッガの作成期間をさらに短縮することが可
能である。尚、本発明は、図1〜図14を用いて説明し
た実施例に限定されるものではなく、その要旨を逸脱し
ない範囲において種々変更可能である。
【0068】
【発明の効果】本発明によれば、新たなMPUに組み込
むデバッガ対象のプログラムが特殊な形式の情報を付加
するコンパイラによってコンパイルされていなくとも、
すなわち、従来のコンパイラを用いる場合でも、新たな
MPUに組み込むプログラムに対応するシンボリックク
ロスデバッグを短期間で開発することが可能である。
【図面の簡単な説明】
【図1】本発明のシンボリッククロスデバッガの本発明
に係る構成の一実施例を示すブロック図である。
【図2】図1におけるシンボリッククロスデバッガを作
成するシステムのハードウェア構成例を示すブロック図
である。
【図3】図1におけるシンボルテーブルの構成例を示す
説明図である。
【図4】図1におけるスタックフレーム生成関数の本発
明に係る処理動作例を示すフローチャートである。
【図5】図1におけるスタックフレームアクセス関数の
本発明に係る処理動作例を示すフローチャートである。
【図6】図1におけるインタフェーステーブルの構成例
を示す説明図である。
【図7】図1におけるシンボリッククロスデバッガの動
作例を示すフローチャートである。
【図8】本発明に係るシンボリッククロスデバッガ作成
システムの本発明に係る構成の第1の実施例を示すブロ
ック図である。
【図9】図8における部品合成部の処理動作例を示すフ
ローチャートである。
【図10】本発明に係るシンボリッククロスデバッガ作
成システムの本発明に係る構成の第2の実施例を示すブ
ロック図である。
【図11】図10におけるプログラムローダライブラリ
の構造例を示す説明図である。
【図12】図10におけるフォーマット獲得機能による
ユーザに対する指定フォーマットの指定操作画面の内容
例を示す説明図である。
【図13】図10におけるMPU動作記述の記述内容例
を示す説明図である。
【図14】図10におけるMPU動作記述によるMPU
動作記述の対話入力に係る操作画面例を示す説明図であ
る。
【符号の説明】
1:シンボリッククロスデバッガ、2:プログラムロー
ダ、3:スタックフレーム生成関数、4:スタックアク
セス関数、5:リソーステーブル、6:マンマシンイン
タフェース部、7:コマンド実行部、8:インタフェー
ステーブル、9:シンボルテーブル、10:MPU模擬
部、11:デバッグ対象プログラム、12:ユーザ、2
1:処理装置、22:入力装置、23:表示装置、2
4:メモリ、25:外部記憶装置、31:記憶領域区
分、32:記憶領域、61:アクセスフラグ、62:ア
クセスアドレス、63:アクセスモード、80:部品合
成部、81,81a:プログラムローダ獲得機能、8
2:スタックフレーム生成関数獲得機能、83:スタッ
クアクセス関数獲得機能、84:MPU模擬部獲得機
能、101:プログラムローダライブラリ、102:フ
ォーマット獲得機能、103:指定フォーマット、10
4:プログラムローダ選択機能、105:MPU動作記
述、106:MPU動作記述獲得機能、107:MPU
模擬部生成機能、111:テーブル、121:既存フォ
ーマット一覧、122:新規フォーマット名入力欄、1
31:リソース宣言部、132:動作記述部、141:
基本画面、142〜144:リスト、145:「動作」
ボタン、146:画面、147:「OK」ボタン。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 汎用計算機上で該汎用計算機のMPUと
    は異なるMPU(ターゲットMPU)向けにコンパイル
    されたプログラムのシンボリックデバッグに用いられる
    シンボリッククロスデバッガであって、少なくとも、上
    記ターゲットMPUに対応して作成されたMPU模擬手
    段とリソーステーブル、上記プログラムのコンパイルに
    用いられたコンパイラに対応して作成されたプログラム
    ローダ、上記ターゲットMPUおよび上記コンパイラの
    両方に対応して作成されたスタックフレーム生成手段と
    スタックアクセス手段を有し、上記MPU模擬手段によ
    り上記ターゲットMPUの動作を模擬し、上記リソース
    テーブルにより上記ターゲットMPUのレジスタとメモ
    リを模擬し、上記プログラムローダにより、上記コンパ
    イルされたデバッグ対象のプログラムを解析して、該プ
    ログラムをコンパイルしたコンパイラが作成したシンボ
    ル情報を上記コンパイラに対応するフォーマット形式で
    シンボルテーブルに、および、上記プログラムの命令列
    を上記リソーステーブルに、それぞれロードし、上記ス
    タックフレーム生成手段により、ユーザが上記プログラ
    ムのデバッグ指示コマンドで指定した関数の呼出しに対
    応するスタックフレームを、上記プログラムローダが上
    記シンボルテーブルにロードしたシンボル情報を参照し
    て上記リソーステーブル上に作成し、上記スタックフレ
    ームアクセス手段により、ユーザが上記プログラムのデ
    バッグ指示コマンドで指定した表示変数もしくは設定変
    数に対応する記憶領域を、上記スタックフレーム生成手
    段が上記リソーステーブル上に作成したスタックフレー
    ム、および、上記プログラムローダが上記シンボルテー
    ブルにロードした上記シンボル情報を参照して特定する
    ことにより、ユーザが指定した所定のトレース条件およ
    びブレーク条件でのデバッグ実行指示コマンドに対応し
    ての上記MPU模擬手段による上記リソーステーブルに
    ロードされた命令の逐次実行と該実行の結果出力、およ
    び、該実行の結果出力後にユーザが指定した変数の表示
    コマンドもしくは設定コマンドに対応しての上記スタッ
    クフレームアクセス手段による上記変数の記憶領域の取
    得と該取得した記憶領域に対応する上記リソーステーブ
    ル上の値の出力もしくは設定を少なくとも含むデバッグ
    動作を行なうことを特徴とするシンボリッククロスデバ
    ッガ。
  2. 【請求項2】 汎用計算機上で、該汎用計算機のMPU
    とは異なるMPU(ターゲットMPU)向けにコンパイ
    ルされたプログラムのシンボリックデバッグを行なうの
    に用いるシンボリッククロスデバッガを作成するシンボ
    リッククロスデバッガ作成システムであって、上記プロ
    グラムをコンパイルしたコンパイラに対応したフォーマ
    ットのプログラムローダを特定する手段と、上記ターゲ
    ットMPUの動作およびメモリとレジスタをそれぞれ模
    擬するMPU模擬手段とリソーステーブルの内、上記タ
    ーゲットMPUに対応するものを特定する手段と、上記
    シンボリックデバッグで指示される関数のスタックフレ
    ームを上記リソーステーブル上に、上記特定されたプロ
    グラムローダが上記コンパイルされたプログラムからロ
    ードしたシンボル情報に基づき生成するスタックフレー
    ム生成関数の内、上記ターゲットMPUおよび上記コン
    パイラの両方に対応するものを特定する手段と、上記シ
    ンボリックデバッグで指示される実行中の関数の変数の
    アドレスを上記スタックフレームおよび上記シンボル情
    報に基づき抽出するスタックアクセス関数の内、上記タ
    ーゲットMPUおよび上記コンパイラの両方に対応する
    ものを特定する手段と、上記各手段で特定されたプログ
    ラムローダ、MPU模擬手段、スタックフレーム生成関
    数およびスタックアクセス関数と、予め用意されている
    上記ターゲットMPUおよび上記コンパイラのいずれに
    も依存しない上記シンボリッククロスデバッグの構成要
    素とを統合コンパイルして、上記シンボリッククロスデ
    バッガを作成する手段とを少なくとも有することを特徴
    とするシンボリッククロスデバッガ作成システム。
  3. 【請求項3】 請求項2に記載のシンボリッククロスデ
    バッガ作成システムにおいて、上記プログラムローダを
    特定する手段は、ユーザが指定したフォーマットの種別
    を判別する手段と、該手段で判別した種別のフォーマッ
    トに対応するプログラムローダを、予め複数のプログラ
    ムローダを各々のフォーマット種別に対応付けて格納し
    たプログラムローダライブラリから抽出する手段とを具
    備し、ユーザによるフォーマットの指定に基づき、該フ
    ォーマットに対応する上記プログラムローダを特定する
    ことを特徴とするシンボリッククロスデバッガ作成シス
    テム。
  4. 【請求項4】 請求項3に記載のシンボリッククロスデ
    バッガ作成システムにおいて、上記プログラムローダを
    特定する手段は、上記ユーザが指定したフォーマットに
    対応するプログラムローダが上記プログラムローダライ
    ブラリに格納されていない場合に、ユーザに通知する手
    段と、該通知に基づき、ユーザが入力した上記プログラ
    ムローダと上記フォーマット種別を対応付けて上記プロ
    グラムローダライブラリに格納する手段とを具備するこ
    とを特徴とするシンボリッククロスデバッガ作成システ
    ム。
  5. 【請求項5】 請求項2から請求項4のいずれか一つに
    記載のシンボリッククロスデバッガ作成システムにおい
    て、上記MPU模擬手段とリソーステーブルを特定する
    手段は、ユーザから上記ターゲットMPUの構成と動作
    を定義したMPU動作記述を入力する手段と、該手段で
    入力した上記MPU動作記述に基づき、上記MPU模擬
    手段とリソーステーブルを生成する手段とを具備するこ
    とを特徴とするシンボリッククロスデバッガ作成システ
    ム。
JP8111406A 1996-05-02 1996-05-02 シンボリッククロスデバッガおよび作成システム Pending JPH09297695A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8111406A JPH09297695A (ja) 1996-05-02 1996-05-02 シンボリッククロスデバッガおよび作成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8111406A JPH09297695A (ja) 1996-05-02 1996-05-02 シンボリッククロスデバッガおよび作成システム

Publications (1)

Publication Number Publication Date
JPH09297695A true JPH09297695A (ja) 1997-11-18

Family

ID=14560356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8111406A Pending JPH09297695A (ja) 1996-05-02 1996-05-02 シンボリッククロスデバッガおよび作成システム

Country Status (1)

Country Link
JP (1) JPH09297695A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116662157A (zh) * 2023-04-26 2023-08-29 北京计算机技术及应用研究所 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116662157A (zh) * 2023-04-26 2023-08-29 北京计算机技术及应用研究所 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法
CN116662157B (zh) * 2023-04-26 2024-02-02 北京计算机技术及应用研究所 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法

Similar Documents

Publication Publication Date Title
JP2795244B2 (ja) プログラムデバッグシステム
US6282699B1 (en) Code node for a graphical programming system which invokes execution of textual code
US7496906B2 (en) Evaluation of a code segment
US9697109B2 (en) Dynamically configurable test doubles for software testing and validation
US7606826B2 (en) Evaluation and display of temporal descriptions
US7895575B2 (en) Apparatus and method for generating test driver
US20090199163A1 (en) Debugger assistance for locating values at runtime
JPH02272645A (ja) プログラム・デバツグ支援方法
JP2000122886A (ja) 半導体試験装置のプログラム作成方式
US20030177471A1 (en) System and method for graphically developing a program
Wu et al. Unit testing for domain-specific languages
JPS60107142A (ja) プログラム翻訳装置
US6163881A (en) Method of monitoring the operation of a computer
Lutz et al. Testing tools (software)
JPS62113244A (ja) プログラムテスト装置
JPH09297695A (ja) シンボリッククロスデバッガおよび作成システム
Lönnberg et al. MVT: a system for visual testing of software
CN116166567B (zh) 一种基于图形编程的测试用例生成方法及装置
JP2004287869A (ja) プログラム実行監視装置および方法
JP3745968B2 (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体
JP2002014847A (ja) プログラム検査装置、プログラム検査方法及び検査を行うためのプログラムを格納した記録媒体
JP2803090B2 (ja) Mpuシミュレーション方法及びmpuシミュレータ
Fritsi et al. A layout independent GUI test automation tool for applications developed in Magic/uniPaaS
JPH07295612A (ja) 高級言語シーケンス命令プログラム生成装置および汎用シーケンサ
Blewitt Eclipse Plug-in Development: Beginner's Guide