JP2002268916A - プログラム検証方法および装置 - Google Patents

プログラム検証方法および装置

Info

Publication number
JP2002268916A
JP2002268916A JP2001069068A JP2001069068A JP2002268916A JP 2002268916 A JP2002268916 A JP 2002268916A JP 2001069068 A JP2001069068 A JP 2001069068A JP 2001069068 A JP2001069068 A JP 2001069068A JP 2002268916 A JP2002268916 A JP 2002268916A
Authority
JP
Japan
Prior art keywords
stack
access
area
interrupt
address
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.)
Withdrawn
Application number
JP2001069068A
Other languages
English (en)
Inventor
Tetsuya Okabe
哲也 岡部
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2001069068A priority Critical patent/JP2002268916A/ja
Publication of JP2002268916A publication Critical patent/JP2002268916A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 スタックオーバーフローを確実に判別し、不
正なメモリアクセスの発生を検出する。 【解決手段】 上限および下限アドレスにより規定され
る領域に対し設定された不正アクセスとなる範囲のオペ
ランドアドレスを判定し、割込みスタック使用かユーザ
スタック使用かを指定するアクセス種別指定情報を含む
アクセスブレーク制御情報と、割込みスタックモードで
あるかユーザスタックモードであるかを示すスタックモ
ード信号と、前記不正アクセスとなる範囲のオペランド
アドレスの判定結果とをもとに、前記上限アドレスおよ
び前記下限アドレスにより規定される前記スタック領域
のオーバーフローによる不正アクセスを検出する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、プログラムの不
具合を検証するプログラム検証方法および装置に関し、
特に割込みスタックポインタとユーザスタックポインタ
の2つのスタックポインタを有したプロセッサを内蔵し
た集積回路に適用して好適なプログラム検証方法および
装置に関するものである。
【0002】
【従来の技術】図6は、プログラムの不具合を検証する
ための従来のプログラム検証装置に相当するエミュレー
タデバッガのアクセスチェックブロックの構成を示す回
路ブロック図である。プログラムの不具合の一つとし
て、あるモジュールが、指定されたデータ領域以外の領
域にデータを書き込んでしまう不正アクセスがあるが、
このようなプログラムの不具合の検出方法としては、図
6に示すアクセスチェックブロックなどのハードウェア
を評価チップに搭載し不正なメモリアクセスが発生した
ことを検出するようになっている。
【0003】図6において、101は評価チップにおけ
るデータバス、102は同様にアドレスバスである。1
03は前記アクセスチェックブロックであり、データア
クセス命令実行時のオペランドアドレスに対し正常範囲
または異常範囲を規定するための上限アドレスが設定さ
れる上限レジスタ111と下限アドレスが設定される下
限レジスタ113、アドレスバス102へ出力されたメ
モリアドレスと前記上限アドレスとを比較する比較器1
12、アドレスバス102へ出力されたメモリアドレス
と前記下限アドレスとを比較する比較器114、前記上
限アドレスと前記下限アドレスとにより規定される範囲
内の領域に対するアクセスを判定対象とするか、または
前記上限アドレスと前記下限アドレスとにより規定され
る範囲以外の領域に対するアクセスを判定対象とするか
についての設定データが書き込まれる範囲内/外指定レ
ジスタ115、前記範囲内/外指定レジスタ115に書
き込まれた前記設定データをもとに前記範囲内に前記メ
モリアドレスが入っているか、または前記範囲外の領域
に前記メモリアドレスが入っているかを判定し、前記範
囲外の領域についての不正アクセス、または前記範囲内
の領域についての不正アクセスである場合にデバッガ割
込みを発生させる範囲内外判定部116などを備えてい
る。
【0004】次に動作について説明する。このアクセス
チェックブロック103では、あらかじめ上限レジスタ
111に異常アクセスの判定対象となる領域を規定する
上限アドレスをデータバス101とアドレスバス102
を使用して設定し、また、下限レジスタ113には異常
アクセスの判定対象となる領域を規定する下限アドレス
をデータバス101とアドレスバス102を使用して設
定する。また、範囲内外指定レジスタ115には、同様
にデータバス101とアドレスバス102を使用し、前
記上限アドレスと前記下限アドレスとにより規定される
範囲内の領域に対するアクセスを判定対象とするか、ま
たは前記上限アドレスと前記下限アドレスとにより規定
される範囲以外の領域に対するアクセスを判定対象とす
るかについての設定データを書き込む。
【0005】そして、データアクセス命令実行時にアド
レスバス102へ出力されるオペランドアドレスが前記
範囲内外指定レジスタ115で設定した範囲に入ってい
ない不正アクセスの場合、または入っている不正アクセ
スの場合にデバッガ割込み信号を出力し、不正なメモリ
アクセスが発生したことを検出する。
【0006】
【発明が解決しようとする課題】従来のプログラム検証
装置は以上のように構成されていたので、例えば図7に
示すようにワーク領域とスタック領域とが隣接している
場合に、データ領域の破壊を伴うスタックオーバーフロ
ーが発生すると、上限レジスタ111の上限アドレスと
下限レジスタの下限アドレスとによりメモリの不正アク
セスを検出するものにあっては、スタックオーバーフロ
ーが発生した結果でワーク領域をアクセスしているの
か、正常なアクセスによりワーク領域をアクセスしてい
るのかを判別することが出来ず、不正なメモリアクセス
の発生を検出できないという課題があった。
【0007】この発明は、上記のような課題を解決する
ためになされたものであり、従来の構成に対し簡単な変
更とハードウェアの追加だけで、スタックオーバーフロ
ーを確実に判別し不正なメモリアクセスの発生を検出で
きるプログラム検証方法および装置を提供することを目
的とする。
【0008】
【課題を解決するための手段】この発明に係るプログラ
ム検証方法は、上限アドレスおよび下限アドレスにより
規定される領域に対し設定された不正アクセスとなる範
囲のオペランドアドレスを判定し、割込みスタックポイ
ンタの使用であるか、ユーザスタックポインタの使用で
あるかを指定するアクセス種別指定情報を含むアクセス
ブレーク制御情報と、割込みスタックポインタを使用し
た割込みスタックモードであるかユーザスタックポイン
タを使用したユーザスタックモードであるかを示すスタ
ックモード信号と、前記不正アクセスとなる範囲のオペ
ランドアドレスの前記判定結果とをもとに、前記上限ア
ドレスおよび下限アドレスにより規定される前記割込み
スタックまたは前記ユーザスタックの領域についての不
正アクセスのチェックを行い、前記割込みスタックの領
域または前記ユーザスタックの領域のオーバーフローに
よる不正アクセスを検出するようにしたものである。
【0009】この発明に係るプログラム検証方法は、ス
タックポインタを用いたアドレッシングか否かを示す信
号を含み、割込みスタックやユーザスタックの領域につ
いてのオーバーフローによる不正アクセスのチェック
と、前記割込みスタックや前記ユーザスタック以外の領
域についてのオーバーフローによる不正アクセスのチェ
ックとを前記信号により切り替えるようにしたものであ
る。
【0010】この発明に係るプログラム検証方法は、上
限アドレスおよび下限アドレスにより規定される領域に
対し設定された不正アクセスとなる範囲のオペランドア
ドレスを判定し、割込みスタックまたはユーザスタック
の領域をアクセスする際に使用されるレジスタとして、
割込みスタックポインタまたはユーザスタックポイン
タ、さらに通常の汎用レジスタのレジスタ情報であるス
タック操作レジスタ指定情報を含むアクセスブレーク制
御情報と、オペランドアドレス計算に用いた前記レジス
タについてのレジスタ情報と、前記不正アクセスとなる
範囲のオペランドアドレスの判定結果とをもとに、前記
上限アドレスおよび下限アドレスにより規定される前記
割込みスタックまたは前記ユーザスタックの領域につい
ての不正アクセスのチェックを行い、前記割込みスタッ
クまたは前記ユーザスタックの領域のオーバーフローに
よる不正アクセスを検出するようにしたものである。
【0011】この発明に係るプログラム検証方法は、前
記アクセスブレーク制御情報がスタックポインタを用い
たアドレッシングか否かを示す情報を含み、割込みスタ
ックやユーザスタックの領域についてのオーバーフロー
による不正アクセスのチェックと、前記割込みスタック
や前記ユーザスタック以外の領域についてのオーバーフ
ローによる不正アクセスのチェックとを前記情報により
切り替えるようにしたものである。
【0012】この発明に係るプログラム検証装置は、上
限アドレスおよび下限アドレスにより規定された領域に
対し設定された不正アクセスとなる範囲のオペランドア
ドレスを判定するアドレス判定回路と、割込みスタック
ポインタの使用であるか、ユーザスタックポインタの使
用であるかを指定するアクセス種別指定情報を含むアク
セスブレーク制御情報が設定されるアクセスブレーク制
御レジスタと、割込みスタックポインタを使用した割込
みスタックモードであるかユーザスタックポインタを使
用したユーザスタックモードであるかを示すスタックモ
ード信号と、前記アドレス判定回路の判定結果とをもと
に、前記割込みスタックまたは前記ユーザスタックの領
域についての不正アクセスのチェックを行い、前記上限
アドレスおよび前記下限アドレスにより規定された前記
割込みスタックの領域または前記ユーザスタックの領域
のオーバーフローによる不正アクセスに対しデバッガ割
込み信号を出力する判定回路とを備えるようにしたもの
である。
【0013】この発明に係るプログラム検証装置は、ス
タックポインタを用いたアドレッシングか否かを示す命
令デコーダから出力される信号をもとに、割込みスタッ
クの領域またはユーザスタックの領域のオーバーフロー
による不正アクセスのチェックと前記割込みスタックや
前記ユーザスタック以外の領域についてのオーバーフロ
ーによる不正アクセスのチェックとを切り替える切替回
路を判定回路が備えるようにしたものである。
【0014】この発明に係るプログラム検証装置は、上
限アドレスおよび下限アドレスにより規定された領域に
対し設定された不正アクセスとなる範囲のオペランドア
ドレスを判定するアドレス判定回路と、割込みスタック
またはユーザスタックの領域をアクセスする際に使用さ
れるレジスタとして、割込みスタックポインタまたはユ
ーザスタックポインタ、さらに通常の汎用レジスタのレ
ジスタ情報であるスタック操作レジスタ指定情報を含む
アクセスブレーク制御情報が設定されるアクセスブレー
ク制御レジスタと、前記アクセスブレーク制御レジスタ
に設定された前記アクセスブレーク制御情報と、オペラ
ンドアドレス計算に用いた前記レジスタについてのレジ
スタ情報と、前記アドレス判定回路の判定結果とをもと
に、前記上限アドレスおよび前記下限アドレスにより規
定された前記割込みスタックまたは前記ユーザスタック
の領域についての不正アクセスのチェックを行い、前記
割込みスタックまたは前記ユーザスタックの領域のオー
バーフローによる不正アクセスに対しデバッガ割込み信
号を出力する判定回路とを備えるようにしたものであ
る。
【0015】この発明に係るプログラム検証装置は、ス
タックポインタを用いたアドレッシングか否かを示す情
報を含むアクセスブレーク制御情報がアクセスブレーク
制御レジスタに設定され、割込みスタックやユーザスタ
ックの領域についての不正アクセスのチェックと、前記
割込みスタックや前記ユーザスタック以外の領域につい
ての不正アクセスのチェックとを前記情報により切り替
える切替回路を判定回路が備えるようにしたものであ
る。
【0016】
【発明の実施の形態】以下、この発明の実施の一形態に
ついて説明する。 実施の形態1.図1は、この発明の実施の形態1による
プログラム検証方法が適用されるプログラム検証装置の
部分構成を示す回路ブロック図である。なお、以下の説
明では、割込み用とユーザ用の2本のスタックポインタ
を有し、PSW(Program Status Wo
rd、プログラム状態語)の“SM(Stack Mo
de)ビット信号”により、例えば“SMビット信号”
が“Low”レベルのとき割込みスタックポインタ使
用、“SMビット信号”が“High”レベルのときユ
ーザスタックポインタ使用というように、どちらのスタ
ックポインタを用いるかを切り替えられる機能を有した
プロセッサを想定したプログラム検証方法およびプログ
ラム検証装置として説明を行う。
【0017】図において、1は評価チップにおけるアド
レスバス、2は命令デコーダである。符号3は、この実
施の形態1のプログラム検証装置に相当するエミュレー
タデバッガのアクセスチェックブロックを示し、データ
アクセス命令実行時のオペランドアドレスに対し正常範
囲または異常範囲を規定するための上限アドレスが設定
される上限レジスタ(アドレス判定回路)11と下限ア
ドレスが設定される下限レジスタ(アドレス判定回路)
12、アドレスバス1へ出力されたデータアクセス命令
実行時のオペランドアドレスと前記上限アドレスとを比
較する比較器(アドレス判定回路)13、アドレスバス
1へ出力されたデータアクセス命令実行時のオペランド
アドレスと前記下限アドレスとを比較する比較器(アド
レス判定回路)14、アクセスブレークイネーブルビッ
ト、前記上限アドレスと前記下限アドレスとにより規定
される範囲内の領域に対するアクセスを不正アクセスと
して判定対象とするか、または前記上限アドレスと前記
下限アドレスとにより規定される範囲外の領域に対する
アクセスを不正アクセスとして判定対象とするかなどの
判定条件ビット、アクセス種別指定ビットなどの設定デ
ータが書き込まれるアクセスブレーク制御レジスタ1
5、前記アクセスブレーク制御レジスタ15に書き込ま
れた前記設定データの前記判定条件ビットをもとに前記
範囲内に前記データアクセス命令実行時のオペランドア
ドレスが入っているか、または前記範囲外の領域に前記
データアクセス命令実行時のオペランドアドレスが入っ
ているかを判定し、前記範囲以外の領域へのアクセスに
ついてそのアドレスを判定し判定信号を出力する範囲内
外判定部(アドレス判定回路)16、追加ロジック回路
(判定回路)17などを備えている。
【0018】追加ロジック回路17は、“SMビット信
号”とアクセスブレーク制御レジスタ15の7ビット目
のビットデータとの論理積を出力する第1ANDゲート
17aと、“SMビット信号”を反転した信号とアクセ
スブレーク制御レジスタ15の6ビット目のビットデー
タとの論理積を出力する第2ANDゲート17bと、前
記各ANDゲート17a,17bの出力の論理和を出力
する第1ORゲート17cと、アクセスブレーク制御レ
ジスタ15の6ビット目と7ビット目のビットデータの
論理和を出力する第2ORゲート17dと、前記第1O
Rゲート17cの出力と前記第2ORゲート17dの出
力と、命令デコーダ2から出力される“信号S1”との
論理積を出力する第3ANDゲート17eと、前記第2
ORゲート17dの出力と前記“信号S1”の論理和を
反転して出力する第1NORゲート(切替回路)17f
と、前記第1NORゲート17fの出力と前記第3AN
Dゲート17eの出力との論理和を出力する第3ORゲ
ート17gと、前記第3ORゲート17gの出力とアク
セスブレーク制御レジスタ15の4ビット目のビットデ
ータと範囲内外判定部16が出力する判定信号との論理
和をデバッガ割込み信号として出力する第4ANDゲー
ト17hなどを備えている。
【0019】図2は、アクセスブレーク制御レジスタ1
5に書き込まれる前記設定データの構成を示すデータ構
成図であり、4ビット目はアクセスブレークイネーブル
ビットであり、例えば“Low”レベル、“0”をアク
セスブレーク不許可、デバッガ割込み不許可とし、“H
igh”レベル、“1”をアクセスブレーク許可、デバ
ッガ割込み許可とするビットデータ、5ビット目は判定
条件ビットであり、例えば“Low”レベル、“0”を
前記上限アドレスと前記下限アドレスとで規定される範
囲内の領域に対するアクセスを不正アクセスとし、また
“High”レベル、“1”を前記上限アドレスと前記
下限アドレスとで規定される範囲外の領域に対するアク
セスを不正アクセスとするビットデータ、6ビット目と
7ビット目はアクセス種別指定ビットであり、6ビット
目は割込みスタック(SPI)使用時についてのアクセ
ス種別指定ビットを示し、例えば“High”レベル、
“1”が割込みスタック(SPI)使用時についてのア
クセスチェックのイネーブルを示すビットデータ、また
7ビット目はユーザスタック(SPU)使用時について
のアクセス種別指定ビットを示し、例えば“High”
レベル、“1”がユーザスタック(SPU)使用時につ
いてのアクセスチェックのイネーブルを示すビットデー
タである。
【0020】次に動作について説明する。アクセスチェ
ックブロック3に対する入力は、アドレスバス1上に出
力されるデータアクセス命令実行時のオペランドアドレ
スと、PSW(ProgramStatus Wor
d、プログラム状態語)の“SM(Stack Mod
e)ビット信号”、スタックポインタを用いたアドレッ
シングか否かを示す1ビットの“信号S1”である。な
お、“SMビット信号”は、“Low”レベルのとき割
込みスタックポインタ使用、“High”レベルのとき
ユーザスタックポインタ使用を示す信号(割込みスタッ
クモードであるかユーザスタックモードであるかを示す
スタックモード信号)である。また、“信号S1”は、
“スタックポインタを用いたアドレッシングであるとき
に“High”レベルとなり、またスタックポインタを
用いないアクセスで“Low”レベルとなる信号であ
る。この、スタックポインタを用いたアドレッシングか
否かを示す“信号S1”は、命令デコーダ2が生成し出
力する。なお、アクセスブレーク制御レジスタ15は、
アドレスバスやデータバスに接続されており、図示して
いないCPUやDSPなどにより読み書き可能になって
いる。
【0021】割込みスタックのオーバーフローのチェッ
クは次のように行われる。すなわち、前記割込みスタッ
ク領域の上限アドレスを上限レジスタ11へ設定し、ま
た下限アドレスを下限レジスタ12へ設定する。次に、
アクセスブレーク制御レジスタ15の5ビット目へ判定
条件ビットとして範囲外指定を示す。例えば“Hig
h”レベル、“1”のビットデータを設定し、また、ア
クセス種別指定ビットとして6ビット目に割込みスタッ
ク使用時のチェックを示す“High”レベル、“1”
のビットデータを設定し、また、7ビット目にユーザス
タック使用時のチェックではないことを示す“Low”
レベル、“0”のビットデータを設定する。これら各設
定をアクセスブレーク制御レジスタ15に対し行なった
後、アクセスブレーク制御レジスタ15の4ビット目の
アクセスブレークイネーブルビットとして“High”
レベル、“1”を設定し、検証対象のプログラムを実行
する。
【0022】この検証対象のプログラムが実行され、割
込みスタックのオーバーフローとなる不正アクセスが発
生すると、範囲内外判定部16では前記割込みスタック
領域外のアクセスのアドレスについて、比較器13から
出力された比較結果と、比較器14から出力された比較
結果とにより判定し、“High”レベルの判定信号を
出力する。一方、前記第3ANDゲート17eの出力
は、第1の入力端子に入力される“信号S1”が“Hi
gh”レベル、第2の入力端子へ入力される前記第2O
Rゲート17dの出力が“High”レベル、また、第
3の入力端子へ入力される前記第1ORゲート17cの
出力は、第2ANDゲート17bの出力が“High”
レベルとなることから“High”レベルとなり、第4
ANDゲート17hからは“High”レベル、“1”
のデバッガ割込み信号が出力される。
【0023】次に、ユーザスタックのオーバーフローの
チェックについて説明する。前記ユーザスタック領域の
上限アドレスを上限レジスタ11へ設定し、また下限ア
ドレスを下限レジスタ12へ設定する。次に、アクセス
ブレーク制御レジスタ15の5ビット目へ判定条件ビッ
トとして範囲外指定を示す例えば“High”レベル、
“1”のビットデータを設定し、また、アクセス種別指
定ビットとして6ビット目に割込みスタック使用時のチ
ェックではないことを示す“Low”レベル、“0”の
ビットデータを設定し、また、7ビット目にユーザスタ
ック使用時のチェックであることを示す“High”レ
ベル、“1”のビットデータを設定する。これら各設定
をアクセスブレーク制御レジスタ15に対し行なった
後、アクセスブレーク制御レジスタ15の4ビット目の
アクセスブレークイネーブルビットとして“High”
レベル、“1”を設定し、検証対象のプログラムを実行
する。
【0024】この検証対象のプログラムが実行され、ユ
ーザスタックのオーバーフローとなる不正アクセスが発
生すると、範囲内外判定部16では前記ユーザスタック
領域外のアクセスのアドレスについて、比較器13から
出力された比較結果と、比較器14から出力された比較
結果により判定し、“High”レベルの判定信号を出
力する。一方、前記第3ANDゲート17eの出力は、
第1の入力端子に入力される“信号S1”が“Hig
h”レベル、第2の入力端子へ入力される前記第2OR
ゲート17dの出力が“High”レベル、また、第3
の入力端子へ入力される前記第1ORゲート17cの出
力は、前記第1ANDゲート17aの出力が“Hig
h”レベル、“1”であることから“High”レベル
となり、第4ANDゲート17hからは“High”レ
ベル、“1”のデバッガ割込み信号が出力される。
【0025】なお、アクセスブレーク制御レジスタ15
に対しアクセス種別指定ビットのビットデータを、6ビ
ット目および7ビット目ともに“Low”レベル、
“0”に設定すると、第1NORゲート17fの一方の
入力端子が“Low”レベル、“0”になり、他方の入
力端子への“信号S1”はスタックポインタを用いない
アクセスで“Low”レベルとなるため、スタックポイ
ンタを用いたアドレッシング以外の通常のメモリ領域の
アクセス時には前記第1NORゲート17fの出力は
“High”レベル、“1”となる。この結果、前記上
限レジスタ11へ前記通常のメモリ領域の上限アドレス
を設定し、前記下限レジスタ12へ前記メモリ領域の下
限アドレスを設定し、アクセスブレーク制御レジスタ1
5の5ビット目の判定条件ビットへ範囲外を示すビット
データを設定し、さらに前記アクセス種別指定ビットの
ビットデータを、6ビット目および7ビット目ともに
“Low”レベル、“0”に設定しておくことで、前記
通常のメモリ領域へのアクセスについて不正アクセスが
発生すると第4ANDゲート17hからは“High”
レベル、“1”のデバッガ割込み信号が出力されること
になり、前記メモリ領域のアクセスについて不正アクセ
スのチェックを行うことが出来る。
【0026】以上のように、この実施の形態1によれ
ば、スタック領域とワーク領域とが隣接して設けられて
いる場合であっても、前記スタック領域のアクセスにつ
いて、または前記ワーク領域のアクセスについて発生す
る不正アクセスについてそれぞれデバッガ割込み信号を
出力できるプログラム検証方法および装置が得られる効
果がある。
【0027】実施の形態2.図3は、この発明の実施の
形態2によるプログラム検証方法が適用されるプログラ
ム検証装置のアクセスチェックブロックの構成を示す回
路ブロック図、図4は図3で破線で示す範囲51の回路
構成の拡大図である。なお、図3において図1と同一ま
たは相当の部分については同一の符号を付し説明を省略
する。図3において、21はアクセスブレーク制御レジ
スタであり、図4に示すように第1アクセスブレーク制
御レジスタ31と第2アクセスブレーク制御レジスタ3
2からなる。
【0028】第1アクセスブレーク制御レジスタ31
は、図5に示すように、3ビット目にはアクセス種別指
定のためのビットデータ(“Low”レベル、“0”が
スタック領域以外のアクセス、“High”レベル、
“1”がスタック領域のアクセス種別指定を示す)、4
ビット目にはアクセスブレークイネーブルビット(“L
ow”レベル、“0”が不許可、“High”レベル、
“1”が許可を示す)を設定し、5ビット目には判定条
件ビットを設定する。この判定条件ビットは、例えば
“Low”レベル、“0”を前記上限アドレスと前記下
限アドレスとで規定される範囲内の領域に対するアクセ
スを不正アクセスとし、また“High”レベル、
“1”を前記上限アドレスと前記下限アドレスとで規定
される範囲外の領域に対するアクセスを不正アクセスと
するビットデータである。
【0029】6ビット目と7ビット目はスタック操作レ
ジスタ指定ビットであり、6ビット目は割込みスタック
(SPI)アクセスに用いるスタック操作レジスタ情報
を示し、例えば“High”レベル、“1”が割込みス
タックアクセスに用いる割込みスタックポインタのスタ
ック操作レジスタ情報を示し、また7ビット目はユーザ
スタック(SPU)アクセスに用いるスタック操作レジ
スタ情報を示し、例えば“High”レベル、“1”が
ユーザスタックアクセスに用いるユーザスタックポイン
タのスタック操作レジスタ情報を示すビットデータであ
る。
【0030】第2アクセスブレーク制御レジスタ32の
0ビット目から14ビット目までの各ビットは、スタッ
ク操作に汎用レジスタが用いられる場合の、前記汎用レ
ジスタのレジスタ番号(レジスタ情報)r0〜r14に
対応するスタック操作レジスタ指定ビットが設定され
る。このオペランドアドレス計算に用いたレジスタ情報
r0〜r14は命令デコーダ23から出力される。
【0031】22は追加ロジック回路(判定回路)、2
3はオペランドアドレス計算に用いた汎用レジスタのレ
ジスタ情報r0,r1,r2,…,r14と、割込みス
タックSPI、ユーザスタックSPUなどのスタック操
作レジスタ情報SPI,SPUを出力する命令デコー
ダ、41は前記アドレスチェックブロックである。追加
ロジック回路22は、図4に示すようにユーザスタック
SPUを用いたアドレッシングのときに命令デコーダ2
3から出力されるスタック操作レジスタ情報SPUと第
1アクセスブレーク制御レジスタ31の7ビット目のビ
ットデータとの論理積を出力するANDゲート22a
と、同様に割込みスタックSPIを用いたアドレッシン
グのときに命令デコーダ23から出力されるスタック操
作レジスタ情報SPIと第1アクセスブレーク制御レジ
スタ31の6ビット目のビットデータとの論理積を出力
するANDゲート22bと、命令デコーダ23から出力
されるレジスタ情報r14と第2アクセスブレーク制御
レジスタ32の14ビット目のビットデータとの論理積
を出力するANDゲート22cと、命令デコーダ23か
ら出力されるレジスタ情報r13と第2アクセスブレー
ク制御レジスタ32の13ビット目のビットデータとの
論理積を出力するANDゲートと、同様にレジスタ情報
r12と第2アクセスブレーク制御レジスタ32の12
ビット目のビットデータとの論理積を出力するANDゲ
ート……と、命令デコーダ23から出力されるレジスタ
情報r2と第2アクセスブレーク制御レジスタ32の2
ビット目のビットデータとの論理積を出力するANDゲ
ート22dと、命令デコーダ23から出力されるレジス
タ情報r1と第2アクセスブレーク制御レジスタ32の
1ビット目のビットデータとの論理積を出力するAND
ゲート22eと、命令デコーダ23から出力されるレジ
スタ情報r0と第2アクセスブレーク制御レジスタ32
の0ビット目のビットデータとの論理積を出力するAN
Dゲート22fを有している。また、前記各ANDゲー
トの論理和を出力するORゲート22g、ORゲート2
2gと第1アクセスブレーク制御レジスタ31の3ビッ
ト目のビットデータとの論理和を反転して出力するNO
Rゲート(切替回路)22hと、前記ORゲート22g
の出力と第1アクセスブレーク制御レジスタ31の3ビ
ット目のビットデータとの論理和を出力するANDゲー
ト22iと、前記NORゲート22hの出力と前記AN
Dゲート22iの出力との論理和を出力するORゲート
22jと、ORゲート22jの出力と前記第1アクセス
ブレーク制御レジスタ31の4ビット目のビットデータ
と範囲内外判定ブロック16の判定結果出力との論理積
を出力するANDゲート2kなどを備えている。
【0032】次に動作について説明する。アクセスチェ
ックブロック41に対する入力は、アドレスバス1上に
出力されるデータアクセス命令実行時のオペランドアド
レスと、オペランドアドレス計算に用いた汎用レジスタ
についてのレジスタ情報(r0,r1,…,r14)と
割込みスタックやユーザスタックのスタック操作レジス
タ情報SPI,SPUなどである。なお、第1アクセス
ブレーク制御レジスタ31と第2アクセスブレーク制御
レジスタ32は、アドレスバス、データバスに接続され
ており、図示していないCPUやDSPなどにより読み
書き可能になっている。
【0033】このアクセスチェックブロック41では、
不正なデータアクセスが行われたことを検知すると、デ
バッガ割込みを行うように条件付けられており、図示し
ていないデバッガを呼び出す。この実施の形態2による
割込みスタックのオーバーフローのチェックは次のよう
に行う。すなわち、前記割込みスタック領域の上限アド
レスを上限レジスタ11へ設定し、また下限アドレスを
下限レジスタ12へ設定する。次に、第1アクセスブレ
ーク制御レジスタ31の3ビット目へアクセス種別指定
ビットとしてスタック領域へのアクセスであることを示
す“High”レベル、“1”を設定する。また、5ビ
ット目の判定条件ビットとして範囲外指定を示す“Hi
gh”レベル、“1”のビットデータを設定し、また、
割込みスタックのアクセスに用いるレジスタに該当する
ビット(第1アクセスブレーク制御レジスタ31の6ビ
ット目、第2アクセスブレーク制御レジスタ32の0ビ
ット目から14ビット目までのいずれかのビット)に
“High”レベル、“1”のビットデータを設定した
後、4ビット目のアクセスブレークイネーブルビットと
して“High”レベル、“1”を設定し、検証対象の
プログラムを実行する。
【0034】この検証対象のプログラムが実行され、前
記割込みスタックのオーバーフローとなる不正アクセス
が発生すると、範囲内外判定部16では前記割込みスタ
ック領域外のアクセスのアドレスについて、比較器13
から出力された比較結果と、比較器14から出力された
比較結果とにより判定し、“High”レベルの判定信
号を出力する。一方、前記ANDゲート22cからAN
Dゲート22fまでのいずれかの出力、またはANDゲ
ート22bの出力が“High”レベルとなり、さらに
ANDゲート22iも“High”レベルとなり、AN
Dゲート22kでは前記判定信号と前記ANDゲート2
2iの出力と前記アクセスブレークイネーブルビットと
から“High”レベルのデバッガ割込み信号を出力す
ることになる。
【0035】次に、ユーザスタックのオーバーフローの
チェックについて説明する。前記ユーザスタック領域の
上限アドレスを上限レジスタ11へ設定し、また下限ア
ドレスを下限レジスタ12へ設定する。次に、第1アク
セスブレーク制御レジスタ31の5ビット目へ判定条件
ビットとして範囲外指定を示す例えば“High”レベ
ル、“1”のビットデータを設定し、また、アクセス種
別指定ビットとして3ビット目にスタック領域のアクセ
スであることを示す“High”レベル、“1”のビッ
トデータを設定し、また、ユーザスタックアクセスに用
いるレジスタに該当するビット(第1アクセスブレーク
制御レジスタ31の7ビット目、第2アクセスブレーク
制御レジスタ32の0ビット目から14ビット目までの
いずれかのビット)を“High”レベル、“1”に設
定した後、4ビット目のアクセスブレークイネーブルビ
ットとして“High”レベル、“1”を設定し、検証
対象のプログラムを実行する。
【0036】この検証対象のプログラムが実行され、ユ
ーザスタックのオーバーフローとなる不正アクセスが発
生すると、範囲内外判定部16では前記ユーザスタック
領域外のアクセスのアドレスについて、比較器13から
出力された比較結果と、比較器14から出力された比較
結果とにより判定し、“High”レベルの判定信号を
出力する。一方、ANDゲート22a、ANDゲート2
2c,22d,22e,22fのいずれかの出力は、命
令デコーダ23から出力された前記レジスタ情報と、第
1アクセスブレーク制御レジスタ31の7ビット目のビ
ットデータ、第2アクセスブレーク制御レジスタ32の
0ビット目から14ビット目のビットデータとの間で行
われた論理積演算結果から“High”レベルとなり、
さらにANDゲート22iも“High”レベルとな
り、ANDゲート22kでは範囲内外判定部16の前記
判定信号と前記ANDゲート22iの出力と前記アクセ
スブレークイネーブルビットとから“High”レベ
ル、“1”のデバッガ割込み信号を出力する。
【0037】なお、第1アクセスブレーク制御レジスタ
31に対し3ビット目のアクセス種別指定ビットのビッ
トデータを“Low”レベル、“0”に設定して、NO
Rゲート22hの一方の入力端子が“Low”レベル、
“0”になるようにする。また、第1アクセスブレーク
制御レジスタ31の6ビット目と7ビット目に設定する
ビットデータを“Low”レベル、“0”、第2アクセ
スブレーク制御レジスタ32の0ビット目から14ビッ
ト目までに設定するビットデータを全て“Low”レベ
ルにする。そして、スタック領域以外の通常の領域につ
いての不正アクセスをチェックする構成にする。この結
果、NORゲート22hの両方の入力端子が“Low”
レベル、NORゲート22hの出力を“High”レベ
ルにして、スタック領域以外の通常のメモリ領域の不正
アクセス時に前記ANDゲート22kの出力は、範囲内
外判定部16が前記上限アドレスと前記下限アドレスと
により規定される前記通常のメモリ領域外のアクセスの
アドレスを検出したときの判定出力により“High”
レベル、“1”となる。このようにして、前記スタック
領域以外の通常のメモリ領域の不正アクセス時にデバッ
ガ割込み信号を出力させる。
【0038】この結果、前記上限レジスタ11へ前記通
常のメモリ領域の上限アドレスを設定し、前記下限レジ
スタ12へ前記メモリ領域の下限アドレスを設定し、第
1アクセスブレーク制御レジスタ31の5ビット目の判
定条件ビットへ範囲外を示すビットデータを設定し、前
記第1アクセスブレーク制御レジスタ31と第2アクセ
スブレーク制御レジスタ32には、割込みスタックアク
セスに用いるスタック操作レジスタ情報SPI、ユーザ
スタックアクセスに用いるスタック操作レジスタ情報S
PU、オペランドアドレス計算に用いたレジスタを指定
するレジスタ情報として全て“Low”レベル、“0”
を設定することで、前記通常のメモリ領域へのアクセス
について不正アクセスが発生すると、ANDゲート22
kからデバッガ割込み信号が出力されるため、前記スタ
ック領域以外のメモリ領域の不正アクセスについてチェ
ックを行うことが出来る。
【0039】この実施の形態2では、前記実施の形態1
とは異なり、通常の汎用レジスタを用いてスタック領域
をアクセスするようなアプリケーション、例えばコンパ
イラのように汎用レジスタの1つをフレームポインタに
してスタック領域をアクセスすることのあるアプリケー
ションに対しても、その汎用レジスタについてのレジス
タ情報を第2アクセスブレーク制御レジスタ32の0ビ
ット目から14ビット目までのいずれかに設定すること
で、前記スタック領域のスタックオーバーフローの検知
を行うことが可能になる。
【0040】以上のように、この実施の形態2によれ
ば、前記実施の形態1の効果に加えて、コンパイラのよ
うに汎用レジスタの1つをフレームポインタにしてスタ
ック領域をアクセスすることのあるアプリケーションの
ように、割込みスタックポインタやユーザスタックポイ
ンタとは異なる通常の汎用レジスタをポインタにして用
いてスタック領域をアクセスするようなアプリケーショ
ンに対しても、スタックオーバーフローの検知を行うこ
とが可能になるプログラム検証方法および装置が得られ
る効果がある。
【0041】
【発明の効果】以上のように、この発明によれば、上限
アドレスおよび下限アドレスにより規定される領域に対
し設定された不正アクセスとなる範囲のオペランドアド
レスを判定し、割込みスタックポインタの使用である
か、ユーザスタックポインタの使用であるかを指定する
アクセス種別指定情報を含むアクセスブレーク制御情報
と、割込みスタックポインタを使用した割込みスタック
モードであるかユーザスタックポインタを使用したユー
ザスタックモードであるかを示すスタックモード信号
と、前記不正アクセスとなる範囲のオペランドアドレス
の前記判定結果とをもとに、前記上限アドレスおよび下
限アドレスにより規定される前記割込みスタックまたは
前記ユーザスタックの領域についての不正アクセスのチ
ェックを行い、前記割込みスタックの領域または前記ユ
ーザスタックの領域のオーバーフローによる不正アクセ
スを検出するようにしたので、従来の構成に対し簡単な
変更を施すだけでスタックオーバーフローを確実に判別
でき、不正なメモリアクセスの発生を検出でき、特にワ
ーク領域とスタック領域とが隣接して設定されていて
も、スタックオーバーフローを確実に判別でき、不正な
メモリアクセスの発生を検出できる効果がある。
【0042】この発明によれば、割込みスタックやユー
ザスタックの領域についてのオーバーフローによる不正
アクセスのチェックと、前記割込みスタックや前記ユー
ザスタック以外の領域についてのオーバーフローによる
不正アクセスのチェックとを、スタックポインタを用い
たアドレッシングか否かを示す信号により切り替えるよ
うにしたので、割込みスタックやユーザスタックの領域
だけでなく、前記領域以外の通常のメモリ領域につい
て、前記信号により切り替えることでオーバーフローに
よる不正アクセスチェックを行える効果がある。
【0043】この発明によれば、上限アドレスおよび下
限アドレスにより規定される領域に対し設定された不正
アクセスとなる範囲のオペランドアドレスを判定し、割
込みスタックまたはユーザスタックの領域をアクセスす
る際に使用されるレジスタとして、割込みスタックポイ
ンタまたはユーザスタックポインタ、さらに通常の汎用
レジスタのレジスタ情報であるスタック操作レジスタ指
定情報を含むアクセスブレーク制御情報と、オペランド
アドレス計算に用いた前記レジスタについてのレジスタ
情報と、前記不正アクセスとなる範囲のオペランドアド
レスの判定結果とをもとに、前記上限アドレスおよび下
限アドレスにより規定される前記割込みスタックまたは
前記ユーザスタックの領域についての不正アクセスのチ
ェックを行い、前記割込みスタックまたは前記ユーザス
タックの領域のオーバーフローによる不正アクセスを検
出するように構成したので、汎用レジスタの一つをポイ
ンタにしてスタック領域をアクセスするような場合に
も、従来の構成に対し簡単な変更を施すだけでスタック
オーバーフローを確実に判別でき、不正なメモリアクセ
スの発生を検出でき、特にワーク領域とスタック領域と
が隣接して設定されていても、スタックオーバーフロー
を確実に判別でき、不正なメモリアクセスの発生を検出
できる効果がある。
【0044】この発明によれば、割込みスタックやユー
ザスタックの領域についてのオーバーフローによる不正
アクセスのチェックと、前記割込みスタックや前記ユー
ザスタック以外の領域についてのオーバーフローによる
不正アクセスのチェックとをスタックポインタを用いた
アドレッシングか否かを示す情報により切り替えるよう
にしたので、割込みスタックやユーザスタックの領域だ
けでなく、前記領域以外の通常のメモリ領域について、
前記情報により切り替えることでオーバーフローによる
不正アクセスチェックを行える効果がある。
【0045】この発明によれば、上限アドレスおよび下
限アドレスにより規定された領域に対し設定された不正
アクセスとなる範囲のオペランドアドレスを判定するア
ドレス判定回路の判定結果と、アクセスブレーク制御レ
ジスタに設定されたアクセス種別指定情報を含むアクセ
スブレーク制御情報と、割込みスタックポインタを使用
した割込みスタックモードであるかユーザスタックポイ
ンタを使用したユーザスタックモードであるかを示すス
タックモード信号とをもとに、前記上限アドレスおよび
前記下限アドレスにより規定された前記割込みスタック
または前記ユーザスタックの領域についての不正アクセ
スのチェックを行い、前記割込みスタックの領域または
前記ユーザスタックの領域のオーバーフローによる不正
アクセスに対しデバッガ割込み信号を出力する判定回路
を備えるように構成したので、従来の構成に対し簡単な
変更を施すだけでスタックオーバーフローを確実に判別
でき、不正なメモリアクセスの発生を検出でき、特にワ
ーク領域とスタック領域とが隣接して設定されていて
も、スタックオーバーフローを確実に判別でき、不正な
メモリアクセスの発生を検出できる効果がある。
【0046】この発明によれば、割込みスタックの領域
またはユーザスタックの領域のオーバーフローによる不
正アクセスのチェックと前記割込みスタックや前記ユー
ザスタック以外の領域についてのオーバーフローによる
不正アクセスのチェックとを、スタックポインタを用い
たアドレッシングか否かを示す命令デコーダから出力さ
れる信号をもとに切り替える切替回路を備えるように構
成したので、割込みスタックやユーザスタックの領域だ
けでなく、前記領域以外の通常のメモリ領域について、
前記信号により切り替えることでオーバーフローによる
不正アクセスチェックを行える効果がある。
【0047】この発明によれば、割込みスタックまたは
ユーザスタックの領域をアクセスする際に使用されるレ
ジスタとして、割込みスタックポインタまたはユーザス
タックポインタ、さらに通常の汎用レジスタのレジスタ
情報であるスタック操作レジスタ指定情報を含むアクセ
スブレーク制御情報が設定されるアクセスブレーク制御
レジスタと、前記アクセスブレーク制御レジスタに設定
された前記アクセスブレーク制御情報と、オペランドア
ドレス計算に用いた前記レジスタについてのレジスタ情
報と、上限アドレスと下限アドレスとにより規定される
領域に対し設定された不正アクセスとなる範囲のオペラ
ンドアドレスを判定するアドレス判定回路の判定結果と
をもとに、前記上限アドレスと前記下限アドレスとによ
り規定される前記割込みスタックまたは前記ユーザスタ
ックの領域についての不正アクセスのチェックを行い、
前記割込みスタックまたは前記ユーザスタックの領域の
オーバーフローによる不正アクセスに対しデバッガ割込
み信号を出力する判定回路とを備えるように構成したの
で、汎用レジスタの一つをポインタにしてスタック領域
をアクセスするような場合にも、従来の構成に対し簡単
な変更を施すだけでスタックオーバーフローを確実に判
別でき、不正なメモリアクセスの発生を検出でき、特に
ワーク領域とスタック領域とが隣接して設定されていて
も、スタックオーバーフローを確実に判別でき、不正な
メモリアクセスの発生を検出できる効果がある。
【0048】この発明によれば、割込みスタックやユー
ザスタックの領域についての不正アクセスのチェック
と、前記割込みスタックや前記ユーザスタック以外の領
域についての不正アクセスのチェックとを、アクセスブ
レーク制御レジスタに設定された、スタックポインタを
用いたアドレッシングか否かを示す情報により切り替え
る切替回路を判定回路が備えるように構成したので、割
込みスタックやユーザスタックの領域だけでなく、前記
領域以外の通常のメモリ領域について、前記情報により
切り替えることでオーバーフローによる不正アクセスチ
ェックを行える効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1のプログラム検証方
法が適用されるプログラム検証装置の部分構成を示す回
路ブロック図である。
【図2】 この発明の実施の形態1のプログラム検証方
法が適用されるプログラム検証装置のアクセスブレーク
制御レジスタに書き込まれる設定データの構成を示すデ
ータ構成図である。
【図3】 この発明の実施の形態2のプログラム検証方
法が適用されるプログラム検証装置の部分構成を示す回
路ブロック図である。
【図4】 この発明の実施の形態2のプログラム検証方
法が適用されるプログラム検証装置の部分構成を拡大し
て示す回路ブロック図である。
【図5】 この発明の実施の形態2のプログラム検証方
法が適用されるプログラム検証装置の第1アクセスブレ
ーク制御レジスタおよび第2アクセスブレーク制御レジ
スタに書き込まれる設定データの構成を示すデータ構成
図である。
【図6】 従来のプログラム検証装置に相当するエミュ
レータデバッガのアクセスチェックブロックの構成を示
す回路ブロック図である。
【図7】 隣接しているワーク領域とスタック領域とを
示す説明図である。
【符号の説明】
2,23 命令デコーダ、11 上限レジスタ(アドレ
ス判定回路)、12下限レジスタ(アドレス判定回
路)、13,14 比較器(アドレス判定回路)、15
アクセスブレーク制御レジスタ、16 範囲内外判定
部(アドレス判定回路)、17,22 追加ロジック回
路(判定回路)、17f,22h NORゲート(切替
回路)、31 第1アクセスブレーク制御レジスタ、3
2 第2アクセスブレーク制御レジスタ。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 スタックオーバーフローによる不正なメ
    モリアクセスの発生を検出する、プログラムのデバッグ
    のためのプログラム検証方法であって、 上限アドレスおよび下限アドレスにより規定される領域
    に対し設定された不正アクセスとなる範囲のオペランド
    アドレスを判定し、割込みスタックポインタの使用であ
    るか、ユーザスタックポインタの使用であるかを指定す
    るアクセス種別指定情報を含むアクセスブレーク制御情
    報と、割込みスタックポインタを使用した割込みスタッ
    クモードであるかユーザスタックポインタを使用したユ
    ーザスタックモードであるかを示すスタックモード信号
    と、前記不正アクセスとなる範囲のオペランドアドレス
    の前記判定結果とをもとに、前記上限アドレスおよび下
    限アドレスにより規定される前記割込みスタックまたは
    前記ユーザスタックの領域についての不正アクセスのチ
    ェックを行い、前記割込みスタックの領域または前記ユ
    ーザスタックの領域のオーバーフローによる不正アクセ
    スを検出するプログラム検証方法。
  2. 【請求項2】 スタックポインタを用いたアドレッシン
    グか否かを示す信号を含み、前記割込みスタックや前記
    ユーザスタックの領域についての不正アクセスのチェッ
    クと、前記割込みスタックや前記ユーザスタック以外の
    領域についての不正アクセスのチェックとを前記信号に
    より切り替えることを特徴とする請求項1記載のプログ
    ラム検証方法。
  3. 【請求項3】 スタックオーバーフローによる不正なメ
    モリアクセスの発生を検出する、プログラムのデバッグ
    を行うためのプログラム検証方法であって、 上限アドレスおよび下限アドレスにより規定される領域
    に対し設定された不正アクセスとなる範囲のオペランド
    アドレスを判定し、 割込みスタックまたはユーザスタックの領域をアクセス
    する際に使用されるレジスタとして、割込みスタックポ
    インタまたはユーザスタックポインタ、さらに通常の汎
    用レジスタのレジスタ情報であるスタック操作レジスタ
    指定情報を含むアクセスブレーク制御情報と、オペラン
    ドアドレス計算に用いた前記レジスタについてのレジス
    タ情報と、前記不正アクセスとなる範囲のオペランドア
    ドレスの判定結果とをもとに、前記上限アドレスおよび
    下限アドレスにより規定される前記割込みスタックまた
    は前記ユーザスタックの領域についての不正アクセスの
    チェックを行い、前記割込みスタックまたは前記ユーザ
    スタックの領域のオーバーフローによる不正アクセスを
    検出するプログラム検証方法。
  4. 【請求項4】 前記アクセスブレーク制御情報は、スタ
    ックポインタを用いたアドレッシングか否かを示す情報
    を含み、割込みスタックやユーザスタックの領域につい
    ての不正アクセスのチェックと、前記割込みスタックや
    前記ユーザスタック以外の領域についての不正アクセス
    のチェックとを前記情報により切り替えることを特徴と
    する請求項3記載のプログラム検証方法。
  5. 【請求項5】 スタックオーバーフローによる不正なメ
    モリアクセスの発生を検出し、プログラムのデバッグを
    行うためのプログラム検証装置であって、 上限アドレスおよび下限アドレスにより規定される領域
    に対し設定された不正アクセスとなる範囲のオペランド
    アドレスを判定するアドレス判定回路と、 割込みスタックポインタの使用であるか、ユーザスタッ
    クポインタの使用であるかを指定するアクセス種別指定
    情報を含むアクセスブレーク制御情報が設定されるアク
    セスブレーク制御レジスタと、 割込みスタックポインタを使用した割込みスタックモー
    ドであるかユーザスタックポインタを使用したユーザス
    タックモードであるかを示すスタックモード信号と、前
    記アドレス判定回路の判定結果とをもとに、前記上限ア
    ドレスおよび前記下限アドレスにより規定される前記割
    込みスタックまたは前記ユーザスタックの領域について
    の不正アクセスのチェックを行い、前記割込みスタック
    の領域または前記ユーザスタックの領域のオーバーフロ
    ーによる不正アクセスに対しデバッガ割込み信号を出力
    する判定回路と、 を備えたことを特徴とするプログラム検証装置。
  6. 【請求項6】 前記判定回路は、スタックポインタを用
    いたアドレッシングか否かを示す命令デコーダから出力
    される信号をもとに、前記割込みスタックの領域または
    前記ユーザスタックの領域のオーバーフローによる不正
    アクセスのチェックと前記割込みスタックや前記ユーザ
    スタック以外の領域についての不正アクセスのチェック
    とを切り替える切替回路を備えていることを特徴とする
    請求項5記載のプログラム検証装置。
  7. 【請求項7】 スタックオーバーフローによる不正なメ
    モリアクセスの発生を検出し、プログラムのデバッグを
    行うためのプログラム検証装置であって、 上限アドレスおよび下限アドレスにより規定された領域
    に対し設定された不正アクセスとなる範囲のオペランド
    アドレスを判定するアドレス判定回路と、 割込みスタックまたはユーザスタックの領域をアクセス
    する際に使用されるレジスタとして、割込みスタックポ
    インタまたはユーザスタックポインタ、さらに通常の汎
    用レジスタのレジスタ情報であるスタック操作レジスタ
    指定情報を含むアクセスブレーク制御情報が設定される
    アクセスブレーク制御レジスタと、 前記アクセスブレーク制御レジスタに設定された前記ア
    クセスブレーク制御情報と、オペランドアドレス計算に
    用いた前記レジスタについてのレジスタ情報と、前記ア
    ドレス判定回路による判定結果とをもとに、前記上限ア
    ドレスおよび前記下限アドレスにより規定された前記割
    込みスタックまたは前記ユーザスタックの領域について
    の不正アクセスのチェックを行い、前記割込みスタック
    または前記ユーザスタックの領域のオーバーフローによ
    る不正アクセスに対しデバッガ割込み信号を出力する判
    定回路と、 を備えたプログラム検証装置。
  8. 【請求項8】 前記アクセスブレーク制御レジスタに
    は、スタックポインタを用いたアドレッシングか否かを
    示す情報を含む前記アクセスブレーク制御情報が設定さ
    れ、前記判定回路は、前記割込みスタックや前記ユーザ
    スタックの領域についての不正アクセスのチェックと、
    前記割込みスタックや前記ユーザスタック以外の領域に
    ついての不正アクセスのチェックとを前記情報により切
    り替える切替回路を備えていることを特徴とする請求項
    7記載のプログラム検証装置。
