JPH1040131A - プログラムデバッグ方法 - Google Patents
プログラムデバッグ方法Info
- Publication number
- JPH1040131A JPH1040131A JP8192236A JP19223696A JPH1040131A JP H1040131 A JPH1040131 A JP H1040131A JP 8192236 A JP8192236 A JP 8192236A JP 19223696 A JP19223696 A JP 19223696A JP H1040131 A JPH1040131 A JP H1040131A
- Authority
- JP
- Japan
- Prior art keywords
- program
- display
- exception
- execution state
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 プログラムの実行状態を表示するために、一
時的にプログラムを修正して作り直す必要があったり、
あるいは、ブレークポイントでプログラムが中断し、そ
の都度人手による操作が必要であるという課題があっ
た。 【解決手段】 実行状態の表示を行いたい実行アドレス
の命令を、例外発生コード14に置換してからデバッグ
対象のプログラム11を実行し、その例外発生コード1
4にて置換されたアドレスまで処理が進むと例外を発生
して、当該例外処理の中でその時点におけるプログラム
11の実行状態を、指定された表示内容にしたがって表
示手段13に表示するようにしたものである。
時的にプログラムを修正して作り直す必要があったり、
あるいは、ブレークポイントでプログラムが中断し、そ
の都度人手による操作が必要であるという課題があっ
た。 【解決手段】 実行状態の表示を行いたい実行アドレス
の命令を、例外発生コード14に置換してからデバッグ
対象のプログラム11を実行し、その例外発生コード1
4にて置換されたアドレスまで処理が進むと例外を発生
して、当該例外処理の中でその時点におけるプログラム
11の実行状態を、指定された表示内容にしたがって表
示手段13に表示するようにしたものである。
Description
【0001】
【発明の属する技術分野】この発明は、プログラム中の
誤りを取り除くためのプログラムデバッグ方法に関する
ものであり、特に実行中のプログラムの実行状態の表示
に関するものである。
誤りを取り除くためのプログラムデバッグ方法に関する
ものであり、特に実行中のプログラムの実行状態の表示
に関するものである。
【0002】
【従来の技術】図4は従来のプログラムデバッグ方法を
説明するための、デバッグ対象となるプログラムを示す
構成図である。図において、1はこのデバッグ対象のプ
ログラム中に挿入され、後述するデバッグライト機能を
呼び出して、当該プログラムの実行状態(例えば変数の
値等)を表示させるための表示機能呼び出しコードであ
る。2はこのデバッグ対象のプログラム内に用意され、
表示機能呼び出しコード1によって呼び出されてプログ
ラムの実行状態の表示を行う、例えばC言語におけるp
rintf機能などによるデバッグライト機能である。
3はデバッグライト機能2がプログラムの実行状態の表
示に際して用いる表示内容のフォーマットを保存してい
る表示要求保存領域である。
説明するための、デバッグ対象となるプログラムを示す
構成図である。図において、1はこのデバッグ対象のプ
ログラム中に挿入され、後述するデバッグライト機能を
呼び出して、当該プログラムの実行状態(例えば変数の
値等)を表示させるための表示機能呼び出しコードであ
る。2はこのデバッグ対象のプログラム内に用意され、
表示機能呼び出しコード1によって呼び出されてプログ
ラムの実行状態の表示を行う、例えばC言語におけるp
rintf機能などによるデバッグライト機能である。
3はデバッグライト機能2がプログラムの実行状態の表
示に際して用いる表示内容のフォーマットを保存してい
る表示要求保存領域である。
【0003】次に動作について説明する。このプログラ
ムデバッグ方法においては、プログラムをデバッグする
際に、このプログラムの実行状態を知ろうとする場合、
まず当該プログラムを一時的に修正して、その変数の値
等の実行状態を表示するための表示機能呼び出しコード
1を所望のアドレスに挿入し、それを再コンパイルして
プログラムを作り直した後、そのデバッグ対象のプログ
ラムを実行する。このデバッグ対象のプログラムの処理
が進んで、挿入された表示機能呼び出しコード1に達す
るとデバッグライト機能2が呼び出され、デバッグライ
ト機能2は当該デバッグ対象となるプログラムのその時
点における実行状態を、表示要求保存領域3内に格納さ
れている表示内容のフォーマットにしたがって表示す
る。なお、このプログラムの実行状態の表示は通常デバ
ッグライトと呼ばれている。プログラムのデバッグはこ
のデバッグライト出力を参照して行われ、最終的にプロ
グラム開発が終了した時点ではこの表示機能呼び出しコ
ード1は当該プログラムから削除される。
ムデバッグ方法においては、プログラムをデバッグする
際に、このプログラムの実行状態を知ろうとする場合、
まず当該プログラムを一時的に修正して、その変数の値
等の実行状態を表示するための表示機能呼び出しコード
1を所望のアドレスに挿入し、それを再コンパイルして
プログラムを作り直した後、そのデバッグ対象のプログ
ラムを実行する。このデバッグ対象のプログラムの処理
が進んで、挿入された表示機能呼び出しコード1に達す
るとデバッグライト機能2が呼び出され、デバッグライ
ト機能2は当該デバッグ対象となるプログラムのその時
点における実行状態を、表示要求保存領域3内に格納さ
れている表示内容のフォーマットにしたがって表示す
る。なお、このプログラムの実行状態の表示は通常デバ
ッグライトと呼ばれている。プログラムのデバッグはこ
のデバッグライト出力を参照して行われ、最終的にプロ
グラム開発が終了した時点ではこの表示機能呼び出しコ
ード1は当該プログラムから削除される。
【0004】また、プログラムのデバッグに際してプロ
グラムの実行状態を知るための他の方法として、プログ
ラム中にあらかじめブレークポイントを設定しておく方
法も従来より知られている。図5はそのような従来のプ
ログラムデバッグ方法の処理の概念を示す線図である。
図示のように、まずデバッガ等によってデバッグ対象と
なるプログラム中にブレークポイントを設定してプログ
ラムの実行をスタートさせる。プログラムの処理がその
ブレークポイントに達するとプログラムを一時中断(ブ
レーク)してユーザの操作受付状態となり、ユーザはそ
の時点の変数の値等を手動操作によって参照する。その
後、プログラムの実行をユーザの手動操作によって再開
する。
グラムの実行状態を知るための他の方法として、プログ
ラム中にあらかじめブレークポイントを設定しておく方
法も従来より知られている。図5はそのような従来のプ
ログラムデバッグ方法の処理の概念を示す線図である。
図示のように、まずデバッガ等によってデバッグ対象と
なるプログラム中にブレークポイントを設定してプログ
ラムの実行をスタートさせる。プログラムの処理がその
ブレークポイントに達するとプログラムを一時中断(ブ
レーク)してユーザの操作受付状態となり、ユーザはそ
の時点の変数の値等を手動操作によって参照する。その
後、プログラムの実行をユーザの手動操作によって再開
する。
【0005】なお、このような従来のプログラムデバッ
グ方法に関連のある技術について記載のある文献として
は、例えば特開平1−250143号公報などがある。
グ方法に関連のある技術について記載のある文献として
は、例えば特開平1−250143号公報などがある。
【0006】
【発明が解決しようとする課題】従来のプログラムデバ
ッグ方法は以上のように構成されているので、表示機能
呼び出しコード1を挿入してプログラムの実行状態を知
る方法では、プログラムの実行状態を知るために一時的
にソースプログラムを修正してプログラムを作り直し、
プログラムの開発終了時点で挿入した表示機能呼び出し
コード1の削除を行わなければならないという課題があ
った。また、ブレークポイントを設定してプログラムの
実行を中断させてプログラムの実行状態を知る方法で
は、ブレークポイントにおいてプログラムの実行が中断
してしまうばかりか、変数の値等の参照、プログラムの
再実行などを行う都度、ユーザの手動による操作が必要
となるなどの課題があった。
ッグ方法は以上のように構成されているので、表示機能
呼び出しコード1を挿入してプログラムの実行状態を知
る方法では、プログラムの実行状態を知るために一時的
にソースプログラムを修正してプログラムを作り直し、
プログラムの開発終了時点で挿入した表示機能呼び出し
コード1の削除を行わなければならないという課題があ
った。また、ブレークポイントを設定してプログラムの
実行を中断させてプログラムの実行状態を知る方法で
は、ブレークポイントにおいてプログラムの実行が中断
してしまうばかりか、変数の値等の参照、プログラムの
再実行などを行う都度、ユーザの手動による操作が必要
となるなどの課題があった。
【0007】この発明は上記のような課題を解決するた
めになされたものであり、プログラムをデバッグする際
に、プログラムの再コンパイルをすることなくデバッグ
ライト機能を実現することを可能にしたプログラムデバ
ッグ方法を得ることを目的とする。
めになされたものであり、プログラムをデバッグする際
に、プログラムの再コンパイルをすることなくデバッグ
ライト機能を実現することを可能にしたプログラムデバ
ッグ方法を得ることを目的とする。
【0008】
【課題を解決するための手段】請求項1記載の発明に係
るプログラムデバッグ方法は、実行状態の表示を行いた
い位置の命令を例外発生コードにて置換してからデバッ
グ対象のプログラムを実行し、その例外発生コードの位
置まで処理が進むと例外を発生させ、その例外処理の中
でその時点における当該プログラムの実行状態を、指定
された表示内容にしたがって表示し、表示終了後、置換
された例外発生コードをもとの命令コードに戻して当該
プログラムの実行を継続するようにしたものである。
るプログラムデバッグ方法は、実行状態の表示を行いた
い位置の命令を例外発生コードにて置換してからデバッ
グ対象のプログラムを実行し、その例外発生コードの位
置まで処理が進むと例外を発生させ、その例外処理の中
でその時点における当該プログラムの実行状態を、指定
された表示内容にしたがって表示し、表示終了後、置換
された例外発生コードをもとの命令コードに戻して当該
プログラムの実行を継続するようにしたものである。
【0009】請求項2記載の発明に係るプログラムデバ
ッグ方法は、高級言語のデバッグライト機能における表
示関数と同等のフォーマットを用いて、デバッグ対象と
なるプログラムの実行状態の表示内容を指定するように
したものである。
ッグ方法は、高級言語のデバッグライト機能における表
示関数と同等のフォーマットを用いて、デバッグ対象と
なるプログラムの実行状態の表示内容を指定するように
したものである。
【0010】
【発明の実施の形態】次に、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の形態1によるプ
ログラムデバッグ方法が適用されるシステムの構成を示
すブロック図である。図において、11はデバッグ対象
となるプログラムであり、12はこのプログラム11の
デバッグを実行するデバッガである。13はこのデバッ
ガ12がプログラム11の特定部分を実行する時に、そ
の実行状態(例えば、変数の値や、ある特定アドレスの
実行の有無、等)の表示を行うための表示手段であり、
この表示手段13は外部にデータを出力する手段であれ
ばよく、特定の表示装置に限らない。
説明する。 実施の形態1.図1はこの発明の実施の形態1によるプ
ログラムデバッグ方法が適用されるシステムの構成を示
すブロック図である。図において、11はデバッグ対象
となるプログラムであり、12はこのプログラム11の
デバッグを実行するデバッガである。13はこのデバッ
ガ12がプログラム11の特定部分を実行する時に、そ
の実行状態(例えば、変数の値や、ある特定アドレスの
実行の有無、等)の表示を行うための表示手段であり、
この表示手段13は外部にデータを出力する手段であれ
ばよく、特定の表示装置に限らない。
【0011】デバッグ対象のプログラム11内におい
て、14はこのプログラム11の特定部分でその実行状
態を表示する処理に移行するために、デバッガ12によ
って当該プログラム11に埋め込まれた例外発生コード
であり、15はこの例外発生コード14を実行した時点
における実行状態としての変数の値などの表示対象であ
る。16はこれらプログラム11およびデバッガ12と
は独立して、例外処理の実行のために設けられている例
外処理手段であり、この場合には、例外発生コード14
の実行によって例外が発生した時、その例外処理をプロ
グラム11の実行状態の表示処理へ移行するために使用
されている。
て、14はこのプログラム11の特定部分でその実行状
態を表示する処理に移行するために、デバッガ12によ
って当該プログラム11に埋め込まれた例外発生コード
であり、15はこの例外発生コード14を実行した時点
における実行状態としての変数の値などの表示対象であ
る。16はこれらプログラム11およびデバッガ12と
は独立して、例外処理の実行のために設けられている例
外処理手段であり、この場合には、例外発生コード14
の実行によって例外が発生した時、その例外処理をプロ
グラム11の実行状態の表示処理へ移行するために使用
されている。
【0012】また、デバッガ12内において、17はユ
ーザがプログラム11の実行状態の表示内容を指定する
ための表示設定手段である。18はその表示設定手段1
7にてユーザが指定した表示要求を保持するための表示
要求保存領域、19はデバッグ対象のプログラム11へ
の例外発生コード14の埋め込み、例外からの復帰、表
示要求の管理を行う例外管理機能であり、20はこれら
表示要求保存領域18および例外管理機能19を含んだ
表示要求管理機能である。21は例外発生コード14に
よる例外発生時に例外処理手段16によって起動され、
表示要求管理機能20がプログラム11より受けた表示
対象15内の変数の値等と、表示要求保存領域18に保
存している保存要求の表示内容とを表示要求管理機能2
0より受け取って、プログラム11の実行状態を表示手
段13に表示するための実行状態表示機能であり、例え
ば、C言語のprintf機能に相当する機能によって
実現されている。
ーザがプログラム11の実行状態の表示内容を指定する
ための表示設定手段である。18はその表示設定手段1
7にてユーザが指定した表示要求を保持するための表示
要求保存領域、19はデバッグ対象のプログラム11へ
の例外発生コード14の埋め込み、例外からの復帰、表
示要求の管理を行う例外管理機能であり、20はこれら
表示要求保存領域18および例外管理機能19を含んだ
表示要求管理機能である。21は例外発生コード14に
よる例外発生時に例外処理手段16によって起動され、
表示要求管理機能20がプログラム11より受けた表示
対象15内の変数の値等と、表示要求保存領域18に保
存している保存要求の表示内容とを表示要求管理機能2
0より受け取って、プログラム11の実行状態を表示手
段13に表示するための実行状態表示機能であり、例え
ば、C言語のprintf機能に相当する機能によって
実現されている。
【0013】次に動作について説明する。この図1に示
されたシステムにおいては、高級言語のデバッグライト
機能に相当する機能(例えばC言語のprintf相当
機能)を実行状態表示機能21としてデバッガ12の内
部に内蔵しており、この実行状態表示機能21を呼び出
す方法を、ブレークポイントの設定と同様の手法によっ
て行っている。図2はそのようなプログラムデバッグ方
法の処理の概念を示す線図である。すなわち、デバッグ
対象のプログラム11上の実行状態表示機能21を呼び
出したい位置(アドレス)の命令を例外発生コード14
に置換しておき、その位置までプログラム11の実行が
到達したときに例外を発生させてブレークし、例外処理
手段16による例外処理の中で実行状態表示機能21を
呼び出す。呼び出された実行状態表示機能21は表示要
求管理機能20より、プログラム11上の変数の値等の
表示対象15と表示要求保存領域18に保存されている
表示内容とを受け取って、プログラム11の実行状態を
表示手段13に自動的に表示する。その後、例外から復
帰して、例外発生コード14と置換した命令をもとの命
令コードに戻してプログラム11を再実行する。
されたシステムにおいては、高級言語のデバッグライト
機能に相当する機能(例えばC言語のprintf相当
機能)を実行状態表示機能21としてデバッガ12の内
部に内蔵しており、この実行状態表示機能21を呼び出
す方法を、ブレークポイントの設定と同様の手法によっ
て行っている。図2はそのようなプログラムデバッグ方
法の処理の概念を示す線図である。すなわち、デバッグ
対象のプログラム11上の実行状態表示機能21を呼び
出したい位置(アドレス)の命令を例外発生コード14
に置換しておき、その位置までプログラム11の実行が
到達したときに例外を発生させてブレークし、例外処理
手段16による例外処理の中で実行状態表示機能21を
呼び出す。呼び出された実行状態表示機能21は表示要
求管理機能20より、プログラム11上の変数の値等の
表示対象15と表示要求保存領域18に保存されている
表示内容とを受け取って、プログラム11の実行状態を
表示手段13に自動的に表示する。その後、例外から復
帰して、例外発生コード14と置換した命令をもとの命
令コードに戻してプログラム11を再実行する。
【0014】このようにすることにより、デバッグ対象
となるプログラム11の実行状態表示のために、当該プ
ログラム11を一時的に作り直して表示機能呼び出しコ
ードを埋め込んでおき、開発の終了時点で当該コードを
プログラム11から削除するといった処置をとる必要が
なくなる。また、プログラム11内にブレークポイント
を設定する場合のように、ブレークポイントにおいてプ
ログラム11の実行が中断してユーザの操作受付状態と
なり、その都度ユーザの手動による操作が必要となると
いったこともなくなる。
となるプログラム11の実行状態表示のために、当該プ
ログラム11を一時的に作り直して表示機能呼び出しコ
ードを埋め込んでおき、開発の終了時点で当該コードを
プログラム11から削除するといった処置をとる必要が
なくなる。また、プログラム11内にブレークポイント
を設定する場合のように、ブレークポイントにおいてプ
ログラム11の実行が中断してユーザの操作受付状態と
なり、その都度ユーザの手動による操作が必要となると
いったこともなくなる。
【0015】次に、デバッグ対象のプログラム11の実
行状態を表示するデバッグライトの手順についてさらに
詳細に説明する。ここで、図3はこのデバッグライトの
処理の流れを示すフローチャートである。まず、ステッ
プST1において、デバッグ対象となるプログラム11
の実行を開始する前または中断時に、ユーザがデバッガ
12の表示設定手段17を用いてプログラム11の実行
状態を表示するための表示要求の設定を行う。この表示
要求の設定においては、プログラム11中で変数の値等
を表示させたい部分の位置指定を行い、さらにそれらの
実行状態を表示する表示内容を指定する。
行状態を表示するデバッグライトの手順についてさらに
詳細に説明する。ここで、図3はこのデバッグライトの
処理の流れを示すフローチャートである。まず、ステッ
プST1において、デバッグ対象となるプログラム11
の実行を開始する前または中断時に、ユーザがデバッガ
12の表示設定手段17を用いてプログラム11の実行
状態を表示するための表示要求の設定を行う。この表示
要求の設定においては、プログラム11中で変数の値等
を表示させたい部分の位置指定を行い、さらにそれらの
実行状態を表示する表示内容を指定する。
【0016】ここで設定される表示要求の例としては、
例えば次のようなコマンド形式が考えられる。 (1)コマンド名 アドレス,表示内容 (2)コマンド名 ソース行番号,表示内容
例えば次のようなコマンド形式が考えられる。 (1)コマンド名 アドレス,表示内容 (2)コマンド名 ソース行番号,表示内容
【0017】このように、デバッグライトの表示位置を
アドレスまたはデバッグ対象のプログラム11のソース
行番号のいずれによっても指定することができるが、
(2)に示したソース行番号の指定の方がより通常のデ
バッグライトに近い。
アドレスまたはデバッグ対象のプログラム11のソース
行番号のいずれによっても指定することができるが、
(2)に示したソース行番号の指定の方がより通常のデ
バッグライトに近い。
【0018】また、表示内容は高級言語の表示関数の表
記と同様のフォーマットを想定しており、例えば以下の
ようにC言語のprintf文のようなフォーマットに
よって指定する。 “x=%d,y=%d”,x,y
記と同様のフォーマットを想定しており、例えば以下の
ようにC言語のprintf文のようなフォーマットに
よって指定する。 “x=%d,y=%d”,x,y
【0019】なお、この表示内容の指定方法は、上記C
言語のprintf文のようなフォーマットにのみ限ら
れるものではなく、どのようなものであってもよい。
言語のprintf文のようなフォーマットにのみ限ら
れるものではなく、どのようなものであってもよい。
【0020】このような表示要求の設定を受けたデバッ
ガ12は、次にステップST2において、プログラム1
1の実行状態の表示を行う位置のアドレスあるいはソー
ス行番号(以下、実行アドレスという)と、その表示内
容を表示要求管理機能20の表示要求保存領域18に記
録する。また、表示要求管理機能20の例外管理機能1
9はステップST3において、プログラム11の実行状
態を表示したい実行アドレスの命令コードを、その設定
された表示要求に基づいて例外発生コードに置換する。
その際、この実行状態の表示を行う実行アドレスにもと
もと存在した命令コードは表示要求管理機能20によっ
て一時保存される。
ガ12は、次にステップST2において、プログラム1
1の実行状態の表示を行う位置のアドレスあるいはソー
ス行番号(以下、実行アドレスという)と、その表示内
容を表示要求管理機能20の表示要求保存領域18に記
録する。また、表示要求管理機能20の例外管理機能1
9はステップST3において、プログラム11の実行状
態を表示したい実行アドレスの命令コードを、その設定
された表示要求に基づいて例外発生コードに置換する。
その際、この実行状態の表示を行う実行アドレスにもと
もと存在した命令コードは表示要求管理機能20によっ
て一時保存される。
【0021】これらの設定処理が完了した時点で、ステ
ップST4に進んでデバッグ対象のプログラム11を実
行し、ステップST5にて例外の発生が検知されるまで
待ち合わせに入る。プログラム11の動作が進行して、
実行状態の表示を行う実行アドレスに到達した場合、当
該実行アドレスに埋め込まれた例外発生コード14によ
ってプログラム11は例外を発生する。ステップST5
で例外の発生が検知されると処理はステップST6に進
み、例外処理手段16がprintf相当機能による実
行状態表示機能21の起動を行い、実行状態表示機能2
1は表示要求保存領域18に保持されている表示要求
と、プログラム11からの表示対象15を表示要求管理
機能20より受け、それに基づいてプログラム11の実
行状態を以下に示す表示例のように表示する。 x=1,y=2 /**xが1で、yが2の場合*
*/
ップST4に進んでデバッグ対象のプログラム11を実
行し、ステップST5にて例外の発生が検知されるまで
待ち合わせに入る。プログラム11の動作が進行して、
実行状態の表示を行う実行アドレスに到達した場合、当
該実行アドレスに埋め込まれた例外発生コード14によ
ってプログラム11は例外を発生する。ステップST5
で例外の発生が検知されると処理はステップST6に進
み、例外処理手段16がprintf相当機能による実
行状態表示機能21の起動を行い、実行状態表示機能2
1は表示要求保存領域18に保持されている表示要求
と、プログラム11からの表示対象15を表示要求管理
機能20より受け、それに基づいてプログラム11の実
行状態を以下に示す表示例のように表示する。 x=1,y=2 /**xが1で、yが2の場合*
*/
【0022】プログラム11の実行状態の表示を完了す
ると、ステップST7において例外から復帰し、表示要
求管理機能20の例外管理機能19が例外発生コード1
4と置換していた命令をもとの命令コードに戻した後、
ステップST8に進んでデバッグ対象のプログラム11
の実行を継続する。
ると、ステップST7において例外から復帰し、表示要
求管理機能20の例外管理機能19が例外発生コード1
4と置換していた命令をもとの命令コードに戻した後、
ステップST8に進んでデバッグ対象のプログラム11
の実行を継続する。
【0023】このように、従来、デバッガ等でブレーク
ポイントを設定してプログラム11を中断し、その時点
の変数の値等を手動操作によって参照していたものを、
変数の値等の参照とデバッグ対象のプログラム11の再
実行を自動的に行うことによって、見かけ上プログラム
11の中断なく指定部分での状態表示を行うようにする
ことが可能となり、また、単純なデバッグライトと比較
して、例えば、デバッグライト地点をある所定の回数通
過した後に、デバッグライトの処理を実行するといった
細かい制御が可能となって、デバッグライトに条件を付
けられるようになる。さらに、変数の値等の表示の指定
手段として、高級言語のデバッグライトに用いる表示関
数の機能と同等のものを持つことにより、ソースプログ
ラム上でデバッグライトのコードを埋め込むのと同じよ
うな操作感覚でデバッグライト機能を実行することもで
きる。
ポイントを設定してプログラム11を中断し、その時点
の変数の値等を手動操作によって参照していたものを、
変数の値等の参照とデバッグ対象のプログラム11の再
実行を自動的に行うことによって、見かけ上プログラム
11の中断なく指定部分での状態表示を行うようにする
ことが可能となり、また、単純なデバッグライトと比較
して、例えば、デバッグライト地点をある所定の回数通
過した後に、デバッグライトの処理を実行するといった
細かい制御が可能となって、デバッグライトに条件を付
けられるようになる。さらに、変数の値等の表示の指定
手段として、高級言語のデバッグライトに用いる表示関
数の機能と同等のものを持つことにより、ソースプログ
ラム上でデバッグライトのコードを埋め込むのと同じよ
うな操作感覚でデバッグライト機能を実行することもで
きる。
【0024】
【発明の効果】以上のように、請求項1記載の発明によ
れば、実行状態の表示を行いたい位置の命令を例外発生
コードによって置換しておき、デバッグ対象のプログラ
ムの処理が進行してその例外発生コードで置換された位
置に到達すると例外を発生し、その例外処理の中で、そ
の時点の当該プログラムの実行状態を指定された表示内
容で表示し、表示完了後、その例外発生コードをもとの
命令コードに戻してプログラムの実行を継続するように
構成したので、デバッグ対象となるプログラムの実行状
態表示のために、当該プログラムを一時的に作り直した
り、開発終了時点で挿入したコードを削除するといった
処置が不要となり、また、プログラムの実行がブレーク
ポイントにおいて中断し、その都度ユーザの手動による
操作が必要となるといったこともなくなり、見かけ上プ
ログラムの中断なく指定部分での状態表示を行うように
することが可能となって、プログラムのデバッグに際し
て、プログラムの再コンパイルをすることなくデバッグ
ライト機能が実現できる効果がある。
れば、実行状態の表示を行いたい位置の命令を例外発生
コードによって置換しておき、デバッグ対象のプログラ
ムの処理が進行してその例外発生コードで置換された位
置に到達すると例外を発生し、その例外処理の中で、そ
の時点の当該プログラムの実行状態を指定された表示内
容で表示し、表示完了後、その例外発生コードをもとの
命令コードに戻してプログラムの実行を継続するように
構成したので、デバッグ対象となるプログラムの実行状
態表示のために、当該プログラムを一時的に作り直した
り、開発終了時点で挿入したコードを削除するといった
処置が不要となり、また、プログラムの実行がブレーク
ポイントにおいて中断し、その都度ユーザの手動による
操作が必要となるといったこともなくなり、見かけ上プ
ログラムの中断なく指定部分での状態表示を行うように
することが可能となって、プログラムのデバッグに際し
て、プログラムの再コンパイルをすることなくデバッグ
ライト機能が実現できる効果がある。
【0025】請求項2記載の発明によれば、デバッグ対
象のプログラムの実行状態の表示内容を、高級言語のデ
バッグライト機能における表示関数と同等のフォーマッ
トを用いて指定するように構成したので、従来のソース
プログラム上でデバッグライトのコードを埋め込むのと
同様な操作感覚でデバッグライト機能を実行することが
できる効果がある。
象のプログラムの実行状態の表示内容を、高級言語のデ
バッグライト機能における表示関数と同等のフォーマッ
トを用いて指定するように構成したので、従来のソース
プログラム上でデバッグライトのコードを埋め込むのと
同様な操作感覚でデバッグライト機能を実行することが
できる効果がある。
【図1】 この発明の実施の形態1によるプログラムデ
バッグ方法が適用されるシステムの構成を示すブロック
図である。
バッグ方法が適用されるシステムの構成を示すブロック
図である。
【図2】 この発明の実施の形態1におけるプログラム
デバッグ方法の処理の概念を示す線図である。
デバッグ方法の処理の概念を示す線図である。
【図3】 この発明の実施の形態1におけるプログラム
デバッグ方法のデバッグライトの処理の流れを示すフロ
ーチャートである。
デバッグ方法のデバッグライトの処理の流れを示すフロ
ーチャートである。
【図4】 従来のプログラムデバッグ方法を説明するた
めの、デバッグ対象となるプログラムを示す構成図であ
る。
めの、デバッグ対象となるプログラムを示す構成図であ
る。
【図5】 従来のプログラムデバッグ方法の処理の概念
を示すを示す線図である。
を示すを示す線図である。
11 プログラム、13 表示手段、14 例外発生コ
ード。
ード。
Claims (2)
- 【請求項1】 デバッグ対象のプログラムを実行してそ
の所定の時点における実行状態を表示手段に表示し、そ
れに基づいて当該プログラムのデバッグを行うプログラ
ムデバッグ方法において、 設定された表示要求に基づいて、前記プログラム上の実
行状態を表示したい位置の命令を、例外発生コードに置
換し、 前記プログラムの実行が前記例外発生コードの位置まで
進むと例外処理を開始し、その例外処理によって、その
時点における前記プログラムの実行状態を、前記表示要
求によって指定された表示内容にしたがって表示し、 前記プログラムの実行状態の表示を完了した後、前記例
外発生コードと置換されていた命令をもとの命令コード
に戻して当該プログラムの実行を継続することを特徴と
するプログラムデバッグ方法。 - 【請求項2】 プログラムの実行状態の表示内容の指定
を、高級言語のデバッグライト機能における表示関数と
同様のフォーマットを用いて行うことを特徴とする請求
項1記載のプログラムデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8192236A JPH1040131A (ja) | 1996-07-22 | 1996-07-22 | プログラムデバッグ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8192236A JPH1040131A (ja) | 1996-07-22 | 1996-07-22 | プログラムデバッグ方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1040131A true JPH1040131A (ja) | 1998-02-13 |
Family
ID=16287924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8192236A Pending JPH1040131A (ja) | 1996-07-22 | 1996-07-22 | プログラムデバッグ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1040131A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006309666A (ja) * | 2005-05-02 | 2006-11-09 | Ricoh Co Ltd | プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法 |
-
1996
- 1996-07-22 JP JP8192236A patent/JPH1040131A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006309666A (ja) * | 2005-05-02 | 2006-11-09 | Ricoh Co Ltd | プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法 |
US8239834B2 (en) | 2005-05-02 | 2012-08-07 | Ricoh Company, Ltd. | Method and system of program development supporting |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08272648A (ja) | デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置 | |
US6470493B1 (en) | Computer method and apparatus for safe instrumentation of reverse executable program modules | |
US20040098639A1 (en) | Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems | |
US20110126175A1 (en) | Debugging method and debugging device using hardware breakpoints | |
US8108840B2 (en) | Method for enhancing debugger performance of hardware assisted breakpoints | |
JPH1040131A (ja) | プログラムデバッグ方法 | |
JP2007004516A (ja) | 組込みシステムのプログラムデバッグ方法 | |
JP2570593B2 (ja) | デバッグ装置 | |
JPH05108404A (ja) | デバツガシステム | |
JP2697230B2 (ja) | デバッグ支援装置 | |
JPH1049401A (ja) | プログラムのデバッグ方法 | |
JP2002014844A (ja) | デバッグ方法及び記録媒体 | |
JPH0239332A (ja) | ソフトウェアブレーク方式 | |
JPH08320813A (ja) | プログラムシミュレータ装置及びプログラムデバッグ方法 | |
JP2001147830A (ja) | リアルタイムosの状態変更方法 | |
JP4479738B2 (ja) | プログラマブルコントローラ | |
JPH05241889A (ja) | 機械語命令のステップ実行方式 | |
JPH0561717A (ja) | プログラムデバツグ装置 | |
JPS6292032A (ja) | プログラムテスト方法 | |
JP2006350676A (ja) | 組込みシステムのプログラムデバッグ方法 | |
JPH01274253A (ja) | ソフトウェアブレーク方式 | |
JPH07319730A (ja) | テスト・デバッグ方法 | |
JPS59202548A (ja) | デバツグ装置 | |
JPH04184544A (ja) | ブレークポイント制御方式 | |
JP2002196950A (ja) | デバッグシステム |