JP2865128B2 - メモリ不正アクセス検出方式 - Google Patents
メモリ不正アクセス検出方式Info
- Publication number
- JP2865128B2 JP2865128B2 JP8009231A JP923196A JP2865128B2 JP 2865128 B2 JP2865128 B2 JP 2865128B2 JP 8009231 A JP8009231 A JP 8009231A JP 923196 A JP923196 A JP 923196A JP 2865128 B2 JP2865128 B2 JP 2865128B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- unauthorized access
- access position
- access
- 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
Landscapes
- Debugging And Monitoring (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータに記憶されたユーザプログラムのデバッグ方法に関
し、特にユーザプログラム中の、メモリを不正にアクセ
スする位置の検出方式に関するものである。
ータに記憶されたユーザプログラムのデバッグ方法に関
し、特にユーザプログラム中の、メモリを不正にアクセ
スする位置の検出方式に関するものである。
【0002】
【従来の技術】従来、この種のメモリ不正アクセスプロ
グラムの検出方式には、プログラムのメモリアクセス状
態を知るために、たとえば特開昭57−82296号公
報に示されるように、アドレスー致回路等の専用ハード
ウェア回路を新たに実装しなければならなかった。
グラムの検出方式には、プログラムのメモリアクセス状
態を知るために、たとえば特開昭57−82296号公
報に示されるように、アドレスー致回路等の専用ハード
ウェア回路を新たに実装しなければならなかった。
【0003】あるいは、プログラムを実行させると同時
に、アナライザを用いてCPUに接続するアドレスバス
を常時監視し、メモリアクセスがあった時点でそのアク
セスが正規なものか不正なものかを、しらみつぶしに検
査しなければならなかった。
に、アナライザを用いてCPUに接続するアドレスバス
を常時監視し、メモリアクセスがあった時点でそのアク
セスが正規なものか不正なものかを、しらみつぶしに検
査しなければならなかった。
【0004】
【発明が解決しようとする課題】第1の問題点は、プロ
グラムのメモリアクセス状態を知るためだけの専用の回
路を実装しなければならないという点である。その理由
はプログラムによるメモリのアクセス状態をCPUの実
動作から検知するという方式にある。
グラムのメモリアクセス状態を知るためだけの専用の回
路を実装しなければならないという点である。その理由
はプログラムによるメモリのアクセス状態をCPUの実
動作から検知するという方式にある。
【0005】第2の問題点は、デバッグ作業を実行する
前にプログラムの正規のアクセス処理を予め全て知って
いなければならない点である。その理由は正規のメモリ
アクセス位置を予め所定のメモリに設定しておかなけれ
ばならないからである。
前にプログラムの正規のアクセス処理を予め全て知って
いなければならない点である。その理由は正規のメモリ
アクセス位置を予め所定のメモリに設定しておかなけれ
ばならないからである。
【0006】本発明の課題は、メモリ不正アクセス位置
の検出をソフトウェアのみで実現でき、より高速に検出
が行え、回路・装置の構成簡易化が図れるメモリ不正ア
クセス検出方式を提供することである。
の検出をソフトウェアのみで実現でき、より高速に検出
が行え、回路・装置の構成簡易化が図れるメモリ不正ア
クセス検出方式を提供することである。
【0007】
【課題を解決するための手段】本発明によれば、ユーザ
プログラム中の正規のメモリアクセス位置の直前に、ソ
フトウェア割込みを発行する処理をあらかじめ実装し、
正規のメモリアクセスの実行の度に、そのソフトウェア
割込みに対応するソフトウェア割込みハンドラで、ター
ゲットエリアの現在のデータが正規のデータであるか否
かを判別し、現在のデータが正規のデータでない場合、
そのときのメモリアクセス位置とその手前のメモリアク
セス位置の区間でメモリの不正アクセスがあったと判明
し、その後さらにその不正区間を限定するために、その
不正アクセス発生区間において、所定の周期でクロック
割込みを発行し、そのクロック割込みに対応するクロッ
ク割込みハンドラで、ターゲットエリアの現在のデータ
が正規のデータであるか否かを判別し、現在のデータが
正規のデータでない場合、そのときのメモリアクセス位
置とその手前のメモリアクセス位置の区間でメモリの不
正アクセスがあったと判明し、不正アクセス位置が特定
されることを特徴とするメモリ不正アクセス検出方式が
得られる。
プログラム中の正規のメモリアクセス位置の直前に、ソ
フトウェア割込みを発行する処理をあらかじめ実装し、
正規のメモリアクセスの実行の度に、そのソフトウェア
割込みに対応するソフトウェア割込みハンドラで、ター
ゲットエリアの現在のデータが正規のデータであるか否
かを判別し、現在のデータが正規のデータでない場合、
そのときのメモリアクセス位置とその手前のメモリアク
セス位置の区間でメモリの不正アクセスがあったと判明
し、その後さらにその不正区間を限定するために、その
不正アクセス発生区間において、所定の周期でクロック
割込みを発行し、そのクロック割込みに対応するクロッ
ク割込みハンドラで、ターゲットエリアの現在のデータ
が正規のデータであるか否かを判別し、現在のデータが
正規のデータでない場合、そのときのメモリアクセス位
置とその手前のメモリアクセス位置の区間でメモリの不
正アクセスがあったと判明し、不正アクセス位置が特定
されることを特徴とするメモリ不正アクセス検出方式が
得られる。
【0008】さらに、本発明によれば、前記ソフトウェ
ア割込みハンドラ及び前記クロック割込みハンドラでメ
モリの不正アクセスがあったことが判明した時、NGを
通知し、前記ユーザプログラムの実行を停止することを
特徴とするメモリ不正アクセス検出方式が得られる。
ア割込みハンドラ及び前記クロック割込みハンドラでメ
モリの不正アクセスがあったことが判明した時、NGを
通知し、前記ユーザプログラムの実行を停止することを
特徴とするメモリ不正アクセス検出方式が得られる。
【0009】
【作用】プロセスを第1のフェーズ及び第2のフェーズ
に分割したことにより、短時間でメモリの不正アクセス
プログラムの位置が検出される。
に分割したことにより、短時間でメモリの不正アクセス
プログラムの位置が検出される。
【0010】
【発明の実施の形態】以下、本発明のメモリ不正アクセ
ス検出方式の第1のフェーズ及び第2のフェーズの動作
概要について図1乃至図4を参照して説明する。本発明
のメモリ不正アクセス検出方式は2つのフェーズから構
成されている。
ス検出方式の第1のフェーズ及び第2のフェーズの動作
概要について図1乃至図4を参照して説明する。本発明
のメモリ不正アクセス検出方式は2つのフェーズから構
成されている。
【0011】第1のフェーズでは、ユーザプログラム内
の正規のメモリ書き込みアクセス処理時にソフトウェア
割込みを発行し、その割込みハンドラにおいてメモリデ
ータの検証を行う。具体的には、図1に示す×印位置、
すなわちユーザプログラム中の正規のメモリアクセス位
置(ソフトウェア割込み発行位置)の直前に、ソフトウ
ェア割込み発行処理を追加し、図2に示す処理プログラ
ムをソフトウェア割込みハンドラとして登録する。
の正規のメモリ書き込みアクセス処理時にソフトウェア
割込みを発行し、その割込みハンドラにおいてメモリデ
ータの検証を行う。具体的には、図1に示す×印位置、
すなわちユーザプログラム中の正規のメモリアクセス位
置(ソフトウェア割込み発行位置)の直前に、ソフトウ
ェア割込み発行処理を追加し、図2に示す処理プログラ
ムをソフトウェア割込みハンドラとして登録する。
【0012】上記設定を完了し、ユーザプログラムを実
行すると、図1で示すように正規のメモリアクセスの度
にメモリデータの検証がソフトウェア割込みハンドラに
よって実行される(図2におけるステップS101)。
該ソフトウェア割込みハンドラは、ローカルエリアに保
持されている前回ユーザプログラムが書込んだデータ値
と実際のメモリのデータ値とを比較する(図2における
ステップS102)。ここで両データ値が一致した場合
にはメモリチェックOKを通知し(図2におけるステッ
プS103)、ユーザプログラムが書込むデータ値を前
記ローカルエリアに保持し(図2におけるステップS1
04)、ユーザプログラムへリターンする(図2におけ
るステップS105)。一方、両データ値が不一致の場
合にはメモリチェックNGを通知し(図2におけるステ
ップS106),ユーザプログラムの実行を停止する
(図2におけるステップS107)。すなわち、前記ソ
フトウェア割込みハンドラによってメモリデータの不正
が検出されると(両データ値が不一致の場合)、図1の
(1)で示されるユーザプログラム区間においてメモリ
の不正アクセスがあったことが判明する。この時点で第
2のフェーズへ移行する。
行すると、図1で示すように正規のメモリアクセスの度
にメモリデータの検証がソフトウェア割込みハンドラに
よって実行される(図2におけるステップS101)。
該ソフトウェア割込みハンドラは、ローカルエリアに保
持されている前回ユーザプログラムが書込んだデータ値
と実際のメモリのデータ値とを比較する(図2における
ステップS102)。ここで両データ値が一致した場合
にはメモリチェックOKを通知し(図2におけるステッ
プS103)、ユーザプログラムが書込むデータ値を前
記ローカルエリアに保持し(図2におけるステップS1
04)、ユーザプログラムへリターンする(図2におけ
るステップS105)。一方、両データ値が不一致の場
合にはメモリチェックNGを通知し(図2におけるステ
ップS106),ユーザプログラムの実行を停止する
(図2におけるステップS107)。すなわち、前記ソ
フトウェア割込みハンドラによってメモリデータの不正
が検出されると(両データ値が不一致の場合)、図1の
(1)で示されるユーザプログラム区間においてメモリ
の不正アクセスがあったことが判明する。この時点で第
2のフェーズへ移行する。
【0013】第2のフェーズでは、第1のフェーズで判
明したメモリ不正アクセス発生区間をさらに限定するた
めに、タイマを起動し、その割込みハンドラにおいてメ
モリデータの検証を行う。この検証によりメモリ不正ア
クセス位置が局所化される。すなわち、第2のフェーズ
で検出されたメモリ不正アクセス発生区間のプログラム
をステップ実行毎にメモリデータを検証することによ
り、メモリ不正アクセス位置が特定される。
明したメモリ不正アクセス発生区間をさらに限定するた
めに、タイマを起動し、その割込みハンドラにおいてメ
モリデータの検証を行う。この検証によりメモリ不正ア
クセス位置が局所化される。すなわち、第2のフェーズ
で検出されたメモリ不正アクセス発生区間のプログラム
をステップ実行毎にメモリデータを検証することによ
り、メモリ不正アクセス位置が特定される。
【0014】具体的には、図3に示す×印位置、すなわ
ちタイマ割込み位置の直前に、タイマ割込み発行処理を
追加し、図4に示す処理プログラムをタイマ割込みハン
ドラとして登録する。このように、第2のフェーズでは
メモリデータの検証にタイマ割込み及び図4で示される
処理プログラムを割込みハンドラとして用いる。
ちタイマ割込み位置の直前に、タイマ割込み発行処理を
追加し、図4に示す処理プログラムをタイマ割込みハン
ドラとして登録する。このように、第2のフェーズでは
メモリデータの検証にタイマ割込み及び図4で示される
処理プログラムを割込みハンドラとして用いる。
【0015】上記設定を完了し、ユーザプログラムを実
行すると、図3で示すようにクロック割込みの度にメモ
リデータの検証が前記タイマ割込みハンドラによって実
行される(図4におけるステップS201)。該タイマ
割込みハンドラは、メモリ上のデータ値と正規のデータ
値とを比較する(図4におけるステップS202)。こ
こで両データ値が一致した場合にはメモリチェックOK
を通知し(図4におけるステップS203)、ユーザプ
ログラムへリターンする(図4におけるステップS20
4)。一方、両データ値が不一致の場合にはメモリチェ
ックNGを通知し(図4におけるステップS205),
ユーザプログラムの実行を停止する(図4におけるステ
ップS206)。すなわち、前記タイマ割込みハンドラ
によってメモリデータの不正が検出されると(両データ
値が不一致の場合)、図3の(2)で示されるユーザプ
ログラム区間においてメモリの不正アクセスがあったこ
とが判明する。本方法にて判明したメモリの不正アクセ
ス区間(図3の(2)の区間)でステップ実行によりメ
モリデータを検証することにより、プログラム中のメモ
リ不正アクセス位置が特定される。
行すると、図3で示すようにクロック割込みの度にメモ
リデータの検証が前記タイマ割込みハンドラによって実
行される(図4におけるステップS201)。該タイマ
割込みハンドラは、メモリ上のデータ値と正規のデータ
値とを比較する(図4におけるステップS202)。こ
こで両データ値が一致した場合にはメモリチェックOK
を通知し(図4におけるステップS203)、ユーザプ
ログラムへリターンする(図4におけるステップS20
4)。一方、両データ値が不一致の場合にはメモリチェ
ックNGを通知し(図4におけるステップS205),
ユーザプログラムの実行を停止する(図4におけるステ
ップS206)。すなわち、前記タイマ割込みハンドラ
によってメモリデータの不正が検出されると(両データ
値が不一致の場合)、図3の(2)で示されるユーザプ
ログラム区間においてメモリの不正アクセスがあったこ
とが判明する。本方法にて判明したメモリの不正アクセ
ス区間(図3の(2)の区間)でステップ実行によりメ
モリデータを検証することにより、プログラム中のメモ
リ不正アクセス位置が特定される。
【0016】
【発明の効果】第1の効果は、ユーザプログラム中のメ
モリ不正アクセス位置の検出をソフトウェアのみで実現
するため、専用のハードウェアを実装する必要がないと
いうことである。
モリ不正アクセス位置の検出をソフトウェアのみで実現
するため、専用のハードウェアを実装する必要がないと
いうことである。
【0017】第2の効果は、プロセスを2つのフェーズ
に分割したことで、より高速に検出が行えるということ
である。
に分割したことで、より高速に検出が行えるということ
である。
【0018】第3の効果は、第1のフェーズのメモリ検
証処理をソフトウェア割込みで実行し、RAM上に展開
されたプログラムにソフトウェア割込み発行処理を挿入
するため、ユーザプログラムのソースコード自身を追
加、変更する必要が無い。したがって、デバッグ作業中
に、正規のメモリアクセス位置に対する割込み発行処理
追加に抜けがあっても容易に追加することができ、ま
た、複数位置のメモリ不正アクセスの検出も効率的に行
うことが可能である。
証処理をソフトウェア割込みで実行し、RAM上に展開
されたプログラムにソフトウェア割込み発行処理を挿入
するため、ユーザプログラムのソースコード自身を追
加、変更する必要が無い。したがって、デバッグ作業中
に、正規のメモリアクセス位置に対する割込み発行処理
追加に抜けがあっても容易に追加することができ、ま
た、複数位置のメモリ不正アクセスの検出も効率的に行
うことが可能である。
【図1】第1のフェーズの処理フローを示した図であ
る。
る。
【図2】第1のフェーズのソフトウェア割込みハンドラ
のプログラムを示したフローチャートである。
のプログラムを示したフローチャートである。
【図3】第2のフェーズの処理フローを示した図であ
る。
る。
【図4】第2のフェーズのタイマ割込みハンドラのプロ
グラムを示したフローチャートである。
グラムを示したフローチャートである。
Claims (2)
- 【請求項1】 ユーザプログラム中の正規のメモリアク
セス位置の直前に、ソフトウェア割込みを発行する処理
をあらかじめ実装し、正規のメモリアクセスの実行の度
に、そのソフトウェア割込みに対応するソフトウェア割
込みハンドラで、ターゲットエリアの現在のデータが正
規のデータであるか否かを判別し、現在のデータが正規
のデータでない場合、そのときのメモリアクセス位置と
その手前のメモリアクセス位置の区間でメモリの不正ア
クセスがあったと判明し、その後さらにその不正区間を
限定するために、その不正アクセス発生区間において、
所定の周期でクロック割込みを発行し、そのクロック割
込みに対応するクロック割込みハンドラで、ターゲット
エリアの現在のデータが正規のデータであるか否かを判
別し、現在のデータが正規のデータでない場合、そのと
きのメモリアクセス位置とその手前のメモリアクセス位
置の区間でメモリの不正アクセスがあったと判明し、不
正アクセス位置が特定されることを特徴とするメモリ不
正アクセス検出方式。 - 【請求項2】 前記ソフトウェア割込みハンドラ及び前
記クロック割込みハンドラでメモリの不正アクセスがあ
ったことが判明した時、NGを通知し、前記ユーザプロ
グラムの実行を停止することを特徴とする請求項1記載
のメモリ不正アクセス検出方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8009231A JP2865128B2 (ja) | 1996-01-23 | 1996-01-23 | メモリ不正アクセス検出方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8009231A JP2865128B2 (ja) | 1996-01-23 | 1996-01-23 | メモリ不正アクセス検出方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09198278A JPH09198278A (ja) | 1997-07-31 |
JP2865128B2 true JP2865128B2 (ja) | 1999-03-08 |
Family
ID=11714643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8009231A Expired - Fee Related JP2865128B2 (ja) | 1996-01-23 | 1996-01-23 | メモリ不正アクセス検出方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2865128B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003099293A (ja) * | 2001-09-21 | 2003-04-04 | Denso Corp | 携帯端末およびコンピュータプログラム |
-
1996
- 1996-01-23 JP JP8009231A patent/JP2865128B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09198278A (ja) | 1997-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7849315B2 (en) | Method for managing operability of on-chip debug capability | |
US10915402B2 (en) | Software fault monitoring | |
CN1173264C (zh) | 保护计算机的核心免受外部窜改的方法 | |
JP2865128B2 (ja) | メモリ不正アクセス検出方式 | |
US6321289B1 (en) | Apparatus for automatically notifying operating system level applications of the occurrence of system management events | |
US6463492B1 (en) | Technique to automatically notify an operating system level application of a system management event | |
JP3711871B2 (ja) | Pciバスの障害解析容易化方式 | |
KR102603835B1 (ko) | 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치 | |
JP2003281076A (ja) | Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム | |
JPH02293939A (ja) | スタックオーバーフロー検出時処理方式 | |
JP2002073375A (ja) | マイクロコンピュータを有するシステムにおけるソフトウェアの動作監視方法 | |
JPS6118045A (ja) | プログラムの暴走検出方式 | |
JP3009238B2 (ja) | マイクロコンピュータ付加用レジスタ故障検出装置 | |
JP4044455B2 (ja) | デバッグサポート装置 | |
JP4842036B2 (ja) | 半導体装置と、タイミング制御回路の異常検出方法 | |
JP2695775B2 (ja) | コンピュータシステムの誤動作からの復帰方法 | |
JP2006099654A (ja) | 半導体回路装置 | |
JP2021189864A (ja) | 車両用電子制御装置及び車両制御方法 | |
JP3169879B2 (ja) | マイクロプロセッサ暴走検出方式 | |
JPH02113345A (ja) | 擬障発生方式 | |
JPS63103345A (ja) | ソフトウエア保護方式 | |
JPH0328938A (ja) | マイクロコンピュータ装置 | |
JPH06202957A (ja) | メモリ保護装置 | |
JPH0322148A (ja) | μCPUの暴走検出回路 | |
JPH11219318A (ja) | Icカード |
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: 19981118 |
|
LAPS | Cancellation because of no payment of annual fees |