JP2003015907A - デバッグ装置、デバッグプログラム、およびプログラム記録媒体 - Google Patents

デバッグ装置、デバッグプログラム、およびプログラム記録媒体

Info

Publication number
JP2003015907A
JP2003015907A JP2001197145A JP2001197145A JP2003015907A JP 2003015907 A JP2003015907 A JP 2003015907A JP 2001197145 A JP2001197145 A JP 2001197145A JP 2001197145 A JP2001197145 A JP 2001197145A JP 2003015907 A JP2003015907 A JP 2003015907A
Authority
JP
Japan
Prior art keywords
instruction
break
memory access
condition
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.)
Withdrawn
Application number
JP2001197145A
Other languages
English (en)
Inventor
Wataru Ogoshi
渉 大越
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 JP2001197145A priority Critical patent/JP2003015907A/ja
Publication of JP2003015907A publication Critical patent/JP2003015907A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 実行形式プログラム(例えばマイコン制御用
プログラム)のデバッグ装置において、ソフトウェア的
にデータアクセスブレークを発生させる。 【解決手段】 デバッグ装置101は、メモリアクセス
命令判定部104において、ロードした実行形式プログ
ラム107を静的に解析し、データメモリアクセス命令
を検出する。ソフトウェアブレーク設定部105が、検
出されたデータメモリアクセス命令のアドレスにソフト
ウェアブレークを設定する。所望のブレーク条件108
があらかじめ与えられ、ブレーク条件記憶部112に記
憶されている。ターゲットプロセッサ111においてプ
ログラムを実行し、設定したソフトウェアブレークが発
生した場合、ブレーク判定部106が、あらかじめ与え
られたブレーク条件108と一致する場合にのみ、実際
にブレークを発生させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロコンピュ
ータ(マイクロプロセッサ)を利用したターゲットシス
テム(応用システム)のハードウェア評価とソフトウェ
アデバッグを支援するデバッグ装置に関し、特に、命令
シーケンス中の特定アドレスのメモリの内容を、ある特
定の値で参照または変更したか否かが容易に発見でき
る、デバッグ装置に関するものである。
【0002】
【従来の技術】従来より、マイクロコンピュータのター
ゲットシステムの開発において、そのシステムの評価お
よびソフトウェアのデバッグのために、デバッグ装置が
使用されている。プログラムのデバッグを行う場合は、
ある特定アドレスのメモリの内容がある特定の値で参照
または変更されたことを的確に把握し、その時点でプロ
グラムの状態を認識することが要求される場合がある。
【0003】このような要求に対して、従来のデバッグ
装置は、一般的に、マイクロコンピュータ内に専用ハー
ドウェア回路を設けることで実現されていた。専用ハー
ドウェアは、CPUからのアドレス信号を直接または間
接的に常時監視し、特定のメモリがアドレスされたこと
を確認してから、そのメモリの内容が特定の値に該当す
るか否かをチェックするものであり、常時監視のための
オーバヘッドがCPUの負荷にならないように、専用の
ものが使用されている。すなわち、CPUからのアドレ
ス信号を設定アドレスと照合して一致信号を出力するア
ドレス照合部を、専用ハードウェアにより実現してい
る。
【0004】また、上記の専用ハードウェアによるデバ
ッグ装置以外に、特開平8−30485号公報には、デ
バッガ本体とメモリを管理し、ページ単位の書き込み保
護が実施できるメモリ管理ユニットを備え、プログラム
の停止(ブレーク)条件として検査対象アドレスと書き
込みデータが入力されたときに該当ページに書き込み保
護属性を設定できるブレーク手段を備えたデバッグ装置
が開示されている。この装置では、プログラム実行中
に、検査対象アドレスを含むページに書き込みを行うメ
モリ管理ユニットにより書き込み例外が発生し、ブレー
クする。
【0005】
【発明が解決しようとする課題】しかしながら、前記従
来のデータアクセスブレークのためのデバッグ装置は、
専用ハードウェアが必須となり、実現するにはハードウ
ェアの資源も大きく、ターゲットシステム上に多数のデ
バッグ装置を設けることが困難であるという課題があ
る。また、特開平8−30485号公報の構成において
は、専用ハードウェアを用いないという利点はあるが、
特定アドレスのメモリに対して書き込みが発生するか否
かを判定し、例外を発生させるメモリ管理ユニットが必
須となり、かつ特定アドレスへの書き込みに対してのみ
のブレークしかできないという課題があった。
【0006】本発明は上記従来の問題点を解決するもの
で、ハードウェア資源を用いずにソフトウェア的に、任
意のアドレスへの書き込みに対してデータアクセスブレ
ークが可能なデバッグ装置を実現することを目的とす
る。
【0007】
【課題を解決するための手段】以上の目的を達成するた
め、本発明では、実行形式プログラムを静的に解析し、
命令列の中からデータメモリアクセス命令を探索し、そ
の検出アドレスに対しソフトウェアブレークを設定す
る。プログラムを実行してブレークが発生した場合、指
定されたブレーク条件と一致したか否かの判断を行い、
一致すればブレークを発生させる。これにより、従来の
ようにハードウェア機構を用いずに、ソフトウェア的に
データメモリアクセスブレークを実現することが可能と
なる。
【0008】このため、本発明にかかるデバッグ装置
は、実行形式プログラムおよびデータメモリに対するブ
レーク条件を読み込むインタフェース部と、前記実行形
式プログラムの命令列を先頭命令から1命令ずつ取り出
し、取り出した命令がデータメモリにアクセスする命令
か否かを判定するメモリアクセス命令判定部と、前記メ
モリアクセス命令判定部においてデータメモリにアクセ
スすると判定された命令に対して、ソフトウェアブレー
クを設定するソフトウェアブレーク設定部と、前記実行
形式プログラムの実行時に前記ソフトウェアブレークに
よるブレークが発生した場合、前記ブレーク条件と一致
しているか否かを判定するブレーク判定部とを備えたこ
とを特徴とする。
【0009】この構成によれば、マイクロコンピュータ
制御用プログラム等の実行形式プログラムにおいて特定
のデータメモリに対してアクセスがあった場合に、ハー
ドウェア資源を用いずにソフトウェア的にデータアクセ
スブレークを実現することができる。また、従来は、専
用ハードウェアで監視しているためブレークの発生した
命令から実際ブレークするまでに遅延が生じるという問
題もあったが、前記本発明のデバッグ装置によれば、ソ
フトウェアブレークによりデータアクセスを判断するた
めに、メモリアクセスが発生する命令の実行前に遅延な
くブレークすることが可能である。
【0010】また、前記のデバッグ装置において、前記
メモリアクセス命令判定部が、前記ブレーク条件に対す
るアクセス条件を解析する解析処理部と、データメモリ
へアクセスする複数種類の命令とその各命令の機械語コ
ードおよびアクセス情報との対応関係を示したメモリア
クセス命令テーブルを参照し、前記メモリアクセス命令
テーブルの命令から、前記解析部で解析された条件に合
う命令を選択し、前記実行形式プログラムから取り出し
た命令を前記選択命令と比較することにより当該命令に
ソフトウェアブレークを設定するか否かを判定する判定
処理部とを備えたことが好ましい。
【0011】この構成によれば、与えられたブレーク条
件に合うメモリアクセス命令をあらかじめ絞り込むこと
により、データメモリアクセスが発生するか否かの判定
を高速かつ精度よく実行することが可能である。
【0012】さらに、前記デバッグ装置において、前記
メモリアクセス命令テーブルが、複数種類のターゲット
プロセッサに対応して設けられることが好ましい。これ
により、実行形式プログラムの種類が異なる複数種類の
プロセッサを解析対象とすることが可能である。また、
新たなプロセッサを解析する必要が生じた場合であって
も、命令テーブルを追加するだけでデータアクセスブレ
ークを実現することが可能であり、汎用性が向上する。
【0013】また、上記の目的を達成するために、本発
明にかかるデバッグプログラムは、実行形式プログラム
およびデータメモリに対するブレーク条件をそれぞれ読
み込み、前記実行形式プログラムの命令列を先頭命令か
ら1命令ずつ取り出し、取り出した命令がデータメモリ
にアクセスするメモリアクセス命令か否かを判定し、メ
モリアクセス命令であると判定された場合、当該命令に
対してソフトウェアブレークを設定し、前記実行形式プ
ログラムの実行時に前記ソフトウェアブレークによるブ
レークが発生した場合、前記ブレーク条件と一致してい
るか否かを判定する処理を、コンピュータに実行させる
ことを特徴とする。このデバッグプログラムをコンピュ
ータに実行させることにより、本発明にかかるデバッグ
装置を実現できる。
【0014】前記デバッグプログラムにおいて、前記ソ
フトウェアブレークを設定する処理が、前記ブレーク条
件に対するアクセス条件を解析するステップと、データ
メモリへアクセスする複数種類の命令とその各命令の機
械語コードおよびアクセス情報との対応関係を示したメ
モリアクセス命令テーブルを参照し、前記メモリアクセ
ス命令テーブルの命令から、前記解析部で解析された条
件に合う命令を選択するステップと、前記実行形式プロ
グラムから取り出した命令を前記選択命令と比較するこ
とにより当該命令にソフトウェアブレークを設定するか
否かを判定するステップとを含むことが好ましい。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて説明する。
【0016】(実施の形態1)本実施形態にかかるデバ
ッグ装置は、従来のデバッグ装置と同様に、ターゲット
システム上で動作するプログラムをデバッグするため
に、プログラムの実行、停止(ブレーク)、ステップ実
行機能、またデータ、レジスタ、スタックの参照または
変更機能などを備えている。また、プログラムの特定ア
ドレスの命令を実行する前にブレークするソフトウェア
ブレーク機能を備えているデバッグ装置であることを前
提とする。
【0017】図1は、本発明の一実施形態にかかるデバ
ッグシステムの概略構成を示すブロック図である。本デ
バッグシステムにおいて、デバッグ装置101は、ユー
ザインタフェース部102、ブレーク条件解析部10
3、メモリアクセス命令判定部104、ソフトウェアブ
レーク設定部105、ブレーク判定部106、およびブ
レーク条件記憶部112を備えている。
【0018】ユーザインタフェース部102は、キーボ
ードまたはマウスによる入力、およびCRT、ファイル
またはプリンタへの出力を制御する。ユーザインタフェ
ース部102は、また、装置外部から、実行形式プログ
ラム107、ブレーク条件108、および命令テーブル
ライブラリ109をロードする処理を行う。
【0019】ブレーク条件解析部103は、データアク
セスブレークに関するブレーク条件108を解析する処
理を行う。解析結果は、ブレーク条件記憶部112に格
納される。メモリアクセス命令判定部104は、ブレー
ク条件解析部103より解析された条件に従い、実行形
式プログラム中の各命令がメモリアクセス命令か否かを
判定する。ソフトウェアブレーク設定部105は、メモ
リアクセス命令判定部104よりメモリアクセス命令で
あると判定されたアドレスの命令に対し、ソフトウェア
ブレークを設定する。ブレーク判定部106は、ソフト
ウェアブレーク設定部105によりブレークが設定され
ている場合に、ブレーク条件記憶部112に記憶されて
いるブレーク条件と一致するか否かを判断し、一致して
いる場合にのみ、実際にブレークを発生させる。
【0020】命令テーブルライブラリ109は、実行形
式プログラムで使用する複数のデータメモリアクセス命
令、その各命令の機械語コード、およびその命令のアク
セス情報との対応関係を示した命令テーブルを有する。
110は、デバッグ装置101を用いてデバッグを行う
対象となるターゲットシステムであり、111は、前記
ターゲットシステム110上で動作するターゲットプロ
セッサである。前記命令テーブルライブラリ109の命
令テーブルは、ターゲットプロセッサ111となり得る
マイクロコンピュータの種類ごとにファイル化されてい
る。
【0021】図2は、デバッグ装置101の動作を示す
フローチャートである。
【0022】デバッグ装置101は、まず、実行形式プ
ログラム107をユーザインタフェース部102よりロ
ードする(ステップ1、図2および以下の説明では「ス
テップ」を「S」と略記)。また、ユーザインタフェー
ス部102より、データアクセスブレークを指定するブ
レーク条件108を読み込み、読み込んだブレーク条件
をブレーク条件解析部103で解析し、その結果をブレ
ーク条件記憶部112に格納する(S2)。
【0023】次に、デバッグ装置101は、読み込んだ
実行形式プログラム107の先頭命令のアドレスを解析
開始アドレスとして設定し(S3)、以下の手順によ
り、実行形式プログラムの最終命令まで順次解析を行う
(S4〜S7)。
【0024】前記S4では、メモリアクセス命令判定部
104が、実行形式プログラムから取り出した一命令が
データメモリにアクセスする命令(メモリアクセス命
令)か否かをチェックする。S4の処理の詳細について
は後述する。S4の判定結果がYESであれば、次のS
5において、ソフトウェアブレーク設定部105が、S
4でメモリアクセス命令であると判定された命令コード
のアドレスに対し、ソフトウェアブレークを設定する。
なお、ソフトウェアブレークの設定は、従来と同様に、
ソフトウェアブレーク設定対象命令をある特定の命令に
置き換えることにより行う。これにより、ターゲットプ
ロセッサ111においてその命令が実行されたときに、
ブレークが発生する。
【0025】S6では、実行形式プログラムの次の命令
へポインタを移動し、S7でファイルが終了したか否か
を判定し、ファイル終了でなければS4へ戻り、当該命
令について同様の解析を行う。
【0026】実行形式プログラムの最終命令まで、S4
〜S7の解析処理が終了した場合は、S8にすすみ、解
析が終了した実行形式プログラムの先頭アドレスを実行
開始アドレスとして設定する(S8)。そして、ターゲ
ットプロセッサ111において一命令ずつプログラムを
実行し(ステップS9)、ソフトウェアブレークが発生
すれば(S10にてYES)、ブレーク判定部106
が、このときの状態がブレーク条件記憶部112に記憶
されているブレーク条件と一致しているか否かを判断し
(S11)、一致していれば実際にブレークを発生させ
(S12)、一致していなければ次の命令へポインタを
移動し(S13)、S9へ戻ってプログラム実行を続行
する。なお、前述したように、ソフトウェアブレークの
発生アドレスはソフトウェアブレークを発生させるため
の特定の命令に置き換えられているので、ステップS1
3の処理は、本来の命令のアドレスにポインタを戻す処
理である。
【0027】以上の操作を繰り返すことにより、実行形
式プログラム内のどの命令においてユーザ指定による条
件を満たすデータメモリアクセスが行われたかを特定す
ることが可能となる。
【0028】図3は、図2のS2の処理、すなわち、ブ
レーク条件解析部103が、読み込んだブレーク条件を
解析しブレーク条件記憶部112に記憶する処理の詳細
な手順を示したフローチャート図である。ここでは、ブ
レーク条件108として、データのアドレス、アドレス
の指すデータ、リードアクセス、ライトアクセス、リー
ドまたはライトアクセス、バイトアクセス、ワードアク
セスが指定可能であるとして説明する。
【0029】ブレーク条件解析部103は、まず、ブレ
ーク条件として入力された条件から、指定アドレスを抽
出し、ブレーク条件記憶部112に記録する(S2
1)。次に、入力された条件中に、ブレークさせる場合
のアドレスのデータが指定されているか否かを判定し
(S22)、指定されていれば、当該データをブレーク
条件記憶部112に記録する(S23)。
【0030】ブレーク条件解析部103は、次に、入力
された条件で指定されているアクセス方法がリードアク
セスか否かを判断する(S24)。リードアクセスでな
い場合は、ライトアクセスがブレーク条件に指定されて
いる旨をブレーク条件記憶部112に記録し(S2
5)、S29へ進む。S24にてリードアクセスと判断
した場合は、さらにライトアクセスか否かを判断し(S
26)、ライトアクセスでない場合は、リードアクセス
がブレーク条件に指定されている旨をブレーク条件記憶
部112に記録し(S27)、S29へ進む。
【0031】S26にてライトアクセスとして判断され
た場合は、リード/ライトアクセスがブレーク条件に指
定されている旨をブレーク条件記憶部112に記録し
(S28)、S29へ進む。S29では、バイトアクセ
スか否かの判断をし、バイトアクセスでない場合は、ワ
ードアクセスがブレーク条件として指定されている旨を
ブレーク条件記憶部112に記録し(S30)、バイト
アクセスであった場合は、バイトアクセスがブレーク条
件として指定されている旨をブレーク条件記憶部112
に記録し(S31)、図3に示すフローチャートの処理
は終了する。
【0032】以上の手順により、ブレーク条件解析部1
03は、入力されたブレーク条件108を解析し、ブレ
ーク条件記憶部112に記憶する。
【0033】ここで、図2のS4〜S7において、図1
のメモリアクセス命令判定部104が行う、実行形式プ
ログラムの各命令がメモリアクセス命令であるか否かを
判定する処理の内容について説明する。
【0034】メモリアクセス命令判定部104は、あら
かじめ、ターゲットシステム110のマイクロコンピュ
ータ制御命令の中でメモリアクセスが発生する命令を抽
出したテーブル(メモリアクセス命令テーブル)を読み
込む。メモリアクセス命令テーブルは、データメモリア
クセス命令とその各機械語コード、およびその命令のア
クセス条件を記録したものである。アクセス条件として
は、当該命令がリードまたはライトアクセス属性のいず
れであるかを表す情報と、当該命令がバイトまたはワー
ドアクセス属性のいずれであるかを表す情報とが、メモ
リアクセス命令テーブルに記録されている。このテーブ
ルの具体例については、図4を用いて後述する。
【0035】メモリアクセス命令判定部104は、S4
において、実行形式プログラムの一命令とメモリアクセ
ス命令テーブルとを比較し、プログラムの命令コードが
テーブルにある命令コードと一致すれば、その命令がメ
モリアクセス命令であると判断する。また、プログラム
の命令コードがメモリアクセス命令テーブルのどの命令
コードとも一致しなければ、当該命令はメモリアクセス
命令ではないと判断される。
【0036】図4は、前述のメモリアクセス命令テーブ
ルの内容の一例である。このテーブルは、各メモリアク
セス命令に対する機械語コード(命令コード)、および
リードまたはライトアクセス属性(R/W)、バイトま
たはワードアクセス属性を持つものとする。
【0037】このようなテーブルは、図1に示した命令
テーブルライブラリ109よりデバッグ装置101に提
供される。図1に示した構成のうち、命令テーブルライ
ブラリ109以外は、解析対象となる実行形式プログラ
ムが変更されても、変更する必要がない。したがって、
複数種類のプロセッサをターゲットプロセッサ110と
する場合には、各ターゲットプロセッサ110に対応す
るテーブルを設けるだけでよく、新規に解析対象となる
マイクロコンピュータの種類が増えても、命令テーブル
ライブラリ109を更新するだけで新規なマイクロコン
ピュータの実行形式プログラムを解析可能であり、汎用
性が高い。
【0038】以下、実際の解析例を、図5に示した実際
のサンプルプログラム(実行形式プログラム)と図4に
示した命令テーブル例を用いて説明する。
【0039】まず、図2に示すフローチャートのS1に
おいて、図5に示すサンプルプログラムを読み込み、S
2で、データメモリのアドレスx‘3000’番地にデ
ータ値としてx‘4’が書き込まれた場合にプログラム
をブレークするようなブレーク条件入力を行ったとす
る。これにより、ブレーク条件記憶部112に、アドレ
スがx‘3000’番地であること、かつ、データ値が
x‘4’であることが、ブレーク条件として記憶され
る。
【0040】そして、S3からサンプルプログラムの解
析を開始すると、メモリアクセス命令判定部104は、
図5に示す命令コード(1)から順次、図4のメモリア
クセス命令テーブル[1]〜[9]の全ての命令コード
との比較を行う(S4)。
【0041】最初に、図5に示すサンプルプログラムの
命令コード(1)について解析がなされ、テーブルの
[9]と一致するので、この命令コード(1)に対し、
ソフトウェアブレークが設定される(S5)。命令コー
ド(2)については、命令テーブルと一致するものがな
いので、次命令(3)に移動する。これを繰り返しサン
プルプログラムの最終命令(20)まで実行すると、命
令コード(1)、(3)、(8)、(10)、(1
3)、(14)、(15)、(18)に対し、ソフトウ
ェアブレークを設定することになる。
【0042】そして、図1のフローチャートのS8以降
のステップに従い、ターゲットプロセッサ111におい
てサンプルプログラムを実行すると、命令コード(1)
にソフトウェアブレークが設定されているので、この命
令コード(1)でソフトウェアブレークが発生する。
【0043】前述したように、ソフトウェアブレーク
は、実際の命令を特定の命令に置き換えて実行させるも
のであるため、実際の命令の実行前に発生する。ブレー
ク判定部106は、ソフトウェアブレークが発生した時
点での命令で操作している即値、レジスタ値、絶対アド
レスなどから、データメモリのアドレスと内容とを割り
出し、上記のS2でブレーク条件記憶部112に記憶し
た条件と比較する(S11)。ここで、命令コード
(1)は、アドレスx‘10’番地にx‘2’が書き込
まれる命令であり、ブレーク条件記憶部112に記憶さ
れている条件(アドレスx‘3000’番地、データ値
x‘4’)と一致しないため、S13およびS14を経
由してS9へ戻り、プログラムの次の命令を実行する。
【0044】この処理を繰り返すと、命令コード(1
8)で、ソフトウェアブレークが発生した場合に、アド
レスx‘3000’番地にデータ値としてx‘4’が書
き込まれ、これが、ブレーク条件記憶部112に記憶さ
れている条件(アドレスx‘3000’番地、データ値
x‘4’)と一致するため、この時点で実際にプログラ
ムをブレークし、目的のデータブレークを実現すること
ができる。
【0045】(実施の形態2)本発明の他の実施形態に
ついて、以下に説明する。
【0046】本実施形態のデバッグ装置101は、命令
テーブルライブラリ109からメモリアクセス命令テー
ブルをロードし、与えられたブレーク条件に従って、ソ
フトウェアブレークの設定対象となるメモリアクセス命
令を絞り込んだ後、実行形式プログラムの各命令につい
てソフトウェアブレークを設定するか否かを判断する点
において、実施の形態1と異なっている。
【0047】このため、本実施形態にかかるデバッグ装
置101のメモリアクセス命令判定部104は、図2の
フローチャートに示すS2の処理の後であってS3の処
理を開始する前に、図6のフローチャートに示すよう
な、メモリアクセス命令の絞り込み処理を行う。
【0048】まず、インタフェース部102により、メ
モリアクセス命令テーブルライブラリ109から、ター
ゲットシステム110に対応するメモリアクセス命令テ
ーブルをロードする(S41)。このメモリアクセス命
令テーブルは、ターゲットプロセッサ111のマイクロ
コンピュータ制御命令のうち、データメモリにアクセス
する命令を列挙したものである。
【0049】メモリアクセス命令判定部104は、ロー
ドしたメモリアクセス命令テーブルの先頭命令から最終
命令まで1命令ずつ、図2のステップS2で解析されブ
レーク条件記憶部112に記憶されたブレーク条件に従
って、ソフトウェアブレークの設定対象であるか否かを
判断する(ステップS42〜S46)。ここでは、ブレ
ーク条件として指定されているアクセス条件が、メモリ
アクセス命令テーブルの各命令のアクセス情報(属性)
と一致するか否かによって、ソフトウェアブレークの設
定対象か否かを判断する。
【0050】以下、具体例をあげて、S42〜S46の
処理について説明する。
【0051】なお、この具体例においては、図2のS2
において、データメモリのアドレスx‘3000’番地
にデータ値としてx‘4’がライトアクセスされ、しか
もワードアクセスする場合が、ブレーク条件として設定
されているものとする。
【0052】S2では、まず、ブレーク条件解析部10
3が、実施の形態1で図3のフローチャートに示したブ
レーク条件の解析方法に従って、ブレークアドレスをx
‘3000’番地としてブレーク条件記憶部112に記
録し(S21)、ブレークデータが指定されているか否
かの判定を行い(S22)、この場合は指定されている
ので、x‘4’を同様にブレーク条件記憶部112に記
録する(S23)。次に、アクセス方法がリードアクセ
スか否かの判定を行い(S24)、ここではリードアク
セスではないので、「ライトアクセス」がブレーク条件
記憶部112に記録される(S25)。次に、バイトア
クセスか否かの判定を行い(S29)、この場合はバイ
トアクセスではないので、「ワードアクセス」がブレー
ク条件記憶部112に記録される(S30)。
【0053】ここで、S41で読み込んだメモリアクセ
ス命令テーブルが、図4のとおりであるものとする。メ
モリアクセス命令判定部104は、上記のようにS2解
析してブレーク条件記憶部112に記憶したブレーク条
件に基づき、メモリアクセス命令テーブルから、「ライ
トアクセス(W)かつワードアクセス(Word)」の
条件に一致しないメモリアクセス命令を、ソフトウェア
ブレークの設定対象に該当しないものとして除外する
(S44)。これにより、図4のメモリアクセス命令テ
ーブルのうち、[4][8]のメモリアクセス命令のみ
が、ソフトウェアブレークの設定対象として選択される
こととなる。
【0054】以上のように、ソフトウェアブレークの設
定対象となる命令を絞り込んだ後、デバッグ装置101
は、図2のS3以降の処理を続行し、実施の形態1と同
様に、メモリアクセス命令判定部104が、実行形式プ
ログラムの各命令がメモリアクセス命令であるか否かを
判定し(S4)、メモリアクセス命令である命令に対し
て、ソフトウェアブレーク設定部105が、ソフトウェ
アブレークを設定する(S5)。ここで、S4の判定
は、実行形式プログラムの各命令を、図6のS41〜S
46の処理によってソフトウェアブレークの設定対象と
して選択された命令と対比することによって行われる。
これにより、例えば、実行形式プログラムが図5に示す
サンプルプログラムの場合、命令コード(14)および
(18)に対し、ソフトウェアブレークが設定されるこ
ととなる。
【0055】このようにソフトウェアブレークを設定し
たプログラムをターゲットプロセッサ111において実
行すると(S8〜S14)、命令コード(18)で、ア
ドレスx‘3000’番地にデータ値としてx‘4’が
ライトアクセスされ、しかもワードアクセスするため、
ブレーク判定部106により、実際にブレークを発生さ
せることができる(S12)。
【0056】このように、図6に示す処理を追加するこ
とにより、比較対象の命令を絞り込むことが可能とな
り、データメモリアクセスが発生したか否かの判定の回
数が減るため高速な処理が実現できる。また、ブレーク
条件が複数ある場合、その中でも所望のブレーク条件に
対してブレーク動作を実際に行わせることができる。
【0057】なお、前述の実施の形態1,2で説明した
図2,3,6のフローチャートに示した手順を記述した
プログラムをコンピュータに実行させることにより、本
発明にかかるデバッグ装置を実現することができる。
【0058】
【発明の効果】以上に説明したように、本発明によれ
ば、マイクロコンピュータ制御用プログラム等の実行形
式プログラムにおいて特定のデータメモリに対してアク
セスがあった場合に、ハードウェア資源を用いずにソフ
トウェア的にデータアクセスブレークを実現することが
できる。
【図面の簡単な説明】
【図1】 本発明の実施の形態1にかかるデバッグシス
テムの構成を示すブロック図
【図2】 実施の形態1にかかるデバッグ装置の動作を
示すフローチャート
【図3】 図2におけるS2の処理の詳細な手順を示す
フローチャート
【図4】 本デバッグ装置が参照するメモリアクセス命
令テーブルの内容の一例を示す説明図
【図5】 本デバッグ装置のデバッグ対象である実行形
式プログラムの一例を示す説明図
【図6】 本発明の実施の形態2におけるメモリアクセ
ス命令の絞り込み処理の手順を示すフローチャート
【符号の説明】
101 デバッグ装置 102 インターフェース部 103 ブレーク条件設定部 104 メモリアクセス命令判定部 105 ソフトウェアブレーク設定部 106 ブレーク判定部 107 実行形式プログラム 108 ブレーク条件 109 命令テーブルライブラリ 110 ターゲットシステム 111 ターゲットプロセッサ 112 ブレーク条件記憶部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 実行形式プログラムおよびデータメモリ
    に対するブレーク条件を読み込むインタフェース部と、
    前記実行形式プログラムの命令列を先頭命令から1命令
    ずつ取り出し、取り出した命令がデータメモリにアクセ
    スする命令か否かを判定するメモリアクセス命令判定部
    と、前記メモリアクセス命令判定部においてデータメモ
    リにアクセスすると判定された命令に対して、ソフトウ
    ェアブレークを設定するソフトウェアブレーク設定部
    と、前記実行形式プログラムの実行時に前記ソフトウェ
    アブレークによるブレークが発生した場合、前記ブレー
    ク条件と一致しているか否かを判定するブレーク判定部
    とを備えたことを特徴とするデバッグ装置。
  2. 【請求項2】 前記メモリアクセス命令判定部が、 前記ブレーク条件に対するアクセス条件を解析する解析
    処理部と、 データメモリへアクセスする複数種類の命令とその各命
    令の機械語コードおよびアクセス情報との対応関係を示
    したメモリアクセス命令テーブルを参照し、前記メモリ
    アクセス命令テーブルの命令から、前記解析部で解析さ
    れた条件に合う命令を選択し、前記実行形式プログラム
    から取り出した命令を前記選択命令と比較することによ
    り当該命令にソフトウェアブレークを設定するか否かを
    判定する判定処理部とを備えた、請求項1に記載のデバ
    ッグ装置。
  3. 【請求項3】 前記メモリアクセス命令テーブルが、複
    数種類のターゲットプロセッサに対応して設けられる、
    請求項1または2に記載のデバッグ装置。
  4. 【請求項4】 実行形式プログラムおよびデータメモリ
    に対するブレーク条件をそれぞれ読み込み、 前記実行形式プログラムの命令列を先頭命令から1命令
    ずつ取り出し、 取り出した命令がデータメモリにアクセスするメモリア
    クセス命令か否かを判定し、メモリアクセス命令である
    と判定された場合、当該命令に対してソフトウェアブレ
    ークを設定し、 前記実行形式プログラムの実行時に前記ソフトウェアブ
    レークによるブレークが発生した場合、前記ブレーク条
    件と一致しているか否かを判定する処理を、コンピュー
    タに実行させることを特徴とするデバッグプログラム。
  5. 【請求項5】 前記ソフトウェアブレークを設定する処
    理が、 前記ブレーク条件に対するアクセス条件を解析するステ
    ップと、 データメモリへアクセスする複数種類の命令とその各命
    令の機械語コードおよびアクセス情報との対応関係を示
    したメモリアクセス命令テーブルを参照し、前記メモリ
    アクセス命令テーブルの命令から、前記解析部で解析さ
    れた条件に合う命令を選択するステップと、 前記実行形式プログラムから取り出した命令を前記選択
    命令と比較することにより当該命令にソフトウェアブレ
    ークを設定するか否かを判定するステップとを含む、請
    求項4に記載のデバッグプログラム。
  6. 【請求項6】 請求項4または5に記載のデバッグプロ
    グラムを記録したことを特徴とするプログラム記録媒
    体。
