JPH03111943A - 変数出力範囲指定方式 - Google Patents

変数出力範囲指定方式

Info

Publication number
JPH03111943A
JPH03111943A JP1249680A JP24968089A JPH03111943A JP H03111943 A JPH03111943 A JP H03111943A JP 1249680 A JP1249680 A JP 1249680A JP 24968089 A JP24968089 A JP 24968089A JP H03111943 A JPH03111943 A JP H03111943A
Authority
JP
Japan
Prior art keywords
variable
variables
source program
values
range
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.)
Granted
Application number
JP1249680A
Other languages
English (en)
Other versions
JP2811804B2 (ja
Inventor
Yotaro Kitadate
北館 陽太郎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1249680A priority Critical patent/JP2811804B2/ja
Publication of JPH03111943A publication Critical patent/JPH03111943A/ja
Application granted granted Critical
Publication of JP2811804B2 publication Critical patent/JP2811804B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 本発明は変数出力範囲指定方式に関し、プログラムデバ
ッグを効率的に行うことを目的とし、 命令を逐次実行するプロセッサと、該プロセッサにより
実行される命令を格納する主記憶部とを備え、プログラ
ミング言語で記述されたソースプログラムを翻訳して得
られた機械語命令部と、各動作時点における変数の値が
格納されるデータ部とからなるロードモジュールを該主
記憶部に格納し実行するデータ処理装置において、該ソ
ースプログラム中の指定された行範囲に含まれるすべて
の変数を該ソースプログラムより収集する変数収集手段
と、収集された該変数の主記憶上の格納アドレスを算出
し、該ロードモジュールの指定動作時点における該変数
の値を読取る読取手段と、読取った変数の値を対応する
変数名とともに出力する編集出力部とを備え、ソースプ
ログラム中の指定の行範囲に含まれるすべての変数を抽
出し、該ロードモジュールの指定動作時点における該変
数の値を主記憶上の前記データ部よりそれぞれ読取って
出力するように構成する。
〔産業上の利用分野〕
本発明は、プログラミング言語で記述されたソースプロ
グラムを翻訳プログラムにより変換して得られたロード
モジュールを主記憶上に格納し、主記憶上の命令をプロ
セッサ(CPU)が逐次実行することにより動作するデ
ータ処理システムにおいて、プログラムをデバッグする
際に、ソースプログラム上の変数について、ロードモジ
ュールが実行中の一時点における値を出力する処理の指
定方式に関する。
〔従来の技術〕 従来例として会話型デバッガについて説明する。
第6図はロードモジュールの構成例を表す図、第7図は
シンボルテーブルの構造例を表す図、第8図は全体構成
図である。
ソースプログラムを翻訳プログラムで翻訳したロードモ
ジュールは、第6図に示すように、機械語の命令部分で
あるテキスト部2−1 と、初期値有りデータ部2−2
と、シンボルテーブル2−3より構成される。
このシンボルテーブル2−3は、変数名、関数名等の名
称と、変数か関数か等の区分と、ロードモジュール内の
いずれ(テキスト部等)にあるかを表すクラスと、ロー
ドモジュール生成時に仮りに定めた開始アドレスに基づ
(アドレス(以下開始アドレスを0としてオフセット値
とする)等より構成されている。
第8図は、プロセッサCPU 20、主記憶部211表
示部22、入力部23等を備えたデータ処理装置におい
て、デバッガ10および上記ロードモジュール構成の被
デバツグプログラム2aを主記憶部21にロードして会
話型デバッガを構成した例を示している。
ここで、被デバツグプログラム2aおよびデバッガ10
はオペレーティングシステムO54の配下で動作し、第
8図に示すように、被デバツグプログラム2aがロード
される際には、初期値無しデータ部2−4の領域が主記
憶部21に確保され、またデバッガ]0は、被データプ
ログラム2aに対応するソースプログラム1、シンボル
テーブル2−3、ソースプログラム1と被デバツグプロ
グラム2aとを対応付けした行番号テーブル3を主記憶
部21に保有する。
なお、変数には初期値有り変数と、初期値無し変数とが
あり、それぞれプログラム実行ごとに設定された値が初
期値有りデータ部2−2または初期値無しデータ部2−
4内の所定アドレスに格納、更新される。
以上のように構成された会話型デバッガにおいて、ソー
スプログラム1中の変数について、被デバツグプログラ
ム2aの実行中の一時点における値を出力する操作なら
びに動作例を説明する。
(1)まず表示行を指定するコマンドを人力部23より
人力すると、デバッガ10は、ソースプログラム1より
指定表示行を基準とした所定行分のデータを抽出し、表
示部22に表示する。
(2)変数名をコマンドとともに人力すると、デバッガ
10は、シンボルテーブル2−3を参照して指定された
変数のオフセットを求め、被デバツグプログラム2aの
ロード時に通知された主記憶部21上の先頭アドレスよ
り、初期値有りデータ部2−2または初期値無しデータ
部2−4内におけるその変数の格納アドレスを算出する
(3)表示画面上走行停止点(ブレークポイント)を指
定して走行を指示すると、被デバツグプログラム2aは
CPU20によって順次実行され、ブレークポイントで
停止する。
この間、変数は初期値またはプログラムによる初期設定
より順次更新され、停止時には最新の値が主記憶上のデ
ータ部内の所定アドレスにストアされている。
(4)デバッガ10は、走行が停止すると、既に算出し
た指定の変数の主記憶上の格納アドレスを指示してO5
4に読取りを依頼し、得られた値を表示部22に表示す
る。
なお、さらに実行を進めると、同じ変数について、次の
停止時点における値が表示される。
〔発明が解決しようとする課題〕
以上説明したように、会話型デバッガは、知りたい変数
の値は直ちに表示され、また実行を進めながら繰り返し
同じ変数の値を表示できるという利点があるが、複数の
変数を表示させるためには、従来では、変数ごとに繰り
返し操作を行う必要があり、デバッグの効率が悪いとい
う課題があった。
なお、プログラムのデバッグには、会話型デバッガの他
に次のような方法がある。
その第1の方法は、ソースプログラムのところどころに
、その部分を通過したことを示すデータを出力する文や
、そのときのプログラム内の変数の値を出力する文を挿
入して翻訳、実行し、この出力結果を調べる方法である
。この方法は、翻訳プログラム以外に特別なプログラム
は必要ない利点はあるが、デバッグ中温べようとする変
数の範囲を広げようとすると、その都度ソースプログラ
ムの修正と再翻訳が必要となり、そのための操作と時間
が損失となるといった課題がある。
その第2の方法は、プログラムが停止した時点、あるい
は停止までのいくつかの時点で、主記憶内のプログラム
領域をファイル装置などに出力し、これを別のプログラ
ムで処理して見やすい形に編・集、印刷して、これを調
べる方法である。この方法は、ソースプログラムの修正
と再翻訳が不要で、且つプログラム内のすべての変数の
値が一度に出力されるという利点はあるが、通常プログ
ラムのデバッグはプログラムの一部に注目して行い、こ
れを順次移してい(という方法をとるため、出力の回数
が増えると、処理時間と値を捜す時間が無視できないと
いう課題がある。
本発明は、上記課題に鑑み、会話型デバッガおよび第2
の方法の利点を生かしながら、上記課題を克服する変数
出力範囲指定方式を提供することを目的とする。
〔課題を解決するための手段〕
上記目的を達成するため、本発明の変数出力範囲指定方
式は、第1図本発明の原理図に示すように、 ソースプログラム1中の指定された行範囲に含まれるす
べての変数をソースプログラム1より収集する変数収集
手段30と、 収集された該変数の主記憶上の格納アドレスを、算出し
、ロードモジュール2の指定動作時点における変数の値
を読取る読取手段31と、読取った変数の値を対応する
変数名とともに出力する編集出力部18とを備える。
〔作 用〕
変数収集手段30は、ソースプログラム1中の指定され
た行範囲に含まれる変数をソースプログラム1を参照し
てすべて拾い出す。
読取手段31は、収集された変数について、主記憶部2
1上のデータ部にある格納アドレスを算出し、指定動作
時点におけるこれらの変数の値を読取り、編集出力部1
8は変数名とともにこの値を所定の形式で出力する。
以上により、ソースプログラム1中、指定した行範囲内
のすべての変数の値が同時に出力されるため、操作回数
が少なく、且つ実行を進めながら着目する複数の変数の
値を知ることができ、デバッグの効率が向上する。
〔実施例〕
本発明の実施例を図を用いて詳細に説明する。
第2図は一実施例の構成図、第3図は行範囲内変数テー
ブル例を表す図、第4図は動作フローチャート図、第5
図はソースプログラム例を表す図である。
本実施例では、行範囲としてその開始行と終了行とを指
定させる例を示す。また、、第2図に示すデバッガ10
aは、本発明に係わる主要部分のみを示したもので、そ
の他のデバッガ機能部分は省略している。第2図におい
て、 11は会話処理部で、デバッガ使用者へのデータ表示、
入力されたコマンドを解析して対応する処理部を呼出す
機能を備える。
12は行範囲指定コマンド処理部で、行範囲指定コマン
ドによりソースプログラム1の指定部分を表示して行範
囲を指定させるとともに、入力されたソースプログラム
1上の行範囲、即ち開始行番号と終了行番号とを主記憶
部21に記録する。
14は行範囲的変数収集処理部で、開始行番号と終了行
番号とに基づきソースプログラム1を参照し、その範囲
内にある変数を収集するとともに、行範囲内変数テーブ
ル15を生成し、シンボルテーブル2−3を参照してそ
の変数名、オフセット、変数の型等を格納する。
16はアドレス変換部で、予め通知されている被デバツ
グプログラム2aの主記憶上の先頭アドレスとオフセッ
トとに基づき収集された各変数の格納アドレス(初期値
有りデータ部2−2または初期値無しデータ部2−4内
のアドレス)を算出し、行範囲内変数テーブル15に格
納する。
15は後述する行範囲内変数テーブル、17は変数値読
取部で、被デバツグプログラム2aの走行が停止した時
点(指定動作時点)で行範囲内変数テーブル15を参照
し、各変数の主記憶上の格納アドレスを指示して、O5
4に読取りを依願し、得られた値を行範囲内変数テーブ
ル15に格納する。
18は編集出力部で、行範囲内変数テーブル15を参照
して格納された値をその変数の型に変換し、変数名とと
もに表示部22に表示する。
その他、全図を通じて同一符号は同一対象物を表す。な
お、第1図変数収集手段30は行範囲的変数収集処理部
14に、読取手段31はアドレス変換部16、変数値読
取部17に′、データ部は初期値有りデータ部2−2.
初期値無しデータ部2−4に、それぞれ対応する。
また、第2図における各プログラム、テーブル。
データ部は、主記憶部2】にロードされ、第8図に示す
ように、OS 4またはデバッガ10aによって管理さ
れる。
行範囲内変数テーブル15は、第3図に示すように、変
数名と、シンボルテーブル2−3に記録されているオフ
セットと、算出した主記憶上の格納アドレスと、整数、
少数1文字列等の変数の型と、変数値読取部17で読取
った値を格納する領域より構成され、前述した各部によ
り設定される。
なお、変数の型は、図示省略したが、シンボルテーブル
2−3に設定されており、行範囲的変数収集処理部14
によって格納される。
以下、第4図を参照しつつ変数出力動作を説明する。
(1)行範囲指定コマンド処理 行範囲指定コマンド入力により、行範囲指定コマンド処
理部12は表示部23にソースプログラム1の指定部分
を表示し2、画面上行範囲を指定させてその開始行番号
、終了行番号を主記憶部21内に記録する。
(2)行範囲内変数収集処理 続いて行範囲的変数収集処理部14は、ソースプログラ
ム1を解析して指定行範囲内に現れる変数名を収集し、
行範囲内変数テーブル15を生成するとともに、シンボ
ルテーブル2−3を参照して、オフセット、変数の型を
行範囲内変数テーブル15に格納する。
(3)アドレス変換処理。
アドレス変換部16は、主記憶上の先頭アドレスとオフ
セットとにより、収集した各変数の主記憶上の格納アド
レスを求め、行範囲内変数テーブル15に格納する。
(4)被デバツグプログラム2aのアクセス処理被デバ
ツグプログラム2aが走行し、ブレークポイントで停止
した後、変数値読取部17は、行範囲内変数テーブル1
5を参照し、収集された変数ごとに主記憶上の格納アド
レスを指定してOS 4に変数値の読取りを依頼する。
O34はそのアドレスを基に、初期値有りデータ部2−
2.初期値無しデータ部2−4内に格納されている変数
の現在値を読取って通知する。なお、得られた値は行範
囲内変数テ−プル15に格納される。
(5)変数の出力処理 行範囲内変数テーブル15を参照し、各変数の値を変数
の型に応じて変換し、変数名とともGこ表示する。
以上の動作例として、第5図にソースプログラム例を示
す。
このソースプログラム中の1+J+に11は、初期値無
し変数であって、プログラム実行中に設定され、且つラ
ベルPOで示される各ステ・ンプの繰り返しにより各変
数が変化する。この変化の模様は次のようにして表示さ
れる。
まず、行範囲の開始行(図示A)をrPOJ行(以下行
番号の代わりに記述文で示す)に指定し、終了行Bをr
go to 903行に、例えばカーソルによって指定
する。
これにより、AB間の変数としてi、j、k。
夕が抽出される。
次に20行をブレークポイントに指定してプログラムを
走行させると、20行の前行でプログラムが停止し、変
数の値として、 i=1.J=1.に=1.l=0 が表示される。
次にブレークポイントをB行に設定し走行させると、1
回目のイ直として i=2.j=1.に=2.l=2 が表示される。次に継続コマンドを入力すると、再び2
0行に動作が移り、B行で停止して、i =3.  j
 =2.  k=3. 1.=3と表示される。
以下同様に継続コマンドを入力することによりi〉10
となって21行に制御が移るまでの各変数の値が順次表
示される。
以上のごとく、行範囲を指定することにより、着目する
行範囲内のすべての変数の値がブレークポイントで停止
するごとに表示されるため、デバッグが容易となり、且
つ変数出力のための操作が簡単となる。
なお、各時点の値を一括表示する場合には、各時点の値
を行範囲内変数テーブル15に保持してお(その他の実
施例) 以上の実施例では、開始行、終了行で行範囲を指定した
が、その他、 (1)  ソースプログラムl上の、例えば()で括ら
れたブロックの開始行または終了行を指定して、そのブ
ロック全体を指定できるように構成する(2)  ソー
スプログラム1上のサブルーチンを指定することにより
、そのサブルーチン全体を指定できるように構成する 等の指定方法があり、ソースプログラム1を検索するこ
とにより、前述の実施例と同様に、その範囲に含まれる
変数を収集することができる。また、(3)  ソース
プログラム1のうち画面に表示されている部分を行範囲
としてもよい。
この場合、画面上の表示範囲を変化させるに従ってプロ
グラムが走行し、その都度表示範囲を行範囲として変数
の値を表示し直すように構成することもできる。
〔発明の効果] 本発明は、行範囲を指定することによってその範囲内の
すべての変数について、指定の動作時点における値を出
力する変数出力範囲指定方式を提供するものであるから
、操作回数が減少する、着目する変数の値が実行を進め
ながら同時に出力される等により効率よくデバッグでき
る効果は多大である。
【図面の簡単な説明】
第1図は本発明の原理図、 第2図は一実施例の構成図、 第3図は行範囲内変数テーブル例を表す図、第4図は動
作フローチャート図、 第5図はソースプログラム例を表す図、第6図はロード
モジュールの構成例を表す図、第7図はシンボルテーブ
ルの構造例を表す図、第8図は全体構成図である。 図中、1はソースプログラム、2はロードモジュール、
2−1 はテキスト部、2−2は初3tJI (iif
f有りデ−タ部、2−3はシンボルテーブル、2−4は
初期値無しデータ部、2aは被デバツグプログラム、3
は行番号テーブル、4はオペレーティングシステム05
S−10,10aはデバッ ガ、11は会話処理部、12は行範囲指定コマンド処理
部、13は行範囲データ、14は行範囲内変数収集処理
部、15は行範囲白変数テーブル、16はアドレス変換
部、17は変数値読取部、18は編集出力部、20はプ
ロセッサcpu 、21は主記憶部、22は表示部、2
3は入力部である。 第 図 ソースプログラム例を表す図 第5図 第 図 I垣乍フローチャート図 第 図

Claims (1)

  1. 【特許請求の範囲】 命令を逐次実行するプロセッサ(20)と、該プロセッ
    サにより実行される命令を格納する主記憶部(21)と
    を備え、プログラミング言語で記述されたソースプログ
    ラム(1)を翻訳して得られた機械語命令部と、各動作
    時点における変数の値が格納されるデータ部とからなる
    ロードモジュール(2)を該主記憶部に格納し実行する
    データ処理装置において、 該ソースプログラム中の指定された行範囲に含まれるす
    べての変数を該ソースプログラムより収集する変数収集
    手段(30)と、 収集された該変数の主記憶上の格納アドレスを算出し、
    該ロードモジュールの指定動作時点における該変数の値
    を読取る読取手段(31)と、読取った変数の値を対応
    する変数名とともに出力する編集出力部(18)と を備え、ソースプログラム中の指定の行範囲に含まれる
    すべての変数を抽出し、該ロードモジュールの指定動作
    時点における該変数の値を主記憶上の前記データ部より
    それぞれ読取って出力することを特徴とする変数出力範
    囲指定方式。
JP1249680A 1989-09-26 1989-09-26 変数出力範囲指定方式 Expired - Fee Related JP2811804B2 (ja)

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 true JPH03111943A (ja) 1991-05-13
JP2811804B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293138A (ja) * 2007-05-22 2008-12-04 Fuji Electric Assets Management Co Ltd ソフトウェア開発支援プログラム、ソフトウェア開発支援方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008293138A (ja) * 2007-05-22 2008-12-04 Fuji Electric Assets Management Co Ltd ソフトウェア開発支援プログラム、ソフトウェア開発支援方法

Also Published As

Publication number Publication date
JP2811804B2 (ja) 1998-10-15

Similar Documents

Publication Publication Date Title
US20110060980A1 (en) Linked code generation report
JPH03111943A (ja) 変数出力範囲指定方式
JP3196675B2 (ja) 言語処理方式
JPS62214443A (ja) エミユレ−シヨン実行方法
JPH0510692B2 (ja)
JPS59183441A (ja) 拡張言語のデバツグ処理方式
JP2827724B2 (ja) プログラムデバッグ処理方法
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JPS6351291B2 (ja)
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JPS61180342A (ja) 高級言語のステツプ実行方式
JPS63104153A (ja) アボ−トダンブデ−タ記号編集方式
JPH08328841A (ja) ソフトウェア生成装置
JPS63189950A (ja) アボ−トダンプ解析処理方式
JPH0371230A (ja) 実行プログラム情報表示方式
JPS63214838A (ja) デ−タフロ−グラフ作成方式
JPH10207738A (ja) 言語処理システム
JPH04199337A (ja) 情報収集最適化出力処理方式
JPH05143356A (ja) コンパイラ装置
JPH0337740A (ja) プログラム動的特性取得方式
JPS63226741A (ja) シンボリツクデバツグ方式
JPH0327453A (ja) プログラム文指定処理方式
JPH022426A (ja) オブジェクト指向言語の翻訳処理装置
JPS62157950A (ja) デ−タベ−ス操作ソ−ス・プログラム翻訳方法
JPH06231003A (ja) 実行可能ファイルのデバッガ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees