JP2001067246A - デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体 - Google Patents

デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体

Info

Publication number
JP2001067246A
JP2001067246A JP24221599A JP24221599A JP2001067246A JP 2001067246 A JP2001067246 A JP 2001067246A JP 24221599 A JP24221599 A JP 24221599A JP 24221599 A JP24221599 A JP 24221599A JP 2001067246 A JP2001067246 A JP 2001067246A
Authority
JP
Japan
Prior art keywords
breakpoint
setting
command
debugging
setting state
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
JP24221599A
Other languages
English (en)
Inventor
Yoshikane Tsuchiya
義兼 土屋
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 IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP24221599A priority Critical patent/JP2001067246A/ja
Publication of JP2001067246A publication Critical patent/JP2001067246A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】インサーキットエミュレータを命令実行手段と
することによるリアルタイム動作デバッグを維持しデバ
ッグ作業を効率化する。 【解決手段】ブレークポイント設定手段16が、ブレー
クポイント設定コマンドに対応してハードウェアブレー
クポイントが全て使用中である場合使用中のブレークポ
イント間の区間を順にそれぞれチェックし区間の区間開
始ブレークポイントまたは区間終了ブレークポイントの
保留可能または保留不可を判定出力するブレークポイン
ト保留判定手段161と、このブレークポイント保留判
定手段161で保留可能と判定出力されたブレークポイ
ントの設定状態を使用中から保留に変更するブレークポ
イント保留手段162とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデバッグ装置または
デバッグ方法に関し、特に、記録媒体に記録されたデバ
ッグ用プログラム(またはデバッガ)を実行するデバッ
グ装置、または、そのデバッグ方法に関する。
【0002】
【従来の技術】従来、この種のデバッグ装置は、ユーザ
システム内に搭載されるユーザ開発プログラムのデバッ
グを支援するために、記録媒体に記録されたデバッグ用
プログラムの制御下で、デバッガコマンドの入力に対応
して、ユーザ開発プログラムにブレークポイントを設定
または解除する処理などを行い、ユーザ開発プログラム
を実行し且つ設定されたブレークポイントでブレークし
次デバッガコマンドの入力待ち状態となるデバッグ処理
を行う。
【0003】このデバッグ処理におけるユーザ開発プロ
グラムの実行およびブレークの方法には、周知のよう
に、その実現手段により、次の2つの方法がある。
【0004】1つは、ハードウェア手段によるエミュレ
ーションであり、ユーザシステム内のマイクロコンピュ
ータ部を代行するインサーキットエミュレータをユーザ
開発プログラムの命令実行手段とし、デバッガコマンド
の入力に対応してユーザ開発プログラムの実行およびブ
レークを行う方法であり、リアルタイム動作でデバッグ
できる。
【0005】2つは、ソフトウェア手段によるシミュレ
ーションであり、ソフトウェア機能手段として命令実行
手段およびブレーク手段を備え、デバッガコマンドの入
力に対応してユーザ開発プログラムの実行およびブレー
クを行う方法であり、扱えるブレークポイント数を充分
大きくできる。
【0006】ここでは、従来技術として、ソフトウェア
手段によるものを説明することにする。
【0007】図8は、例えば、特開平5−8169号公
報に示されているデバッグ装置に基づき1従来例として
記載したデバッグ装置を示すブロック図である。図8を
参照すると、この従来のデバッグ装置は、デバッグ処理
部1,入力部2,メモリ部3とを備える。
【0008】デバッグ処理部1は、CPUなどのデータ
処理装置からなり、記録媒体に記録されたデバッグ用プ
ログラム(またはデバッガ)の実行によるソフトウェア
機能手段として、コマンド解析手段15,ブレークポイ
ント設定手段102,現ネストレベル更新手段103,
命令実行手段17,ブレーク条件判定手段104,ブレ
ーク手段105を備える。
【0009】コマンド解析手段15は、入力部2から入
力されたデバッガコマンドを解析し、ブレークポイント
設定手段102は、有効レベル付きブレークポイント設
定コマンドの入力に対応して、ブレークポイントが設定
されるべき関数の行番号と有効レベルとをブレークポイ
ント表に設定し、ブレークポイントに対応するオブジェ
クトコード命令を退避、その位置を割り込み命令で置換
する。また、現ネストレベル更新手段103は、関数の
呼び出しや戻りに伴って関数の現ネストレベルを更新
し、命令実行手段17は、オブジェクトコードのプログ
ラム命令を実行し、ブレーク条件判定手段104は、プ
ログラム実行中にソース情報テーブルまたはブレークポ
イント表を参照し且つブレークポイントの有効レベルと
関数の現ネストレベルとを比較してブレーク判定し、ブ
レーク手段105は、ブレーク条件判定手段104のブ
レーク判定出力に対応してオブジェクトコードのプログ
ラム命令の実行を中断して、デバッガコマンドの入力待
ち状態とする。
【0010】入力部2は、デバッグ時に、図9に示され
るような有効レベル付きブレークポイント設定などのデ
バッガコマンドを入力する手段である。
【0011】メモリ部3は、デバッグ処理部1によりア
クセスされるメモリであり、オブジェクトコード,ソー
ス情報テーブル,ブレークポイント表,現ネストレベル
とを格納する。オブジェクトコードは、デバッグ対象の
ユーザ開発プログラムのソースコードからコンパイルさ
れたコードであり、ソース情報テーブルは、ソースコー
ドの各行番号に対応してオブジェクトコードのアドレス
を設定するテーブルでありコンパイル時に作成される。
また、ブレークポイント表は、各関数ごとに各ブレーク
ポイントの行番号と有効レベルとを設定するフィールド
を持ち、現ネストレベルは、現ネストレベル更新手段1
03により更新されるレベル値である。
【0012】図10は、図8の従来のデバッグ装置にお
けるデバッグ処理例を示す流れ図である。図10を参照
して簡単に説明する。
【0013】先ず、入力部2からの実行指示コマンドに
よって、命令実行手段17により、メモリ部3のオブジ
ェクトコードの命令が順次取り出され実行される。この
とき、各関数の呼び出しや戻りの命令が割込み命令で置
換され、割込み処理手段の1つである現ネストレベル更
新手段103により、メモリ部3の現ネストレベルが各
関数の呼び出しや戻りに対して更新される。例えば、関
数呼び出しの場合、ステップ1011,1018でメモ
リ部3の現ネストレベルがインクリメントされ、関数戻
りの場合、ステップ1012,1017でメモリ部3の
現ネストレベルがデクリメントされる。
【0014】次に、ステップ1013で、各命令でブレ
ークポイントか否かがブレークポイント表を参照して調
べられ、ブレークポイント表に設定されたブレークポイ
ントでない場合は、ステップ1016に進み、1命令が
実行され、上述した各動作が繰り返される。
【0015】ステップ1013で、ブレークポイント表
に設定されたブレークポイントである場合、ステップ1
014,1015で、現ネストレベルがブレークポイン
ト表に設定された有効レベル以下でないか否かを判定
し、有効レベル以下でない場合、ステップ1016に進
み、上述した各動作が繰り返され、有効レベル設定無ま
たは有効レベル以下の場合、ブレーク終了し、次のデバ
ッガコマンドの入力待ち状態となる。
【0016】この従来のデバッグ装置では、ブレークポ
イント表にブレークポイントを設定する関数ごとに、ブ
レークポイント表に行番号のみを設定した場合は、常に
ブレーク終了し、ブレークポイント表に行番号と共に有
効レベルを設定した場合は、デバッグ対象のユーザ開発
プログラムで実行される関数のネストレベルと比較判定
してブレーク終了できる。このため、再帰呼出しを含む
関数において現在実行中のこの関数は何度目に呼ばれた
ものかを考えながらデバッグを行なう際に、効率的にデ
バッグ作業を進めることができる。
【0017】
【発明が解決しようとする課題】上述したように、ユー
ザ開発プログラムの実行およびブレークの方法には、ハ
ードウェア手段によるものと、ソフトウェア手段による
によるものとがある。
【0018】ハードウェア手段によるものは、ユーザシ
ステム内のマイクロコンピュータ部を代行するインサー
キットエミュレータをユーザ開発プログラムの命令実行
手段とする。しかし、インサーキットエミュレータなど
のハードウェア手段においてターゲットメモリ上で唯一
扱うことのできるハードウェアブレークポイントの数
は、ハードウェア・コストで直接的に制限され、有限希
少である。このハードウェアブレークポイントの数を有
効利用するため、デバッグ装置において、設定したブレ
ークポイントを解除および再設定する操作の場面が多く
なり、冗長な操作回数が増加し、デバッグ作業の効率が
低くなっている問題がある。
【0019】一方、ソフトウェア手段によるものは、従
来技術として具体的に説明したように、ソフトウェア機
能手段により、ブレークポイント表にブレークポイント
を設定し制御できるため、扱えるブレークポイントの数
は、コスト制限を持たず、充分大きな数に設計可能であ
る。しかし、ユーザ開発プログラムの実行およびブレー
クをソフトウェア機能手段によりシミュレーションする
ため、ユーザシステムをリアルタイム動作でデバッグで
きないという問題がある。
【0020】従って、本発明の目的は、インサーキット
エミュレータなどを命令実行手段とすることによるリア
ルタイム動作デバッグを維持しデバッグ作業を効率化す
ることにある。
【0021】
【課題を解決するための手段】そのため、本発明は、ユ
ーザシステム内のマイクロコンピュータ部を代行するイ
ンサーキットエミュレータをユーザ開発プログラムの命
令実行手段とし、デバッガコマンドの入力に対応して前
記ユーザ開発プログラムにブレークポイントを設定また
は解除する処理などを行い、前記ユーザ開発プログラム
のデバッグを支援するデバッグ装置において、ブレーク
ポイント設定時に、前記インサーキットエミュレータで
扱えるハードウェアブレークポイントが全て使用中であ
る場合、使用中のブレークポイントを一時無効とする保
留にできるか否かを判定し、保留可能な使用中のブレー
クポイントの設定状態を使用中から保留に変更設定し、
要求ブレークポイントを新規設定するか、または、要求
ブレークポイントと一致する保留のブレークポイントの
設定状態を保留から使用中に変更している。
【0022】また、前記設定状態が、設定されたブレー
クポイントに対して使用中または保留を示す以外に、前
記ハードウェアブレークポイントの未設定分に対して未
使用を示している。
【0023】また、前記ユーザ開発プログラムに設定す
る各ブレークポイントに対し設定アドレス,対象関数,
前記設定状態をそれぞれ格納するブレークポイント設定
状態表をブレークポイント設定コマンドまたはブレーク
ポイント解除コマンドに対応してアクセスし前記ブレー
クポイント設定状態表に対し前記要求ブレークポイント
の設定または解除を行うブレークポイント設定手段を備
えている。
【0024】また、前記ブレークポイント設定手段が、
前記ブレークポイント設定コマンドに対応して前記ハー
ドウェアブレークポイントが全て使用中である場合使用
中のブレークポイント間の区間を順にそれぞれチェック
し前記区間の区間開始ブレークポイントまたは区間終了
ブレークポイントの保留可能または保留不可を判定出力
するブレークポイント保留判定手段と、このブレークポ
イント保留判定手段で保留可能と判定出力されたブレー
クポイントの設定状態を使用中から保留に変更するブレ
ークポイント保留手段とを備えている。
【0025】さらに、ブレークポイント設定状態表示コ
マンドに対応して前記ブレークポイント設定状態表をア
クセスし、前記設定状態に対応した表示モードの指定に
基づき、前記ブレークポイント設定状態表に設定された
ブレークポイントを選択して表示するブレークポイント
設定状態表示手段を備えている。
【0026】または、本発明は、ユーザシステム内のマ
イクロコンピュータ部を代行するインサーキットエミュ
レータをユーザ開発プログラムの命令実行手段とし前記
ユーザ開発プログラムのデバッグを支援するデバッグ装
置にデバッガコマンドを入力し、前記ユーザ開発プログ
ラムにブレークポイントを設定または解除する処理など
を行うデバッグ方法において、ブレークポイント設定時
に、前記インサーキットエミュレータで扱えるハードウ
ェアブレークポイントが全て使用中である場合、使用中
のブレークポイントを一時無効とする保留にできるか否
かを判定し、保留可能な使用中のブレークポイントの設
定状態を使用中から保留に変更設定し、要求ブレークポ
イントを新規設定するか、または、要求ブレークポイン
トと一致する保留のブレークポイントの設定状態を保留
から使用中に変更している。
【0027】また、前記設定状態が、設定されたブレー
クポイントに対して使用中または保留を示す以外に、前
記ハードウェアブレークポイント数の未設定分に対して
未使用を示している。
【0028】また、前記ユーザ開発プログラムに設定す
る各ブレークポイントに対し設定アドレス,対象関数,
前記設定状態をそれぞれ格納するブレークポイント設定
状態表をブレークポイント設定コマンドまたはブレーク
ポイント解除コマンドに対応してアクセスし前記ブレー
クポイント設定状態表に対し前記要求ブレークポイント
の設定または解除を行うブレークポイント設定処理を含
んでいる。
【0029】また、前記ブレークポイント設定処理が、
前記ブレークポイント設定コマンドに対応して前記ハー
ドウェアブレークポイントが全て使用中である場合使用
中のブレークポイント間の区間を順にそれぞれチェック
し前記区間の区間開始ブレークポイントまたは区間終了
ブレークポイントの保留可能または保留不可を判定出力
するブレークポイント保留判定処理と、このブレークポ
イント保留判定手段で保留可能と判定出力されたブレー
クポイントの設定状態を使用中から保留に変更するブレ
ークポイント保留処理とを含含んでいる。
【0030】また、前記ブレークポイント保留判定処理
が、前記ブレークポイント設定コマンドに対応して、前
記ハードウェアブレークポイントが全て使用中である場
合、ソース情報テーブルを参照して分岐命令および飛び
先ラベルを含まず且つ同一関数内の検索条件で使用中の
ブレークポイント間の区間を検索チェックし、前記検索
条件と不一致の場合保留不可と判定出力する処理と、前
記検索条件と一致の場合、現プログラムカウンタ値が前
記区間内アドレス値であるか否かにより前記区間開始ブ
レークポイントまたは前記区間終了ブレークポイントを
保留可能と判定出力する処理とを含んでいる。
【0031】また、前記ブレークポイント設定処理が、
前記ブレークポイント設定コマンドまたは前記ブレーク
ポイント解除コマンドに対応して前記ブレークポイント
設定状態表に対し前記要求ブレークポイントの設定また
は解除を行ったとき前記ブレークポイント設定状態表を
前記設定状態に基づきソートし前記要求ブレークポイン
トの設定または解除を行えなかったときエラー通知を行
っている。
【0032】さらに、ブレークポイント設定状態表示コ
マンドに対応して前記ブレークポイント設定状態表をア
クセスし、前記設定状態に対応した表示モードの指定に
基づき、前記ブレークポイント設定状態表に設定された
ブレークポイントを選択して表示するブレークポイント
設定状態表示処理を含んでいる。
【0033】
【発明の実施の形態】次に、本発明について図面を参照
して説明する。図1は、本発明のデバッグ装置の実施形
態を示すブロック図である。
【0034】図1を参照すると、本実施形態のデバッグ
装置は、従来と同じく、入力部2,デバッグ処理部1,
メモリ部3とを備える。
【0035】デバッグ処理部1は、CPUなどのデータ
処理装置からなり、記録媒体に記録されたデバッグ用プ
ログラム(またはデバッガ)の実行によるソフトウェア
機能手段として、コマンド解析手段15,ブレークポイ
ント設定手段16,ブレークポイント設定状態表示手段
108とを備え、インサーキットエミュレータなどの命
令実行手段19を備える。
【0036】コマンド解析手段15は、入力部2から入
力されたデバッガコマンドを解析する。
【0037】ブレークポイント設定手段16は、ブレー
クポイント設定時に、ブレークポイント設定コマンドの
入力に対応して、インサーキットエミュレータで扱える
ハードウェアブレークポイントが全て使用中である場
合、使用中のブレークポイントを一時無効とする保留に
できるか否かを判定し、保留可能な使用中のブレークポ
イントの設定状態を使用中から保留に変更設定し、要求
ブレークポイントを新規設定するか、または、要求ブレ
ークポイントと一致する保留のブレークポイントの設定
状態を保留から使用中に変更する。ここで、ブレークポ
イントの設定状態は、設定されたブレークポイントに対
して使用中または保留を示す以外に、ハードウェアブレ
ークポイントの未設定分に対して未使用を示す。
【0038】また、ブレークポイント設定手段16は、
ブレークポイント設定コマンドに対応して、ブレークポ
イント設定状態表をアクセスしブレークポイント設定状
態表に対し要求ブレークポイントの設定を行い、その位
置を割り込み命令で置換し、ブレークポイント解除コマ
ンドに対応して、解除を行う。更に、このブレークポイ
ント設定手段16は、ブレークポイント保留判定手段1
61,ブレークポイント保留手段162を備え、ブレー
クポイント保留判定手段161は、ブレークポイント設
定コマンドに対応してハードウェアブレークポイントが
全て使用中である場合使用中のブレークポイント間の区
間を順にそれぞれチェックし区間の区間開始ブレークポ
イントまたは区間終了ブレークポイントの保留可能また
は保留不可を判定出力し、ブレークポイント保留手段1
62は、ブレークポイント保留判定手段161で保留可
能と判定出力されたブレークポイントの設定状態を使用
中から保留に変更する。
【0039】ブレークポイント設定状態表示手段108
は、ブレークポイント設定状態表示コマンドに対応し
て、ブレークポイント設定状態表をアクセスし、設定状
態に対応した表示モードの指定に基づき、ブレークポイ
ント設定状態表に設定されたブレークポイントを選択し
て画面表示する。
【0040】命令実行手段19は、扱えるブレークポイ
ントのハードウェア制約であるハードウェアブレークポ
イント数をもつインサーキットエミュレータなどからな
り、実行コマンドに対応して、ユーザ開発プログラムを
実行し、プログラム実行中に、ブレークポイント設定状
態表に設定されているブレークポイントの設定アドレス
と使用中の設定状態とに基づき、ユーザ開発プログラム
の実行をブレークする。
【0041】入力部2は、デバッグ時に、ブレークポイ
ント設定などのデバッガコマンドを入力する手段であ
る。
【0042】メモリ部3は、デバッグ処理部1によりア
クセスされるメモリであり、オブジェクトコード,ソー
ス情報テーブル,ブレークポイント設定状態表とを格納
する。オブジェクトコードは、デバッグ対象のユーザ開
発プログラムのソースコードからコンパイルされたコー
ドであり、ソース情報テーブルは、ソースコードの各行
番号に対応してオブジェクトコードのアドレスを設定す
るテーブルでありコンパイル時に作成される。また、ブ
レークポイント設定状態表は、ユーザ開発プログラムに
設定する各ブレークポイントに対し設定アドレス,対象
関数,設定状態をそれぞれ格納する。
【0043】次に、この実施形態のデバッグ装置の処理
動作について図面を参照し説明する。
【0044】図2は、この実施形態のデバッグ装置にお
けるデバッグ処理例を示す流れ図である。先ず、ステッ
プ700でブレークポイント設定状態表が初期化され、
ステップ701でデバッガコマンドの入力待ち状態とな
る。デバッガコマンドが入力されると、デバッガ終了コ
マンドの場合、ステップ702の判定により終了する。
また、ブレークポイント解除コマンド,ブレークポイン
ト設定コマンドの場合、ステップ703,704の判定
により、ステップ707でブレークポイント設定処理が
行われ、ブレークポイント設定状態表示コマンドの場
合、ステップ705の判定により、ステップ708でブ
レークポイント設定状態表示処理が行われ、その他のデ
バッガコマンドの場合、ステップ706でその他デバッ
ガコマンドの処理が行われ、ステップ701に進み、次
のデバッガコマンドの入力待ち状態となる。
【0045】図3は、図2のブレークポイント設定処理
の詳細処理例を示す流れ図である。先ず、ステップ80
0で、ブレークポイント設定状態表が読み込まれ、ブレ
ークポイント設定状態表の先頭から処理が開始される。
ステップ801でブレークポイント設定状態表の終了が
判定され、終了の場合ステップ811に進み、終了でな
い場合、ブレークポイント設定ステップ802,803
で、ブレークポイント設定時に、インサーキットエミュ
レータで扱えるハードウェアブレークポイントが全て使
用中である判定され、使用中の場合ステップ804に進
み、未使用の場合ステップ807に進む。
【0046】ステップ804では、使用中のブレークポ
イント間の区間を順にそれぞれチェックし区間の区間開
始ブレークポイントまたは区間終了ブレークポイントの
保留可能または保留不可を判定出力するブレークポイン
ト保留判定処理が行われ、ステップ805で保留可能,
保留不可に対応してステップ806,810に進む。
【0047】ステップ806では、ステップ804,8
05のブレークポイント保留判定処理で保留可能と判定
出力されたブレークポイントの設定状態を使用中から保
留に変更するブレークポイント保留処理が行われ、ステ
ップ807で、ブレークポイント設定状態表がアクセス
され、ブレークポイント設定状態表に対し、ブレークポ
イント設定コマンドに対応して、要求ブレークポイント
が新規設定されるか、または、要求ブレークポイントと
一致する保留のブレークポイントの設定状態が保留から
使用中に変更され、ブレークポイント解除コマンドに対
応して、解除が行われ、ステップ808,809で、ブ
レークポイント設定状態表の設定または解除を示す設定
フラグがセットされ、ブレークポイント設定状態表が設
定状態に基づき未使用,保留,設定アドレス昇順の順と
なるべく並び替えソートされる。
【0048】また、ステップ810でブレークポイント
設定状態表の次ブレークポイントの設定状態を見る処理
が行われ、ステップ8112,8120で設定フラグの
リセット状態に対応して、要求ブレークポイントの設定
または解除を行えなかったことを示すエラー通知が行わ
れ、処理が終了する。
【0049】図4は、図3のステップ804における使
用中ブレークポイント間の区間チェックおよび判定出力
の詳細処理例を示す流れ図である。先ず、ステップ90
1で、使用中のブレークポイント間の区間が、ソース情
報テーブルの参照により、分岐命令および飛び先ラベル
を含まず且つ同一関数内の検索条件で検索チェックさ
れ、検索条件と不一致の場合、保留不可と判定出力さ
れ、検索条件と一致の場合、ステップ903,904,
905で、現プログラムカウンタ値が区間内アドレス値
であるか否かにより、区間開始ブレークポイントまたは
区間終了ブレークポイントが保留可能と判定出力され
る。
【0050】図5は、この実施形態のデバッグ装置で実
行されるデバッガコマンド例を説明するための説明図で
あり、図5(A)または(B)は、単一または複数のブ
レークポイントを設定するブレークポイント設定コマン
ドの書式例を示し、新たに設定する単一または複数のブ
レークポイントの設定アドレスを単数または複数指定で
き、図5(C)は、ブレークポイント設定状態表示コマ
ンドの書式例を示し、ブレークポイント設定状態表に設
定されたブレークポイントを選択して表示する表示モー
ドを設定状態に対応して指定できる。
【0051】次に、これらデバッグコマンドを入力して
動作させた実施例について、図面を参照し具体的に説明
する。ここでは、この実施例の動作環境としてブレーク
に設定できるハードウェアブレークポイント数が最大で
3個あるものとし、単一のブレークポイントを設定する
場合について説明を進める。図6、図7は、単一のブレ
ークポイントを設定する場合の実施例を説明するための
説明図であり、図6は、デバッグ対象のCソースコード
例を示し、図7は、デバッグ操作に伴うブレークポイン
ト設定状態表の変化を示し、図7(A),図7(B),
図7(C)は、デバッガ起動後の初期化,ブレークポイ
ント設定前,ブレークポイント設定後のブレークポイン
ト設定状態表をそれぞれ示す。
【0052】図6のCソースコードを本実施形態のデバ
ッグ装置にデバッグ対象プログラムとしてダウンロード
した後、デバッグ操作を継続して、Cソースコードの4
行目(PC=1H)にブレークした位置(カレントP
C)で、新たにブレークポイントとして30行目(PC
=400H)を設定しようとした場合について説明す
る。
【0053】デバッガ起動後に、図2のデバッガ処理の
ステップ700で、図7(A)に示したように、ブレー
クポイント設定状態表が初期化され、“設定状態”は全
て未使用“0”となる。続いて、図6に示されるCソー
スコードをデバッグ装置でダウンロードし、任意実行お
よびブレークポイント設定を繰り返し、図6に示すCソ
ースコードのCurrent1(1H)に現プログラム
カウンタ値が実行後停止する。この状態で、デバッグ操
作者が、使用中のブレークポイントを保留にして新たに
ブレークポイントをCソースコードの30行(400
H)に設定するため、図5(A)に示すブレークポイン
ト設定コマンド“BP_Auto 400H”を発行す
る。このコマンドを発行すると、図2のステップ704
でコマンド解析され、ステップ707でブレークポイン
ト設定処理が行われる。
【0054】このブレークポイント設定処理の詳細処理
を示す図3のステップ800で、ブレークポイント設定
状態表が読み込まれ、図7(B)に示すブレークポイン
ト設定前の内容となっており、3つのハーウェアブレー
クポイントが全て使用中であることが解る。ブレークポ
イント設定状態表を最初から読み出し、図3のステップ
801,802,803を通過して、ステップ804に
進む。ステップ804では、ブレークポイント保留判定
処理が行われ、アドレス昇順ソートされている使用中の
ブレークポイント間の区間チェックおよび判定出力が行
われる。
【0055】このブレークポイント保留判定処理の詳細
処理を示す図4のステップ901で、2点間、即ちブレ
ークポイントBP1(104H),BP2(108H)
間の区間の命令コードは、分岐命令および飛び先ラベル
も存在せず且つ同一関数内にある命令であることが検索
チェックされ、ステップ903,904で、現プログラ
ムカウンタ値Current1(1H)が区間内アドレ
ス値でないため、区間終了ブレークポイントBP2(1
08H)が保留可能と判定出力される。一方、次の2点
間、即ちブレークポイントBP2(108H),BP3
(208H)間の区間の命令コードは、分岐命令(この
例ではJLE)があるため“保留不可”が返され、この
2点では保留となり得る使用中のブレークポイントは無
いことになる。ブレークポイントBP2(108H)が
保留可能と判定出力されたので、図3のステップ805
からステップ806に進み、ブレークポイント保留処理
が行われ、ブレークポイントBP2(108H)の設定
状態が使用中から保留に変更され、ステップ807で、
ブレークポイント設定状態表へ要求ブレークポイントが
新規設定され、ステップ808,809で、設定フラグ
がセットされ、ブレークポイント設定状態表のブレーク
ポイントが設定状態およびアドレス昇順にソートされ、
即ちBP1(104H)→BP2(108H)→BP3
(208H)→BPn(400H)の並びとなり、図7
(C)に示すブレークポイント設定後の内容となる。こ
れら処理手順により、使用中のブレークポイントが保留
にされ、デバッグ操作者より新たに要求されたブレーク
ポイントが設定される。
【0056】また、仮に、デバッグ操作者によるブレー
クポイント設定コマンド“BP_Auto 400H”
発行の前に、図6に示すCソースコードのCurren
t2(16H)に現プログラムカウンタ値が実行後停止
していたとすると、ブレークポイント保留判定処理の詳
細処理を示す図4のステップ901で、2点間、即ちブ
レークポイントBP1(104H),BP2(108
H)間の区間の命令コードは、分岐命令および飛び先ラ
ベルも存在せず且つ同一関数内にある命令であることが
検索チェックされ、ステップ903,904で、現プロ
グラムカウンタ値Current2(16H)が区間内
アドレス値であるため、区間開始ブレークポイントBP
1(104H)が保留可能と判定出力される。
【0057】また、仮に、デバッグ操作者によるブレー
クポイント設定コマンド“BP_Auto 400H”
発行の前に、図6に示すCソースコードのCurren
t3(208H)に現プログラムカウンタ値が実行後停
止していたとすると、ブレークポイント保留判定処理の
詳細処理を示す図4のステップ901で、2点間、即ち
ブレークポイントBP1(104H),BP2(108
H)間の区間の命令コードは、分岐命令および飛び先ラ
ベルも存在せず且つ同一関数内にある命令であることが
検索チェックされ、ステップ903,904で、現プロ
グラムカウンタ値Current3(208H)が区間
内アドレス値でないため、区間開始ブレークポイントB
P2(108H)が保留可能と判定出力される。
【0058】更に、図5(B)に示したブレークポイン
ト設定コマンドが発行された場合、複数指定された設定
アドレスごとに、上述した実施例における単一のブレー
クポイントを設定する処理が順にそれぞれ行われ、複数
のブレークポイントが設定され、図5(C)に示したブ
レークポイント設定状態表示コマンドが発行された場
合、設定状態に対応した表示モードの指定に基づき、ブ
レークポイント設定状態表に設定されたブレークポイン
トが選択されて画面表示される。
【0059】
【発明の効果】以上説明したように、本発明によるデバ
ッグ装置は、インサーキットエミュレータなどを命令実
行手段とすることによるリアルタイム動作デバッグを維
持し、インサーキットエミュレータなどをコストアップ
させず、インサーキットエミュレータなどで扱えるハー
ドウェアブレークポイント数以上のブレークポイントを
ブレークポイント設定コマンドにより設定でき、デバッ
グ作業を効率化できる効果がある。
【0060】その理由は、ブレークポイント設定時に、
インサーキットエミュレータで扱えるハードウェアブレ
ークポイントが全て使用中である場合、使用中のブレー
クポイントを一時無効とする保留にできるか否かを判定
し、保留可能な使用中のブレークポイントの設定状態を
使用中から保留に変更設定し、要求ブレークポイントを
新規設定するか、または、要求ブレークポイントと一致
する保留のブレークポイントの設定状態を保留から使用
中に変更できるためである。
【図面の簡単な説明】
【図1】本発明のデバッグ装置の実施形態を示すブロッ
ク図である。
【図2】図1のデバッグ装置のデバッグ処理例を示す流
れ図である。
【図3】図2のデバッグ処理におけるブレークポイント
設定処理の詳細処理例を示す流れ図である。
【図4】図3のブレークポイント設定処理におけるブレ
ークポイント保留判定処理の詳細処理例を示す流れ図で
ある。
【図5】図1のデバッグ装置で実行されるデバッガコマ
ンド例を示す説明図である。
【図6】デバッグ対象のCソースコード例を示す説明図
である。
【図7】デバッグ操作に伴うブレークポイント設定状態
の変化例を示す説明図である。
【図8】従来のデバッグ装置の1例を示すブロック図で
ある。
【図9】図8のデバッグ装置で実行されるデバッガコマ
ンド例を示す説明図である。
【図10】図8のデバッグ装置におけるのデバッグ処理
例を示す流れ図である。
【符号の説明】
1 デバッグ処理部 2 入力部 3 メモリ部 15 コマンド解析手段 16,102 ブレークポイント設定手段 161 ブレークポイント保留判定手段 162 ブレークポイント保留手段 17,19 命令実行手段 103 現ネストレベル更新手段 104 ブレーク条件判定手段 105 ブレーク手段 161 ブレークポイント保留判定手段 162 ブレークポイント保留手段 700〜1018 ステップ

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 ユーザシステム内のマイクロコンピュー
    タ部を代行するインサーキットエミュレータをユーザ開
    発プログラムの命令実行手段とし、デバッガコマンドの
    入力に対応して前記ユーザ開発プログラムにブレークポ
    イントを設定または解除する処理などを行い、前記ユー
    ザ開発プログラムのデバッグを支援するデバッグ装置に
    おいて、ブレークポイント設定時に、前記インサーキッ
    トエミュレータで扱えるハードウェアブレークポイント
    が全て使用中である場合、使用中のブレークポイントを
    一時無効とする保留にできるか否かを判定し、保留可能
    な使用中のブレークポイントの設定状態を使用中から保
    留に変更設定し、要求ブレークポイントを新規設定する
    か、または、要求ブレークポイントと一致する保留のブ
    レークポイントの設定状態を保留から使用中に変更する
    ことを特徴とするデバッグ装置。
  2. 【請求項2】 前記設定状態が、設定されたブレークポ
    イントに対して使用中または保留を示す以外に、前記ハ
    ードウェアブレークポイントの未設定分に対して未使用
    を示す、請求項1載のデバッグ装置。
  3. 【請求項3】 前記ユーザ開発プログラムに設定する各
    ブレークポイントに対し設定アドレス,対象関数,前記
    設定状態をそれぞれ格納するブレークポイント設定状態
    表をブレークポイント設定コマンドまたはブレークポイ
    ント解除コマンドに対応してアクセスし前記ブレークポ
    イント設定状態表に対し前記要求ブレークポイントの設
    定または解除を行うブレークポイント設定手段を備え
    る、請求項1または2記載のデバッグ装置。
  4. 【請求項4】 前記ブレークポイント設定手段が、前記
    ブレークポイント設定コマンドに対応して前記ハードウ
    ェアブレークポイントが全て使用中である場合使用中の
    ブレークポイント間の区間を順にそれぞれチェックし前
    記区間の区間開始ブレークポイントまたは区間終了ブレ
    ークポイントの保留可能または保留不可を判定出力する
    ブレークポイント保留判定手段と、このブレークポイン
    ト保留判定手段で保留可能と判定出力されたブレークポ
    イントの設定状態を使用中から保留に変更するブレーク
    ポイント保留手段とを備える、請求項3記載のデバッグ
    装置。
  5. 【請求項5】 ブレークポイント設定状態表示コマンド
    に対応して前記ブレークポイント設定状態表をアクセス
    し、前記設定状態に対応した表示モードの指定に基づ
    き、前記ブレークポイント設定状態表に設定されたブレ
    ークポイントを選択して表示するブレークポイント設定
    状態表示手段を備える、請求項3または4記載のデバッ
    グ装置。
  6. 【請求項6】 ユーザシステム内のマイクロコンピュー
    タ部を代行するインサーキットエミュレータをユーザ開
    発プログラムの命令実行手段とし前記ユーザ開発プログ
    ラムのデバッグを支援するデバッグ装置にデバッガコマ
    ンドを入力し、前記ユーザ開発プログラムにブレークポ
    イントを設定または解除する処理などを行うデバッグ方
    法において、ブレークポイント設定時に、前記インサー
    キットエミュレータで扱えるハードウェアブレークポイ
    ントが全て使用中である場合、使用中のブレークポイン
    トを一時無効とする保留にできるか否かを判定し、保留
    可能な使用中のブレークポイントの設定状態を使用中か
    ら保留に変更設定し、要求ブレークポイントを新規設定
    するか、または、要求ブレークポイントと一致する保留
    のブレークポイントの設定状態を保留から使用中に変更
    することを特徴とするデバッグ方法。
  7. 【請求項7】 前記設定状態が、設定されたブレークポ
    イントに対して使用中または保留を示す以外に、前記ハ
    ードウェアブレークポイントの未設定分に対して未使用
    を示す、請求項6記載のデバッグ方法。
  8. 【請求項8】 前記ユーザ開発プログラムに設定する各
    ブレークポイントに対し設定アドレス,対象関数,前記
    設定状態をそれぞれ格納するブレークポイント設定状態
    表をブレークポイント設定コマンドまたはブレークポイ
    ント解除コマンドに対応してアクセスし前記ブレークポ
    イント設定状態表に対し前記要求ブレークポイントの設
    定または解除を行うブレークポイント設定処理を含む、
    請求項6または7記載のデバッグ方法。
  9. 【請求項9】 前記ブレークポイント設定処理が、前記
    ブレークポイント設定コマンドに対応して前記ハードウ
    ェアブレークポイントが全て使用中である場合使用中の
    ブレークポイント間の区間を順にそれぞれチェックし前
    記区間の区間開始ブレークポイントまたは区間終了ブレ
    ークポイントの保留可能または保留不可を判定出力する
    ブレークポイント保留判定処理と、このブレークポイン
    ト保留判定手段で保留可能と判定出力されたブレークポ
    イントの設定状態を使用中から保留に変更するブレーク
    ポイント保留処理とを含む、請求項8記載のデバッグ方
    法。
  10. 【請求項10】 前記ブレークポイント保留判定処理
    が、前記ブレークポイント設定コマンドに対応して、前
    記ハードウェアブレークポイントが全て使用中である場
    合、ソース情報テーブルを参照して分岐命令および飛び
    先ラベルを含まず且つ同一関数内の検索条件で使用中の
    ブレークポイント間の区間を検索チェックし、前記検索
    条件と不一致の場合保留不可と判定出力する処理と、前
    記検索条件と一致の場合、現プログラムカウンタ値が前
    記区間内アドレス値であるか否かにより前記区間開始ブ
    レークポイントまたは前記区間終了ブレークポイントを
    保留可能と判定出力する処理とを含む、請求項9記載の
    デバッグ方法。
  11. 【請求項11】 前記ブレークポイント設定処理が、前
    記ブレークポイント設定コマンドまたは前記ブレークポ
    イント解除コマンドに対応して前記ブレークポイント設
    定状態表に対し前記要求ブレークポイントの設定または
    解除を行ったとき前記ブレークポイント設定状態表を前
    記設定状態に基づきソートし前記要求ブレークポイント
    の設定または解除を行えなかったときエラー通知を行
    う、請求項8,9または10記載のデバッグ方法。
  12. 【請求項12】 ブレークポイント設定状態表示コマン
    ドに対応して前記ブレークポイント設定状態表をアクセ
    スし、前記設定状態に対応した表示モードの指定に基づ
    き、前記ブレークポイント設定状態表に設定されたブレ
    ークポイントを選択して表示するブレークポイント設定
    状態表示処理を含む、請求項8〜10または11記載の
    デバッグ方法。
  13. 【請求項13】 ユーザシステム内のマイクロコンピュ
    ータ部を代行するインサーキットエミュレータをユーザ
    開発プログラムの命令実行手段とし前記ユーザ開発プロ
    グラムのデバッグを支援するデバッグ装置に、デバッガ
    コマンドの入力に対応して前記ユーザ開発プログラムに
    ブレークポイントを設定または解除する処理などを実行
    させるデバッグ用プログラムを記録した記録媒体におい
    て、ブレークポイント設定時に、前記インサーキットエ
    ミュレータで扱えるハードウェアブレークポイントが全
    て使用中である場合、使用中のブレークポイントを一時
    無効とする保留にできるか否かを判定し、保留可能な使
    用中ブレークポイントの設定状態を使用中から保留に変
    更設定し、要求ブレークポイントを新規設定するか、ま
    たは、要求ブレークポイントと一致する保留のブレーク
    ポイントの設定状態を保留から使用中に変更する処理を
    実行させることを特徴とするデバッグ用プログラムを記
    録した記録媒体。
  14. 【請求項14】 前記設定状態が、設定されたブレーク
    ポイントに対して使用中または保留を示す以外に、前記
    ハードウェアブレークポイントの未設定分に対して未使
    用を示す、請求項13記載の、デバッグ用プログラムを
    記録した記録媒体。
  15. 【請求項15】 前記ユーザ開発プログラムに設定する
    各ブレークポイントに対し設定アドレス,対象関数,前
    記設定状態をそれぞれ格納するブレークポイント設定状
    態表をブレークポイント設定コマンドまたはブレークポ
    イント解除コマンドに対応してアクセスし前記ブレーク
    ポイント設定状態表に対し前記要求ブレークポイントの
    設定または解除を行うブレークポイント設定処理を実行
    させる、請求項13または14記載の、デバッグ用プロ
    グラムを記録した記録媒体。
  16. 【請求項16】 前記ブレークポイント設定処理が、前
    記ブレークポイント設定コマンドに対応して前記ハード
    ウェアブレークポイントが全て使用中である場合使用中
    のブレークポイント間の区間を順にそれぞれチェックし
    前記区間の区間開始ブレークポイントまたは区間終了ブ
    レークポイントの保留可能または保留不可を判定出力す
    るブレークポイント保留判定処理と、このブレークポイ
    ント保留判定手段で保留可能と判定出力されたブレーク
    ポイントの設定状態を使用中から保留に変更するブレー
    クポイント保留処理とを含む、請求項15記載の、デバ
    ッグ用プログラムを記録した記録媒体。
  17. 【請求項17】 前記ブレークポイント保留判定処理
    が、前記ブレークポイント設定コマンドに対応して、前
    記ハードウェアブレークポイントが全て使用中である場
    合、ソース情報テーブルを参照して分岐命令および飛び
    先ラベルを含まず且つ同一関数内の検索条件で使用中の
    ブレークポイント間の区間を検索チェックし、前記検索
    条件と不一致の場合保留不可と判定出力する処理と、前
    記検索条件と一致の場合、現プログラムカウンタ値が前
    記区間内アドレス値であるか否かにより前記区間開始ブ
    レークポイントまたは前記区間終了ブレークポイントを
    保留可能と判定出力する処理とを含む、請求項16記載
    の、デバッグ用プログラムを記録した記録媒体。
  18. 【請求項18】 前記ブレークポイント設定処理が、前
    記ブレークポイント設定コマンドまたは前記ブレークポ
    イント解除コマンドに対応して前記ブレークポイント設
    定状態表に対し前記要求ブレークポイントの設定または
    解除を行ったとき前記ブレークポイント設定状態表を前
    記設定状態に基づきソートし前記要求ブレークポイント
    の設定または解除を行えなかったときエラー通知を行
    う、請求項15,16または17記載の、デバッグ用プ
    ログラムを記録した記録媒体。
  19. 【請求項19】 ブレークポイント設定状態表示コマン
    ドに対応して前記ブレークポイント設定状態表をアクセ
    スし、前記設定状態に対応した表示モードの指定に基づ
    き、前記ブレークポイント設定状態表に設定されたブレ
    ークポイントを選択して表示するブレークポイント設定
    状態表示処理を実行させる、請求項15〜17または1
    8記載の、デバッグ用プログラムを記録した記録媒体。
JP24221599A 1999-08-27 1999-08-27 デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体 Withdrawn JP2001067246A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24221599A JP2001067246A (ja) 1999-08-27 1999-08-27 デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24221599A JP2001067246A (ja) 1999-08-27 1999-08-27 デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2001067246A true JP2001067246A (ja) 2001-03-16

Family

ID=17085965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24221599A Withdrawn JP2001067246A (ja) 1999-08-27 1999-08-27 デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP2001067246A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003005999A (ja) * 2001-06-22 2003-01-10 Nec Microsystems Ltd デバッグ装置およびその処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003005999A (ja) * 2001-06-22 2003-01-10 Nec Microsystems Ltd デバッグ装置およびその処理方法

Similar Documents

Publication Publication Date Title
JPH05505695A (ja) 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
JP2001034504A (ja) ソースレベルデバッガ
JP2001067246A (ja) デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体
US20030018957A1 (en) Debugger monitor with anticipatory highlights
JPS62162105A (ja) フロ−チヤ−ト式プログラマブルコントロ−ラ
WO2024069730A1 (ja) デバッグ装置及びデバッグ方法
JP2659366B2 (ja) デバッグ方法及びその装置
JPH0465729A (ja) シンボリック・デバッガ
JPH06103110A (ja) ブレークポイント設定方式
JPS63223931A (ja) 論理図実行ル−ト出力処理方式
JPH08307526A (ja) 電子交換機のシミュレートシステム
JPH05233363A (ja) エミュレータのトレース装置
JPH11191072A (ja) デバッグのブレイク処理方法及びデバッグ処理装置
JPS63223930A (ja) 専用プロセツサのプログラムのシミユレ−シヨン方式
JP2000122896A (ja) デバッグ支援方法
JPH05289908A (ja) プログラムトレーサ
JPH0259829A (ja) マイクロコンピュータ
JP2002055845A (ja) マルチタスクシステム用並行処理型汎用デバッグ方法及び装置及びマルチタスクシステム用並行処理型汎用デバッグプログラムを格納した記憶媒体
JPH07319730A (ja) テスト・デバッグ方法
JPS6292034A (ja) プログラムデバツグ装置
JPH09160806A (ja) デバッグ支援方法および装置
JPS63178341A (ja) プログラムデバツグ方式
JPH08185326A (ja) インタープリタ言語処理装置
JPH08221300A (ja) プログラム・シミュレータ
JPH0997182A (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: 20061107