JP2001069068A 2001-03-12 2001-03-12 プログラム検証方法および装置 Withdrawn JP2002268916A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001069068A JP2002268916A (ja) 2001-03-12 2001-03-12 プログラム検証方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001069068A JP2002268916A (ja) 2001-03-12 2001-03-12 プログラム検証方法および装置

Publications (1)

Publication Number Publication Date
JP2002268916A true JP2002268916A (ja) 2002-09-20

Family

ID=18927154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001069068A Withdrawn JP2002268916A (ja) 2001-03-12 2001-03-12 プログラム検証方法および装置

Country Status (1)

Country Link
JP (1) JP2002268916A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647144A (zh) * 2018-05-10 2018-10-12 上海市信息网络有限公司 仿真器及代码执行异常断点实现方法
CN117762493A (zh) * 2023-12-27 2024-03-26 江苏华创微系统有限公司 一种支持dsp处理器的内核屏蔽非法地址的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647144A (zh) * 2018-05-10 2018-10-12 上海市信息网络有限公司 仿真器及代码执行异常断点实现方法
CN117762493A (zh) * 2023-12-27 2024-03-26 江苏华创微系统有限公司 一种支持dsp处理器的内核屏蔽非法地址的方法及装置

Similar Documents

Publication Publication Date Title
US5684948A (en) Memory management circuit which provides simulated privilege levels
US5784625A (en) Method and apparatus for effecting a soft reset in a processor device without requiring a dedicated external pin
EP0702297B1 (en) A data processor with breakpoint circuit
US20030120880A1 (en) System having read-modify-write unit
JP4526111B2 (ja) マイクロコンピュータおよびデバッグ方法
US20070226418A1 (en) Processor and method for controlling processor
US6052801A (en) Method and apparatus for providing breakpoints on a selectable address range
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
JP2002268916A (ja) プログラム検証方法および装置
JPH1040130A (ja) マイクロコンピュータ
US6397310B1 (en) Method and apparatus for controlling write access to storage means for a digital data processing circuit
JP3110222B2 (ja) マイクロコンピュータ
JP3068578B2 (ja) インサーキットエミュレータおよび飽和演算処理方法
JP3404354B2 (ja) インサーキットエミュレータ及び不正アクセス検出方法
JPH11212945A (ja) マイクロコンピュータおよびそのメモリ
JP3166667B2 (ja) エミュレーション用マイクロコンピュータ
JP2009223606A (ja) デバッグ装置およびデバッグ方法
JPH0764856A (ja) メモリアクセス制御回路
JPH06139084A (ja) 情報処理装置
JPS59163653A (ja) デバツグ装置
JP2002091795A (ja) キャッシュ制御装置
JPH05189267A (ja) マイクロプロセッサの動作制御方式、及びエミュレータ
JPH0315948A (ja) アドレスバス試験方式
JPH03113659A (ja) キャッシュメモリ試験方法
JPS58158752A (ja) プログラム及びデ−タの監視装置を持つデ−タ処理システム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060123

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20071101

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080513