JP2669300B2 - プログラムトレース回路およびプログラムトレース方法 - Google Patents
プログラムトレース回路およびプログラムトレース方法Info
- Publication number
- JP2669300B2 JP2669300B2 JP5139735A JP13973593A JP2669300B2 JP 2669300 B2 JP2669300 B2 JP 2669300B2 JP 5139735 A JP5139735 A JP 5139735A JP 13973593 A JP13973593 A JP 13973593A JP 2669300 B2 JP2669300 B2 JP 2669300B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- function
- variable
- trace
- program
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
【0001】
【産業上の利用分野】本発明はプログラムをトレースす
るトレース回路および方法に関し、特に局所変数をトレ
ースする回路および方法に関する。
るトレース回路および方法に関し、特に局所変数をトレ
ースする回路および方法に関する。
【0002】
【従来の技術】従来のトレース回路500は、図5に示
す様にエバチップ1から出力されるアドレスバス3,デ
ータバス4,命令フェッチ反転データアクセスステータ
ス信号6,反転リード信号5および反転ライト信号7
を、反転リード信号5と反転ライト信号7とから作成し
たトレースストローブ信号10によりトレースメモリ2
に記録している。
す様にエバチップ1から出力されるアドレスバス3,デ
ータバス4,命令フェッチ反転データアクセスステータ
ス信号6,反転リード信号5および反転ライト信号7
を、反転リード信号5と反転ライト信号7とから作成し
たトレースストローブ信号10によりトレースメモリ2
に記録している。
【0003】一方、エバチップによっては上記信号の他
に内部レジスタへのライト時にライトしたレジスタを識
別する情報とライトした値を出力しているものがある。
に内部レジスタへのライト時にライトしたレジスタを識
別する情報とライトした値を出力しているものがある。
【0004】また、エバチップによっては、内部レジス
タが内部RAM空間にマッピングされていて、内部レジ
スタへのライト時にライトしたレジスタを識別する情報
が内部RAMアドレスとしてアドレスバスに出力され、
ライトした値が内部RAMへの書き込みデータとしてデ
ータバスに出力されるものがある。
タが内部RAM空間にマッピングされていて、内部レジ
スタへのライト時にライトしたレジスタを識別する情報
が内部RAMアドレスとしてアドレスバスに出力され、
ライトした値が内部RAMへの書き込みデータとしてデ
ータバスに出力されるものがある。
【0005】通常、C言語の様な高級言語では局所変数
はスタックス上に割りつけられていう。図7(a)およ
び図7(b)に、C言語のソースプログラムのリストを
示し、図7(c)および図7(d)にこれらをコンパイ
ルして作成したオブェクトのアセンブルリストを示す。
図6(a)は関数y()が関数x()から呼び出された
時のスタックの様子である。
はスタックス上に割りつけられていう。図7(a)およ
び図7(b)に、C言語のソースプログラムのリストを
示し、図7(c)および図7(d)にこれらをコンパイ
ルして作成したオブェクトのアセンブルリストを示す。
図6(a)は関数y()が関数x()から呼び出された
時のスタックの様子である。
【0006】図7(c)および図7(d)では各関数の
局所変数のベースのアドレスはベースポインタとなるh
1レジスタに格納され、局所変数へのアクセスはh1レ
ジスタによる相対アドレッシングで行なわれる様になっ
ている。局所変数へのアドレスは一意に確定したもので
はなく、関数が呼び出された時のスタックトップのアド
レスによって変化する。
局所変数のベースのアドレスはベースポインタとなるh
1レジスタに格納され、局所変数へのアクセスはh1レ
ジスタによる相対アドレッシングで行なわれる様になっ
ている。局所変数へのアドレスは一意に確定したもので
はなく、関数が呼び出された時のスタックトップのアド
レスによって変化する。
【0007】例えば、同じy()という関数であって
も、それが呼び出された時のスタックトップのアドレス
がOFF08hの場合(図6(b)参照)とOFF10
hの場合(図6(c)参照)とでは、局所変数c,d,
eおよびfのアドレスも8バイト異なる。
も、それが呼び出された時のスタックトップのアドレス
がOFF08hの場合(図6(b)参照)とOFF10
hの場合(図6(c)参照)とでは、局所変数c,d,
eおよびfのアドレスも8バイト異なる。
【0008】この様に局所変数のアドレスが一意に決っ
たものではなく変化するものであるということは、逆に
アドレスが同じであっても、そのアドレスに割り付けら
れる局所変数は変化するということでもある。
たものではなく変化するものであるということは、逆に
アドレスが同じであっても、そのアドレスに割り付けら
れる局所変数は変化するということでもある。
【0009】例えば、スタックトップがOFF04hの
時(図6(d)参照)に呼び出された関数x()の局所
変数aとスタックトップがOFF08hの時(図6
(e)参照)に呼び出された関数y()の局所変数e
は、どちらもOFF02hというアドレスになる。
時(図6(d)参照)に呼び出された関数x()の局所
変数aとスタックトップがOFF08hの時(図6
(e)参照)に呼び出された関数y()の局所変数e
は、どちらもOFF02hというアドレスになる。
【0010】
【発明が解決しようとする課題】しかしながら、上述の
性質をもつ局所変数を識別するためには、データアクセ
ス時のアドレスと、その時の局所変数のベースのアドレ
スと、その時のプログラム実行アドレスの3つが必要に
なる。
性質をもつ局所変数を識別するためには、データアクセ
ス時のアドレスと、その時の局所変数のベースのアドレ
スと、その時のプログラム実行アドレスの3つが必要に
なる。
【0011】従来のトレース回路では、変数を識別する
情報としてデータアクセス時のアドレスしかトレースメ
モリに記録していなかったため、局所変数へのアクセス
では、どの局所変数にアクセスしたかを識別しようとす
ると、トレースデータに対して手間のかかるデータ処理
をしなければならなかった。
情報としてデータアクセス時のアドレスしかトレースメ
モリに記録していなかったため、局所変数へのアクセス
では、どの局所変数にアクセスしたかを識別しようとす
ると、トレースデータに対して手間のかかるデータ処理
をしなければならなかった。
【0012】すなわち、その時のプログラム実行アドレ
スを得るためには、トレースデータを遡って最後にベー
スポインタであるh1レジスタに代入された値を調べな
けれはならない。
スを得るためには、トレースデータを遡って最後にベー
スポインタであるh1レジスタに代入された値を調べな
けれはならない。
【0013】さらに、トレースメモリが一杯になった場
合には、最古のトレースデータが最新のトレースデータ
で上書きされていくため、これらのデータが消されてし
まい、局所変数の識別が不可能になってしまう場合があ
るという問題点や、クオリファイトレースやセクション
トレースを行った場合には、これらのデータがトレース
対象外になってしまい、トレースメモリに記録されてい
ない場合もあり、この様な場合にも、局所変数の識別が
不可能になってしまうという問題点があった。
合には、最古のトレースデータが最新のトレースデータ
で上書きされていくため、これらのデータが消されてし
まい、局所変数の識別が不可能になってしまう場合があ
るという問題点や、クオリファイトレースやセクション
トレースを行った場合には、これらのデータがトレース
対象外になってしまい、トレースメモリに記録されてい
ない場合もあり、この様な場合にも、局所変数の識別が
不可能になってしまうという問題点があった。
【0014】したがって、従来のトレース回路では、デ
ータアクセスを局所変数と対応づけることは行われてお
らず、トレースデータを表示する場合にソースプログラ
ムでの局所変数名で表示されず、どの局所変数にアクセ
スしたのか分らないため、トレースされたデータがデバ
ッグの役に立たないという問題点もあった。本願発明の
目的は、データアクセスを局所変数と対応づけることに
より、ソースプログラムでの局所変数名を表示すること
ができ、どの局所変数にアクセスしたかが分かり、トレ
ースされたデータのでバッグに役立つトレース回路およ
びそのトレース方法を提供することにある。
ータアクセスを局所変数と対応づけることは行われてお
らず、トレースデータを表示する場合にソースプログラ
ムでの局所変数名で表示されず、どの局所変数にアクセ
スしたのか分らないため、トレースされたデータがデバ
ッグの役に立たないという問題点もあった。本願発明の
目的は、データアクセスを局所変数と対応づけることに
より、ソースプログラムでの局所変数名を表示すること
ができ、どの局所変数にアクセスしたかが分かり、トレ
ースされたデータのでバッグに役立つトレース回路およ
びそのトレース方法を提供することにある。
【0015】
【課題を解決するための手段】本発明のプログラムトレ
ース回路は、デバッグ対象のソースプログラムをコンパ
イルして得られたオブジェクトプログラムが局所変数を
レジスタ相対アドレッシングでアクセスし前記レジスタ
相対アドレッシングの場合のベースになるアドレスをプ
ロセッサ内部の所定のベースポインタに格納でき、前記
オブジェクトプログラムを実行し、前記ベースポインタ
の値が変化した時に前記ベースポインタの値と前記ベー
スポインタの値が変化したことを示す信号とを出力する
エバチップを有するプログラムトレース回路において、
前記ベースポインタの出力をラッチするベースポインタ
ラッチ回路とプログラム実行アドレスをラッチするプロ
グラム実行アドレスラッチ回路とを有し、前記エバチッ
プがデータアクセスを行った時に、前記ベースポインタ
の内容と前記プログラム実行アドレスラッチ回路の内容
とをアクセスしたアドレスとデータとステータスと共に
リアルタイムにトレースメモリに書き込む構成である。
また、本発明のプログラムトレース回路を用いてプログ
ラムトレース方法は、前記トレースメモリに記録された
アドレスとベースポインタの値から局所変数の変数オフ
セットを計算し、この変数オフセットと前記トレースメ
モリの中のプログラム実行アドレスとを使って前記ソー
スプログラム内の関数の関数名と前記関数の関数開始ア
ドレスと前記関数の関数終了アドレスと前記関数の局所
変数の局所変数名とこの局所変数のベースのアドレスか
らの変数オフセットと前記局所変数の変数サイズを格納
したデバッグ情報テーブルを検索し、前記トレースメモ
リに記録されたプログラム実行アドレスと前記デバッグ
情報テーブルの関数開始アドレスおよび関数終了アドレ
スから関数名を特定し、前記トレースメモリに記録され
たアドレスとベースポインタの値から計算した変数オフ
セットと前記デバッグ情報テーブルで見つかった前記関
数の局所変数の変数オフセットと前記局所変数の変数サ
イズから局所変数名を特定し、前記トレースメモリに記
録されたデータアクセス内容を局所変数と対応づけるこ
とを特徴とする。
ース回路は、デバッグ対象のソースプログラムをコンパ
イルして得られたオブジェクトプログラムが局所変数を
レジスタ相対アドレッシングでアクセスし前記レジスタ
相対アドレッシングの場合のベースになるアドレスをプ
ロセッサ内部の所定のベースポインタに格納でき、前記
オブジェクトプログラムを実行し、前記ベースポインタ
の値が変化した時に前記ベースポインタの値と前記ベー
スポインタの値が変化したことを示す信号とを出力する
エバチップを有するプログラムトレース回路において、
前記ベースポインタの出力をラッチするベースポインタ
ラッチ回路とプログラム実行アドレスをラッチするプロ
グラム実行アドレスラッチ回路とを有し、前記エバチッ
プがデータアクセスを行った時に、前記ベースポインタ
の内容と前記プログラム実行アドレスラッチ回路の内容
とをアクセスしたアドレスとデータとステータスと共に
リアルタイムにトレースメモリに書き込む構成である。
また、本発明のプログラムトレース回路を用いてプログ
ラムトレース方法は、前記トレースメモリに記録された
アドレスとベースポインタの値から局所変数の変数オフ
セットを計算し、この変数オフセットと前記トレースメ
モリの中のプログラム実行アドレスとを使って前記ソー
スプログラム内の関数の関数名と前記関数の関数開始ア
ドレスと前記関数の関数終了アドレスと前記関数の局所
変数の局所変数名とこの局所変数のベースのアドレスか
らの変数オフセットと前記局所変数の変数サイズを格納
したデバッグ情報テーブルを検索し、前記トレースメモ
リに記録されたプログラム実行アドレスと前記デバッグ
情報テーブルの関数開始アドレスおよび関数終了アドレ
スから関数名を特定し、前記トレースメモリに記録され
たアドレスとベースポインタの値から計算した変数オフ
セットと前記デバッグ情報テーブルで見つかった前記関
数の局所変数の変数オフセットと前記局所変数の変数サ
イズから局所変数名を特定し、前記トレースメモリに記
録されたデータアクセス内容を局所変数と対応づけるこ
とを特徴とする。
【0016】
【実施例】次に本発明について図面を参照して説明す
る。
る。
【0017】図1は本発明の第1の実施例の回路図であ
る。
る。
【0018】図1を参照すると、この実施例のトレース
回路100は、エバチップ1から内部レジスタへライト
した時に、どの内部レジスタへライトしたかを識別する
レジスタアドレス11とライトしたレジスタデータ12
と、内部レジスタへライトしたことを知らせる反転レジ
スタライト信号13が出力され、デコーダ19はレジス
タアドレス11が局所変数のベースのアドレスを保持す
るレジスタ(例えばh1レジスタ)と一致した時に一致
信号15を出力し、レジスタデータ12は一致信号15
と反転レジスタライト信号13から作成したストローブ
信号16でベースポインタラッチ20にラッチされる構
成である。さらに、このトレース回路100は、エバチ
ップ1から出力されたアドレスバス3の内容は命令フェ
ッチ反転データアクセスステータス信号6と反転リード
信号5から作成したフェッチストローブ信号8でプログ
ラム実行アドレスラッチ18にラッチされ、プログラム
実行アドレスラッチ18の出力14とベースポインタラ
ッチ20の出力17はトレースメモリ2に入力され、ア
ドレスバス3およびデータバス4などと共にトレースメ
モリ2に書き込まれる構成である。
回路100は、エバチップ1から内部レジスタへライト
した時に、どの内部レジスタへライトしたかを識別する
レジスタアドレス11とライトしたレジスタデータ12
と、内部レジスタへライトしたことを知らせる反転レジ
スタライト信号13が出力され、デコーダ19はレジス
タアドレス11が局所変数のベースのアドレスを保持す
るレジスタ(例えばh1レジスタ)と一致した時に一致
信号15を出力し、レジスタデータ12は一致信号15
と反転レジスタライト信号13から作成したストローブ
信号16でベースポインタラッチ20にラッチされる構
成である。さらに、このトレース回路100は、エバチ
ップ1から出力されたアドレスバス3の内容は命令フェ
ッチ反転データアクセスステータス信号6と反転リード
信号5から作成したフェッチストローブ信号8でプログ
ラム実行アドレスラッチ18にラッチされ、プログラム
実行アドレスラッチ18の出力14とベースポインタラ
ッチ20の出力17はトレースメモリ2に入力され、ア
ドレスバス3およびデータバス4などと共にトレースメ
モリ2に書き込まれる構成である。
【0019】次に、本発明の第1の実施例のトレース回
路の動作およびトレース方法を説明する。
路の動作およびトレース方法を説明する。
【0020】図2(a)はトレースメモリの内様を模式
的に示したものであり、本図では説明を簡単にするため
にデータアクセス時の情報のみ示してある。
的に示したものであり、本図では説明を簡単にするため
にデータアクセス時の情報のみ示してある。
【0021】トレースメモリにはアドレス、データ、ス
テータス、ベースポインタおよびプログラム実行アドレ
スが記憶されている。図2(b)はCコンパイラによっ
て生成されたデバッグ情報のテーブルを模試的に示した
ものである。テーブルには関数名、関数開始アドレスお
よび関数終了アドレスがあり、各関数ごとに関数に含ま
れる変数名,変数オフセットおよび変数サイズのテーブ
ルを持っている。
テータス、ベースポインタおよびプログラム実行アドレ
スが記憶されている。図2(b)はCコンパイラによっ
て生成されたデバッグ情報のテーブルを模試的に示した
ものである。テーブルには関数名、関数開始アドレスお
よび関数終了アドレスがあり、各関数ごとに関数に含ま
れる変数名,変数オフセットおよび変数サイズのテーブ
ルを持っている。
【0022】図2(c)は、本発明のトレースメモリの
内容から局所変数を識別する方法を示したものである。
内容から局所変数を識別する方法を示したものである。
【0023】図2(c)を参照すると、局所変数の識別
は、まず、トレースメモリ中のプログラム実行アドレス
が関数の開始アドレスと終了アドレスの間にあるかどう
かを調べ、データアクセスを行なった関数を特定する。
は、まず、トレースメモリ中のプログラム実行アドレス
が関数の開始アドレスと終了アドレスの間にあるかどう
かを調べ、データアクセスを行なった関数を特定する。
【0024】次に、アドレスの値からベースポインタの
値を引いて変数オフセットを計算する。先ほど特定した
関数の局所変数の中から、計算した変数オフセットの値
が、テーブル上の変数オフセットと変数オフセットに変
数サイズを加えた範囲内に含まれるものを探し、局所変
数を識別する。
値を引いて変数オフセットを計算する。先ほど特定した
関数の局所変数の中から、計算した変数オフセットの値
が、テーブル上の変数オフセットと変数オフセットに変
数サイズを加えた範囲内に含まれるものを探し、局所変
数を識別する。
【0025】次に、本発明の第2の実施例のトレース回
路を説明する。
路を説明する。
【0026】図3を参照すると、本発明の第2の実施例
のトレース回路200は、図4に示す内部レジスタが内
部RAM空間にマッピングされているエバチップ1は8
ビットのデータバス4と16ビットのアドレスバス3を
持ち、レジスタへライトした時はレジスタアドレスが内
部RAMアドレスとしてアドレスバス3に出力され、レ
ジスタデータが内部RAMデータとしてデータバス4に
出力される構成である。さらに、このトレース回路20
0は、データバス4が8ビットのため、局所変数のベー
スのアドレスを保持するレジスタ(例えばh1レジス
タ)へのライトは上位側(hレジスタ)へのライトと下
位側(1レジスタ)へのライト2回に分けて出力される
構成である。
のトレース回路200は、図4に示す内部レジスタが内
部RAM空間にマッピングされているエバチップ1は8
ビットのデータバス4と16ビットのアドレスバス3を
持ち、レジスタへライトした時はレジスタアドレスが内
部RAMアドレスとしてアドレスバス3に出力され、レ
ジスタデータが内部RAMデータとしてデータバス4に
出力される構成である。さらに、このトレース回路20
0は、データバス4が8ビットのため、局所変数のベー
スのアドレスを保持するレジスタ(例えばh1レジス
タ)へのライトは上位側(hレジスタ)へのライトと下
位側(1レジスタ)へのライト2回に分けて出力される
構成である。
【0027】さらに、デコーダ25はアドレスバス3が
上位側または下位側のレジスタアドレスと一致した時
に、上位側一致信号21と下位側一致信号22を出力
し、上記2つの一致信号と反転内部RAMライト信号9
から上位側ストローブ信号23と下記側ストローブ信号
24が作成され、これらの信号により、データバス4の
信号が上位側ベースアドレスラッチ26または下位側ベ
ースアドレスラッチ27にラッチされる。一方、プログ
ラム実行アドレスラッチ18の動作は第1の実施例の動
作と同じである。
上位側または下位側のレジスタアドレスと一致した時
に、上位側一致信号21と下位側一致信号22を出力
し、上記2つの一致信号と反転内部RAMライト信号9
から上位側ストローブ信号23と下記側ストローブ信号
24が作成され、これらの信号により、データバス4の
信号が上位側ベースアドレスラッチ26または下位側ベ
ースアドレスラッチ27にラッチされる。一方、プログ
ラム実行アドレスラッチ18の動作は第1の実施例の動
作と同じである。
【0028】こうして得られたプログラム実行アドレス
ラッチ18の出力14とベースポインタラッチ(上位側
26と下位側27)の出力17はトレースメモリ2に入
力され、第1の実施例と同じくトレースメモリ2に書き
込まれる。
ラッチ18の出力14とベースポインタラッチ(上位側
26と下位側27)の出力17はトレースメモリ2に入
力され、第1の実施例と同じくトレースメモリ2に書き
込まれる。
【0029】
【発明の効果】以上、説明した様に本発明は、ベースポ
インタの値とプログラム実行アドレスの値をアクセスし
たアドレスやデータやステータスと共にトレースメモリ
に書き込むため、容易にトレースメモリに記録されたデ
ータアクセス内容を局所変数と対応づけることができ
る。
インタの値とプログラム実行アドレスの値をアクセスし
たアドレスやデータやステータスと共にトレースメモリ
に書き込むため、容易にトレースメモリに記録されたデ
ータアクセス内容を局所変数と対応づけることができ
る。
【0030】また、トレースメモリが一杯になった場
合、ならびに、クオリファイトレースまたはセクション
トレースを行っている場合でも必ず局所変数を識別でき
るため、トレースデータを表示する場合にソースプログ
ラムでの局所変数名で表示することができ、デバッグの
効率が向上するという効果を有する。
合、ならびに、クオリファイトレースまたはセクション
トレースを行っている場合でも必ず局所変数を識別でき
るため、トレースデータを表示する場合にソースプログ
ラムでの局所変数名で表示することができ、デバッグの
効率が向上するという効果を有する。
【図1】本発明の第1の実施例のトレース回路の回路図
である。
である。
【図2】局所変数の識別方法を説明する図で、(a)は
トレースメモリの内容の模式図を示し、(b)はデバッ
グ情報のテーブルの模式図を示し、(c)は局所変数の
識別方法のフローを示す図である。
トレースメモリの内容の模式図を示し、(b)はデバッ
グ情報のテーブルの模式図を示し、(c)は局所変数の
識別方法のフローを示す図である。
【図3】本発明の第2の実施例のトレース回路の回路図
である。
である。
【図4】内部レジスタが内部RAMにマッピングされて
いる例を示す図である。
いる例を示す図である。
【図5】従来例のトレース回路の回路図である。
【図6】C言語のスタックの例を示す図である。
【図7】C言語のソースプログラムの例を示す図であ
り、(a)および(b)はC言語のソースプログラムの
例を示す図であり(c)および(d)は(a)および
(b)に示すC言語のソースプログラムをコンパイルし
た時のアセンブルリストを説明する図である。
り、(a)および(b)はC言語のソースプログラムの
例を示す図であり(c)および(d)は(a)および
(b)に示すC言語のソースプログラムをコンパイルし
た時のアセンブルリストを説明する図である。
1 エバチップ 2 トレースメモリ 3 アドレスバス 4 データバス 5 反転リード信号 6 命令フェッチ反転データアクセスステータス信号 7 反転ライト信号 8 フェッチストローブ信号 9 反転内部RAMライト信号 10 トレースストローブ信号 11 レジスタアドレス 12 レジスタデータ 13 反転レジスタライト 14 プログラム実行アドレスラッチ 15 レジスタアドレス一致信号 16 ベースポインタラッチストローブ信号 17 ベースポインタラッチ出力 18 プログラム実行アドレスラッチ 19 デコーダ 20 ベースポインタラッチ 21 上位側一致信号 22 下位側一致信号 23 上位側ストローブ信号 24 下位側ストラーブ信号 25 デコーダ 26 上位側ベースポインタラッチ 27 下位側ベースポインタラッチ 100,200,500 トレース回路
フロントページの続き (56)参考文献 特開 平1−137339(JP,A) 特開 平4−350737(JP,A) 特開 平4−190430(JP,A) 特開 平4−97446(JP,A) BORLAND INTERNATI ONAL著 「TURBO DEBUG GER 3.0 ユーザーズガイド」、 (平4−4−20) ボーランド株式会 社、P.65−68
Claims (2)
- 【請求項1】 デバッグ対象のソースプログラムをコン
パイルして得られたオブジェクトプログラムが局所変数
をレジスタ相対アドレッシングでアクセスし前記レジス
タ相対アドレッシングの場合のベースになるアドレスを
プロセッサ内部の所定のレジスタ(以下、ベースポイン
タと記述する)に格納でき、前記オブジェクトプログラ
ムを実行し、前記ベースポインタの値が変化した時に前
記ベースポインタの値と前記ベースポインタの値が変化
したことを示す信号とを出力する評価用プロセッサ(以
下、エバチップと記述する)を有するプログラムトレー
ス回路において、 前記ベースポインタの出力をラッチするベースポインタ
ラッチ回路とプログラム実行アドレスをラッチするプロ
グラム実行アドレスラッチ回路とを有し、前記エバチッ
プがデータアクセスを行った時に、前記ベースポインタ
の内容と前記プログラム実行アドレスラッチ回路の内容
とをアクセスしたアドレスとデータとステータスと共に
リアルタイムにトレースメモリに書き込むことを特徴と
するプログラムトレース回路。 - 【請求項2】 前記トレースメモリに記録されたアドレ
スとベースポインタの値から局所変数の変数オフセット
を計算し、 この変数オフセットと前記トレースメモリの中のプログ
ラム実行アドレスとを使って前記ソースプログラム内の
関数の関数名と前記関数の関数開始アドレスと前記関数
の関数終了アドレスと前記関数の局所変数の局所変数名
とこの局所変数のベースのアドレスからの変数オフセッ
トと前記局所変数の変数サイズを格納したデバッグ情報
テーブルを検索し、 前記トレースメモリに記録されたプログラム実行アドレ
スと前記デバッグ情報テーブルの関数開始アドレスおよ
び関数終了アドレスから関数名を特定し、 前記トレースメモリに記録されたアドレスとベースポイ
ンタの値から計算した変数オフセットと前記デバッグ情
報テーブルで見つかった前記関数の局所変数の変数オフ
セットと前記局所変数の変数サイズから局所変数名を特
定し、 前記トレースメモリに記録されたデータアクセス内容を
局所変数と対応づけることを特徴とする請求項1記載の
プログラムトレース回路を用いたプログラムトレース方
法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5139735A JP2669300B2 (ja) | 1993-06-11 | 1993-06-11 | プログラムトレース回路およびプログラムトレース方法 |
EP94108954A EP0628909A3 (en) | 1993-06-11 | 1994-06-10 | Program tracing circuit and program tracing method. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5139735A JP2669300B2 (ja) | 1993-06-11 | 1993-06-11 | プログラムトレース回路およびプログラムトレース方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06348540A JPH06348540A (ja) | 1994-12-22 |
JP2669300B2 true JP2669300B2 (ja) | 1997-10-27 |
Family
ID=15252162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5139735A Expired - Fee Related JP2669300B2 (ja) | 1993-06-11 | 1993-06-11 | プログラムトレース回路およびプログラムトレース方法 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0628909A3 (ja) |
JP (1) | JP2669300B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014147742A1 (ja) * | 2013-03-19 | 2014-09-25 | 富士通株式会社 | エラー分析方法、情報処理装置およびエラー分析プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5127103A (en) * | 1987-10-14 | 1992-06-30 | North American Philips Corporation | Real-time tracing of dynamic local data in high level languages in the presence of process context switches |
JPH01137339A (ja) * | 1987-11-25 | 1989-05-30 | Mitsubishi Electric Corp | マイクロプロセッサ |
DE69033759T2 (de) * | 1990-01-04 | 2002-05-08 | Nat Semiconductor Corp | Vorrichtung die die Beobachtung interner speicherzugeordneten Register ermöglicht |
JPH0497446A (ja) * | 1990-08-15 | 1992-03-30 | Nec Ibaraki Ltd | ファームウェアトレーサによるレジスタトレース回路 |
JPH04190430A (ja) * | 1990-11-26 | 1992-07-08 | Mitsubishi Electric Corp | ソフトウェア開発用エミュレータ |
JPH04350737A (ja) * | 1991-05-29 | 1992-12-04 | Nec Corp | マイクロコンピュータ |
-
1993
- 1993-06-11 JP JP5139735A patent/JP2669300B2/ja not_active Expired - Fee Related
-
1994
- 1994-06-10 EP EP94108954A patent/EP0628909A3/en not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
BORLAND INTERNATIONAL著 「TURBO DEBUGGER 3.0 ユーザーズガイド」、(平4−4−20) ボーランド株式会社、P.65−68 |
Also Published As
Publication number | Publication date |
---|---|
EP0628909A3 (en) | 1996-01-24 |
JPH06348540A (ja) | 1994-12-22 |
EP0628909A2 (en) | 1994-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7237149B2 (en) | Method and apparatus for qualifying debug operation using source information | |
US20040019774A1 (en) | Processor device and information processing device, compiling device, and compiling method using said processor device | |
US20050273666A1 (en) | Information processing apparatus and test method for programs | |
US20090249304A1 (en) | Code Instrumentation Method and Code Instrumentation Apparatus | |
US5197134A (en) | Pipeline processor for performing write instruction by referring to cache memory search result obtained during idling state of operand reading cycle | |
JP2669300B2 (ja) | プログラムトレース回路およびプログラムトレース方法 | |
JPS5987566A (ja) | メモリアクセス検出方式 | |
US20020199174A1 (en) | Tool for converting .MAP file formats | |
JP2001175500A (ja) | インサーキットエミュレータのトレース方法、トレース手順を記録した記録媒体およびトレース回路 | |
JP3379675B2 (ja) | 逆実行デバッグシステム | |
JP2591432B2 (ja) | トレース装置 | |
JPH0581087A (ja) | プロセサのモニタ方式 | |
JP2915944B2 (ja) | カバレージ測定方法及びマイクロコンピュータ | |
JPH0724030B2 (ja) | デバック装置 | |
JP2795309B2 (ja) | プロファイラ用コード追加方式 | |
JPH1165875A (ja) | インサーキットエミュレータ | |
JP2002196976A (ja) | フラッシュメモリ搭載icカードにおけるメモリアクセス制御方法および装置並びにプログラム記憶媒体 | |
JP2570407B2 (ja) | プログラマブル・コントローラ | |
JP3428253B2 (ja) | シーケンサ | |
JPS6286442A (ja) | デ−タ処理装置 | |
JPH04242455A (ja) | プロセッサ間通信トレース回路 | |
JPH02207345A (ja) | マイクロプロセッサの命令実行過程のサンプル方法 | |
JPH05289908A (ja) | プログラムトレーサ | |
JPH03113659A (ja) | キャッシュメモリ試験方法 | |
JPH05197596A (ja) | トレーサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970603 |
|
LAPS | Cancellation because of no payment of annual fees |