JPH0371345A - ソフトウェアデバッグ方法 - Google Patents

ソフトウェアデバッグ方法

Info

Publication number
JPH0371345A
JPH0371345A JP1206822A JP20682289A JPH0371345A JP H0371345 A JPH0371345 A JP H0371345A JP 1206822 A JP1206822 A JP 1206822A JP 20682289 A JP20682289 A JP 20682289A JP H0371345 A JPH0371345 A JP H0371345A
Authority
JP
Japan
Prior art keywords
target program
program
instruction
trap
exception handling
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
JP1206822A
Other languages
English (en)
Inventor
Yoichi Sudo
洋一 須藤
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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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 Hitachi Ltd, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP1206822A priority Critical patent/JPH0371345A/ja
Publication of JPH0371345A publication Critical patent/JPH0371345A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はターゲットプログラムにおけるソフトウェアの
開発支援を可能とするソフトウェアデバッグ方法、特に
高級言語で記述されたソースプログラムの論理記述の区
切り毎のトレース(これを「1行トレース」と称する)
を可能とするソフトウェアデバッグ方法に関する。
〔従来技術〕
マイクロコンピュータ応用機器(以下「ターゲットシス
テムJと称する)の開発において、ソフトウェアデバッ
グやシステム評価を行うためにエミュレータが用いられ
る。このエミュレータは、ターゲットシステムに含まれ
るマイクロコンピュータ(ターゲットマイクロコンピュ
ータ)と同等のマイクロプロセッサをターゲットシステ
ムとのインタフェース部に備えて成るもので、これによ
れば、ソフトウェアデバッグ対象とされるプログラムを
上記マイクロプロセッサに実行させてターゲットシステ
ムを代行制御させることができる。
このとき、必要に応じてデバッグ対象プログラム(ター
ゲットプログラム)の内容を任意に変更したりして、そ
の制御状態をトレースし、所定のブレークポイントでそ
のトレース結果を確認可能にしながらターゲットシステ
ムのソフトウェアデバッグを支援する。
尚、ソフトウェアの開発支援を可能とするソフトウェア
デバッグ方法、特にエミュレータを利用するソフトウェ
アデバッグ方法について記載された文献の例としては、
1987年6月に日経マグロウヒル社より発行された「
日経データプロマイコン(MC2−310−001〜0
12)のマイコン開発用システム」がある。
ところで、上記のソフトウェアデバッグにおいては、高
級言語(ALGOL、FORTRAN等)で記述された
ソースプログラムの論理記述の区切り毎に制御状態をト
レースし、そのトレース結果を確認したい場合がある。
高級言語は、機械語に翻訳(これを「コンパイル」と称
する)されるが。
高級言語と機械語との言語機能のギャップが大きいため
に、高級言語の論理記述の1行(1命令)が機械語の論
理記述の複数行に対応する場合が多い。このため、従来
は、1行トレースを行う場合。
機械語の1命令実行毎にターゲットプログラムの実行を
停止し、高級言語での行移動が生じたか否かを調にるよ
うにしていた。
〔発明が解決しようとする課題〕
しかしながら、上記のように機械語のl命令実行毎にタ
ーゲットプログラムの実行を停止することは、1行トレ
ースのために長時間を費やすことになり、ソフトウェア
デバッグ時間の短縮を図る上で好ましくない。
高級言語で記述されたソースプログラムを機械語にコン
パイルする段階で、ターゲットプログラムにおいて使用
されていない命令コード(不当命令と称する)をソース
プログラムの論理記述の区切りに挿入するようにすれば
、プログラム実行において不当命令がフェッチされるこ
とによって、例外処理が発生され、プログラム実行が停
止されるので、上記の場合よりも上行トレースに要する
時間が短くなる。ところが、ソフトウェアデバッグにお
いてはターゲットプログラムを連続的に実行させたい場
合もあり、かかる場合にも上記不当命令の存在により上
記1行トレースのときと同様に不当命令フェッチ毎に例
外処理が発生されプログラム実行が停止されるため、タ
ーゲットプログラムを連続的に実行させる場合に支障を
来す。
本発明の目的は、1行トレースの高速化が図れ、しかも
ターゲットプログラムの連続的実行を可能とするソフト
ウェアデバッグ方法を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴は1
本明細書の記述および添付図面から明らかになるであろ
う。
〔課題を解決するための手段〕
本願において開示されている発明のうち代表的なものの
概要を簡単に説明すれば下記の通りである。
すなわち、高級言語で記述されたソースプログラムをコ
ンパイルするとともに例外処理を発生させるためのトラ
ップ命令を該ソースプログラムの論理記述の区切りに挿
入してターゲットプログラムを生成するステップを設け
、更に、上記1へラップによる例外処理を発生させるか
否かを指示する条件を初期設定するステップ及び上記タ
ーゲットプログラムの実行において上記トラップをフェ
ッチした際に、上記初期設定された条件を参照して、上
記トラップによる例外処理を発生させるか否かを決定す
るステップを設ける。このとき、上記例外処理にはター
ゲットプログラムの実行停止が含まれる。また、上記例
外処理を発生させるか否かを指示する条件の初期設定の
容易化を図るには、上記ターゲットプログラムを実行す
る中央処理装置のステータスレジスタ内にフラグとして
上記条件を初期設定するようにするとよい。
〔作 用〕
上記した手段によれば、ターゲットプログラムの生成段
階でソースプログラムの論理記述の区切りに挿入された
トラップ命令が、当該ターゲットプログラムの実行にお
いてフェッチされた際に一定条件下で例外処理が発生さ
れ、このことが1行トレースの高速化を達成する。そし
て1例外処理を発生させるか否かは上記初期設定された
条件に基づいて決定され、換言すれば、上記トラップ命
令がフェッチされた場合でも、上記初期設定された条件
内容によっては例外処理の発生が阻止されることになり
、このことが、ターゲットプログラムの連続的実行を可
能とするように作用する。
〔実 施 例〕
第3図には、本発明の実施に使用されるマイクロコンピ
ュータ開発用システムが示される。このシステムは、特
に制限されないが、デバッグツールとしてのエミュレー
タ1と、パーソナルコンピュータやワークステーション
などを含むシステム開発装置19とから成る。
第3図に示されるエミュレータ1は、特に制限されない
が、インタフェースケーブル2の中間に配置したエミュ
レーションボッド3に、図示しないターゲットマイクロ
プロセッサと同等のエミユレーション用マイクロプロセ
ッサ4を備え、そのインタフェースケーブル2の先端部
はターゲラl−マイクロプロセッサのソケット5に結合
可能にされている。このエミユレーション用マイクロプ
ロセッサ4は、特に制限されないが、図示しないターゲ
ットマイクロプロセッサの論理を所望に追加変更してエ
ミュレータ本体6と信号をやりとりしながら実機もしく
は試作機としてのターゲットシステムであるターゲット
マシン7を代行制御可能に構成されている。
エミュレータ本体6にはターゲットマシン7とエミユレ
ーション用マイクロプロセッサ4とがやりとりする情報
やエミユレーション用マイクロプロセッサ4の内部状態
に応する情報がインタフェースケーブル2を介してエミ
ュレーションバス10に与えられ、また、このエミュレ
ーションバス10を介してエミュレーションのための各
種制御信号や情報がエミユレーション用マイクロプロセ
ッサ4に与えられるようになっている。
エミュレーションバス10には、ターゲットマシン7に
含まれるべきデータメモリやプログラムメモリを代行す
るためのエミュレーションメモリ11、エミュレーショ
ンバス10に与えられるデータやアドレスさらには制御
情報を逐次トレースして蓄えるリアルタイムトレース回
路13が夫々結合される。上記エミュレーションメモリ
11、ブレークコントロール回路12及びリアルタイム
トレース回路13は、コントロールバス15及びホスト
インタフェース回路18を通じてソフトウェア開発装置
19の制御を受けるようになっている。
更に、上記ソフトウェア開発装置19は、ソースプログ
ラムの作成や、高級言語で作成されたソースプログラム
を機械語にコンパイルするとともに、例外処理を発生さ
せるためのトラップ(TRAP)命令を該ソースプログ
ラムの論理記述の区切りに挿入してターゲットプログラ
ムを生成する機能をも有する。そして作成されたターゲ
ットプログラムは、ホストインタフェース回路18及び
コントロールバス15を介してエミュレーションメモリ
11に伝達されるようになっている。
次に、第工図及び第2図をも参照しながら本発明の一実
施例であるソフトウェアデバッグ方法について説明する
第2図にはソフトウェアデバッグの前処理としてのター
ゲットプログラム生成処理の流れが示される。この処理
はソフトウェア開発装置19によって行われる。
オペレータによってコンパイルのコマンド入力がなされ
ると(ステップS1)、高級言語で作成されたソースプ
ログラムの機械語への翻訳が完了したか否かの判別が行
われる(ステップS2)。
この判別において、機械語への翻訳が未だ完了していな
い(No)と判断された場合には、ソースプログラムの
1行(1命令)が機械語に翻訳され(ステップS4)、
トラップ(TRAP)命令を指定する旨のデバッグオプ
ションがオペレータによって指定されたか否かの判別が
行われる(ステップS5)。この判別においてデバッグ
オプションが指定された(YES)と判断された場合に
は。
翻訳されたプログラム(これをオブジェクトプログラム
と称する)に、例外処理を発生させるためのトラップ(
TRAP)命令が設定され(ステップS6)、再び上記
ステップS2の判別が行われる。また、上記ステップS
5の判別においてデバッグオプションが指定されない(
No)と判断された場合には、ターゲットプログラムに
トラップ(TRAP)命令が設定されることはなく上記
ステップS2の判別が行われる。そしてこのステップS
2の判別においてソースプログラムの翻訳が完了した(
YES)と判断された場合には当該ソースプログラムの
コンパイル処理が終了されるが(ステップS3)、そう
でない限り、上記ステップ84〜S6の処理が繰返され
、デバッグオプションの指定がある場合には、ソースプ
ログラムの1行が機械語に翻訳される毎に1例外処理を
発生させるためのトラップ(TRAP)命令が設定され
る。このようにソースプログラムが行単位で機械語に翻
訳され、且つこの行単位の翻訳毎にトラップ(TRAP
)命令が挿入されることによって。
ターゲットプログラムが生成される。生成されたターゲ
ットプログラムはソフトウェア開発装置19からホスト
インタフェース回路工8及びコントロールバス15を通
じてエミュレーションメモリ11に転送され、その後、
本実施例システムはデバッグ処理に移行される。
第1図にはエミュレータ】、を利用したソフトウェアデ
バッグ処理の流れが示される。
先ず、オペレータによってデバッグの命令実行系のコマ
ンド入力がなされる(ステップS]、O)。
1行トレースを実行する旨のコマンドあるいはターゲッ
トプログラムを連続的に実行させる旨のコマンドはこの
段階で入力される。そして当該ステップS10のコマン
ド入力がなされると、入力コマンドが1行トレースか否
かの判別が行われる(ステップ5ll)、この判別にお
いて、入力コマンドが1行トレースである(YES)と
判断された場合には、エミユレーション用マイクロプロ
セッサ4におけるCPU (中央処理装置)のステータ
スレジスタ内のフラグがONされ(ステップ512)、
また入力コマンドが1行トレースではない(No)と判
断された場合には上記CPUのステータスレジスタ内の
フラグがOFFされる(ステップ513)。このような
フラグ設定はソフトウェア開発装置19の制御によって
行われ、これが、例外処理を発生させるか否かを指示す
る条件の初期設定となる。そして、ソフトウェア開発装
置19は、エミユレーション用マイクロプロセッサ4に
対して、エミュレーションメモリ11内のターゲットプ
ログラムの実行を開始させる(ステップ514)。
エミユレーション用マイクロプロセッサ4は、エミュレ
ーションメモリ11内のターゲットプログラムの1命令
をフェッチする毎に(ステップ515)、当該命令がト
ラップ(TRAP)であるか否かの判別を行う(ステッ
プ816)。この判別において、当該命令がトラップ(
TRAP)でない(NO)と判断された場合には当該命
令が実行され(ステップ522)、この命令実行におい
てエラーが発生したか否かの判別及び当該命令実行にお
いてブレーク条件が成立したか否かの判別が行われる(
ステップS23.ステップ524)。
そして上記エラーが発生しておらず、またブレーク条件
も成立していない(No)と判断された場合には、再び
上記ステップS15の実行によりターゲットプログラム
の次の1命令がフェッチされ、当該命令がトラップ(T
RAP)であるか否かの判別が行われる(ステップ51
6)、すなわち、上記ステップS15の実行においてト
ラップ(TRAP)命令がフェッチされない限り、フェ
ッチされた命令が実行され(ステップ522)、当該命
令実行においてエラーが発生したか否かの判別及びブレ
ーク条件が成立したか否かの判別が行われる(ステップ
S23.ステップ524)。尚、上記ステップ314の
実行後においては、エミュレーションバス10に与えら
れるデータやアドレスさらには制御情報が、リアルタイ
ムトレース回路13により逐次トレースされている。
そして、上記ステップS15の実行によってトラップ(
TRAP)命令がフェッチされた場合には、上記ステッ
プS16の判別においてYESと判断され、今度は、エ
ミユレーション用マイクロプロセッサ4におけるCPU
のステータスレジスタ内フラグがONされているか否か
の判別が行われる(ステップ517)。この判別におい
て、フラグがONではない(NO)と判断された場合、
それはオペレータによって1行トレースのコマンドが入
力されていないことを意味するから、当該トラップ(T
RAP)命令は無視され、上記ステップ815の実行に
戻る。しかし、上記ステップS17の判別においてフラ
グがONである(YES)と判断された場合には、それ
はオペレータによって1行トレースのコマンドが入力さ
れていることを意味するから、所定の例外処理が発生さ
れる(ステップ818)。この例外処理の発生はブレー
クコントロール回路12によって検知され。
そしてこのブレークコントロール回路12の制御によっ
て、エミユレーション用マイクロプロセッサ4によるタ
ーゲットプログラムの実行が直ちに停止される(ステッ
プ519)。この例外処理によるプログラム実行停止は
、オペレータによって1行トレースのコマンドが入力さ
れている場合に限り、上記ステップ815の実行におい
てトラップ(TRAP)命令がフェッチされる毎に行わ
れる。ここで、トラップ(TRAP)命令は、上述した
ようにターゲットプログラム生成段階で高級言語の1行
毎にオブジェクトプログラムに挿入されたものであるか
ら(第2図参照)、上記例外処理によるプログラム実行
停止によれば、リアルタイムトレース回路13において
上行トレースが適確に行われることになる。
そしてこの1行トレースの結果、すなわちターゲットプ
ログラムの実行結果は、ソフトウェア開発装置19に転
送され、CRTデイスプレィ等の表示装置に表示される
(ステップ520)。この表示内容によってオペレータ
はプログラム実行結果を確認し、しかる後に再びデバッ
グの命令実行系のコマンド入力を行う(ステップ510
)。
尚、上記ステップS23の判別においてエラーが発生し
た(YES)と判断された場合、及び上記ステップS2
4の判別においてブレーク条件が成立した(YES)と
判断された場合にも、上記ステップS19の実行によっ
てターゲットプログラムの実行が停止され、上記ステッ
プS20.S21を経て再びデバッグの命令実行系のコ
マンド入力が行われる(ステップ510)。
上記実施例によれば以下の作用効果を得ることができる
(1)ターゲットプログラムの生成段階でソースプログ
ラムの論理記述の区切りに挿入されたトラップ(TRA
P)命令が、当該ターゲットプログラムの実行において
フェッチされることで、例外処理が発生され、当該ター
ゲットプログラムの実行が停止されるので、機械語の1
命令毎にターゲットプログラムの実行を停止して高級言
語での行移動が生じたか否かを調べる必要がなく、これ
により、1行トレースの高速化が図れる。
(2)上記例外処理を発生させるか否かは、初期設定さ
れた条件に基づいて決定されるので、換言すればエミユ
レーション用マイクロプロセッサ4におけるCPUのス
テータスレジスタ内のフラグがONされていれば上記ト
ラップ(TRAP)命令フェッチ毎に例外処理が発生さ
れるが、OFFされていれば、上記トラップ(TRAP
)命令がフェッチされても当該命令が無視されることに
なるので、ターゲットプログラム中に1へラップ(TR
AP)命令が存在するにもかかわらず、ターゲットプロ
グラムを連続的に実行させることもできる。
(3)また、上記例外処理を発生させるか否かを指示す
る条件の初期設定を、ターゲットプログラムを実行する
CPUのステータスレジスタ内のフラグによって行うよ
うにしたので、この条件の初期設定を容易に行うことが
できる。
(4)更に、1行トレースの実行とターゲットプログラ
ムの連続的実行とをデバッグの命令実行系のコマンド入
力によって選択可能としたので、1行トレースとプログ
ラムの連続的実行とを容易に切換えることができる。
以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明は上記実施例に限定されず
、その要旨を逸脱しない範囲において種々変更可能であ
る。
〔発明の効果〕
本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば、下記の通りである
すなわち、ターゲットプログラムの生成段階でソースプ
ログラムの論理記述の区切りに挿入されたトラップ命令
がフェッチされた際に一定条件下で例外処理が発生され
るので、1行トレースの高速化を図ることができ、また
、初期設定された条件に基づいて上記例外処理を発生さ
せるか否かが決定され、この初期設定条件の内容によっ
ては上記トラップ命令がフェッチされた場合でも例外処
理の発生が阻止されることになるので、ターゲットプロ
グラムを連続に実行させることもできる。
【図面の簡単な説明】
第工図は本発明の一実施例であるソフトウェアデバッグ
処理のフローチャート、 第2図は上記ソフトウェアデバッグの前処理としてのタ
ーゲットプログラム生成処理のフローチャート、 第3図は本発明の実施に使用されるマイクロコンピュー
タ開発用システムのブロック図である。 1・・・エミュレータ、4・・・エミユレーション用マ
イクロプロセッサ、6・・・エミュレータ本体、7・・
・ターゲットマシン、工1・・・エミュレーションメモ
リ、12・・・ブレークコントロール回路、13・・・
リアルタイムトレース回路、19・・・ソフトウェア開
発装置。 第 2 図 第 図

Claims (1)

  1. 【特許請求の範囲】 1、高級言語で記述されたソースプログラムをコンパイ
    ルするとともに、例外処理を発生させるためのトラップ
    命令を該ソースプログラムの論理記述の区切りに挿入し
    てターゲットプログラムを生成するステップと、 上記例外処理を発生させるか否かを指示する条件を初期
    設定するステップと、 上記ターゲットプログラムの実行において上記トラップ
    命令をフェッチした際に、上記初期設定された条件を参
    照して、上記例外処理を発生させるか否かを決定するス
    テップと、を含むソフトウェアデバッグ方法。 2、上記例外処理を発生させるか否かを指示する条件は
    、上記ターゲットプログラムを実行する中央処理装置の
    ステータスレジスタ内にフラグとして初期設定される請
    求項1記載のソフトウェアデバッグ方法。 3、上記例外処理は、ターゲットプログラムの実行停止
    を含む請求項1又は2記載のソフトウェアデバッグ方法
JP1206822A 1989-08-11 1989-08-11 ソフトウェアデバッグ方法 Pending JPH0371345A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1206822A JPH0371345A (ja) 1989-08-11 1989-08-11 ソフトウェアデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1206822A JPH0371345A (ja) 1989-08-11 1989-08-11 ソフトウェアデバッグ方法

Publications (1)

Publication Number Publication Date
JPH0371345A true JPH0371345A (ja) 1991-03-27

Family

ID=16529657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1206822A Pending JPH0371345A (ja) 1989-08-11 1989-08-11 ソフトウェアデバッグ方法

Country Status (1)

Country Link
JP (1) JPH0371345A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8758174B2 (en) 2009-10-28 2014-06-24 Newgy Industries, Inc. Table tennis robot and method of operation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8758174B2 (en) 2009-10-28 2014-06-24 Newgy Industries, Inc. Table tennis robot and method of operation

Similar Documents

Publication Publication Date Title
US7171653B2 (en) Systems and methods for providing communication between a debugger and a hardware simulator
JPH0371345A (ja) ソフトウェアデバッグ方法
JP2000112736A (ja) プログラム作成装置
KR100205337B1 (ko) 엔. 씨. 프로그램의 시뮬레이션 장치 및 그 방법
JP2803090B2 (ja) Mpuシミュレーション方法及びmpuシミュレータ
JP2802128B2 (ja) プログラム開発装置
JP2659366B2 (ja) デバッグ方法及びその装置
JPH05250221A (ja) シミュレータ実行方式
KR20000076780A (ko) 복합 내장형 시스템을 위한 신속 프로토타이핑 장치 및그것을 이용한 신속 프로토타이핑 방법
JPH01274253A (ja) ソフトウェアブレーク方式
JPH0465729A (ja) シンボリック・デバッガ
JPH01152505A (ja) Pcのプログラムデバッグ方式
JPH05233363A (ja) エミュレータのトレース装置
JP2817473B2 (ja) デバッグシステム
JPH06242943A (ja) ソースコードレベルデバッグ装置
JPS59202548A (ja) デバツグ装置
JP2006350676A (ja) 組込みシステムのプログラムデバッグ方法
JPH01234943A (ja) エミュレータ
JPH02284236A (ja) プログラムデバッグ処理装置
JPS62108337A (ja) プログラムデバツグ装置
JPS63178343A (ja) 中断点の設定方式
JPS63180142A (ja) デバツグ装置
JPH0573348A (ja) エミユレータ、及びシステム開発装置
JPH0395638A (ja) デバッグ装置
JPH0659929A (ja) コンピュータ装置