JP2811804B2 - 変数出力範囲指定方式 - Google Patents
変数出力範囲指定方式Info
- Publication number
- JP2811804B2 JP2811804B2 JP1249680A JP24968089A JP2811804B2 JP 2811804 B2 JP2811804 B2 JP 2811804B2 JP 1249680 A JP1249680 A JP 1249680A JP 24968089 A JP24968089 A JP 24968089A JP 2811804 B2 JP2811804 B2 JP 2811804B2
- Authority
- JP
- Japan
- Prior art keywords
- variable
- line
- range
- value
- 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.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
Description
【発明の詳細な説明】 〔概 要〕 本発明は変数出力範囲指定方式に関し、 プログラムデバックを効率的に行うことを目的とし、 命令を逐次実行するプロセッサと、該プロセッサによ
り実行される命令を格納する主記憶部とを備え、プログ
ラミング言語で記述されたソースプログラムを翻訳して
得られた機械語命令部と、各動作時点における変数の値
が格納されるデータ部とからなるロードモジュールを該
主記憶部に格納し実行するデータ処理装置において、該
ソースプログラム中の指定された行範囲に含まれるすべ
ての変数を該ソースプログラムより収集する変数収集手
段と、収集された該変数の主記憶上の格納アドレスを算
出し、該ロードモジュールの指定動作時点における該変
数の値を読取る読取手段と、読取った変数の値を対応す
る変数名とともに出力する編集出力部とを備え、ソース
プログラム中の指定の行範囲に含まれるすべての変数を
抽出し、該ロードモジュールの指定動作時点における該
変数の値を主記憶上の前記データ部よりそれぞれ読取っ
て出力するように構成する。
り実行される命令を格納する主記憶部とを備え、プログ
ラミング言語で記述されたソースプログラムを翻訳して
得られた機械語命令部と、各動作時点における変数の値
が格納されるデータ部とからなるロードモジュールを該
主記憶部に格納し実行するデータ処理装置において、該
ソースプログラム中の指定された行範囲に含まれるすべ
ての変数を該ソースプログラムより収集する変数収集手
段と、収集された該変数の主記憶上の格納アドレスを算
出し、該ロードモジュールの指定動作時点における該変
数の値を読取る読取手段と、読取った変数の値を対応す
る変数名とともに出力する編集出力部とを備え、ソース
プログラム中の指定の行範囲に含まれるすべての変数を
抽出し、該ロードモジュールの指定動作時点における該
変数の値を主記憶上の前記データ部よりそれぞれ読取っ
て出力するように構成する。
本発明は、プログラミング言語で記述されたソースプ
ログラムを翻訳プログラムにより変換して得られたロー
ドモジュールを主記憶上に格納し、主記憶上の命令をプ
ロセッサ(CPU)が逐次実行することにより動作するデ
ータ処理システムにおいて、プログラムをデバックする
際に、ソースプログラム上の変数について、ロードモジ
ュールが実行中の一時点における値を出力する処理の指
定方式に関する。
ログラムを翻訳プログラムにより変換して得られたロー
ドモジュールを主記憶上に格納し、主記憶上の命令をプ
ロセッサ(CPU)が逐次実行することにより動作するデ
ータ処理システムにおいて、プログラムをデバックする
際に、ソースプログラム上の変数について、ロードモジ
ュールが実行中の一時点における値を出力する処理の指
定方式に関する。
従来例として会話型デバッガについて説明する。
第6図はロードモジュールの構成例を表す図、第7図
はシンボルテーブルの構造例を表す図、第8図は全体構
成図である。
はシンボルテーブルの構造例を表す図、第8図は全体構
成図である。
ソースプログラムを翻訳プログラムで翻訳したロード
モジュールは、第6図に示すように、機械語の命令部分
であるテキスト部2−1と、初期値有りデータ部2−2
と、シンボルテーブル2−3より構成される。
モジュールは、第6図に示すように、機械語の命令部分
であるテキスト部2−1と、初期値有りデータ部2−2
と、シンボルテーブル2−3より構成される。
このシンボルテーブル2−3は、変数名,関数名等の
名称と、変数か関数か等の区分と、ロードモジュール内
のいずれ(テキスト部等)にあるかを表すクラスと、ロ
ードモジュール生成時に仮りに定めた開始アドレスに基
づくアドレス(以下開始アドレスを0としてオフセット
値とする)等より構成されている。
名称と、変数か関数か等の区分と、ロードモジュール内
のいずれ(テキスト部等)にあるかを表すクラスと、ロ
ードモジュール生成時に仮りに定めた開始アドレスに基
づくアドレス(以下開始アドレスを0としてオフセット
値とする)等より構成されている。
第8図は、プロセッサCPU20、主記憶部21,表示部22、
入力部23等を備えたデータ処理装置において、デバッガ
10および上記ロードモジュール構成の被デバッグプログ
ラム2aを主記憶部21にロードして会話型デバッガを構成
した例を示している。
入力部23等を備えたデータ処理装置において、デバッガ
10および上記ロードモジュール構成の被デバッグプログ
ラム2aを主記憶部21にロードして会話型デバッガを構成
した例を示している。
ここで、被デバッグプログラム2aおよびデバッガ10は
オペレーティングシステムOS4の配下で動作し、第8図
に示すように、被デバッグプログラム2aがロードされる
際には、初期値無しデータ部2−4の領域が主記憶部21
に確保され、またデバッガ10は、被データプログラム2a
に対応するソースプログラム1、シンボルテーブル2−
3、ソースプログラム1と被デバッグプログラム2aとを
対応付けした行番号テーブル3を主記憶部21に保有す
る。
オペレーティングシステムOS4の配下で動作し、第8図
に示すように、被デバッグプログラム2aがロードされる
際には、初期値無しデータ部2−4の領域が主記憶部21
に確保され、またデバッガ10は、被データプログラム2a
に対応するソースプログラム1、シンボルテーブル2−
3、ソースプログラム1と被デバッグプログラム2aとを
対応付けした行番号テーブル3を主記憶部21に保有す
る。
なお、変数には初期値有り変数と、初期値無し変数と
があり、それぞれプログラム実行ごとに設定された値が
初期値有りデータ部2−2または初期値無しデータ部2
−4内の所定アドレスに格納,更新される。
があり、それぞれプログラム実行ごとに設定された値が
初期値有りデータ部2−2または初期値無しデータ部2
−4内の所定アドレスに格納,更新される。
以上のように構成された会話型デバッガにおいて、ソ
ースプログラム1中の変数について、被デバッグプログ
ラム2aの実行中の一時点における値を出力する操作なら
びに動作例を説明する。
ースプログラム1中の変数について、被デバッグプログ
ラム2aの実行中の一時点における値を出力する操作なら
びに動作例を説明する。
(1) まず動作行を指定するコマンドを入力部23より
入力すると、デバッガ10は、ソースプログラム1より指
定表示行を基準とした所定行分のデータを抽出し、表示
部22に表示する。
入力すると、デバッガ10は、ソースプログラム1より指
定表示行を基準とした所定行分のデータを抽出し、表示
部22に表示する。
(2) 変数名をコマンドとともに入力すると、デバッ
ガ10は、シンボルテーブル2−3を参照して指定された
変数のオフセットを求め、被デバッグプログラム2aのロ
ード時に通知された主記憶部21上の先頭アドレスより、
初期値有りデータ部2−2または初期値無しデータ部2
−4内におけるその変数の格納アドレスを算出する。
ガ10は、シンボルテーブル2−3を参照して指定された
変数のオフセットを求め、被デバッグプログラム2aのロ
ード時に通知された主記憶部21上の先頭アドレスより、
初期値有りデータ部2−2または初期値無しデータ部2
−4内におけるその変数の格納アドレスを算出する。
(3) 表示画面上走行停止点(ブレークポイント)を
指定して走行を指示すると、被デバッグプログラム2aは
CPU20によって順次実行され、ブレークポイントで停止
する。
指定して走行を指示すると、被デバッグプログラム2aは
CPU20によって順次実行され、ブレークポイントで停止
する。
この間、変数は初期値またはプログラムによる初期設
定より順次更新され、停止時には最新の値が主記憶上の
データ部内の所定アドレスにストアされている。
定より順次更新され、停止時には最新の値が主記憶上の
データ部内の所定アドレスにストアされている。
(4) デバッガ10は、走行が停止すると、既に算出し
た指定の変数の主記憶上の格納アドレスを指示してOS4
に読取りを依頼し、得られた値を表示部22に表示する。
た指定の変数の主記憶上の格納アドレスを指示してOS4
に読取りを依頼し、得られた値を表示部22に表示する。
なお、さらに実行を進めると、同じ変数について、次
の停止時点における値が表示される。
の停止時点における値が表示される。
以上説明したように、会話型デバッガは、知りたい変
数の値は直ちに表示され、また実行を進めながら繰り返
し同じ変数の値を表示できるという利点があるが、複数
の変数を表示させるためには、従来では、変数ごとに繰
り返し操作を行う必要があり、デバッグの効率が悪いと
いう課題があった。
数の値は直ちに表示され、また実行を進めながら繰り返
し同じ変数の値を表示できるという利点があるが、複数
の変数を表示させるためには、従来では、変数ごとに繰
り返し操作を行う必要があり、デバッグの効率が悪いと
いう課題があった。
なお、プログラムのデバッグには、会話型デバッガの
他に次のような方法がある。
他に次のような方法がある。
その第1の方法は、ソースプログラムのところどころ
に、その部分を通過したことを示すデータを出力する文
や、そのときのプログラム内の変数の値を出力する文を
挿入して翻訳,実行し、この出力結果を調べる方法であ
る。この方法は、翻訳プログラム以外に特別なプログラ
ムは必要ない利点はあるが、デバッグ中調べようとする
変数の範囲を広げようとすると、その都度ソースプログ
ラムの修正と再翻訳が必要となり、そのための操作と時
間が損失となるといった課題がある。
に、その部分を通過したことを示すデータを出力する文
や、そのときのプログラム内の変数の値を出力する文を
挿入して翻訳,実行し、この出力結果を調べる方法であ
る。この方法は、翻訳プログラム以外に特別なプログラ
ムは必要ない利点はあるが、デバッグ中調べようとする
変数の範囲を広げようとすると、その都度ソースプログ
ラムの修正と再翻訳が必要となり、そのための操作と時
間が損失となるといった課題がある。
その第2の方法は、プログラムが停止した時点、ある
いは停止までのいくつかの時点で、主記憶内のプログラ
ム領域をファイル装置などに出力し、これを別のプログ
ラムで処理して見やすい形に編集,印刷して、これを調
べる方法がある。この方法は、ソースプログラムの修正
と再翻訳が不要で、且つプログラム内のすべての変数の
値が一度に出力されるという利点はあるが、通常プログ
ラムのデバッグはプログラムの一部に注目して行い、こ
れを順次移していくという方法をとるため、出力の回数
が増えると、処理時間と値を捜す時間が無視できないと
いう課題がある。
いは停止までのいくつかの時点で、主記憶内のプログラ
ム領域をファイル装置などに出力し、これを別のプログ
ラムで処理して見やすい形に編集,印刷して、これを調
べる方法がある。この方法は、ソースプログラムの修正
と再翻訳が不要で、且つプログラム内のすべての変数の
値が一度に出力されるという利点はあるが、通常プログ
ラムのデバッグはプログラムの一部に注目して行い、こ
れを順次移していくという方法をとるため、出力の回数
が増えると、処理時間と値を捜す時間が無視できないと
いう課題がある。
本発明は、上記課題に鑑み、会話型デバッガおよび第
2の方法の利点を生かしながら、上記課題を克服する変
数出力範囲指定方式を提供することを目的とする。
2の方法の利点を生かしながら、上記課題を克服する変
数出力範囲指定方式を提供することを目的とする。
上記目的を達成するため、本発明の変数出力範囲指定
方式は、第1図本発明の原理図に示すように、 ソースプログラム1中の指定された行範囲に含まれる
すべての変数をソースプログラム1より収集する変数収
集手段30と、 収集された該変数の主記憶上の格納アドレスを算出
し、ロードモジュール2の指定動作時点における変数の
値を読取る読取手段31と、 読取った変数の値を対応する変数名とともに出力する
編集出力部18とを備える。
方式は、第1図本発明の原理図に示すように、 ソースプログラム1中の指定された行範囲に含まれる
すべての変数をソースプログラム1より収集する変数収
集手段30と、 収集された該変数の主記憶上の格納アドレスを算出
し、ロードモジュール2の指定動作時点における変数の
値を読取る読取手段31と、 読取った変数の値を対応する変数名とともに出力する
編集出力部18とを備える。
変数収集手段30は、ソースプログラム1中を指定され
た行範囲に含まれる変数をソースプログラム1を参照し
てすべて拾い出す。
た行範囲に含まれる変数をソースプログラム1を参照し
てすべて拾い出す。
読取手段31は、収集された変数について、主記憶部21
上のデータ部にある格納アドレスを算出し、指定動作時
点におけるこれらの変数の値を読取り、編集出力部18は
変数名とともにこの値を所定の形状で出力する。
上のデータ部にある格納アドレスを算出し、指定動作時
点におけるこれらの変数の値を読取り、編集出力部18は
変数名とともにこの値を所定の形状で出力する。
以上により、ソースプログラム1中、指定した行範囲
内のすべての変数の値が同時に出力されるため、操作回
数が少なく、且つ実行を進めながら着目する複数の変数
の値を知ることができ、デバッグの効率が向上する。
内のすべての変数の値が同時に出力されるため、操作回
数が少なく、且つ実行を進めながら着目する複数の変数
の値を知ることができ、デバッグの効率が向上する。
本発明の実施例を図を用いて詳細に説明する。
第2図は一実施例の構成図、第3図は行範囲内変数テ
ーブル例を表す図、第4図は動作フローチャート図、第
5図はソースプログラム例を表す図である。
ーブル例を表す図、第4図は動作フローチャート図、第
5図はソースプログラム例を表す図である。
本実施例では、行範囲としてその開始行と終了行とを
指定させる例を示す。また、第2図に示すデバッガ10a
は、本発明に係わる主要部分のみを示したもので、その
他のデバッガ機能部分は省略している。第2図におい
て、 11は会話処理部で、デバッガ使用者へのデータ表示,
入力されたコマンドを解析して対応する処理部を呼出す
機能を備える。
指定させる例を示す。また、第2図に示すデバッガ10a
は、本発明に係わる主要部分のみを示したもので、その
他のデバッガ機能部分は省略している。第2図におい
て、 11は会話処理部で、デバッガ使用者へのデータ表示,
入力されたコマンドを解析して対応する処理部を呼出す
機能を備える。
12は行範囲指定コマンド処理部で、行範囲指定コマン
ドによりソースプログラム1の指定部分を表示して行範
囲を指定させるとともに、入力されたソースプログラム
1上の行範囲、即ち開始行番号と終了行番号とを主記憶
部21に記録する。
ドによりソースプログラム1の指定部分を表示して行範
囲を指定させるとともに、入力されたソースプログラム
1上の行範囲、即ち開始行番号と終了行番号とを主記憶
部21に記録する。
14は行範囲内変数収集処理部で、開始行番号と終了行
番号とに基づきソースプログラム1を参照し、その範囲
内にある変数を収集するとともに、行範囲変数テーブル
15を生成し、シンボルテーブル2−3を参照してその変
数名、オフセット、変数の型等を格納する。
番号とに基づきソースプログラム1を参照し、その範囲
内にある変数を収集するとともに、行範囲変数テーブル
15を生成し、シンボルテーブル2−3を参照してその変
数名、オフセット、変数の型等を格納する。
16はアドレス変換部で、予め通知されている被デバッ
グプログラム2aの主記憶上の先頭アドレスとオフセット
とに基づき収集された各変数の格納アドレス(初期値有
りデータ部2−2または初期値無しデータ部2−4内の
アドレス)を算出し、行範囲内変数テーブル15に格納す
る。
グプログラム2aの主記憶上の先頭アドレスとオフセット
とに基づき収集された各変数の格納アドレス(初期値有
りデータ部2−2または初期値無しデータ部2−4内の
アドレス)を算出し、行範囲内変数テーブル15に格納す
る。
15は後述する行範囲内変数テーブル、 17は変数値読取部で、被デバッグプログラム2aの走行
が停止した時点(指定動作時点)で行範囲内変数テーブ
ル15を参照し、各変数の主記憶上の格納アドレスを指示
して、OS4に読取りを依頼し、得られた値を行範囲内変
数テーブル15に格納する。
が停止した時点(指定動作時点)で行範囲内変数テーブ
ル15を参照し、各変数の主記憶上の格納アドレスを指示
して、OS4に読取りを依頼し、得られた値を行範囲内変
数テーブル15に格納する。
18は編集出力部で、行範囲内変数テーブル15を参照し
て格納された値をその変数の型に変換し、変数名ととも
に表示部22に表示する。
て格納された値をその変数の型に変換し、変数名ととも
に表示部22に表示する。
その他、全図を通じて同一符号は同一対象物を表す。
なお、第1図変数収集手段30は行範囲内変数収集処理部
14に、読取手段31はアドレス変換部16,変数値読取部17
に、データ部は初期値有りデータ部2−2,初期値無しデ
ータ部2−4に、それぞれ対応する。
なお、第1図変数収集手段30は行範囲内変数収集処理部
14に、読取手段31はアドレス変換部16,変数値読取部17
に、データ部は初期値有りデータ部2−2,初期値無しデ
ータ部2−4に、それぞれ対応する。
また、第2図における各プログラム,テーブル,デー
タ部は、主記憶部21にロードされ、第8図に示すよう
に、OS4またはデバッガ10aによって管理される。
タ部は、主記憶部21にロードされ、第8図に示すよう
に、OS4またはデバッガ10aによって管理される。
行範囲内変数テーブル15は、第3図に示すように、変
数名と、シンボルテーブル2−3に記録されているオフ
セットと、算出した主記憶上の格納アドレスと、整数,
少数,文字列等の変数の型と、変数値読取部17で読取っ
た値を格納する領域より構成され、前述した各部により
設定される。
数名と、シンボルテーブル2−3に記録されているオフ
セットと、算出した主記憶上の格納アドレスと、整数,
少数,文字列等の変数の型と、変数値読取部17で読取っ
た値を格納する領域より構成され、前述した各部により
設定される。
なお、変数の型は、図示省略したが、シンボルテーブ
ル2−3に設定されており、行範囲内変数収集処理部14
によって格納される。
ル2−3に設定されており、行範囲内変数収集処理部14
によって格納される。
以下、第4図を参照しつつ変数出力動作を説明する。
(1) 行範囲指定コマンド処理 行範囲指定コマンド入力により、行範囲指定コマンド
処理部12は表示部23にソースプログラム1の指定部分を
表示し、画面上行範囲を指定させてその開始行番号,終
了行番号を主記憶部21内に記録する。
処理部12は表示部23にソースプログラム1の指定部分を
表示し、画面上行範囲を指定させてその開始行番号,終
了行番号を主記憶部21内に記録する。
(2) 行範囲内変数収集処理 続いて行範囲内変数収集処理部14は、ソースプログラ
ム1を解析して指定行範囲内に現れる変数名を収集し、
行範囲内変数テーブル15を生成するとともに、シンボル
テーブル2−3を参照して、オフセット,変数の型を行
範囲内変数テーブル15に格納する。
ム1を解析して指定行範囲内に現れる変数名を収集し、
行範囲内変数テーブル15を生成するとともに、シンボル
テーブル2−3を参照して、オフセット,変数の型を行
範囲内変数テーブル15に格納する。
(3) アドレス変換処理。
アドレス変換部16は、主記憶上の先頭アドレスとオフ
セットとにより、収集した各変数の主記憶上の格納アド
レスを求め、行範囲内変数テーブル15に格納する。
セットとにより、収集した各変数の主記憶上の格納アド
レスを求め、行範囲内変数テーブル15に格納する。
(4) 被デバッグプログラム2aのアクセス処理 被デバッグプログラム2aが走行し、ブレークポイント
で停止した後、変数値読取部17は、行範囲内変数テーブ
ル15を参照し、収集された変数ごとに主記憶上の格納ア
ドレスを指定してOS4に変数値の読取りを依頼する。OS4
はそのアドレスを基に、初期値有りデータ部2−2,初期
値無しデータ部2−4内に格納されている変数の現在値
を読取って通知する。なお、得られた値は行範囲内変数
テーブル15に格納される。
で停止した後、変数値読取部17は、行範囲内変数テーブ
ル15を参照し、収集された変数ごとに主記憶上の格納ア
ドレスを指定してOS4に変数値の読取りを依頼する。OS4
はそのアドレスを基に、初期値有りデータ部2−2,初期
値無しデータ部2−4内に格納されている変数の現在値
を読取って通知する。なお、得られた値は行範囲内変数
テーブル15に格納される。
(5) 変数の出力処理 行範囲内変数テーブル15を参照し、各変数の値を変数
の型に応じて変換し、変数名とともに表示する。
の型に応じて変換し、変数名とともに表示する。
以上の動作例として、第5図にソースプログラム例を
示す。
示す。
このソースプログラム中のi,j,k,lは、初期値無し変
数であって、プログラム実行中に設定され、且つラベル
P0で示される各ステップの繰り返しにより各変数が変化
する。この変化の模様は次のようにして表示される。
数であって、プログラム実行中に設定され、且つラベル
P0で示される各ステップの繰り返しにより各変数が変化
する。この変化の模様は次のようにして表示される。
まず、行範囲の開始行(図示A)を「P0」行(以下行
番号の代わりに記述文で示す)に指定し、終了行Bを
「go to P0」行に、例えばカーソルによって指定する。
番号の代わりに記述文で示す)に指定し、終了行Bを
「go to P0」行に、例えばカーソルによって指定する。
これにより、AB間の変数としてi,j,k,lが抽出され
る。
る。
次にP0行をブレークポイントに指定してプログラムを
走行させると、P0行の前行でプログラムが停止し、変数
の値として、 i=1,j=1,k=1,l=0 が表示される。
走行させると、P0行の前行でプログラムが停止し、変数
の値として、 i=1,j=1,k=1,l=0 が表示される。
次にブレークポイントをB行に設定し走行させると、
1回目の値として i=2,j=1,k=2,l=2 が表示される。次に継続コマンドを入力すると、再びP0
行に動作が移り、B行で停止して、 i=3,j=2,k=3,l=3 と表示される。
1回目の値として i=2,j=1,k=2,l=2 が表示される。次に継続コマンドを入力すると、再びP0
行に動作が移り、B行で停止して、 i=3,j=2,k=3,l=3 と表示される。
以下同様に継続コマンドを入力することによりi>10
となってP1行に制御が移るまでの各変数の値が順次表示
される。
となってP1行に制御が移るまでの各変数の値が順次表示
される。
以上のごとく、行範囲を指定することにより、着目す
る行範囲内のすべての変数の値がブレークポイントで停
止するごとに表示されるため、デバッグが容易となり、
且つ変数出力のための操作が簡単となる。
る行範囲内のすべての変数の値がブレークポイントで停
止するごとに表示されるため、デバッグが容易となり、
且つ変数出力のための操作が簡単となる。
なお、各時点の値を一括表示する場合には、各時点の
値を行範囲内変数テーブル15に保持しておく。
値を行範囲内変数テーブル15に保持しておく。
(その他の実施例) 以上の実施例では、開始行,終了行で行範囲を指定し
たが、その他、 (1) ソースプログラム1上の、例えば{ }で括ら
れたブロックの開始行または終了行を指定して、そのブ
ロック全体を指定できるように構成する (2) ソースプログラム1上のサブルーチンを指定す
ることにより、そのサブルーチン全体を指定できるよう
に構成する 等の指定方法があり、ソースプログラム1を検索するこ
とにより、前述の実施例と同様に、その範囲に含まれる
変数を収集することができる。また、 (3) ソースプログラム1のうち画面に表示されてい
る部分を行範囲としてもよい。
たが、その他、 (1) ソースプログラム1上の、例えば{ }で括ら
れたブロックの開始行または終了行を指定して、そのブ
ロック全体を指定できるように構成する (2) ソースプログラム1上のサブルーチンを指定す
ることにより、そのサブルーチン全体を指定できるよう
に構成する 等の指定方法があり、ソースプログラム1を検索するこ
とにより、前述の実施例と同様に、その範囲に含まれる
変数を収集することができる。また、 (3) ソースプログラム1のうち画面に表示されてい
る部分を行範囲としてもよい。
この場合、画面上の表示範囲を変化させるに従ってプ
ログラムが走行し、その都度表示範囲を行範囲として変
数の値を表示し直すように構成することもできる。
ログラムが走行し、その都度表示範囲を行範囲として変
数の値を表示し直すように構成することもできる。
本発明は、行範囲を指定することによってその範囲内
のすべての変数について、指定の動作時点における値を
出力する変数出力範囲指定方式を提供するものであるか
ら、操作回数が減少する、着目する変数の値が実行を進
めながら同時に出力される等により効率よくデバッグで
きる効果は多大である。
のすべての変数について、指定の動作時点における値を
出力する変数出力範囲指定方式を提供するものであるか
ら、操作回数が減少する、着目する変数の値が実行を進
めながら同時に出力される等により効率よくデバッグで
きる効果は多大である。
第1図は本発明の原理図、 第2図は一実施例の構成図、 第3図は行範囲内変数テーブル例を表す図、 第4図は動作フローチャート図、 第5図はソースプログラム例を表す図、 第6図はロードモジュールの構成例を表す図、 第7図はシンボルテーブルの構造例を表す図、 第8図は全体構成図である。 図中、1はソースプログラム、2はロードモジュール、
2−1はテキスト部、2−2は初期値有りデータ部、2
−3はシンボルテーブル、2−4は初期値無しデータ
部、2aは被デバッグプログラム、3は行番号テーブル、
4はオペレーティングシステムOS、10,10aはデバッガ、
11は会話処理部、12は行範囲指定コマンド処理部、13は
行範囲データ、14は行範囲内変数収集処理部、15は行範
囲内変数テーブル、16はアドレス変換部、17は変数値読
取部、18は編集出力部、20はプロセッサCPU、21は主記
憶部、22は表示部、23は入力部である。
2−1はテキスト部、2−2は初期値有りデータ部、2
−3はシンボルテーブル、2−4は初期値無しデータ
部、2aは被デバッグプログラム、3は行番号テーブル、
4はオペレーティングシステムOS、10,10aはデバッガ、
11は会話処理部、12は行範囲指定コマンド処理部、13は
行範囲データ、14は行範囲内変数収集処理部、15は行範
囲内変数テーブル、16はアドレス変換部、17は変数値読
取部、18は編集出力部、20はプロセッサCPU、21は主記
憶部、22は表示部、23は入力部である。
Claims (1)
- 【請求項1】命令を逐次実行するプロセッサ(20)と、
該プロセッサにより実行される命令を格納する主記憶部
(21)とを備え、プログラミング言語で記述されたソー
スプログラム(1)を翻訳して得られた機械語命令部
と、各動作時点における変数の値が格納されるデータ部
とからなるロードモジュール(2)を該主記憶部に格納
し実行するデータ処理装置において、 該ソースプログラム中の指定された行範囲に含まれるす
べての変数を該ソースプログラムより収集する変数収集
手段(30)と、 収集された該変数の主記憶上の格納アドレスを算出し、
該ロードモジュールの指定動作時点における該変数の値
を読取る読取手段(31)と、 読取った変数の値を対応する変数名とともに出力する編
集出力部(18)と を備え、ソースプログラム中の指定の行範囲に含まれる
すべての変数を抽出し、該ロードモジュールの指定動作
時点における該変数の値を主記憶上の前記データ部より
それぞれ読取って出力することを特徴とする変数出力範
囲指定方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1249680A JP2811804B2 (ja) | 1989-09-26 | 1989-09-26 | 変数出力範囲指定方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1249680A JP2811804B2 (ja) | 1989-09-26 | 1989-09-26 | 変数出力範囲指定方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03111943A JPH03111943A (ja) | 1991-05-13 |
JP2811804B2 true JP2811804B2 (ja) | 1998-10-15 |
Family
ID=17196607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1249680A Expired - Fee Related JP2811804B2 (ja) | 1989-09-26 | 1989-09-26 | 変数出力範囲指定方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2811804B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4877068B2 (ja) * | 2007-05-22 | 2012-02-15 | 富士電機株式会社 | ソフトウェア開発支援プログラム、ソフトウェア開発支援方法 |
-
1989
- 1989-09-26 JP JP1249680A patent/JP2811804B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH03111943A (ja) | 1991-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11249875A (ja) | プログラミング支援方法及びその装置 | |
JP2811804B2 (ja) | 変数出力範囲指定方式 | |
JP3196675B2 (ja) | 言語処理方式 | |
CN115098368A (zh) | 一种识别脑图用例的智能验证方法和装置 | |
JP2000207246A (ja) | デバッグ支援装置及び方法並びにデバッグ支援用ソフトウェアを記録した記録媒体 | |
JPH02275539A (ja) | デバッグ処理方式 | |
JPS59183441A (ja) | 拡張言語のデバツグ処理方式 | |
JPH1115826A (ja) | 文書解析装置及び方法 | |
JPS6254337A (ja) | プログラムの階層指定表示方式 | |
JP2999654B2 (ja) | 端末装置 | |
JPH11154093A (ja) | プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体 | |
CN117112341A (zh) | 一种基于asm字节码插桩的非入侵准实时监控方法及系统 | |
JPH03273346A (ja) | シンボリックデバッガによる動的呼出し関係解析方式 | |
JPS6033640A (ja) | デ−タ・モニタ方式 | |
JPH05250210A (ja) | プログラムトレース方式 | |
JPH04178829A (ja) | ロードモジュール内のファイル定義情報編集方式 | |
JPH103390A (ja) | テーブル管理システムとその作成方法 | |
JPH06231003A (ja) | 実行可能ファイルのデバッガ | |
JPS63104153A (ja) | アボ−トダンブデ−タ記号編集方式 | |
JPH0327452A (ja) | プログラムデバッグ方式 | |
JPH09282129A (ja) | クリッカブルマップ設定データ作成方法及びその実施装置 | |
JPH0371230A (ja) | 実行プログラム情報表示方式 | |
JPH01142936A (ja) | 情報連結方法 | |
JPH04229343A (ja) | 対話型デバッガにおけるメモリ内容表示方式 | |
JPH07152524A (ja) | グラフィックスデータ変更処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |