JPH0830485A - デバッグ装置 - Google Patents

デバッグ装置

Info

Publication number
JPH0830485A
JPH0830485A JP6168132A JP16813294A JPH0830485A JP H0830485 A JPH0830485 A JP H0830485A JP 6168132 A JP6168132 A JP 6168132A JP 16813294 A JP16813294 A JP 16813294A JP H0830485 A JPH0830485 A JP H0830485A
Authority
JP
Japan
Prior art keywords
write
memory
break
management unit
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.)
Pending
Application number
JP6168132A
Other languages
English (en)
Inventor
Satoshi Watanabe
敏 渡辺
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 Solution Innovators Ltd
Original Assignee
NEC Software Chubu 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 NEC Software Chubu Ltd filed Critical NEC Software Chubu Ltd
Priority to JP6168132A priority Critical patent/JPH0830485A/ja
Publication of JPH0830485A publication Critical patent/JPH0830485A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】専用ハードウェアを用いずソフトウェアのみ
で、全体の処理効率を低下させずに、特定アドレスを特
定値に書き換える時点で遅延なくブレークさせる。 【構成】デバッグ対象プログラム1のデバッグを行うデ
バッガ本体6と、メモリ3を管理しページ単位の書き込
み保護が実施できるメモリ管理ユニット2と、ブレーク
条件として検査対象アドレス4と書き込みデータとが入
力されたとき該当ページに書き込み保護属性を設定する
ブレーク条件設定手段8と、書き込み保護属性が設定さ
れたページへの書き込み命令が出されたときにメモリ管
理ユニット2により起動される書き込み保護例外ハンド
ラ5と、コンソール7とから構成されている。書き込み
保護例外ハンドラ5は、例外を発生させたアドレスと書
き込みデータを調べ、ブレーク条件と一致した場合のみ
デバッガ本体6を呼び出し、一致しない場合はデバッグ
対象プログラム1の次の処理に復帰する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデバッグ装置に関し、特
に命令のシーケンスの中のどこで、ある特定のメモリの
内容をある特定の値に変更したかが容易に発見できるデ
バッグ装置に関する。
【0002】
【従来の技術】プログラムのデバッグを行う場合、ある
特定のメモリの内容がある特定の値に変更された時点を
的確に把握し、その時点の状態を確認することが要求さ
れる場合がある。従来のデバッグ装置には、専用のハー
ドウェアを付加してこのような要求を実現しているもの
がある。例えば、特開昭57―98054号公報および
特開昭62―182940号公報記載の装置がこれに該
当する。これらは、いずれもCPUからのアドレス信号
を直接または間接的に常時監視し、特定のメモリがアド
レスされたことを確認してから、そのメモリ内容が特定
の値に該当するか否かをチェックするものであり、常時
監視のためのオーバヘッドをCPUに負荷しないため
に、専用のハードウェアを使用している。すなわち、前
者の場合は、CPUからのアドレス信号を設定アドレス
と照合して一致信号を出力するアドレス照合部を、後者
の場合には、各メモリアドレスに対応して設けたタグメ
モリに設定したメモリ指定情報と制御線情報とを複合し
て判定信号を出力するための論理演算部を、それぞれ専
用ハードウェアにより実現している。
【0003】一方、専用ハードウェアを使用することな
く、ブレーク条件を柔軟に設定することを可能としたデ
バッグ方式として、特開昭63―257040号公報記
載のデバッグ方式がある。この方式は、デバッグ対象プ
ログラム中に実行を停止させるための命令ブレークポイ
ントを設定すると共に、第2のブレーク条件を設定して
おき、CPUがデバッグ対象プログラムを実行して命令
ブレークポイントに達したとき、直ちに実行を停止する
のではなく、第2のブレーク条件を満たしているかどう
かをCPU自身がソフトウェアで判断し、条件を満たし
ていない場合には実行を停止することなくデバッグ対象
プログラムを継続実行するものである。この方式では、
望まないタイミングでのブレーク発生を抑制することが
できるため、命令ブレークポイントの設定を適当な間隔
で行えば、あるメモリの内容が特定の値に変化した時点
から余り時間が経過していない時点で実行を停止させる
ことができる。
【0004】
【発明が解決しようとする課題】上述したように、ある
特定のメモリの内容がある特定の値に変化した時点を的
確に把握し、その時点でプログラムの実行を停止させる
ためには、特開昭57―98054号公報および特開昭
62―182940号公報記載の装置のように、特別な
専用ハードウェアの付加が必要なため、このような専用
ハードウェアを備えていない通常のデバッグ装置では、
希望する時点での停止処理が簡単には行えず、デバッグ
効率が上がらないという問題点があった。
【0005】一方、ソフトウェアのみで実現可能な特開
昭63―257040号公報記載のデバッグ方式は、専
用ハードウェアを使用せずソフトウェアのみで実現して
いるため、通常のデバッグ装置への適用も容易である
が、特定のメモリの内容が特定の値に変化したかどうか
を調べる契機として命令ブレークポイントを使用してい
るため、オペレータはあらかじめいくつかの命令ブレー
クポイントを設定しておく必要があり、メモリの内容が
特定の値に変化してから実際にプログラムが停止するま
での間に予期できない遅延があるという問題点がある。
【0006】本発明の目的は、特殊な専用ハードウェア
を付加することなくソフトウェアのみにより、全体の処
理効率を低下させずに、あるメモリが特定の値に書き換
えられようとする瞬間に遅延なくプログラムの実行を停
止させることができるデバッグ装置を提供することにあ
る。
【0007】
【課題を解決するための手段】請求項1のデバッグ装置
は、メモリをページ単位で管理しページ単位の書き込み
保護が実施できるメモリ管理ユニットと、デバッグ対象
プログラムを停止するブレーク条件として特定のメモリ
アドレスと書き込みデータとが入力されたとき前記管理
ユニットが管理する該当ページに対して書き込み保護属
性を設定するブレーク条件設定手段と、書き込み保護属
性が設定されたページへの書き込み命令が出されたとき
前記メモリ管理ユニットにより起動され、この書き込み
命令のアドレス及びデータを前記ブレーク条件設定手段
に入力されたブレーク条件と比較し、条件を満たしたと
きにデバッガ本体を呼び出し、満たさないときは当該書
き込み命令を実行した後にデバッグ対象プログラムの次
の処理に復帰する書き込み保護例外ハンドラとを備えて
構成されている。
【0008】請求項2のデバッグ装置は、請求項1記載
のデバッグ装置において、前記書き込み保護例外ハンド
ラが、ブレーク条件として複数組のメモリアドレスと書
き込みデータとが指定されたとき、すべての組の条件を
満たしたときにのみデバッガ本体を呼び出し、各組の条
件を満たしたときはその旨を記憶し当該書き込み命令を
実行した後にデバッグ対象プログラムの次の処理に復帰
することを特徴としている。
【0009】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0010】図1は本発明の一実施例の構成を示すブロ
ック図である。
【0011】本実施例のデバッグ装置は、図1に示すよ
うに、デバッグ対象プログラム1のデバッグを行うデバ
ッガ本体6と、メモリ3をページ単位で管理しページ単
位の書き込み保護が実施できるメモリ管理ユニット2
と、ブレーク条件として検査対象アドレス4と書き込み
データとが入力されたとき管理ユニット2に通知して該
当ページに対し書き込み保護属性を設定するブレーク条
件設定手段8と、書き込み保護属性が設定されたページ
への書き込み命令が出されたときにメモリ管理ユニット
2により起動される書き込み保護例外ハンドラ5と、コ
ンソール7とから構成されている。
【0012】デバッグを行うとき、オペレータは、まず
コンソール7を操作してデバッガ本体6にブレーク条件
を設定する。ここで、設定されたブレーク条件が、メモ
リ3内の検査対象アドレス4の内容がある特定の値にな
ったときにブレークするという条件であるとする。デバ
ッガ本体6からこのブレーク条件を渡されたブレーク条
件設定手段8は、ブレーク条件を書き込み保護例外ハン
ドラ5に知らせると共に、メモリ管理ユニット2を操作
して検査対象アドレス4を含むページに対して書き込み
禁止属性を設定する。その後、デバッガ本体6はデバッ
グ対象プログラム1を起動する。デバッグ対象プログラ
ム1がメモリ3内のどのページを読み込んでも例外処理
は発生しない。しかし、検査対象アドレス4を含むペー
ジに書き込みを行うと、メモリ管理ユニット2により書
き込み保護例外が発生し、書き込み保護例外ハンドラ5
が起動される。
【0013】書き込み保護例外ハンドラ5の処理を、図
2のフローチャートを参照して説明する。書き込み保護
例外が発生すると、ステップS1で、書き込み保護例外
を発生させたアドレスがブレーク条件に設定された検査
対象アドレス4と一致するかどうかを調べる。通常、メ
モリ管理ユニット2のメモリ管理単位のページは、検査
対象アドレス4の範囲よりも大きいため、書き込み保護
例外が検査対象アドレス4に対する書き込み命令による
ものかどうかを調べなくてはならない。書き込み保護例
外を発生させたアドレスが検査対象アドレス4と一致し
ない場合は、ステップS5に進み、意図されたメモリア
ドレスに書き込みを実行した後、デバッグ対象プログラ
ム1の次の処理に復帰する。書き込み保護例外を発生さ
せたアドレスが検査対象アドレス4と一致する場合は、
ステップS2に進み、検査対象アドレス4に書き込まれ
ようとしている値がブレーク条件に該当しているかどう
かを調べる。ブレーク条件に該当していない場合は、ス
テップS5に進み、書き込みを実行した後にデバッグ対
象プログラム1に復帰する。ブレーク条件に該当してい
る場合には、ステップS3に進みデバッガ本体6を呼び
出す。デバッガ本体6が呼び出されると、オペレータは
コンソール7を介してデバッグ対象プログラム1の状態
を検査することができる。オペレータが必要な検査およ
び処理を実行した後、更にデバッグ対象プログラム1の
デバッグを継続する場合、書き込み保護例外ハンドラ5
はデバッガ本体6からの指示を受けステップS4を経て
ステップS5に進み、書き込みを実行した後にデバッグ
対象プログラム1の次の処理に戻る。デバッグを継続し
ない場合には、書き込み保護例外ハンドラ5は書き込み
を実行することなくそのまま終了となる。
【0014】以上説明したように、デバッグのためのブ
レーク条件として特定のメモリアドレスと書き込みデー
タとが指定されると、そのメモリアドレスを含むページ
に書き込み保護属性を設定し、通常OS機能の一部に含
まれるメモリ管理ユニットからの書き込み保護例外の発
生を契機として、その書き込みがブレーク条件に該当す
るか否かをチェックし、該当した場合のみデバッガ本体
を呼び出す。従って、CPUに対し余分な負荷を増大さ
せることなく、ソフトウェアのみによりブレーク条件に
設定した書き込みの直前でデバッグ対象プログラアムを
停止させることができる。
【0015】上述の説明では、メモリ内容がある値にな
ったときブレークするという例を説明した。しかし、書
き込み保護例外ハンドラはソフトウェアで作られるた
め、機能を拡張することは容易である。例えば、「ある
メモリが特定の値以上または以下になったとき」、「あ
るメモリが特定の値以外になったとき」、「メモリAが
値aになり、メモリBが値bになったとき」等条件を複
雑化したり組み合わせたりすることは容易に実現でき
る。複数のブレーク条件を組み合わせた複合条件の場合
には、書き込み保護例外ハンドラは、一つの条件を満た
すごとにフラグを設定する等の方法で記録し、書き込み
命令を実行した後にデバッグ対象プログラムに復帰し、
すべての条件を満たしたときにデバッガ本体を呼び出す
ように構成すればよい。
【0016】
【発明の効果】以上説明したように、本発明のデバッグ
装置は、メモリ管理ユニットによる書き込み保護例外を
利用することによって、特別な専用ハードウェアを付加
することなく、ソフトウェアのみにより指定したメモリ
アドレスへのデータ書き込み時点で遅延なくデバッグ対
象プログラムを停止させることができる効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】本実施例の書き込み保護例外ハンドラの処理を
示すフローチャートである。
【符号の説明】
1 デバッグ対象プログラム 2 メモリ管理ユニット 3 メモリ 4 検査対象アドレス 5 書き込み保護例外ハンドラ 6 デバッガ本体 7 コンソール 8 ブレーク条件設定手段

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 メモリをページ単位で管理しページ単位
    の書き込み保護が実施できるメモリ管理ユニットと、デ
    バッグ対象プログラムを停止するブレーク条件として特
    定のメモリアドレスと書き込みデータとが入力されたと
    き前記管理ユニットが管理する該当ページに対して書き
    込み保護属性を設定するブレーク条件設定手段と、書き
    込み保護属性が設定されたページへの書き込み命令が出
    されたとき前記メモリ管理ユニットにより起動され、こ
    の書き込み命令のアドレス及びデータを前記ブレーク条
    件設定手段に入力されたブレーク条件と比較し、条件を
    満たしたときにデバッガ本体を呼び出し、満たさないと
    きは当該書き込み命令を実行した後にデバッグ対象プロ
    グラムの次の処理に復帰する書き込み保護例外ハンドラ
    とを備えたことを特徴とするデバッグ装置。
  2. 【請求項2】 前記書き込み保護例外ハンドラが、ブレ
    ーク条件として複数組のメモリアドレスと書き込みデー
    タとが指定されたとき、すべての組の条件を満たしたと
    きにのみデバッガ本体を呼び出し、各組の条件を満たし
    たときはその旨を記憶し当該書き込み命令を実行した後
    にデバッグ対象プログラムの次の処理に復帰することを
    特徴とする請求項1記載のデバッグ装置。
