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
Application number
JP8009231A
Other languages
English (en)
Other versions
JPH09198278A (ja
Inventor
拓也 久保
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
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP8009231A priority Critical patent/JP2865128B2/ja
Publication of JPH09198278A publication Critical patent/JPH09198278A/ja
Application granted granted Critical
Publication of JP2865128B2 publication Critical patent/JP2865128B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータに記憶されたユーザプログラムのデバッグ方法に関
し、特にユーザプログラム中の、メモリを不正にアクセ
スする位置の検出方式に関するものである。
【0002】
【従来の技術】従来、この種のメモリ不正アクセスプロ
グラムの検出方式には、プログラムのメモリアクセス状
態を知るために、たとえば特開昭57−82296号公
報に示されるように、アドレスー致回路等の専用ハード
ウェア回路を新たに実装しなければならなかった。
【0003】あるいは、プログラムを実行させると同時
に、アナライザを用いてCPUに接続するアドレスバス
を常時監視し、メモリアクセスがあった時点でそのアク
セスが正規なものか不正なものかを、しらみつぶしに検
査しなければならなかった。
【0004】
【発明が解決しようとする課題】第1の問題点は、プロ
グラムのメモリアクセス状態を知るためだけの専用の回
路を実装しなければならないという点である。その理由
はプログラムによるメモリのアクセス状態をCPUの実
動作から検知するという方式にある。
【0005】第2の問題点は、デバッグ作業を実行する
前にプログラムの正規のアクセス処理を予め全て知って
いなければならない点である。その理由は正規のメモリ
アクセス位置を予め所定のメモリに設定しておかなけれ
ばならないからである。
【0006】本発明の課題は、メモリ不正アクセス位置
の検出をソフトウェアのみで実現でき、より高速に検出
が行え、回路・装置の構成簡易化が図れるメモリ不正ア
クセス検出方式を提供することである。
【0007】
【課題を解決するための手段】本発明によれば、ユーザ
プログラム中の正規のメモリアクセス位置の直前に、ソ
フトウェア割込みを発行する処理をあらかじめ実装し、
正規のメモリアクセスの実行の度に、そのソフトウェア
割込みに対応するソフトウェア割込みハンドラで、ター
ゲットエリアの現在のデータが正規のデータであるか否
かを判別し、現在のデータが正規のデータでない場合、
そのときのメモリアクセス位置とその手前のメモリアク
セス位置の区間でメモリの不正アクセスがあったと判明
し、その後さらにその不正区間を限定するために、その
不正アクセス発生区間において、所定の周期でクロック
割込みを発行し、そのクロック割込みに対応するクロッ
ク割込みハンドラで、ターゲットエリアの現在のデータ
が正規のデータであるか否かを判別し、現在のデータが
正規のデータでない場合、そのときのメモリアクセス位
置とその手前のメモリアクセス位置の区間でメモリの不
正アクセスがあったと判明し、不正アクセス位置が特定
されることを特徴とするメモリ不正アクセス検出方式が
得られる。
【0008】さらに、本発明によれば、前記ソフトウェ
ア割込みハンドラ及び前記クロック割込みハンドラでメ
モリの不正アクセスがあったことが判明した時、NGを
通知し、前記ユーザプログラムの実行を停止することを
特徴とするメモリ不正アクセス検出方式が得られる。
【0009】
【作用】プロセスを第1のフェーズ及び第2のフェーズ
に分割したことにより、短時間でメモリの不正アクセス
プログラムの位置が検出される。
【0010】
【発明の実施の形態】以下、本発明のメモリ不正アクセ
ス検出方式の第1のフェーズ及び第2のフェーズの動作
概要について図1乃至図4を参照して説明する。本発明
のメモリ不正アクセス検出方式は2つのフェーズから構
成されている。
【0011】第1のフェーズでは、ユーザプログラム内
の正規のメモリ書き込みアクセス処理時にソフトウェア
割込みを発行し、その割込みハンドラにおいてメモリデ
ータの検証を行う。具体的には、図1に示す×印位置、
すなわちユーザプログラム中の正規のメモリアクセス位
置(ソフトウェア割込み発行位置)の直前に、ソフトウ
ェア割込み発行処理を追加し、図2に示す処理プログラ
ムをソフトウェア割込みハンドラとして登録する。
【0012】上記設定を完了し、ユーザプログラムを実
行すると、図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のフェーズ
で検出されたメモリ不正アクセス発生区間のプログラム
をステップ実行毎にメモリデータを検証することによ
り、メモリ不正アクセス位置が特定される。
【0014】具体的には、図3に示す×印位置、すなわ
ちタイマ割込み位置の直前に、タイマ割込み発行処理を
追加し、図4に示す処理プログラムをタイマ割込みハン
ドラとして登録する。このように、第2のフェーズでは
メモリデータの検証にタイマ割込み及び図4で示される
処理プログラムを割込みハンドラとして用いる。
【0015】上記設定を完了し、ユーザプログラムを実
行すると、図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上に展開
されたプログラムにソフトウェア割込み発行処理を挿入
するため、ユーザプログラムのソースコード自身を追
加、変更する必要が無い。したがって、デバッグ作業中
に、正規のメモリアクセス位置に対する割込み発行処理
追加に抜けがあっても容易に追加することができ、ま
た、複数位置のメモリ不正アクセスの検出も効率的に行
うことが可能である。
【図面の簡単な説明】
【図1】第1のフェーズの処理フローを示した図であ
る。
【図2】第1のフェーズのソフトウェア割込みハンドラ
のプログラムを示したフローチャートである。
【図3】第2のフェーズの処理フローを示した図であ
る。
【図4】第2のフェーズのタイマ割込みハンドラのプロ
グラムを示したフローチャートである。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 ユーザプログラム中の正規のメモリアク
    セス位置の直前に、ソフトウェア割込みを発行する処理
    をあらかじめ実装し、正規のメモリアクセスの実行の度
    に、そのソフトウェア割込みに対応するソフトウェア割
    込みハンドラで、ターゲットエリアの現在のデータが正
    規のデータであるか否かを判別し、現在のデータが正規
    のデータでない場合、そのときのメモリアクセス位置と
    その手前のメモリアクセス位置の区間でメモリの不正ア
    クセスがあったと判明し、その後さらにその不正区間を
    限定するために、その不正アクセス発生区間において、
    所定の周期でクロック割込みを発行し、そのクロック割
    込みに対応するクロック割込みハンドラで、ターゲット
    エリアの現在のデータが正規のデータであるか否かを判
    別し、現在のデータが正規のデータでない場合、そのと
    きのメモリアクセス位置とその手前のメモリアクセス位
    置の区間でメモリの不正アクセスがあったと判明し、不
    正アクセス位置が特定されることを特徴とするメモリ不
    正アクセス検出方式。
  2. 【請求項2】 前記ソフトウェア割込みハンドラ及び前
    記クロック割込みハンドラでメモリの不正アクセスがあ
    ったことが判明した時、NGを通知し、前記ユーザプロ
    グラムの実行を停止することを特徴とする請求項1記載
    のメモリ不正アクセス検出方式。
JP8009231A 1996-01-23 1996-01-23 メモリ不正アクセス検出方式 Expired - Fee Related JP2865128B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003099293A (ja) * 2001-09-21 2003-04-04 Denso Corp 携帯端末およびコンピュータプログラム

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