JPS6355646A - シンボリツクデバツガ制御方式 - Google Patents
シンボリツクデバツガ制御方式Info
- Publication number
- JPS6355646A JPS6355646A JP61200839A JP20083986A JPS6355646A JP S6355646 A JPS6355646 A JP S6355646A JP 61200839 A JP61200839 A JP 61200839A JP 20083986 A JP20083986 A JP 20083986A JP S6355646 A JPS6355646 A JP S6355646A
- Authority
- JP
- Japan
- Prior art keywords
- line
- line number
- instruction
- dictionary
- source program
- 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
- 238000012545 processing Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004780 2D liquid chromatography Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要丁
シンポリンクデバソガにおいて2行番号カウンタを設け
るとともに5オブジエクトモジユール中に、ソースプロ
グラムの行番号をカウントする機械命令を埋め込んでお
き、オブジェクトモジュールの実行時に、ソースプログ
ラムの対応行番号を容易に識別できるようにして、オブ
ジェクトコードに対応するシンボル情報を迅速に参照可
能にする。
るとともに5オブジエクトモジユール中に、ソースプロ
グラムの行番号をカウントする機械命令を埋め込んでお
き、オブジェクトモジュールの実行時に、ソースプログ
ラムの対応行番号を容易に識別できるようにして、オブ
ジェクトコードに対応するシンボル情報を迅速に参照可
能にする。
本発明は、情報処fl装置において、C言語のようなシ
ンボリック言語(高槻言語)で記述されたプログラムを
デバッグ(試験)するためのシンボリックデバッガに関
するものであり5特にオブジェクトモジュールとソース
プログラムとを行単位に、対応づけるだめのシンボリッ
クデバッガ制御方式に関する。
ンボリック言語(高槻言語)で記述されたプログラムを
デバッグ(試験)するためのシンボリックデバッガに関
するものであり5特にオブジェクトモジュールとソース
プログラムとを行単位に、対応づけるだめのシンボリッ
クデバッガ制御方式に関する。
対話形式でプログラムのデバッグを行うための手段とし
て使用されるシンボリックデバッガでは。
て使用されるシンボリックデバッガでは。
障害発生時などに、実行中のオブジェクトモジュール上
の任意のオブジェクトコードについて、ソースプログラ
ム上の対応するシンボル情報を参照することが必要とさ
れる。
の任意のオブジェクトコードについて、ソースプログラ
ム上の対応するシンボル情報を参照することが必要とさ
れる。
このため従来は、オブジェクトモジュールの中に、ソー
スプログラムの行対応で行番号を埋め込んでおき、必要
時に該当する行番号を読み出し。
スプログラムの行対応で行番号を埋め込んでおき、必要
時に該当する行番号を読み出し。
ソースプログラムを参照する方式がとられていた。
第312Nは、その概念図であり、30はシンボリック
デバッガ、31はオブジェクトモジュール。
デバッガ、31はオブジェクトモジュール。
32は行番号辞書、33はソースプログラムのシンボル
情報を表す。
情報を表す。
シンボリックデバッガ30は、丘作者の指示にしたがっ
て、オブジェクトモジュール31の実行を制御する。
て、オブジェクトモジュール31の実行を制御する。
オブジェクトモジュール31には、コンパイル処理時の
指定により、ソースプログラムのシンボル情!833の
行ごとに、その行番号を与える機械命令が埋め込まれて
いる(斜線で示される)、この行番号を与える機械命令
は1分岐命令を用いて所定の条件下で選択実行されるよ
うにする。
指定により、ソースプログラムのシンボル情!833の
行ごとに、その行番号を与える機械命令が埋め込まれて
いる(斜線で示される)、この行番号を与える機械命令
は1分岐命令を用いて所定の条件下で選択実行されるよ
うにする。
行番号辞書32は、ソースプログラムの行番号と、その
行の先頭アドレスを示すポインタとを対応づけて管理す
るテーブルである。
行の先頭アドレスを示すポインタとを対応づけて管理す
るテーブルである。
動作において、シンボリックデバッガ30がオブジェク
トモジュール31のデバッグ実行を制御している際、操
作者からの指示、あるいはエラー等の所定の事象の発生
に応じて1分岐命令を用いてオブジェクトモジュール3
1中に埋め込まれている行番号を与える機械命令のうち
の該当するものを実行し9行番号を得る。次にシンボリ
ックデバッガ30は、その行番号を用いて行番号辞書3
2を検索し、対応するポインタを取り出して、ソースプ
ログラムのシンボル清報33中の8亥当する行をアクセ
スし、オブジェクトモジュールに対応づけて表示するな
どの処理を行う。
トモジュール31のデバッグ実行を制御している際、操
作者からの指示、あるいはエラー等の所定の事象の発生
に応じて1分岐命令を用いてオブジェクトモジュール3
1中に埋め込まれている行番号を与える機械命令のうち
の該当するものを実行し9行番号を得る。次にシンボリ
ックデバッガ30は、その行番号を用いて行番号辞書3
2を検索し、対応するポインタを取り出して、ソースプ
ログラムのシンボル清報33中の8亥当する行をアクセ
スし、オブジェクトモジュールに対応づけて表示するな
どの処理を行う。
従来のシンボリックデバッガでは、オブジェクトモジュ
ールからソースプログラムの対応する行を参照するため
に、予めオブジェクトモジュール中に9行番号を与える
機械命令を埋め込んで置く必要があった。
ールからソースプログラムの対応する行を参照するため
に、予めオブジェクトモジュール中に9行番号を与える
機械命令を埋め込んで置く必要があった。
このため、オブジェクトモジュールのサイズが大きくな
り、また行番号辞書を検索するために時間がかなりかか
るという問題があった。
り、また行番号辞書を検索するために時間がかなりかか
るという問題があった。
本発明は、上記した問題点を解決するため1行番号カウ
ンタを設けるとともに、オブジェクトモジュールには、
ソースプログラムの対応行ごとに。
ンタを設けるとともに、オブジェクトモジュールには、
ソースプログラムの対応行ごとに。
行番号カウンタの行番号を1ずつ歩進させる機械命令を
埋め込んでおき、オブジェクトモジュールの実行時に、
実行中の機械命令が対応するソースプログラム中の行の
行番号を1行番号カウンタによって常時管理するととも
に、必要時に行番号カウンタを参照し8行番号を得て1
次に行番号辞書の対応するエントリのアドレスを計算し
1行番号辞書から、ソースプログラムの対応行へのポイ
ンタを即時的に読み出すようにしたものである。
埋め込んでおき、オブジェクトモジュールの実行時に、
実行中の機械命令が対応するソースプログラム中の行の
行番号を1行番号カウンタによって常時管理するととも
に、必要時に行番号カウンタを参照し8行番号を得て1
次に行番号辞書の対応するエントリのアドレスを計算し
1行番号辞書から、ソースプログラムの対応行へのポイ
ンタを即時的に読み出すようにしたものである。
第1図は1本発明の詳細な説明するための概念図である
0図において、10はシンボリックデバッガ、11はオ
ブジェクトモジュール、12はソースプログラムのシン
ボル情報、13は行番号辞書、14は行番号カウンタ、
15はアドレス計算部、16は行番号辞書先頭ポインタ
を示す。
0図において、10はシンボリックデバッガ、11はオ
ブジェクトモジュール、12はソースプログラムのシン
ボル情報、13は行番号辞書、14は行番号カウンタ、
15はアドレス計算部、16は行番号辞書先頭ポインタ
を示す。
シンボリックデバッガ10は、試験対象のプログラムを
、ソースプログラムのシンボル情報12をつがい、対話
形式により実行制御できるようにするデバソ、グッール
である。
、ソースプログラムのシンボル情報12をつがい、対話
形式により実行制御できるようにするデバソ、グッール
である。
オブジェクトモジュール11は、ソースプログラムのシ
ンボル1n報12をコンパイル処理した結果の機械命令
からなるプログラムである。
ンボル1n報12をコンパイル処理した結果の機械命令
からなるプログラムである。
ソースプログラムのシンボル情報12は1行番号0,1
.川、i、・・・、nをもつ複数の行Lll+L1.・
・・、L8.・・・、Llで構成される。また各行Lo
、L+ 、・・・、L、、・・・、Lnの先頭アドレ
スは+ ao + al + ・・・、a3.・・
・l allで示される。
.川、i、・・・、nをもつ複数の行Lll+L1.・
・・、L8.・・・、Llで構成される。また各行Lo
、L+ 、・・・、L、、・・・、Lnの先頭アドレ
スは+ ao + al + ・・・、a3.・・
・l allで示される。
オブジェクトモジュール11には、ソースプログラムの
シンボル情報12の各行LO,L、・・・。
シンボル情報12の各行LO,L、・・・。
Lo、・・・、Llに対応する機械命令群(MO、M+
。
。
・・・1M3.・・・2M7で表す)の境界ごとに1行
番号カウンタ14を更新する機械命令(me、m、。
番号カウンタ14を更新する機械命令(me、m、。
・・・1m1.・・−2m7で表す)が埋め込まれてい
る。
る。
行番号カウンタ14の値は、オブジェクトモジュール1
1に埋め込まれている機械命令mo、m、。
1に埋め込まれている機械命令mo、m、。
・・・1m8.・・・9m0がそれぞれ実行されるたび
に。
に。
ソースプログラムのシンボル情報12の行番号に対応す
るよう更新される。すなわちある機械命令m、を実行し
た後の行番号カウンタI4の内容(LCで表す)は1機
械命令群M、に対応するソースプログラムのソンボル情
ff112の行し、の行番号iを与える。
るよう更新される。すなわちある機械命令m、を実行し
た後の行番号カウンタI4の内容(LCで表す)は1機
械命令群M、に対応するソースプログラムのソンボル情
ff112の行し、の行番号iを与える。
行番号辞書13は、ソースプログラムのシンボル情報1
2の行り、の行番号iとアドレスa、とを対応づけるポ
インクチ−プルである。この行番号辞書13の各エント
リアドレスは、bo、b。
2の行り、の行番号iとアドレスa、とを対応づけるポ
インクチ−プルである。この行番号辞書13の各エント
リアドレスは、bo、b。
、・・・、b、、・・・、b7で示される。また各エン
トリの幅はeであり、そして行番号辞書13の先頭アド
レスはHPで表される。この場合、HP=bOであり、
HPは、予め行番号辞書先頭ポインタ16に設定される
。
トリの幅はeであり、そして行番号辞書13の先頭アド
レスはHPで表される。この場合、HP=bOであり、
HPは、予め行番号辞書先頭ポインタ16に設定される
。
アドレス計算部15は7行番号カウンタ14の値iと1
行番号辞書光頭ポインタ16の値HPと。
行番号辞書光頭ポインタ16の値HPと。
行番号辞書13のエントリ幅βとに基づいて1行番号辞
書13のエントリアドレスb8を次式により計算する。
書13のエントリアドレスb8を次式により計算する。
b、=HP+l・p
このようにして計算されたエントリアドレスb僅を用い
て行番号辞書13をアクセスし、目的のエントリを直ち
に読み出して、ソースプログラムのシンボル情報12の
行番号iに対応する行LLのアドレスa、を得る。
て行番号辞書13をアクセスし、目的のエントリを直ち
に読み出して、ソースプログラムのシンボル情報12の
行番号iに対応する行LLのアドレスa、を得る。
オブジェクトモジュールIIに埋め込まれる行番号カウ
ンタ14更新用の機械命令m@ 、m、。
ンタ14更新用の機械命令m@ 、m、。
・・・1m1.・・・1mいのうち、最初の行の機械命
令moは2行番号カウンタ14をOにクリアする命令(
LC−0)であり、残り行の大半の機械命令は行番号カ
ウンタ14の内容を+1する命令(LC−LCi1)で
ある。しかし9分岐命令で制御が渡ってくる可能性のあ
る行の機械命令は、その行の行番号(LC8とする)を
行番号カウンタ14に直接埋め込む命令(LC−LCi
)にされる。
令moは2行番号カウンタ14をOにクリアする命令(
LC−0)であり、残り行の大半の機械命令は行番号カ
ウンタ14の内容を+1する命令(LC−LCi1)で
ある。しかし9分岐命令で制御が渡ってくる可能性のあ
る行の機械命令は、その行の行番号(LC8とする)を
行番号カウンタ14に直接埋め込む命令(LC−LCi
)にされる。
第1図に示されるように本発明において、オブジェクト
モジュール11に埋め込まれる機械命令は1行番号カウ
ンタ14を更新するための機械命令m。、ml 、 ・
・’、mi 、”’、mL1のみであり。
モジュール11に埋め込まれる機械命令は1行番号カウ
ンタ14を更新するための機械命令m。、ml 、 ・
・’、mi 、”’、mL1のみであり。
従来のような分岐命令の付加は不必要である。このため
、オブジェクトモジュール11のサイズを。
、オブジェクトモジュール11のサイズを。
従来よりも削減することができる。
また必要時に9行番号カウンタ14から取り出した行番
号iから3行番号辞書13のエントリアドレスb、を計
算して9行番号辞書13から一回のアクセスで目的のエ
ントリを読み出すため、従来のように行番号iで行番号
辞書13を検索する場合にくらべて大幅に処理時間を短
縮することができる。
号iから3行番号辞書13のエントリアドレスb、を計
算して9行番号辞書13から一回のアクセスで目的のエ
ントリを読み出すため、従来のように行番号iで行番号
辞書13を検索する場合にくらべて大幅に処理時間を短
縮することができる。
第2図に1本発明のl実柊例におけるハードウェア構成
を示す。
を示す。
第2図において、1はCPU、2はメモリ、3はバス、
4はキー人力装置、5は表示装置、6は入出力制御装置
、7はディスク装置、10はシンポリンクデバソガ、1
1.11’はオブジェクトモジュール、12.12’は
ソースプログラムのシンポル情報、13.13’は行番
号辞書、14は行番号カウンタ、16は行番号辞書先頭
ポインタである。
4はキー人力装置、5は表示装置、6は入出力制御装置
、7はディスク装置、10はシンポリンクデバソガ、1
1.11’はオブジェクトモジュール、12.12’は
ソースプログラムのシンポル情報、13.13’は行番
号辞書、14は行番号カウンタ、16は行番号辞書先頭
ポインタである。
■ないし7で示されるハードウェア要素は一般的なもの
であり、多くの変型が可能である。
であり、多くの変型が可能である。
試験対象のオブジェクトモジュール11’およびソース
プログラムのシンボル情報12′と1行番号辞書13’
とは、コンパイル処理結果の情報としてディスク装置7
に格納されており、試験実行時にメモリ2の領域を割り
付けて、11.12.13で示されるようにロードされ
る。
プログラムのシンボル情報12′と1行番号辞書13’
とは、コンパイル処理結果の情報としてディスク装置7
に格納されており、試験実行時にメモリ2の領域を割り
付けて、11.12.13で示されるようにロードされ
る。
またこのとき行番号辞書先頭ポインタ16には。
行番号辞書13′の先頭アドレスが設定される。
この状態において、シンボリックデバッガ10の制御の
ちとに、オブジェクトモジュール11’の実行を開始す
る。
ちとに、オブジェクトモジュール11’の実行を開始す
る。
オブジェクトモジュール11′の最初の機械命令は2行
番号カウンタ14の値(LCで表す)をOにクリアする
命令である。
番号カウンタ14の値(LCで表す)をOにクリアする
命令である。
続いて、ソースプログラムのシンボル情報12の最初の
行に対応する機械命令α、β、γの群を実行すると1次
の機械命令は、ソースプログラムのシンボル情報120
次の行を開始する機械命令であり、それは行番号カウン
タ14の値LCを+1する。すなわちLC←LC+ 1
に更新する命令である。この命令を実行し、続いて本来
のソース行に対応する機械命令A、B、Cを実行する。
行に対応する機械命令α、β、γの群を実行すると1次
の機械命令は、ソースプログラムのシンボル情報120
次の行を開始する機械命令であり、それは行番号カウン
タ14の値LCを+1する。すなわちLC←LC+ 1
に更新する命令である。この命令を実行し、続いて本来
のソース行に対応する機械命令A、B、Cを実行する。
このようにして、順次のソース行ごとに行番号カウンタ
14をLC−LC+1で更新し、実行中のソース行の行
番号を表示させる。
14をLC−LC+1で更新し、実行中のソース行の行
番号を表示させる。
また分岐先のソース行の最初の機械命令は、そのソース
行の行番号(LCiで表す)を行番号カウンタ14に設
定する命令であるから、この命令が実行されると1行番
号カウンタ14はLC−LClのように更新される。
行の行番号(LCiで表す)を行番号カウンタ14に設
定する命令であるから、この命令が実行されると1行番
号カウンタ14はLC−LClのように更新される。
このようにして、シンボリックデバッガ10は。
必要時に行番号カウンタ14を参照し1行番号辞書先頭
ポインタ16と所定のエントリ幅(1)とを用いて、第
1図で説明したようにして1行番号辞書13のエントリ
アドレスを計算し0行番号辞書13から目的のエントリ
を読み出す。そして。
ポインタ16と所定のエントリ幅(1)とを用いて、第
1図で説明したようにして1行番号辞書13のエントリ
アドレスを計算し0行番号辞書13から目的のエントリ
を読み出す。そして。
この読み出されたエントリに含まれるポインタを用いて
、ソースプログラムのシンボル情報12をアクセスし、
該当する行のシンボル情報を読み出す。
、ソースプログラムのシンボル情報12をアクセスし、
該当する行のシンボル情報を読み出す。
本発明によれば、シンボリックデバッガによるプログラ
ム試験において、ソースプログラムの行番号を対応づけ
るためにオブジェクトモジュール中に埋め込む機械命令
によりオブジェクトモジュールのサイズが増大するのを
最小限に留めることができ、また行番号辞書を行番号に
よらずに、エントリアドレスを計算してアクセスするた
め、辞書の参照時間が短縮され、シンボリックデバッガ
の性能向上を図ることができる。
ム試験において、ソースプログラムの行番号を対応づけ
るためにオブジェクトモジュール中に埋め込む機械命令
によりオブジェクトモジュールのサイズが増大するのを
最小限に留めることができ、また行番号辞書を行番号に
よらずに、エントリアドレスを計算してアクセスするた
め、辞書の参照時間が短縮され、シンボリックデバッガ
の性能向上を図ることができる。
第1図は本発明の原理説明図、第2図は本発明の1実施
例のハードウェア構成図、第3図は従来のシンボリック
デバッガの概念図である。 第1図中。 10:シンボリックデバッガ 11:オブジェクトモジュール 12:ソースプログラムのシンボル情報13:行番号辞
書 14:行番号カウンタ 15ニアドレス計算部
例のハードウェア構成図、第3図は従来のシンボリック
デバッガの概念図である。 第1図中。 10:シンボリックデバッガ 11:オブジェクトモジュール 12:ソースプログラムのシンボル情報13:行番号辞
書 14:行番号カウンタ 15ニアドレス計算部
Claims (1)
- 【特許請求の範囲】 プログラムデバッグ処理システムにおいて、行番号カウ
ンタ(14)と、リースプログラムの行毎の行番号と行
アドレスとを対応づけて示す行番号辞書(13)を設け
、 試験すべきソースプログラムをコンパイル処理する際、
生成するオブジェクトモジュール中にソースプログラム
の対応する行ごとにその行番号を生成するための機械命
令を埋め込むとともに、上記オブジェクトモジュール中
に埋め込まれた行番号を生成するための機械命令が実行
される際、上記行番号カウンタ(14)の内容を、ソー
スプログラム上で現在実行中の行の行番号に逐次更新し
、オブジェクトモジュールからソースプログラムの行の
シンボル情報を参照する必要が生じた場合、上記行番号
カウンタ(14)の内容の行番号を読み出して上記行番
号辞書(13)のエントリアドレスを計算し、そのエン
トリアドレスを用いて上記行番号辞書(13)をアクセ
スし、ソースプログラムの該当する行のアドレスを求め
て、その行のシンボル情報を参照することを特徴とする
シンボリックデバッガ制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61200839A JPS6355646A (ja) | 1986-08-27 | 1986-08-27 | シンボリツクデバツガ制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61200839A JPS6355646A (ja) | 1986-08-27 | 1986-08-27 | シンボリツクデバツガ制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6355646A true JPS6355646A (ja) | 1988-03-10 |
Family
ID=16431064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61200839A Pending JPS6355646A (ja) | 1986-08-27 | 1986-08-27 | シンボリツクデバツガ制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6355646A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0370241A (ja) * | 1989-08-09 | 1991-03-26 | Toa Corp | 電話機における終話検出装置 |
-
1986
- 1986-08-27 JP JP61200839A patent/JPS6355646A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0370241A (ja) * | 1989-08-09 | 1991-03-26 | Toa Corp | 電話機における終話検出装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5038348A (en) | Apparatus for debugging a data flow program | |
EP0406602B1 (en) | Method and apparatus for debugging parallel programs by serialization | |
US7093165B2 (en) | Debugging Method | |
US7395199B2 (en) | Emulating the operation of a video graphics adapter | |
CA1213986A (en) | Selective guest system purge control | |
US20050216897A1 (en) | Converter, automation device with a converter, and a development environment having an automation device with converter | |
US4108360A (en) | Method of error analysis and diagnosis in electronic data processing systems | |
JPS6355646A (ja) | シンボリツクデバツガ制御方式 | |
JP3211423B2 (ja) | 分岐命令実行方法および分岐命令実行装置 | |
JP3213792B2 (ja) | 論理シミュレ−ション検証方式 | |
JPH0784797A (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
JPH0510692B2 (ja) | ||
JPS6045455B2 (ja) | プログラム進行状態表示装置 | |
JPS6113615B2 (ja) | ||
JPH02115951A (ja) | 高級言語プログラム保守デバッグ方式 | |
JPH04217034A (ja) | プログラムトレースの表示方式 | |
JPS6111857A (ja) | プログラム・モジユ−ル表示装置 | |
JPS58195255A (ja) | デ−タ処理装置 | |
JPS63291170A (ja) | シミユレ−タ | |
JPH05224987A (ja) | パイプライン処理方式コンピュータ用プログラムのデバッガ | |
JPH05334135A (ja) | プログラム異常終了時のエラー情報表示方式 | |
JPH11191072A (ja) | デバッグのブレイク処理方法及びデバッグ処理装置 | |
JPS59136855A (ja) | ソフトウエアの試験・評価方法 | |
JPH0439097B2 (ja) | ||
JPH06236294A (ja) | ソースプログラム・レベルでのデバッグ・モニタ制御方式 |