JPH1165875A - インサーキットエミュレータ - Google Patents

インサーキットエミュレータ

Info

Publication number
JPH1165875A
JPH1165875A JP9226768A JP22676897A JPH1165875A JP H1165875 A JPH1165875 A JP H1165875A JP 9226768 A JP9226768 A JP 9226768A JP 22676897 A JP22676897 A JP 22676897A JP H1165875 A JPH1165875 A JP H1165875A
Authority
JP
Japan
Prior art keywords
debug
memory area
program
debugging
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
JP9226768A
Other languages
English (en)
Inventor
Mariko Tsukamoto
真理子 塚本
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP9226768A priority Critical patent/JPH1165875A/ja
Publication of JPH1165875A publication Critical patent/JPH1165875A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】プログラムデバッグ時のメモリアクセスを減少
させ、デバッグ効率を向上させる。 【解決手段】コントロール部が、デバッガのコマンドに
対応してデバッグ情報の特定データを格納するデバッグ
用メモリ領域2と、このデバッグ用メモリ領域2をポイ
ントするアドレスをポインタ値として格納するポイント
レジスタ1とを備え、デバッガのコマンドに対応して、
予め、ポインタ値がポイントレジスタ1に設定され、デ
バッガのコマンドに対応して、デバッグ用メモリ領域2
内データが、デバッグ用メモリ領域2内アドレスに対応
したオフセット値およびポインタ値の加算値を参照して
アクセスされる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、インサーキットエ
ミュレータに関し、特に、プログラムデバッグ時のメモ
リアクセスが少ないインサーキットエミュレータに関す
る。
【0002】
【従来の技術】この種のインサーキットエミュレータ
は、マイクロプロセッサの機種ごとに用意され、このマ
イクロプロセッサを搭載したユーザシステムにおいてユ
ーザ開発のプログラムをデバッグするために用いられて
いる。たとえば、図4は、この従来のインサーキットエ
ミュレータおよびその周辺接続を示すブロック図であ
る。
【0003】図4を参照すると、この従来のインサーキ
ットエミュレータは、ユーザ開発のプログラムをシステ
ムメモリに格納するユーザシステムと、プログラムのデ
バッグを支援するデバッガを搭載するホストマシンとの
間に接続され、エミュレータ部,コントロール部を備
え、デバッガのコマンドに対応して、プログラムを任意
のタイミングで実行および停止し、プログラムで実行さ
れた各タスクの状態を示す情報をシステムメモリ上から
デバッグ情報として読み出す。
【0004】エミュレータ部は、一般に、ユーザシステ
ムに搭載されるマイクロプロセッサと同等に動作し内部
の各種制御信号および動作ステータスを外部出力する評
価用マイクロプロセッサを持ち、ユーザシステム内のマ
イクロプロセッサを代行しプログラムを実行する。
【0005】コントロール部は、デバッガのコマンドに
対応してエミュレータ部を制御しプログラムを任意のタ
イミングで実行および停止する。また、デバッガのコマ
ンドに対応して、プログラムで実行された各タスクの状
態を示す情報をシステムメモリ上からデバッグ情報とし
て読み出す。
【0006】図5は、この従来のインサーキットエミュ
レータを用いて、デバッガ管理下で、リアルタイムOS
を利用したアプリケーションが実行され、プログラムが
デバッグされる例を説明するための説明図である。
【0007】図5を参照すると、このリアルタイムOS
を利用したアプリケーションでは、4つのタスクが動作
し、各タスクの状態を示す情報は、各タスクの管理ブロ
ック11〜14に格納され、各タスク制御に用いられ
る。この例では、まず、ユーザシステム全体の制御に用
いられるシステム管理テーブル10の中に、1つ目のタ
スクの管理ブロック11を示すポインタが格納され、1
つ目のタスクの管理ブロック11の中に、2つ目のタス
クの管理ブロック12を示すポインタが格納される。同
様に、2つ目/3つ目のタスクの管理ブロック12,1
3の中に、3つ目/4つ目のタスクの管理ブロック1
3,14を示すポインタがそれぞれ格納される。
【0008】デバッグ時には、デバッガ管理下でプログ
ラム実行し、設定されたタイミングで中断しデバッガに
制御を移しデバッグ処理され、これらのサイクルが繰り
返される。このとき、多くのデバッガでは、デバッガ管
理下にデバッグテーブル9を持ち、デバッガのコマンド
に対応して、各タスクの管理ブロック11〜14に格納
された各タスクの状態を示す情報ST1〜ST4のメモ
リアドレスおよびラベルを記録する。
【0009】図6は、この従来のインサーキットエミュ
レータを用いて、デバッガ管理下でプログラムを実行し
デバッグするため、動作している4つのタスクの状態を
示す情報を読み出すデバッグ処理手順を示す流れ図であ
る。
【0010】まず、処理ステップS10において、1回
目読出しでデバッグテーブル9にデータが無い場合、処
理ステップS11に進む。処理ステップ11において、
システム管理テーブル10のあるメモリから1つ目のタ
スク管理ブロック11を指すポインタ値を読み出す。処
理ステップS12において、1つ目のタスクの状態を示
す情報ST1は、タスク管理ブロック11内の格納場所
アドレスであるオフセット値および上記ポインタ値の加
算値をメモリアドレスとして参照しメモリ内容を読み出
すことによって得られる。処理ステップS13におい
て、処理ステップS12のメモリ内容の読出し時に参照
されたメモリアドレスをデバッグテーブル9に記録す
る。処理ステップS14において、2つ目のタスク管理
ブロック12を指すポインタ値を1つ目のタスク管理ブ
ロック11から読み出す。処理ステップS15により、
ポインタ値がシステム管理テーブル10を指すまで、処
理ステップS12〜S14の処理を繰り返し、処理ステ
ップS12において各メモリ内容を読み出すことによ
り、各タスクの管理ブロック11〜14に格納された各
タスクの状態を示す情報ST1〜ST4が読み出され
る。
【0011】また、処理ステップS10において、2回
目以降の読出しでデバッグテーブル9にデータが有る場
合、処理ステップS16に進み、デバッグテーブル9か
らそれぞれのタスクの状態が格納されているメモリアド
レスを得て、処理ステップS17において、それぞれの
メモリ内容を読み出すことにより、各タスクの管理ブロ
ック11〜14に格納された各タスクの状態を示す情報
ST1〜ST4が読み出される。それぞれのタスクの状
態のデバッグを行うごとに、これらの作業を繰り返すこ
とによって行われる。
【0012】さらに、各タスクに関連した他情報の読出
しも、同様に、各タスクの管理ブロック中の必要情報を
格納しているメモリ内容を読み出すことによって行われ
る。
【0013】
【発明が解決しようとする課題】従来のインサーキット
エミュレータの問題点は、リアルタイムOSを用いたよ
うな多段のデータ構造を持つアプリケーションのデバッ
グを行う際、デバッグ効率が悪いことである。
【0014】その理由は、リアルタイムOSを用いたよ
うな多段のデータ構造を持つアプリケーションでは、デ
バッグ項目がポインタ渡しのチェーン構成になっている
場合が多く、1つの項目をデバッグする際にも、このチ
ェーン構成を辿りシステム上のメモリをアクセスする必
要があり、メモリアクセスを頻繁に行わなければならな
いためである。
【0015】したがって、本発明の目的は、リアルタイ
ムOSを用いたような多段のデータ構造を持つアプリケ
ーションのプログラムデバッグ時のメモリアクセスを減
少させ、デバッグ効率を向上させることにある。
【0016】
【課題を解決するための手段】そのため、本発明は、ユ
ーザ開発のプログラムをシステムメモリに格納するユー
ザシステムと前記プログラムのデバッグを支援するデバ
ッガを搭載するホストマシンとの間に接続され、前記ユ
ーザシステム内のプロセッサを代行し前記プログラムを
実行するエミュレータ部とこのエミュレータ部を制御す
るコントロール部とを備え、前記デバッガのコマンドに
対応して、前記プログラムを任意のタイミングで実行お
よび停止し、前記プログラムで実行された各タスクの状
態を示す情報をデバッグ情報として読み出すインサーキ
ットエミュレータにおいて、前記コントロール部が、前
記デバッガのコマンドに対応して前記デバッグ情報の特
定データを格納するデバッグ用メモリ領域と、このデバ
ッグ用メモリ領域をポイントするアドレスをポインタ値
として格納するポインタ手段とを備えている。
【0017】また、前記デバッガのコマンドに対応し
て、予め、前記ポインタ値が前記ポインタ手段に設定さ
れ、前記デバッガのコマンドに対応して、前記デバッグ
用メモリ領域内データが、前記デバッグ用メモリ領域内
アドレスに対応したオフセット値および前記ポインタ値
の加算値を参照してアクセスされる。
【0018】
【発明の実施の形態】次に、本発明について図面を参照
して説明する。図1は、本発明のインサーキットエミュ
レータの実施形態およびその周辺接続を示すブロック図
である。
【0019】図1を参照すると、この実施形態のインサ
ーキットエミュレータは、図5の従来のインサーキット
エミュレータと同じく、ユーザ開発のプログラムをシス
テムメモリに格納するユーザシステムと、プログラムの
デバッグを支援するデバッガを搭載するホストマシンと
の間に接続され、エミュレータ部,コントロール部を備
え、デバッガのコマンドに対応して、プログラムを任意
のタイミングで実行および停止し、プログラムで実行さ
れた各タスクの状態を示す情報をデバッグ情報として読
み出す。図5の従来のインサーキットエミュレータとの
相違点は、コントロール部がデバッグ用メモリ領域2,
ポイントレジスタ1を備えることにある。他の各ブロッ
クは、図5の従来のインサーキットエミュレータと同じ
であるので、重複説明を省略する。
【0020】デバッグ用メモリ領域2は、デバッガのコ
マンドに対応して、デバッグ情報の特定データを格納す
るメモリ領域である。このメモリ領域2は、システムメ
モリ内に確保されるメモリ領域、または、システムメモ
リ外の専用のメモリ領域として構成される。また、より
高速に連続アクセス可能なメモリにより構成することも
できる。
【0021】ポイントレジスタ1は、デバッグ用メモリ
領域2をポイントするアドレスをポインタ値として格納
するレジスタであり、デバッガのコマンドに対応して、
予め、ポインタ値が設定され、デバッガのコマンドに対
応して、デバッグ用メモリ領域内データが、デバッグ用
メモリ領域2内アドレスに対応したオフセット値および
ポインタ値の加算値を参照してアクセスされる。
【0022】図2は、この実施形態のインサーキットエ
ミュレータを用いて、デバッガ管理下で、リアルタイム
OSを利用したアプリケーションが実行され、プログラ
ムがデバッグされる例を説明するための説明図である。
【0023】図2を参照すると、このリアルタイムOS
を利用したアプリケーションでは、図5の従来技術と同
様に、4つのタスクが動作し、各タスクの状態を示す情
報は、各タスクの管理ブロック11〜14に格納され、
各タスク制御に用いられる。この例では、まず、ユーザ
システム全体の制御に用いられるシステム管理テーブル
10の中に、1つ目のタスクの管理ブロック11を示す
ポインタが格納され、1つ目のタスクの管理ブロック1
1の中に、2つ目のタスクの管理ブロック12を示すポ
インタが格納される。同様に、2つ目/3つ目のタスク
の管理ブロック12,13の中に、3つ目/4つ目のタ
スクの管理ブロック13,14を示すポインタがそれぞ
れ格納される。
【0024】デバッグ時には、デバッガ管理下でプログ
ラム実行し、設定されたタイミングで中断しデバッガに
制御を移しデバッグ処理され、これらのサイクルが繰り
返される。このとき、この実施形態では、デバッガ管理
下に、デバッグテーブル3,ポイントレジスタ1,デバ
ッグ用メモリ領域2をもつ。この実施形態のデバッグテ
ーブル3は、デバッガのコマンドに対応して、各タスク
の管理ブロック11〜14に格納された各タスクの状態
を示す情報のメモリアドレスおよびラベルと共に、デバ
ッグ用メモリ領域2のアクセス時のアドレスであるポイ
ントレジスタ1のポインタ値pregおよびオフセット
値1〜4の加算値preg+1〜preg+4を記録す
る。また、ポイントレジスタ1はポイント値pregを
格納し、デバッグ用メモリ領域2は各タスクのデバッグ
情報mem1〜mem4を格納する。
【0025】図3は、この実施形態のインサーキットエ
ミュレータを用いて、デバッガ管理下でプログラムを実
行しデバッグするため、動作している4つのタスクの状
態を示す情報を読み出すデバッグ処理手順を示す流れ図
である。
【0026】この実施形態のインサーキットエミュレー
タを用いてプログラムをデバッグするとき、まず、デバ
ッグ開始時の処理ステップS1において、デバッグ用メ
モリ領域2として確保されている領域を指すアドレスを
ポインタ値としてポイントレジスタ1に書き込む。
【0027】次に、処理ステップS2において、1回目
読出しでデバッグテーブル3にデータが無い場合、処理
ステップS3に進む。処理ステップS3〜S7におい
て、図5の従来の処理ステップS11〜S15と同様に
制御され、処理ステップS4において各メモリ内容を読
み出すことにより、各タスクの管理ブロック11〜14
に格納された各タスクの状態を示す情報ST1〜ST4
が読み出される。ここで、図5の従来の処理ステップS
11〜S15との相違点は、各処理ステップS5におい
て、処理ステップ4のメモリ内容の読出し時に参照され
たメモリアドレスをデバッグテーブル3に記録すると共
に、ポイントレジスタ1のポインタ値pregおよびオ
フセット値1〜4の加算値preg+1〜preg+4
を記録し、この加算値preg+1〜preg+4を参
照し各処理ステップ4で読み出された各メモリ内容をデ
バッグ用メモリ領域2にも各タスクのデバッグ情報me
m1〜mem4として書き込むことにある。
【0028】また、処理ステップS2において、2回目
以降の読出しでデバッグテーブル9にデータが有る場
合、処理ステップ8に進み、それぞれのタスクの状態を
示す情報がデバッグ情報として格納されているデバッグ
用メモリ領域2のアドレスをデバッグテーブル3から探
し出し、処理ステップS9において、これを参照しデバ
ッグ用メモリ領域2をアクセスすることにより、それぞ
れのタスクの状態を示す情報が読み出される。このと
き、デバッグ用メモリ領域2にこれらの情報が連続して
格納されているため、1回の連続メモリアクセスによ
り、これらの情報を得ることもでき、システムメモリ上
の各所に格納されているデータを頻繁にアクセスする必
要が無くなる。また、タスクの状態を示す情報がデバッ
グ用メモリ領域2に連続して格納されていない場合であ
っても、1回のメモリアクセスにより連続したデバッグ
用メモリ領域2に格納されている複数のタスク情報が得
られることが可能となり、タスクの状態を示す情報以外
の必要情報を得ることが可能となり、デバッグ効率が上
がる。
【0029】また、本実施形態のインサーキットエミュ
レータを用いた場合、デバッグ用メモリ領域2への書き
込み処理ステップが必要となる。しかし、リアルタイム
OSを利用したアプリケーションでは、通常、実行時に
状態変化するタスクは常に1つであるが、デバッグする
際は、全てのタスクの状態をデバッグする。このため、
書き込み処理ステップが1回増加しても、複数回のメモ
リ読み出しの減少により、デバッグ効率が向上する。
【0030】また、本実施形態のインサーキットエミュ
レータの変形例として、高速に連続アクセスが可能なメ
モリまたはレジスタなどをデバッグ用メモリ領域2とし
た場合、システム上のメモリを頻繁にアクセスすること
なく必要情報が得られ、且つ、デバッグ用メモリ領域2
のアクセス自体が高速になり、デバッグが高速となる。
【0031】さらに、本実施形態のインサーキットエミ
ュレータを用いて、上述のアプリケーションのデバッグ
を行なう場合、1回目読出しでタスクの状態を示す情報
を得る方法は同様であるが、デバッグ中に、デバッグテ
ーブル3に書かれたメモリに書き込み要求が有った際
は、システム上のメモリへの書き込みを行なわず、デバ
ッグ用メモリ領域2のみに値を書き込み、デバッグ終了
時に、デバッグテーブル3を参照して、デバッグ用メモ
リ領域2の値をシステム上のメモリにコピーすることも
できる。これにより、デバッグ中はデバッグに必要な情
報が、デバッグ用メモリ領域2のみに格納され、デバッ
グ用メモリ領域2へのアクセスで獲得が可能となる。こ
のため、デバッグ中は、アクセス・ネックとなるシステ
ム上のメモリをアクセスせず、デバッグ可能となり、デ
バッグ効率が向上する。
【0032】
【発明の効果】本発明によるインサーキットエミュレー
タは、デバッグ対象のソフトウェアがポインタ渡しのチ
ェーンになっているようなアプリケーションのデバッグ
においても、メモリ読み出しアクセス自体が減少し、さ
らに、高速に連続アクセスでき、デバッグ効率が向上す
るなどの効果がある。
【0033】その理由は、インサーキットエミュレータ
が、特定データ情報を格納するメモリ領域をポイントす
る手段を持つことにより、デバッグ時の必要な情報を特
定のデバッグ用メモリ領域にデバッグ情報として連続格
納することができ、システムメモリ上に点在するメモリ
内容を頻繁にアクセスする代わりにデバッグ用メモリ領
域をアクセスし、必要情報を獲得することが出来るから
である。
【図面の簡単な説明】
【図1】本発明のインサーキットエミュレータの実施形
態およびその周辺接続を示すブロック図である。
【図2】図1のインサーキットエミュレータを用いて、
デバッガ管理下でプログラムがデバッグされる例を説明
するための説明図である。
【図3】図1のインサーキットエミュレータを用いて、
デバッガ管理下で各タスクの状態を示す情報を読み出す
デバッグ処理手順を示す流れ図である。
【図4】従来のインサーキットエミュレータの実施形態
およびその周辺接続を示すブロック図である。
【図5】図4のインサーキットエミュレータを用いて、
デバッガ管理下でプログラムがデバッグされる例を説明
するための説明図である。
【図6】図4のインサーキットエミュレータを用いて、
デバッガ管理下で各タスクの状態を示す情報を読み出す
デバッグ処理手順を示す流れ図である。
【符号の説明】
1 ポイントレジスタ 2 デバッグ用メモリ領域 3,9 デバッグテーブル 10 システム管理テーブル 11〜14 各タスクの管理ブロック mem1〜mem4 各タスクのデバッグ情報 preg ポイントレジスタ1のポイント値 S1〜S19 処理ステップ ST1〜ST4 各タスクの状態を示す情報、また
は、そのラベル

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ユーザ開発のプログラムをシステムメモ
    リに格納するユーザシステムと前記プログラムのデバッ
    グを支援するデバッガを搭載するホストマシンとの間に
    接続され、前記ユーザシステム内のプロセッサを代行し
    前記プログラムを実行するエミュレータ部とこのエミュ
    レータ部を制御するコントロール部とを備え、前記デバ
    ッガのコマンドに対応して、前記プログラムを任意のタ
    イミングで実行および停止し、前記プログラムで実行さ
    れた各タスクの状態を示す情報をデバッグ情報として読
    み出すインサーキットエミュレータにおいて、前記コン
    トロール部が、前記デバッガのコマンドに対応して前記
    デバッグ情報の特定データを格納するデバッグ用メモリ
    領域と、このデバッグ用メモリ領域をポイントするアド
    レスをポインタ値として格納するポインタ手段とを備え
    ることを特徴とするインサーキットエミュレータ。
  2. 【請求項2】 前記デバッガのコマンドに対応して、予
    め、前記ポインタ値が前記ポインタ手段に設定され、前
    記デバッガのコマンドに対応して、前記デバッグ用メモ
    リ領域内データが、前記デバッグ用メモリ領域内アドレ
    スに対応したオフセット値および前記ポインタ値の加算
    値を参照してアクセスされる、請求項1記載のインサー
    キットエミュレータ。