JP2001197145A 2001-06-28 2001-06-28 デバッグ装置、デバッグプログラム、およびプログラム記録媒体 Withdrawn JP2003015907A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001197145A JP2003015907A (ja) 2001-06-28 2001-06-28 デバッグ装置、デバッグプログラム、およびプログラム記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001197145A JP2003015907A (ja) 2001-06-28 2001-06-28 デバッグ装置、デバッグプログラム、およびプログラム記録媒体

Publications (1)

Publication Number Publication Date
JP2003015907A true JP2003015907A (ja) 2003-01-17

Family

ID=19034801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001197145A Withdrawn JP2003015907A (ja) 2001-06-28 2001-06-28 デバッグ装置、デバッグプログラム、およびプログラム記録媒体

Country Status (1)

Country Link
JP (1) JP2003015907A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100334561C (zh) * 2003-07-30 2007-08-29 松下电器产业株式会社 程序调试装置、程序调试方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100334561C (zh) * 2003-07-30 2007-08-29 松下电器产业株式会社 程序调试装置、程序调试方法

Similar Documents

Publication Publication Date Title
US5987250A (en) Transparent instrumentation for computer program behavior analysis
US5926638A (en) Program debugging system for debugging a program having graphical user interface
EP1130518B1 (en) Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
KR101581001B1 (ko) 프로그램의 동적 분석 방법 및 그 장치
US7552425B2 (en) Implementing enhanced compiled breakpoint analysis
CN113742119A (zh) 嵌入式系统的调用栈回溯方法、装置和计算机设备
JP2006185211A (ja) プログラム解析装置、テスト実行装置、その解析方法及びプログラム
US7353500B2 (en) Suppressing execution of monitoring measurement program pointed to by inserted branch after threshold number of coverage to reduce instruction testing overhead
US7512913B2 (en) Designing apparatus, designing method, and program thereof
JPH11110255A (ja) ソフトウェアをデバッグするための装置および方法
JP2003015907A (ja) デバッグ装置、デバッグプログラム、およびプログラム記録媒体
EP0526055B1 (en) Monitoring execution of a computer program to provide profile analysis
JP2003015914A (ja) 情報処理装置を評価するためのテストプログラムを作成する方法、装置、およびそのための処理を記述したプログラム
WO2023145165A1 (ja) プログラム検査装置、及びプログラム検査方法
JPH036630A (ja) 対話処理プログラム検査方式
JP3098501B2 (ja) ソースステップ実行方法およびその装置
JP2022011563A (ja) 検出プログラム、検出方法、及び検出装置
JP3068578B2 (ja) インサーキットエミュレータおよび飽和演算処理方法
US20070265821A1 (en) Simulation apparatus, simulation method, and computer-readable recording medium storing simulation program
JP2002189613A (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000305806A (ja) 不正メモリアクセスエラー検出方法及び不正メモリアクセスエラー検出装置
JP2003263340A (ja) デバッグ装置
JP2967741B2 (ja) Cpu互換性テスト装置
JPH1115692A (ja) デバッグ情報出力制御方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902