JP2861085B2 - デバッグ方式 - Google Patents

デバッグ方式

Info

Publication number
JP2861085B2
JP2861085B2 JP1189436A JP18943689A JP2861085B2 JP 2861085 B2 JP2861085 B2 JP 2861085B2 JP 1189436 A JP1189436 A JP 1189436A JP 18943689 A JP18943689 A JP 18943689A JP 2861085 B2 JP2861085 B2 JP 2861085B2
Authority
JP
Japan
Prior art keywords
program
step execution
level
source
function
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 - Lifetime
Application number
JP1189436A
Other languages
English (en)
Other versions
JPH0353347A (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 JP1189436A priority Critical patent/JP2861085B2/ja
Publication of JPH0353347A publication Critical patent/JPH0353347A/ja
Application granted granted Critical
Publication of JP2861085B2 publication Critical patent/JP2861085B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、デバッグ方式に関し、特にターゲットシス
テムを有するデバッグ方式に関する。
〔従来の技術〕
ターゲットシステムを有するデバッグ方式は、クロス
デバッグ方式と呼ばれ、このクロスデバッグ方式は、通
常デバッガプログラムの存在するホスト計算機と通信回
線により接続され、デバッグプログラムから制御される
インサーキットエミュレータ及びデバッグ対象のターゲ
ット機器から構成される。
クロスデバッグ方式のホスト計算機上のデバッガプロ
グラムは、ホスト計算機の端末等からターゲット機器上
の被デバッグプログラムの動作の流れを監視するため、
デバッガ使用者からのターゲット機器上のプログラムの
ソースレベル1行や機械語の1命令を実行するコマンド
を受取り、1行の実行後、現在のターゲット機器上のプ
ログラムの位置をソースレベルや機械語レベルで表示す
る機能を有している。
ターゲットシステムとは、インサーキットエミュレー
タ等のCPU動作を監視する機能とデバッグの対象となるC
PUとメモリ装置等から構成されるターゲット機器のこと
である。そしてデバッガプログラムとターゲットシステ
ムは、RF232Cインターフェイス等の通信回線を通じて、
デバッガプログラムからターゲットシステムへのコマン
ドや、ターゲットシステムからデバッガプログラムへタ
ーゲット上の被デバッグプログラムの状態の情報を転送
している。
例えば、デバッガプログラムは、ターゲット機器上の
被デバッグプログラムの機械語の1命令実行を行うた
め、ターゲットシステム内のインサーキットエミュレー
タへRS232Cインタフェイス等の通信回線を通じて機械語
の1命令実行コマンドを転送し、インサーキットエミュ
レータは、ターゲット機器上の被デバッグプログラムの
1機械語命令の実行を行い、次に実行を行うプログラム
のアドレス情報をデバッガプログラムに通信回線を通し
て転送する。
従来、この種のデバッグ方式では、プログラム作成を
ホスト計算機上で行い、ホスト計算機上のデバッガプロ
グラムを通してインサーキットエミュレータへプログラ
ムをダウンロードし、インサーキットエミュレータのデ
バッグ機能を使用してデバッグを行っていた。
また、デバッグするプログラムは機械語レベルで行っ
ていたため、インサーキットエミュレータの持つ機械語
レベルのデバッグ機能を利用するだけで、デバッグか可
能であった。インサーキットエミュレータに機械語レベ
ルのデバッグ機能をもたせ、ホスト計算機上のデバッガ
プログラムは、インサーキットエミュレータからの情報
の表示とインサーキットエミュレータへのキーボードあ
らのデバッガ使用者の入力コマンドの転送を行う程度の
機能を持つだけで十分であった。
しかし、最近では、プログラムはC言語やパスカル言
語等の高級言語のソースレベルで記述され、そのソース
レベルでのプログラムのデバッグを行う必要があり、そ
のためにホスト計算機上のデバッガプログラムは、ソー
スレベルのプログラム上のシンボルの処理やソースレベ
ルの行情報をもとにソース行での実行機能等のソースレ
ベルでのデバッグのための機能を持つようになってい
る。
ソースレベルの1行は、言語処理プログラムにより、
ソースプログラムの1行から複数の機械語命令に変換さ
れる。その場合、各ソース行の先頭の機械語命令のアド
レスとソースプログラムファイル内のそのソース行数の
対応表がデバッグ情報としてホスト計算機上にファイル
として出力される。
従来のソースレベルの1行のステップ実行の方式で
は、現在のターゲットシステム上の被デバッグプログラ
ムの停止アドレスと言語処理プログラムにより出力され
るソース行とアドレスの対応表をもとに現在のソース行
番号をホスト計算機上でデバッガプログラムが検索す
る。
次に現在のアドレスから機械語レベルで1命令ステッ
プ実行を行い、停止後被デバッグプログラムの停止アド
レスをターゲットシステムから得る。停止アドレスとソ
ース行とアドレスの対応表から、再びデバッガプログラ
ムがソース行番号を検索し、初めに検索していた行番号
と比較し異なっている場合、ソースレベルでの1行ステ
ップ実行が完了したとして、デバッガプログラムは、ユ
ーザに1行ステップ実行の終了を通知する。
初めに検索していた行番号と再び検索した行番号が同
じ場合は、まだ同一のソース行中を実行しているとし
て、再び機械語レベルの1命令のステップを実行を行
い、停止アドレスから行番号を検索し、初めの行番号と
比較する。このデバッガプログラムは、行番号が異なる
までこの手順を繰り返す。
ソースレベルの1行は、機械語命令の数命令から、多
い場合は十数命令に展開されることがある。そのためソ
ースレベルの従来方式のステップ実行では、ターゲット
システムに数回から十数回の機械語レベルの1命令のス
テップ実行コマンドを送り、その停止アドレス情報を得
る通信を行う必要があった。
従来の機械語レベルのみのデバッガプログラムに比
べ、現在の高級言語を処理できるデバッガプログラムで
は、ソースレベルの処理が増加しており、またインサー
キットエミュレータとの通信量の増加のため、デバッガ
使用者へのコマンドの応答時間が増加しており、コマン
ドの応答時間の高速化の要求がある。
また、ソースプログラム1行に複数の文が記述されて
いたり、文の中で関数呼び出しが記述されていてもステ
ップ実行の対象はあくまでもソースプログラムの1行で
あるので、次の行あるいは分岐した先の行で1回のステ
ップ実行を終了していた。ブロックの中に複数の文があ
る場合は、1行のステップ実行を複数回行うか、次のブ
ロックの先頭にブレークポイントを設定して実行してい
た。
この言語処理プログラムの生成するソースレベルデバ
ッグのための情報の出力方法には2通りある。その一つ
は、行番号情報のように機械語とは異なる情報を出力す
る方法と、もつ一つは関数の先頭でスタックが使用可能
であるかを調べるルーチンを呼び出す呼び出し命令のよ
うに機械語命令として生成する情報の出力方法である。
後者の出力方法により出力される情報としては他にステ
ップ実行のために1機能単位の機械語命令の先頭に、デ
バッグを目的とした特殊なルーチンを呼び出す呼び出し
命令を生成する言語処理プログラムが考えられる。
〔発明が解決しようとする課題〕
上述したデバッグ方式は、ターゲットシステム上の被
デバッグプログラムのソースレベルのステップ実行を行
う場合、1ソース行内に含まれる機械語命令分の機械語
命令のステップ実行のためのデバッガプログラムとター
ゲットシステムとの通信を必要としているので、デバッ
ガプログラムの使用者へのソースレベルの1行ステップ
実行コマンド時の応答時間が多大となる欠点がある。
また、ソースプログラム1行に複数の文が記述されて
いたり、文の中で関数呼び出しが記述されていてもステ
ップ実行の対象はあくまでもソースプログラムの1行で
あるので、次の行あるいは分岐した先の行単位以外のス
テップ実行はできなかった。たとえば文単位や関数呼び
出し単位でのステップ実行はできなかった。
本発明の目的は、言語処理プログラムが生成したステ
ップ実行のための処理部にブレークポイントを設定する
ことにより、文単位、行単位、関数呼び出し単位等のソ
ースレベルの1機能単位によるステップ実行を、高速に
行うことのできるデバッグ方式を提供することにある。
〔課題を解決するための手段〕
本発明の構成は、言語処理プログラムによって翻訳さ
れたソースプログラムを用いた、ターゲットシステムと
通信を行うホスト計算機上のデバッグ手段により、ソー
スレベルのソースプログラムのステップ実行を行うデバ
ッグ方式において、前記言語処理プログラムの文単位、
ブロック単位、関数単位を含む一機能単位の直前にステ
ップ実行処理ルーチンを呼び出す命令を付加したブレー
クポイントを設定することにより、前記ソースレベルの
前記一機能単位によるステップ実行が行えるようにした
ことを特徴とする。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は本発明の一実施例を説明するフローチャー
ト、第2図は第1図を実行するシステムの構成図であ
る。図においてこのシステムは、計算機装置1、デバー
ガプログラム2、コンソール3、RS232C通信回路4、イ
ンサーキット・エミュレータ5、およびターゲット機器
6から構成される。このシステムに含まれるターゲット
システムは、インサーキットエミュレータ5及びターゲ
ット機器6に相当し、通信手段はRS232C通信回路4に相
当し、デバッグ手段はデバッガプログラム2に相当す
る。
デバッガプログラム2は、デバッガプログラム2のユ
ーザからのコマンドの受取りや、その他のデバッグ機能
を行うプログラムであり、ソースレベルのステップ実行
の制御も行う。このデバッガプログラム2は、使用者か
らのターゲットシステム上の被デバッグプログラムのソ
ースレベルでの1機能単位のステップ実行コマンドを受
取り、インサーキットエミュレータ5へ各種インサーキ
ットエミュレータ用コマンドを送り、その結果を受取り
その旨をデバッガプログラム2の使用社へ通知する。
第1図のフローチャートにおいて、ターゲットシステ
ム上の被デバッグプログラムのソースレベルの1行ステ
ップ実行の詳細を示している。
第3図は言語処理プログラムが出力する機械語命令の
構成図であり、ソースレベルのステップ実行のためのコ
ール命令31と、ソースプログラム1機能単位に対する機
械語命令32と、関数用ステップ実行処理部33、ブロック
用ステップ実行処理部34、文用ステップ実行処理部35を
含むステップ実行処理部36とから構成される。
ソースレベルのステップ実行のためのコール命令31
は、言語処理プログラムが解析できるソースプログラム
中の関数呼出し、ブロック、文等の1機能単位の各先頭
に、前記言語処理プログラムが生成したソースレベルの
ステップ実行のためのコール命令であり、各機能単位に
対応して関数用ステップ実行処理部33、ブロック用ステ
ップ実行処理部34、文用ステップ実行処理部35のいずれ
かを呼び出す。
関数用ステップ実行処理部33は、文用ステップ実行処
理部35に分岐し、ブロック用ステップ実行処理部34は文
用ステップ実行処理部35に分岐する。但し、1つの文に
関数呼出しだけが記述された場合、関数用ステップ実行
処理部33をコールするコール命令だけが出力される。ま
た、ブロックの開始の直後に文が記述されている場合、
ブロック用ステップ実行処理部34に分岐する呼び出し命
令だけが出力される。
ソースプログラム1機能単位に対する機械語命令32
は、ソースプログラム中の1機能単位を言語処理プログ
ラムが翻訳した複数の機械語命令の集まりである。ステ
ップ実行処理部33は、ステップ実行のためブレークポイ
ントを設定される機械語命令である。
ソースレベルの機能単位のステップ実行は、第1図の
フローチャートに従って行われる。
(1)まずステップ11でデバッガプログラム2により使
用者は関数レベルのステップ実行を行うか否かを決定す
る。ここで関数レベルのステップ実行を行う場合には、
ステップ12でデバッガプログラム2は、ターゲット機器
上の関数用ステップ実行処理部33の先頭アドレスにブレ
ークポイントを設定するコマンドをR通信回線5を使用
して、インサーキットエミュレータに送信する。
(2)さらにステップ13で、デバッガプログラム2によ
り使用者はブロックレベルにステップ実行を行うか否か
を決定する。ブロックレベルのステップ実行を行う場
合、ステップ14でデバッガプログラム2は、ターゲット
機器上のブロック用ステップ実行処理部34の先頭アドレ
スにブレークポイントを設定するコマンドをRS232C通信
回線5を使用して、インサーキットエミュレータに送信
する。
(3)次にステップ15で、デバッガプログラム2により
使用者は文レベルのステップ実行を行うか否かを決定す
る。文レベルのステップ実行を行う場合、ステップ16で
デバッガプログラム2は、ターゲット機器上の文用ステ
ップ実行処理部35の先頭アドレスにブレークポイントを
設定するコマンドをRS232C通信回線5を使用して、イン
サーキットエミュレータに送信する。
ここでブレークポイントとは、プログラム内のあるメ
モリを指定し、プログラムを実行すると、指定したメモ
リにプログラムの実行が移動してプログラムを実行する
とプログラムが停止する様な機能のことである。
(4)次に、ステップ17でデバッガプログラムは、ブレ
ークポイントの設定されたターゲット機器上の被デバッ
グプログラムの実行コマンドを、RS232C通信回線5を使
用してインサーキットエミュレータに送信する。
(5)次に、ステップ18で文レベルのステップ実行を設
定した場合、被デバッグプログラムはある機能単位に対
する機械語命令32を実行したあと、ステップ実行のため
のコール命令31を実行する。ステップ実行のためのコー
ル命令31は文用ステップ実行処理部35に分岐する。文用
ステップ実行処理部35にはブレークポイントが設定され
ているため、被デバッグプログラムの実行はここで停止
する。同様にブロックレベルのステップ実行を設定した
場合、被デバッグプログラムの実行はブロック用ステッ
プ実行処理部34で停止し、関数レベルのステップ実行を
設定した場合、被デバッグプログラムの実行は関数用ス
テップ実行処理部33で停止する。インサーキットエミュ
レータは、被デバッグプログラムが停止したことをRS23
2C通信回線5を使用して、ホスト計算機上のデバッガプ
ログラム2へ送信し、デバッガプログラム102がこの停
止情報を受取る。
(6)1つの文に関数呼び出しだけが記述されているソ
ースプログラムに対して文レベルのみのステップ実行を
行う場合、被デバッグプログラムの実行はステップ実行
処理部36のち関数用ステップ実行処理部33に分岐する。
しかしブレークポイントは関数用ステップ実行処理部33
には設定されていないので、分岐37により文用ステップ
実行処理部35に分岐する文用ステップ実行処理部35には
ブレークポイントが設定されているので、ここで被デバ
ッグプログラムは停止する。
(7)ブロックの開始直後に文が記述されているソース
プログラムに対して文レベルのみのステップ実行を行う
場合、被デバッグプログラムの実行はステップ実行処理
部36のうちブロック用ステップ実行処理部34に分岐す
る。しかしブレークポイントはブローク用ステップ実行
処理部34には設定されていないので、分岐38により文用
ステップ実行処理部35に分岐する。文用ステップ実行処
理部35にはブレークポイントが設定されているので、こ
こで被デバッグプログラムは停止する。
(8)デバッガプログラム2は、ターゲット機器上のス
テップ実行処理部36の各ステップ実行処理部33、34、35
の先頭アドレスのブレークポイントを解除するコマンド
を通信回線5を使用して、インサーキットエミュレータ
に送信する(ステップ19)。
(9)次にステップ20で、デバッガプログラム2は、被
デバッグプログラムの停止アドレス情報であるステップ
実行処理部をコールしたコール命令の次のアドレス、つ
まりスタック上に積まれたリターンアドレスをターゲッ
トシステムから得る。そのアドレスとソースプログラム
の1機能単位の対応表から被デバッグプログラムが停止
した位置を得て、デバッガプログラム2の使用者にソー
スレベルの1機能単位のステップ実行の終了したことを
コンソール4に通知する。
ここでスタックについて第4図をもとに説明する。プ
ログラムの実行中に関数を呼び出した場合、現在実行し
ている機械語命令である関数呼び出し命令の次の命令の
格納されているアドレス、つまり関数呼び出しから戻る
べきアドレス(リターンアドレス23と呼ぶ)を、メモリ
21中のスタックポインタ22の指しているところから下位
方向のメモリに格納する(これをスタックに積むとい
う)。次にスタックポインタ22は更新され、今スタック
に積まれた戻りアドレスの直前を指す。スタックポイン
タ22は、関数呼び出しから戻る場合、リターンアドレス
23の積まれている次のアドレスを指すように更新され、
プログラムの実行はリターンアドレス33へ戻る。
ステップ実行を行わない場合はブレークポイントの設
定は行われない。このため、各ステップ実行処理部33、
34、35で被デバッグプログラムは停止する事なく、被デ
バッグプログラムの制御は先に各ステップ実行処理部3
3、34、35を呼び出したステップ実行のためのコール命
令31の次の機械語命令へ戻る。次にソースプログラムの
次の行に対する機械語命令32を実行する。その後これと
同じ処理を被デバーグプログラムが終了するまで繰り返
す。
この方式では、ソース行中に関数コールやジャンプ命
令が存在していたり、1行に複数の文が記述されていた
りしても、言語処理プログラムが解析できるソースプロ
グラム中の関数呼び出し、ブロック、文等の1機能単位
の各先頭でプログラムが停止するため、被デバッグプロ
グラムのソースプログラム中での動作の流れが、連続的
でない場合においてもソースレベルの1機能単位のステ
ップ実行が可能である。
第5図は本発明の第2の実施例のターゲットシステム
上の被デバッグプログラムのソースレベルの1行ステッ
プ実行の詳細を示すフローチャートであり、ステップ41
〜50で処理が行われるが、処理41,43,45,49,48,50は第
1の実施例の処理11,13,15,17,18,20と同等であり、処
理42,44,46,49が相違している。
ステップ実行処理部33はソースレベルのステップ実行
のためのコール命令31によって呼び出される機械語命令
で、ステップ実行フラグがOFFの時はなにもせずに次の
機能単位に対する機械語命令32へ戻る。ステップ実行フ
ラグがONの時は被デバッグプログラムを停止させ、被デ
バッグプログラムが停止したことを通信回線5を使用し
て、ホスト計算機上のデバッグプログラム2へ送信す
る。
ソースレベルの機能単位のステップ実行を、フローチ
ャートに従って説明する。
(1)まず、ステップ41でデバッガプログラム2により
使用者は関数レベルのステップ実行を行うか否かを決定
する。ここで関数レベルのステップ実行を行う場合に
は、ステップ42でデバーガプログラム2は、関数レベル
のステップ実行処理フラグをONにするコマンドを通信回
線5を使用して、インサーキットエミュレータに送信す
る。
(2)次にステップ43でデバッガプログラム2により使
用者はブロックレベルのステップ実行を行うか否かを決
定する。これがブロックレベルのステップ実行を行う場
合、ステップ44でデバッガプログラム2は、ブロックレ
ベルのステップ実行処理フラグをONにするコマンドをRS
232C通信回線5を使用して、インサーキットエミュレー
タに送信する。
(3)また、ステップ45でデバッガプログラム2により
使用者は文レベルのステップ実行を行うか否かを決定す
る。これが文レベルのステップ実行を行う場合、ステッ
プ46でデバッガプログラム2は、文レベルのステップ実
行処理フラグをONにするコマンドをRS232C通信回線5を
使用して、インサーキットエミュレータに送信する。
ここでステップ実行処理フラグとは、現在被デバッグ
プログラムをステップ実行するのか否かを示すフラグで
ある。
(4)次に、ステップ47でデバッガプログラムは、ター
ゲット機器上の被デバッグプログラムの実行コマンド
を、RS232C通信回線5を使用してインサーキットエミュ
レータに送信する。
(5)次に文レベルのステップ実行のみを設定した場
合、被デバッグプログラムはある機能単位に対する機器
後命令32を実行したあと、ステップ実行のためのコール
命令31を実行する。ステップ実行のためのコール命令31
は文用ステップ実行処理部35に分岐する。文レベルのス
テップ実行処理フラグが設定されているため、被デバッ
グプログラムの実行はここで停止する。同様にブロック
レベルのステップ実行を設定した場合、被デバッグプロ
グラムの実行はブロック用ステップ実行処理部34で停止
し、関数レベルのステップ実行を設定した場合、被デバ
ッグプログラムの実行は関数用ステップ実行処理部33で
停止する。インサーキットエミュレータは、被デバッグ
プログラムが停止したことをRS232C通信回線5を使用し
て、ホスト計算機上のデバッガプログラム2へ送信し、
デバッガプログラム2がこの停止情報を受取る(ステッ
プ48)。
(6)1つの文に関数呼出しだけが記述されているソー
スプログラムに対して文レベルのみのステップ実行を行
う場合、被デバッグプログラムの実行はステップ実行処
理部36のうち関数用ステップ実行処理部33に分岐する。
しかし関数レベルのステップ実行処理フラグは設定され
ていないので、分岐37により文用ステップ実行処理部35
に分岐する。文レベルのステップ実行処理フラグは設定
されているので、ここで被デバーグプログラムは停止す
る。
(7)ブロックの開始直後に文が記述されているソース
プログラムに対して文レベルのみのステップ実行を行う
場合、被デバッグプログラムの実行はステップ実行処理
部36のうちブロック用ステップ実行処理部34に分岐す
る。しかしブロックレベルのステップ実行処理フラグは
設定されていないので、分岐38により文用ステップ実行
処理部35に分岐する。文レベルのステップ実行処理フラ
グは設定されているので、ここで被デバッグプログラム
は停止する。
(8)ステップ48でデバッグプログラム2は、ターゲッ
ト機器上のステップ実行処理フラグを解除するコマンド
をRS232C通信回線5を使用して、インサーキットエミュ
レータに送信する。
(9)次に、ステップ50でデバッガプログラム2は、被
デバッグプログラムの停止アドレス情報であるステップ
実行処理部をコールしたコール命令の次のアドレス、つ
まりスタック上に積まれたリターンアドレスをターゲッ
トシステムから得る。そのアドレスとソースプログラム
の1機能単位の対応表から被デバッグプログラムが停止
した位置を得て、デバッガプログラム2の使用者にソー
スレベルの1機能単位のステップ実行の終了したことを
コンソール4に通知する。
ステップ実行を行わない場合はステップ実行処理フラ
グはONに設定されない。このため、各ステップ実行処理
部33、34、35で被デバッグプログラムは停止する事な
く、被デバッグプログラムの制御は先に各ステップ実行
処理部33、34、35を呼び出したステップ実行のためのコ
ール命令31の次の機械語命令へ戻る。次にソースプログ
ラムの次の行に対する機械語命令302を実行する。その
後これと同じ処理を被デバッグプログラムが終了するま
で繰り返す。
この方式では、ソース行中に関数コールやジャンプ命
令が存在していたり、1行に複数の文が記述されていた
りしても、言語処理プログラムが解析できるソースプロ
グラム中の関数呼び出し、ブロック、文等の1機能単位
の各先頭でプログラムが停止するため、被デバッグプロ
グラムのソースプログラム中での動作の流れが、連続的
でない場合においてもソースレベルの1機能単位のステ
ップ実行が可能である。
第6図にこのデバッグ方式の効果を示すタイミング図
を示す。
従来方式では、ソースレベルの1行のステップ実行を
行う場合、1ソース行に数命令から10数命令の機械語が
含まれる場合、インサーキットエミュレータ5に対し
て、1命令の機械語レベルのステップ実行前の行番号と
異なるまで、つまり1行に含まれる機械語命令のステッ
プ分(数命令から十数命令分)もしくは、途中でプログ
ラムのジャンプがある場合は、そのジャンプ命令まで、
その機械語レベルのステップ実行と行番号検索を行う必
要があり、ステップ実行のコマンドの応答時間が遅くな
っていた。
本実施例のデバッグ方式では、ソースプログラム1行
の終わりに必ず呼ばれるステップ実行処理部を付加する
ことにより、機械語レベルのステップ実行と比較処理の
ループを行わないため、ソースレベルでのステップ実行
コマンドでのコマンドの応答時間が早くなる。
この通信時間として問題となるのは、デバッガプログ
ラム2とインサーキットエミュレータ5がハンドシェー
ク通信を行っているため、通信回数が多いほど、多くの
通信時間が必要となる。これは、ハンドシェーク通信が
情報の伝達とともに、通信の手段の確立のための情報を
含んで通信を行っているためである。通信回数が少なけ
れば、少ないほど通信時間は短くなる。
また、本実施例では、ソース行中に関数コールやジャ
ンプ命令が存在していたり、1行に複数の文が記述され
ていたりしても、言語処理プログラムが解析できるソー
スプログラム中の関数呼び出し、ブロック、文等の1機
能単位の各先頭でプログラムが停止するため、被デバッ
グプログラムのソースプログラム中での動作の流れが、
連続的でない場合においてもソースレベルの1機能単位
のステップ実行が可能である。
〔発明の効果〕
以上説明したように本発明は、ソースレベルのステッ
プ実行のコマンドの応答時間を早くすることができ、デ
バッグ手段の使用者の全体のデバッグ時間の短縮を行う
ことができる効果がある。また、1機能単位のステップ
実行を行うことができ、使用者の使い勝手をよくすると
いう効果がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例を説明する1行ステップ
実行のフローチャート、第2図は第1図を実行するシス
テムのブロック図、第3図は第1図に用いる言語処理プ
ログラムの出力する機械語命令の構成図、第4図は本実
施例に用いられるメモリの構成図、第5図は本発明の第
2の実施例を説明するフローチャート、第6図は本実施
例の効果を説明する処理時間の特性図である。 1……計算機装置、2……デバッガプログラム、3……
コンソール、4……RS232C通信回線、5……インサーキ
ットエミュレータ、6……ターゲット機器、11〜20,31
〜40……処理ステップ、21……メモリ、22……スタック
ポインタ、23……リターンアドレス、31……ステップ実
行のためのコール命令、32……ソースプログラム1行に
対する機械語命令、33……関数用ステップ実行処理部、
34……ブロック用ステップ実行処理部、35……文用ステ
ップ実行処理部、36……ステップ実行処理部。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】言語処理プログラムによって翻訳されたソ
    ースプログラムを用いた、ターゲットシステムと通信を
    行うホスト計算機上のデバッグ手段により、ソースレベ
    ルのソースプログラムのステップ実行を行うデバッグ方
    式において、前記言語処理プログラムが生成したステッ
    プ実行のための処理部に、前記言語処理プログラムの文
    単位、ブロック単位、関数単位を含む一機能単位の直前
    にステップ実行処理ルーチンを呼び出す命令を付加した
    ブレークポイントを設定することにより、前記ソースレ
    ベルの前記一機能単位によるステップ実行が行えるよう
    にしたことを特徴とするデバッグ方式。
JP1189436A 1989-07-21 1989-07-21 デバッグ方式 Expired - Lifetime JP2861085B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1189436A JP2861085B2 (ja) 1989-07-21 1989-07-21 デバッグ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1189436A JP2861085B2 (ja) 1989-07-21 1989-07-21 デバッグ方式

Publications (2)

Publication Number Publication Date
JPH0353347A JPH0353347A (ja) 1991-03-07
JP2861085B2 true JP2861085B2 (ja) 1999-02-24

Family

ID=16241219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1189436A Expired - Lifetime JP2861085B2 (ja) 1989-07-21 1989-07-21 デバッグ方式

Country Status (1)

Country Link
JP (1) JP2861085B2 (ja)

Also Published As

Publication number Publication date
JPH0353347A (ja) 1991-03-07

Similar Documents

Publication Publication Date Title
CN109800159B (zh) 程序调试方法、程序调试装置、终端设备及存储介质
US5121472A (en) Method for replacing keyboard data using single step process mode
US5325530A (en) Controller for sequential programming tools executed in a parallel computing environment
JP2000517077A (ja) コンピュータシステムソフトウェアのテスト方法とシステム
US7287246B2 (en) Debugging optimized flows with breakpoints using stored breakpoint trigger indicators
JP2861085B2 (ja) デバッグ方式
JP2861962B2 (ja) コンピュータプログラムのシミュレーション装置および方法
CN112579460B (zh) 一种基于多核嵌入式系统的多级调试方法
EP2634693A1 (en) Method and apparatus for interacting with runnung software
CN116414634A (zh) 设备调试方法、系统、装置、调试设备和可读存储介质
JP2006293560A (ja) デバッグシステムおよびデバッグ方法
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
US20080281988A1 (en) Apparatus and method for initating a debug halt for a selected architectural state
JP2817473B2 (ja) デバッグシステム
JPH1083318A (ja) 電子回路解析装置
CN110554969B (zh) 基于预设断点的目标码覆盖率测试方法、系统及介质
KR100200712B1 (ko) 노-타겟 시스템의 프로그램 디버깅 장치
JPH0520122A (ja) リモートデバツグ方法
JPH03129439A (ja) デバッグ方式
JP2659366B2 (ja) デバッグ方法及びその装置
JP2001166966A (ja) デバッガにおける被テストプログラムの実行環境管理方法
JP2006350676A (ja) 組込みシステムのプログラムデバッグ方法
JPH10243076A (ja) 携帯電話機の検査装置
JPS62226358A (ja) 伝送インタフエ−ス機器
KR20000065922A (ko) 교환시스템의 프로세스 수행중 디버깅 결과 데이터 출력 방법