JP6168132A 1994-07-20 1994-07-20 デバッグ装置 Pending JPH0830485A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6168132A JPH0830485A (ja) 1994-07-20 1994-07-20 デバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6168132A JPH0830485A (ja) 1994-07-20 1994-07-20 デバッグ装置

Publications (1)

Publication Number Publication Date
JPH0830485A true JPH0830485A (ja) 1996-02-02

Family

ID=15862434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6168132A Pending JPH0830485A (ja) 1994-07-20 1994-07-20 デバッグ装置

Country Status (1)

Country Link
JP (1) JPH0830485A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132424A (ja) * 1998-06-19 2000-05-12 Lucent Technol Inc ソフトウェアインスツルメンテ―ション方法
US6769065B2 (en) * 1998-08-06 2004-07-27 Infineon Technologies Ag Access authorization device for controlling access requested by an OCDS module
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6269329A (ja) * 1985-09-21 1987-03-30 Nec Corp メモリ破壊位置検出方式
JPS6270947A (ja) * 1985-09-24 1987-04-01 Nec Corp デバグ割込み制御方式
JPH05241896A (ja) * 1992-01-06 1993-09-21 Nec Corp ソフトウェアデバッグ装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6269329A (ja) * 1985-09-21 1987-03-30 Nec Corp メモリ破壊位置検出方式
JPS6270947A (ja) * 1985-09-24 1987-04-01 Nec Corp デバグ割込み制御方式
JPH05241896A (ja) * 1992-01-06 1993-09-21 Nec Corp ソフトウェアデバッグ装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132424A (ja) * 1998-06-19 2000-05-12 Lucent Technol Inc ソフトウェアインスツルメンテ―ション方法
US6769065B2 (en) * 1998-08-06 2004-07-27 Infineon Technologies Ag Access authorization device for controlling access requested by an OCDS module
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints

Similar Documents

Publication Publication Date Title
US10191835B2 (en) Multi-threaded debugger support
US6708326B1 (en) Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence
JP4222370B2 (ja) デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム
US6052774A (en) Apparatus and method for identifying exception routines indicated by instruction address issued with an instruction fetch command
JP5905911B2 (ja) シングルステップ実行を用いる診断コード
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
US7765526B2 (en) Management of watchpoints in debuggers
US20120151267A1 (en) System for extending use of a data address break point register to implement multiple watch points
US7657792B2 (en) Identifying race conditions involving asynchronous memory updates
US8612720B2 (en) System and method for implementing data breakpoints
JP2007257441A (ja) プロセッサおよびプロセッサ制御方法
US20070174703A1 (en) Method for enhancing debugger performance of hardware assisted breakpoints
US5257269A (en) Error controller for use in debugging microprocessor
JPH0830485A (ja) デバッグ装置
JPS60159951A (ja) 情報処理装置におけるトレ−ス方式
JP2653412B2 (ja) ブレークポイント設定方法
JP2800577B2 (ja) デバッグ装置
JPS61141047A (ja) 障害情報の退避方式
JP2902861B2 (ja) トレース機能付バッファ装置
CN113778952A (zh) 一种日志输出方法、装置、设置及存储介质
JP2002014843A (ja) プログラム実行トレース方式
JPH01161544A (ja) プログラムトレース方式
JP3120841B2 (ja) インサーキットエミュレータ
JP2001265619A (ja) データトレース方式
JP2002116926A (ja) プログラム処理装置およびプログラム処理方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19960716