JP9226768A 1997-08-22 1997-08-22 インサーキットエミュレータ Pending JPH1165875A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9226768A JPH1165875A (ja) 1997-08-22 1997-08-22 インサーキットエミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9226768A JPH1165875A (ja) 1997-08-22 1997-08-22 インサーキットエミュレータ

Publications (1)

Publication Number Publication Date
JPH1165875A true JPH1165875A (ja) 1999-03-09

Family

ID=16850316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9226768A Pending JPH1165875A (ja) 1997-08-22 1997-08-22 インサーキットエミュレータ

Country Status (1)

Country Link
JP (1) JPH1165875A (ja)

Similar Documents

Publication Publication Date Title
US5870607A (en) Method and apparatus for selective replay of computer programs
EP1125199B1 (en) Method of debugging a program thread
JP3432734B2 (ja) Dma制御装置及びdma制御方法
JPH1165875A (ja) インサーキットエミュレータ
JP4125053B2 (ja) ログ取得方法
JP2760228B2 (ja) キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
JPS60262251A (ja) マイクロプロセツサ開発支援装置
JPH0581087A (ja) プロセサのモニタ方式
JP2669300B2 (ja) プログラムトレース回路およびプログラムトレース方法
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JPH0447350A (ja) 主記憶読み出し応答制御方式
JP3590289B2 (ja) イベント検出回路
JPH04242455A (ja) プロセッサ間通信トレース回路
JPH07281924A (ja) トレース装置及びこれを備えたエミュレータ
JP2967741B2 (ja) Cpu互換性テスト装置
JPH03252731A (ja) マイクロプロセッサ
JPH01177644A (ja) デバック装置
JPH04328644A (ja) デバッグ支援装置
JPS59153247A (ja) デバツグ装置
JPS61123942A (ja) マイクロプロセツサ用デバツク装置
JPH0268636A (ja) デバック方式
JPH0293957A (ja) マイクロプロセッサ用デバッグ装置
JPS61217833A (ja) 演算処理装置
JPH05216666A (ja) スタック制御方法、及びエミュレータ
JPS6170644A (ja) プログラムデバク方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20010821