JPH04317142A - マイクロコンピュータのプログラム・デバッグ装置 - Google Patents

マイクロコンピュータのプログラム・デバッグ装置

Info

Publication number
JPH04317142A
JPH04317142A JP3084217A JP8421791A JPH04317142A JP H04317142 A JPH04317142 A JP H04317142A JP 3084217 A JP3084217 A JP 3084217A JP 8421791 A JP8421791 A JP 8421791A JP H04317142 A JPH04317142 A JP H04317142A
Authority
JP
Japan
Prior art keywords
program
nesting level
signal
execution
microcomputer
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.)
Granted
Application number
JP3084217A
Other languages
English (en)
Other versions
JP2625272B2 (ja
Inventor
Junichi Sato
純一 佐藤
Koichi Yoshida
孝一 吉田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3084217A priority Critical patent/JP2625272B2/ja
Publication of JPH04317142A publication Critical patent/JPH04317142A/ja
Application granted granted Critical
Publication of JP2625272B2 publication Critical patent/JP2625272B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デバッグ対象プログラ
ムのネスティングレベルが所定の比較値を越えるかどう
かをリアルタイムかつ正確に検査する機能を備えた、マ
イクロコンピュータのプログラム・デバッグ装置に関す
るものである。
【0002】
【従来の技術】マイクロコンピュータ用のプログラムに
おいて、ネスティングレベルは、サブルーチンコールの
実行、システムコールの実行、割込み・例外の発生等に
よって深くなり、リターン命令の実行時に浅くなる。た
だし、例えばハードウェア上の制限からネスティングレ
ベルの深さには所定の限界があるので、デバッグ時にネ
スティングレベルが限界値を越えるかどうかを予め検査
しておく必要がある。
【0003】従来のネスティングレベルの管理方法とし
ては、■  ネスティングレベルが限界値を越えないよ
うプログラム作成時に予め考慮しておく、■  プログ
ラムの机上デバッグによりネスティングレベルを確認す
る、■  エミュレータ等のプログラム・デバッグ装置
を用いてデバッグ対象プログラムを実行し、適宜該プロ
グラムの実行を強制的に中断(ブレイク)し、そのとき
のスタックポインタの内容に基づいてスタックの深さを
調べ、このスタックの深さからネスティングレベルを算
出する、■  ネスティングレベルの確認のためのデバ
ッグ用プログラムをデバッグ対象プログラムに挿入して
実行し、このデバッグ用プログラムを通してネスティン
グレベルを確認する、といったものがあった。
【0004】
【発明が解決しようとする課題】上記■、■の方法では
、サブルーチンコールやシステムコールへの対応は可能
であるが、非同期に発生する割込み・例外を含めたネス
ティングレベルの管理が難しい。また、数え落し等の人
的ミスのためにネスティングレベルを正確には把握でき
ない問題があった。
【0005】上記■の方法では、デバッグ対象プログラ
ムの実行を中断しなければスタックポインタの内容を確
認できないので、該プログラムのリアルタイム実行中の
ネスティングレベルのリアルタイム検査は不可能であっ
た。
【0006】上記■の方法では、デバッグ用プログラム
を挿入した分だけ使用メモリ容量が増えてしまい、また
元のデバッグ対象プログラムのリアルタイム実行のデバ
ッグにならなくなってしまう。この点は、特に機器組込
み用の1チップ・マイクロコンピュータで問題となる。
【0007】本発明は、以上の点に鑑みてなされたもの
であって、デバッグ対象プログラムのリアルタイム実行
中に、サブルーチンコールの実行、システムコールの実
行、割込み・例外の発生等のネスティングレベル変更要
因の区別なく、該デバッグ対象プログラムのネスティン
グレベルが所定の比較値を越えるかどうかをリアルタイ
ムかつ正確に検査する機能を備えたマイクロコンピュー
タのプログラム・デバッグ装置を提供することを目的と
する。
【0008】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、デバッグ対象プログラムのリアルタイ
ム実行中にネスティングレベルの変更のつどカウント値
が増減するネスティングレベル・カウンタを設け、該カ
ウント値が所定の比較値を越えたときにオーバーネステ
ィング信号をリアルタイムに出力する構成を採用したも
のである。
【0009】具体的に説明すると、請求項1の発明は、
ネスティング構造のデバッグ対象プログラムを実行する
ためのマイクロコンピュータ・コアと、マイクロコンピ
ュータ・コアによってデバッグ対象プログラムのネステ
ィングレベルが深くなるように変更されたときにカウン
ト値を増加又は減少の方向に変更し、かつマイクロコン
ピュータ・コアによってネスティングレベルが浅くなる
ように変更されたときにカウント値を前記方向とは逆方
向に変更するネスティングレベル・カウンタと、デバッ
グ対象プログラムのネスティングレベルの比較値が設定
された比較値設定レジスタと、ネスティングレベル・カ
ウンタのカウント値と比較値設定レジスタに設定された
比較値との大小比較を行ない、前記カウント値が前記比
較値を越えたときにオーバーネスティング信号を出力す
るネスティングレベル比較手段とを備えた構成を採用し
たものである。
【0010】請求項2の発明は、前記ネスティングレベ
ル・カウンタが、マイクロコンピュータ・コアから出力
されるサブルーチンコールの実行を示す信号、システム
コールの実行を示す信号又は割込み・例外の発生を示す
信号によりカウント値を増加又は減少の方向に変更し、
かつマイクロコンピュータ・コアから出力されるリター
ン命令の実行を示す信号によりカウント値を前記方向と
は逆方向に変更する構成を採用したものである。
【0011】請求項3の発明は、マルチタスク構成(複
数のタスクの実行をタスク毎に独立して行なえるハード
ウェア構成)のマイクロコンピュータのプログラム・デ
バッグに対応可能とすべく、複数のタスクを有するネス
ティング構造のデバッグ対象プログラムを実行するため
のマイクロコンピュータ・コアと、該タスクの数と同じ
数だけ設けられ、該複数のタスクのうちマイクロコンピ
ュータ・コアの実行中のタスクに対応して該マイクロコ
ンピュータ・コアにより1つが選択される複数のネステ
ィングレベル・カウンタと、デバッグ対象プログラムの
ネスティングレベルの比較値が設定された比較値設定レ
ジスタとを備えたものであって、選択されたネスティン
グレベル・カウンタは、実行中のタスクについてマイク
ロコンピュータ・コアから出力されるサブルーチンコー
ルの実行を示す信号、システムコールの実行を示す信号
又は割込み・例外の発生を示す信号によりカウント値を
増加又は減少の方向に変更し、かつ実行中のタスクにつ
いてマイクロコンピュータ・コアから出力されるリター
ン命令の実行を示す信号によりカウント値を前記方向と
は逆方向に変更するものである。しかも、複数のネステ
ィングレベル・カウンタを設けたことに対応して、該複
数のネスティングレベル・カウンタの各々のカウント値
と比較値設定レジスタに設定された比較値との大小比較
を行ない、いずれかのネスティングレベル・カウンタの
カウント値が前記比較値を越えたときにオーバーネステ
ィング信号を出力するネスティングレベル比較手段をさ
らに備えた構成を採用したものである。
【0012】請求項4の発明は、デバッグ対象プログラ
ムのネスティングレベルが所定の比較値より深くなった
ときに該プログラムのリアルタイム実行を中断できるよ
うに、ネスティングレベル比較手段からオーバーネステ
ィング信号の出力を受けたときにマイクロコンピュータ
・コアに対してデバッグ対象プログラムの実行を中断さ
せるためのブレイク要求信号を出力するブレイク制御手
段をさらに備えた構成を採用したものである。
【0013】請求項5の発明は、ネスティングレベルが
所定の比較値より深くなったときにシングルステップ実
行を抑制する機能を実現すべく、次のようなシングルス
テップ実行制御手段をさらに備えたものである。すなわ
ち、マイクロコンピュータ・コアがデバッグ対象プログ
ラムの1命令を実行する毎にネスティングレベル比較手
段からのオーバーネスティング信号の出力の有無を調べ
、オーバーネスティング信号の出力がないときはデバッ
グ対象プログラムの実行を中断させるためにマイクロコ
ンピュータ・コアに対してシングルステップ実行要求信
号を出力し、オーバーネスティング信号の出力を受けた
ときはデバッグ対象プログラムの実行を継続させるよう
にマイクロコンピュータ・コアに対するシングルステッ
プ実行要求信号を出力しないシングルステップ実行制御
手段をさらに備えた構成を採用したものである。
【0014】
【作用】請求項1の発明によれば、マイクロコンピュー
タ・コアがデバッグ対象プログラムをリアルタイム実行
するうちに、ネスティングレベルの変更のつどネスティ
ングレベル・カウンタのカウント値がリアルタイムに増
減する。
【0015】例えばネスティングレベルが深くなる方向
に変更された場合にネスティングレベル・カウンタのカ
ウント値を増加(カウントアップ)させるときは、逆に
ネスティングレベルが浅くなる方向に変更された場合に
該カウント値を減少(カウントダウン)させる。この場
合、ネスティングレベル比較手段は、ネスティングレベ
ル・カウンタのカウント値と比較値設定レジスタに設定
された比較値との大小比較を常に行ない、前記カウント
値が前記比較値よりも大きくなったときにオーバーネス
ティング信号を出力する。
【0016】逆にネスティングレベルが深くなる方向に
変更された場合にネスティングレベル・カウンタのカウ
ント値を減少(カウントダウン)させるときは、ネステ
ィングレベルが浅くなる方向に変更された場合に該カウ
ント値を増加(カウントアップ)させる。この場合にも
、ネスティングレベル比較手段は、ネスティングレベル
・カウンタのカウント値と比較値設定レジスタに設定さ
れた比較値との大小比較を常に行なう。ただし、ネステ
ィングレベル・カウンタのカウント値が比較値よりも小
さくなったときにオーバーネスティング信号を出力する
【0017】以上のネスティングレベル比較手段からの
オーバーネスティング信号の出力の有無により、デバッ
グ対象プログラムのネスティングレベルが所定の比較値
を越えたかどうかをリアルタイムかつ正確に把握するこ
とができる。
【0018】請求項2の発明によれば、ネスティングレ
ベル・カウンタは、マイクロコンピュータ・コアから出
力されるサブルーチンコールの実行を示す信号、システ
ムコールの実行を示す信号又は割込み・例外の発生を示
す信号を受けたことによってデバッグ対象プログラムの
ネスティングレベルが深くなる方向に変更されたことを
知り、カウント値を増加又は減少の方向に変更する。一
方、ネスティングレベル・カウンタは、同様にマイクロ
コンピュータ・コアから出力されるリターン命令の実行
を示す信号を受けたことによってデバッグ対象プログラ
ムのネスティングレベルが浅くなる方向に変更されたこ
とを知り、カウント値を前記方向とは逆方向に変更する
。この場合にもネスティングレベル比較手段は、ネステ
ィングレベル・カウンタのカウント値と比較値設定レジ
スタに設定された比較値との大小比較を常に行ない、前
記カウント値が前記比較値を越えたときにオーバーネス
ティング信号を出力する。したがって、このオーバーネ
スティング信号の出力の有無により、デバッグ対象プロ
グラムのネスティングレベルが所定の比較値を越えたか
どうかをリアルタイムかつ正確に把握することができる
【0019】請求項3の発明によれば、タスク数と同数
のネスティングレベル・カウンタは、マイクロコンピュ
ータ・コアの実行中のタスクに対応して該マイクロコン
ピュータ・コアにより1つが選択される。選択されたネ
スティングレベル・カウンタは、実行中のタスクについ
てマイクロコンピュータ・コアから出力されるサブルー
チンコールの実行を示す信号、システムコールの実行を
示す信号又は割込み・例外の発生を示す信号によりカウ
ント値を増加又は減少の方向に変更し、かつ実行中のタ
スクについてマイクロコンピュータ・コアから出力され
るリターン命令の実行を示す信号によりカウント値を前
記方向とは逆方向に変更する。ネスティングレベル比較
手段は、複数のネスティングレベル・カウンタの各々の
カウント値と比較値設定レジスタに設定された比較値と
の大小比較を行ない、いずれかのネスティングレベル・
カウンタのカウント値が前記比較値を越えたときにオー
バーネスティング信号を出力する。したがって、このオ
ーバーネスティング信号の出力の有無により、マルチタ
スク構成のマイクロコンピュータに関するデバッグ対象
プログラムのネスティングレベルが所定の比較値を越え
たかどうかをリアルタイムかつ正確に把握することがで
きる。
【0020】請求項4の発明によれば、ブレイク制御手
段は、ネスティングレベル比較手段からオーバーネステ
ィング信号の出力を受けたときにマイクロコンピュータ
・コアに対してブレイク要求信号を出力する。マイクロ
コンピュータ・コアは、このブレイク要求信号を受けて
デバッグ対象プログラムのリアルタイム実行を中断する
。つまり、デバッグ対象プログラムのネスティングレベ
ルが所定の比較値より深くなったときに該プログラムの
リアルタイム実行を中断できる。このプログラム中断時
点でネスティングレベル・カウンタのカウント値を読出
すことも可能である。
【0021】請求項5の発明によれば、シングルステッ
プ実行制御手段は、マイクロコンピュータ・コアがデバ
ッグ対象プログラムの1命令を実行する毎にネスティン
グレベル比較手段からのオーバーネスティング信号の出
力の有無を調べ、オーバーネスティング信号の出力がな
いときはマイクロコンピュータ・コアに対してシングル
ステップ実行要求信号を出力してデバッグ対象プログラ
ムの実行を中断させるけれども、オーバーネスティング
信号の出力を受けたときはデバッグ対象プログラムの実
行を継続させるようにマイクロコンピュータ・コアに対
するシングルステップ実行要求信号を出力しない。つま
り、ネスティングレベルが所定の比較値より深くなった
ときにシングルステップ実行を抑制する機能が実現でき
る。これにより、例えばサブルーチンの中味はシングル
ステップ実行をしないサブルーチン・スキップ・シング
ルステップ実行といったプログラム・デバッグ機能が実
現でき、デバッグ機能の向上が図れる。
【0022】
【実施例】本発明の実施例について図面を参照しながら
説明する。
【0023】図1は、本発明の一実施例のマイクロコン
ピュータのプログラム・デバッグ装置を示す概略ブロッ
ク図である。同図中のプログラム・デバッグ装置2は、
デバッグ対象マイクロコンピュータのデバッグ専用チッ
プであるデバッグ用専用マイクロコンピュータ4と、こ
れを制御するためのデバッグ装置制御回路3とから構成
され、ホストコンピュータ1に接続された状態でプログ
ラムのデバッグを行なう。
【0024】図2は、図1のプログラム・デバッグ装置
2の詳細ブロック図であって、デバッグ用専用マイクロ
コンピュータ4の部分を詳細に示した図である。同図に
示すように、デバッグ用専用マイクロコンピュータ4は
、マルチタスク構成(タスク数8)のマイクロコンピュ
ータ・コア5と、タスク数に対応した8本のネスティン
グレベル・カウンタ7〜14と、該ネスティングレベル
・カウンタ7〜14を選択するためのセレクタ6と、ネ
スティングレベル・カウンタ7〜14のためのカウンタ
書込み・読出し用バッファ15と、比較値設定レジスタ
16と、ネスティングレベル比較回路17と、シングル
ステップ実行制御回路18と、ブレイク制御回路19と
、オアゲート20、21とから構成されている。ただし
、マイクロコンピュータ・コア5は、デバッグ対象プロ
グラムすなわちユーザプログラムを実行するユーザモー
ドと、デバッグ装置制御回路3との通信や自身の内部ス
テータスの吐出し等を行なうためのモニタプログラムを
実行するモニタモードとを有する。
【0025】以上のプログラム・デバッグ装置2の動作
を、図2を参照しながら順次説明する。デバッグ装置制
御回路3から、モニタ要求信号(デバッグ対象プログラ
ムの実行を強制的に中断させるための信号)cが入力さ
れると、マイクロコンピュータ・コア5は、ユーザモー
ドからモニタモードに移行する。モニタモードでは、デ
バッグ装置制御回路3へのモニタモード信号aが“1”
になる。
【0026】まず、このモニタモード下で、モニタプロ
グラムの実行により全てのネスティングレベル・カウン
タ7〜14と比較値設定レジスタ16とを初期化する。 ネスティングレベル・カウンタ7〜14には、それぞれ
固有のアドレスが割当てられている。マイクロコンピュ
ータ・コア5がネスティングレベル・カウンタ7〜14
に対する書込み動作を行なうためにアドレスバスiを通
してアドレスを、データバスhを通して初期値データ(
例えば0)を各々出力すると、アドレスバスi上のアド
レスに基づいてセレクタ6によりネスティングレベル・
カウンタ7〜14のうちの1つが選択され、かつセレク
タ6からカウンタ書込み・読出し用バッファ15に書込
み方向をオープンするバッファ制御信号kが与えられる
。この結果、データバスh上の初期値データが、選択さ
れたネスティングレベル・カウンタに書込まれる。マイ
クロコンピュータ・コア5は、モニタプログラムの実行
により、特定アドレスにマッピングされた比較値設定レ
ジスタ16に、さらにデータバスhを通してネスティン
グレベルに関する比較値(上限値)のデータを書込む。
【0027】デバッグ装置制御回路3から通信バスbを
通してデバッグ対象プログラム実行コマンドが入力され
ると、マイクロコンピュータ・コア5はモニタモードか
らユーザモードに移行する。ユーザモードに移行したマ
イクロコンピュータ・コア5は、モニタモード信号aを
“0”にしたうえで、デバッグ対象プログラムの実行を
開始する。ユーザモードにおいて“0”のモニタモード
信号aを受けたセレクタ6は、マイクロコンピュータ・
コア5から常に出力される実行中のタスクの番号を示す
信号jによってネスティングレベル・カウンタ7〜14
のうちの1つを選択する。これにより、8本のネスティ
ングレベル・カウンタ7〜14の各々が実行中のタスク
に対応付けられる。デバッグ対象プログラムの実行中、
マイクロコンピュータ・コア5からサブルーチンコール
の実行を示す信号d、システムコールの実行を示す信号
eあるいは割込み・例外の発生を示す信号fが出力され
ると、オアゲート20の出力が“1”になる。したがっ
て、実行中のタスクに対応したネスティングレベル・カ
ウンタ7〜14のうちの1つが1だけカウントアップさ
れる。一方、マイクロコンピュータ・コア5からリター
ン命令の実行を示す信号gが出力されると、実行中のタ
スクに対応した該ネスティングレベル・カウンタが1だ
けカウントダウンする。
【0028】デバッグ対象プログラムの実行中、ネステ
ィングレベル比較回路17は、実行中のタスクに対応し
たネスティングレベル・カウンタ7〜14の出力すなわ
ちカウント値信号pと比較値設定レジスタ16の出力す
なわち比較値信号qとの大小比較を常に実行しており、
この比較結果を示す信号rを常に出力している。該信号
rは、カウント値(p)が比較値(q)以下のときは“
0”であり、カウント値(p)が比較値(q)よりも大
きくなった(p>q)時点で“1”(オーバーネスティ
ング信号)になる。
【0029】一方、ブレイク制御回路19は、デバッグ
対象プログラムの実行中常にネスティングレベル比較回
路17の出力すなわち比較結果を示す信号rを調べてお
り、r=“1”(オーバーネスティング信号)になった
時点でマイクロコンピュータ・コア5に対するブレイク
要求信号sを“1”にする。このブレイク要求信号sを
受けたマイクロコンピュータ・コア5は、前記のモニタ
要求信号cを受けた場合と同様にデバッグ対象プログラ
ムの実行を中断してユーザモードからモニタモードに移
行し、モニタモード信号aを“0”から“1”にしたう
えでモニタプログラムの実行を開始する。
【0030】さて、デバッグ装置制御回路3から通信バ
スbを通してマイクロコンピュータ・コア5にシングル
ステップ実行コマンドが入力されると、マイクロコンピ
ュータ・コア5は、モニタモードとユーザモードとの間
を行き来しながらデバッグ対象プログラムを1命令づつ
実行していく。ところが、シングルステップ実行制御回
路18は、マイクロコンピュータ・コア5がデバッグ対
象プログラムの1命令を実行する毎にネスティングレベ
ル比較回路17の出力すなわち比較結果を示す信号rを
調べており、r=“0”であるときにかぎりマイクロコ
ンピュータ・コア5に対するシングルステップ実行要求
信号tを“1”にし、r=“1”(オーバーネスティン
グ信号)であれば該シングルステップ実行要求信号tを
“0”のままにする。“1”のシングルステップ実行要
求信号tを受けたマイクロコンピュータ・コア5は、ブ
レイク要求信号sを受けた場合と同様にデバッグ対象プ
ログラムの実行を中断してユーザモードからモニタモー
ドに移行し、シングルステップ実行を続ける。これに対
してシングルステップ実行要求信号tが“0”の場合は
、マイクロコンピュータ・コア5はデバッグ対象プログ
ラムの実行を中断せずにユーザモードを続ける。つまり
、ネスティングレベルが比較値設定レジスタ16に設定
された比較値より深くなるとシングルステップ実行を行
わないのである。この結果、比較値をうまく設定すれば
、例えばサブルーチンの中味まではシングルステップ実
行をしないサブルーチン・スキップ・シングルステップ
実行といったプログラム・デバッグ機能が実現できる。
【0031】モニタ要求信号c、ブレイク要求信号s又
はシングルステップ実行要求信号tによってマイクロコ
ンピュータ・コア5がユーザモードからモニタモードに
移行すると、モニタプログラムの実行によってネスティ
ングレベル・カウンタ7〜14の各々の値を読出すこと
ができる。マイクロコンピュータ・コア5がネスティン
グレベル・カウンタ7〜14の読出し動作を行なうため
にアドレスバスiを通してアドレスを出力すると、該ア
ドレスに基づいてセレクタ6によりネスティングレベル
・カウンタ7〜14のうちの1つが選択され、かつセレ
クタ6からカウンタ書込み・読出し用バッファ15に読
出し方向をオープンするバッファ制御信号kが与えられ
る。この結果、選択されたネスティングレベル・カウン
タのカウント値がデータバスh上に読出され、さらにマ
イクロコンピュータ・コア5に入力される。
【0032】以上のように本実施例の構成によれば、マ
ルチタスクに対応したネスティングレベルのリアルタイ
ム検査が可能となる。さらに、その検査結果を用いるこ
とにより、ネスティングレベルが所定の比較値より深く
なったときにデバッグ対象プログラムの実行を中断する
機能と、ネスティングレベルが所定の比較値より深くな
ったときにシングルステップ実行を抑制する機能とが実
現できる。デバッグ対象プログラムの実行が中断した時
点でネスティングレベルを読み出すことも可能である。
【0033】なお、上記実施例のネスティングレベル・
カウンタ7〜14は、デバッグ対象プログラムのネステ
ィングレベルが深くなるように変更されたときにカウン
トアップし、かつ該ネスティングレベルが浅くなるよう
に変更されたときにカウントダウンしていたが、これと
は逆にネスティングレベルが深くなるときにカウントダ
ウンし、浅くなるときにカウントアップしてもよい。た
だし、この場合には比較値設定レジスタ16にネスティ
ングレベルの下限値のデータを比較値として書き込んで
おく。また、上記ネスティングレベル比較回路17、シ
ングルステップ実行制御回路18及びブレイク制御回路
19の機能は、ソフトウェアで実現することもできる。
【0034】
【発明の効果】以上説明してきたように、請求項1の発
明によれば、デバッグ対象プログラムのリアルタイム実
行中にネスティングレベルの変更のつどカウント値が増
減するネスティングレベル・カウンタを設け、該カウン
ト値が所定の比較値を越えたときにオーバーネスティン
グ信号をリアルタイムに出力する構成を採用したので、
デバッグ対象プログラムの実行を中断することなくリア
ルタイム実行中に、しかもネスティングレベル変更要因
の区別なく、ネスティングレベルが所定の比較値を越え
るかどうかをリアルタイムかつ正確に検査することがで
きる。そのうえ、デバッグのためにデバッグ対象プログ
ラムを変更する必要がない。
【0035】請求項2の発明によれば、サブルーチンコ
ールの実行を示す信号、システムコールの実行を示す信
号又は割込み・例外の発生を示す信号によってカウント
値を増加又は減少の方向に変更する一方、リターン命令
の実行を示す信号によってカウント値を前記方向とは逆
方向に変更する構成を採用したので、サブルーチンコー
ルの実行、システムコールの実行、割込み・例外の発生
というネスティングレベル変更要因の区別にとらわれる
ことなくネスティングレベルの正確なリアルタイム検査
が行なえる。
【0036】請求項3の発明によれば、タスク毎にネス
ティングレベル・カウンタを設け、実行中のタスクに対
応するネスティングレベル・カウンタを選択してカウン
ト値を変更する構成を採用したので、マルチタスク構成
のマイクロコンピュータについてデバッグ対象プログラ
ムのリアルタイム実行中に、いずれのタスクについても
ネスティングレベル変更要因の区別なくネスティングレ
ベルの正確なリアルタイム検査が行なえる。デバッグの
ためにデバッグ対象プログラムを変更する必要はない。
【0037】請求項4の発明によれば、上記オーバーネ
スティング信号を用いてマイクロコンピュータ・コアに
対するブレイク要求信号を発生させる構成を採用したの
で、デバッグ対象プログラムのネスティングレベルが所
定の比較値より深くなったときに該プログラムの実行を
中断させることができる。このプログラム中断時点でネ
スティングレベル・カウンタのカウント値を読出し、こ
れを確認することも可能になる。
【0038】請求項5の発明によれば、上記オーバーネ
スティング信号が出力されたときにマイクロコンピュー
タ・コアに対してシングルステップ実行要求信号を出力
しない構成を採用したので、ネスティングレベルが所定
の比較値より深くなったときにシングルステップ実行を
抑制する機能が実現できる。これにより、例えばサブル
ーチンの中味はシングルステップ実行をしないサブルー
チン・スキップ・シングルステップ実行といったプログ
ラム・デバッグ機能が実現でき、デバッグ機能の向上が
図れる。
【図面の簡単な説明】
【図1】  本発明の一実施例のマイクロコンピュータ
のプログラム・デバッグ装置を示す概略ブロック図であ
る。
【図2】  図1のプログラム・デバッグ装置の詳細ブ
ロック図であって、デバッグ用専用マイクロコンピュー
タの部分を詳細に示した図である。
【符号の説明】
1…ホストコンピュータ 2…プログラム・デバッグ装置 3…デバッグ装置制御回路 4…デバッグ用専用マイクロコンピュータ5…マイクロ
コンピュータ・コア 6…セレクタ 7〜14…ネスティングレベル・カウンタ15…カウン
タ書込み・読出し用バッファ16…比較値設定レジスタ 17…ネスティングレベル比較回路(ネスティングレベ
ル比較手段) 18…シングルステップ実行制御回路(シングルステッ
プ実行制御手段) 19…ブレイク制御回路(ブレイク制御手段)20、2
1…オアゲート a…モニタモード信号 b…通信バス c…モニタ要求信号 d…サブルーチンコールの実行を示す信号e…システム
コールの実行を示す信号 f…割込み・例外の発生を示す信号 g…リターン命令の実行を示す信号 h…データバス i…アドレスバス j…実行中のタスクの番号を示す信号 k…バッファ制御信号 p…カウント値信号 q…比較値信号 r…比較結果を示す信号(オーバーネスティング信号)
s…ブレイク要求信号 t…シングルステップ実行要求信号

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】  ネスティング構造のデバッグ対象プロ
    グラムを実行するためのマイクロコンピュータ・コアと
    、前記マイクロコンピュータ・コアによって前記デバッ
    グ対象プログラムのネスティングレベルが深くなるよう
    に変更されたときにカウント値を増加又は減少の方向に
    変更し、かつ前記マイクロコンピュータ・コアによって
    前記ネスティングレベルが浅くなるように変更されたと
    きに前記カウント値を前記方向とは逆方向に変更するネ
    スティングレベル・カウンタと、前記デバッグ対象プロ
    グラムのネスティングレベルの比較値が設定された比較
    値設定レジスタと、前記ネスティングレベル・カウンタ
    のカウント値と前記比較値設定レジスタに設定された比
    較値との大小比較を行ない、前記カウント値が前記比較
    値を越えたときにオーバーネスティング信号を出力する
    ネスティングレベル比較手段とを備えたことを特徴とす
    るマイクロコンピュータのプログラム・デバッグ装置。
  2. 【請求項2】  請求項1記載のマイクロコンピュータ
    のプログラム・デバッグ装置において、前記ネスティン
    グレベル・カウンタは、前記マイクロコンピュータ・コ
    アから出力されるサブルーチンコールの実行を示す信号
    、システムコールの実行を示す信号又は割込み・例外の
    発生を示す信号によりカウント値を増加又は減少の方向
    に変更し、かつ前記マイクロコンピュータ・コアから出
    力されるリターン命令の実行を示す信号により前記カウ
    ント値を前記方向とは逆方向に変更することを特徴とす
    るプログラム・デバッグ装置。
  3. 【請求項3】  複数のタスクを有するネスティング構
    造のデバッグ対象プログラムを実行するためのマイクロ
    コンピュータ・コアと、前記複数のタスクの数と同じ数
    だけ設けられ、該複数のタスクのうち前記マイクロコン
    ピュータ・コアの実行中のタスクに対応して前記マイク
    ロコンピュータ・コアにより1つが選択され、前記実行
    中のタスクについて前記マイクロコンピュータ・コアか
    ら出力されるサブルーチンコールの実行を示す信号、シ
    ステムコールの実行を示す信号又は割込み・例外の発生
    を示す信号によりカウント値を増加又は減少の方向に変
    更し、かつ前記実行中のタスクについて前記マイクロコ
    ンピュータ・コアから出力されるリターン命令の実行を
    示す信号により前記カウント値を前記方向とは逆方向に
    変更する複数のネスティングレベル・カウンタと、前記
    デバッグ対象プログラムのネスティングレベルの比較値
    が設定された比較値設定レジスタと、前記複数のネステ
    ィングレベル・カウンタの各々のカウント値と前記比較
    値設定レジスタに設定された比較値との大小比較を行な
    い、いずれかの前記カウント値が前記比較値を越えたと
    きにオーバーネスティング信号を出力するネスティング
    レベル比較手段とを備えたことを特徴とするマイクロコ
    ンピュータのプログラム・デバッグ装置。
  4. 【請求項4】  請求項1〜3のいずれか1項に記載の
    マイクロコンピュータのプログラム・デバッグ装置にお
    いて、前記ネスティングレベル比較手段から前記オーバ
    ーネスティング信号の出力を受けたときに前記マイクロ
    コンピュータ・コアに対して前記デバッグ対象プログラ
    ムの実行を中断させるためのブレイク要求信号を出力す
    るブレイク制御手段をさらに備えたことを特徴とするプ
    ログラム・デバッグ装置。
  5. 【請求項5】  請求項1〜4のいずれか1項に記載の
    マイクロコンピュータのプログラム・デバッグ装置にお
    いて、前記マイクロコンピュータ・コアが前記デバッグ
    対象プログラムの1命令を実行する毎に前記ネスティン
    グレベル比較手段からのオーバーネスティング信号の出
    力の有無を調べ、前記オーバーネスティング信号の出力
    がないときは、前記デバッグ対象プログラムの実行を中
    断させるために前記マイクロコンピュータ・コアに対し
    てシングルステップ実行要求信号を出力し、前記オーバ
    ーネスティング信号の出力を受けたときは、前記デバッ
    グ対象プログラムの実行を継続させるように前記マイク
    ロコンピュータ・コアに対するシングルステップ実行要
    求信号を出力しないシングルステップ実行制御手段をさ
    らに備えたことを特徴とするプログラム・デバッグ装置
JP3084217A 1991-04-16 1991-04-16 マイクロコンピュータのプログラム・デバッグ装置 Expired - Lifetime JP2625272B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3084217A JP2625272B2 (ja) 1991-04-16 1991-04-16 マイクロコンピュータのプログラム・デバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3084217A JP2625272B2 (ja) 1991-04-16 1991-04-16 マイクロコンピュータのプログラム・デバッグ装置

Publications (2)

Publication Number Publication Date
JPH04317142A true JPH04317142A (ja) 1992-11-09
JP2625272B2 JP2625272B2 (ja) 1997-07-02

Family

ID=13824316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3084217A Expired - Lifetime JP2625272B2 (ja) 1991-04-16 1991-04-16 マイクロコンピュータのプログラム・デバッグ装置

Country Status (1)

Country Link
JP (1) JP2625272B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120909880A (zh) * 2025-10-10 2025-11-07 北京开源芯片研究院 处理器故障识别方法、装置、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57130151A (en) * 1981-02-02 1982-08-12 Nec Corp Information processing device
JPS6365538A (ja) * 1986-09-05 1988-03-24 Nec Corp マイクロコンピユ−タインサ−キツトエミユレ−タ
JPH04205031A (ja) * 1990-11-29 1992-07-27 Mitsubishi Electric Corp マイクロコンピュータ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57130151A (en) * 1981-02-02 1982-08-12 Nec Corp Information processing device
JPS6365538A (ja) * 1986-09-05 1988-03-24 Nec Corp マイクロコンピユ−タインサ−キツトエミユレ−タ
JPH04205031A (ja) * 1990-11-29 1992-07-27 Mitsubishi Electric Corp マイクロコンピュータ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120909880A (zh) * 2025-10-10 2025-11-07 北京开源芯片研究院 处理器故障识别方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
JP2625272B2 (ja) 1997-07-02

Similar Documents

Publication Publication Date Title
US4074353A (en) Trap mechanism for a data processing system
US5659679A (en) Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US5621886A (en) Method and apparatus for providing efficient software debugging
US5187802A (en) Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
KR100350568B1 (ko) 디버그기능을수행하기위한데이타처리시스템및방법
US5257358A (en) Method for counting the number of program instruction completed by a microprocessor
US5740413A (en) Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
JP2002268914A (ja) 特権命令の実行を監視する方法
US7987075B2 (en) Apparatus and method to develop multi-core microcomputer-based systems
US20080276129A1 (en) Software tracing
US6175913B1 (en) Data processing unit with debug capabilities using a memory protection unit
EP0098172B1 (en) Register control processing system
US7793160B1 (en) Systems and methods for tracing errors
JP2715993B2 (ja) シミュレーション方法および装置
JPH04317142A (ja) マイクロコンピュータのプログラム・デバッグ装置
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JP2006185365A (ja) 半導体装置およびデバッグ方法
JPH0581087A (ja) プロセサのモニタ方式
JPS62279438A (ja) トレ−ス回路
JPS6385942A (ja) 並列プログラムのデバツグ支援装置
JP3480903B2 (ja) エミュレータにおける全命令トレースの制御方法
JPH0219937A (ja) 電子計算機システム
JPS6052449B2 (ja) 割込み処理方式
JPH03134742A (ja) デバッグ装置
JPH02245955A (ja) チャネル装置の試験方式