JP2672968B2 - デバッグ用ソースリスト出力処理方式 - Google Patents

デバッグ用ソースリスト出力処理方式

Info

Publication number
JP2672968B2
JP2672968B2 JP63090115A JP9011588A JP2672968B2 JP 2672968 B2 JP2672968 B2 JP 2672968B2 JP 63090115 A JP63090115 A JP 63090115A JP 9011588 A JP9011588 A JP 9011588A JP 2672968 B2 JP2672968 B2 JP 2672968B2
Authority
JP
Japan
Prior art keywords
source list
source
list
program
output
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
JP63090115A
Other languages
English (en)
Other versions
JPH01260548A (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.)
Fujitsu Ltd
Nippon Telegraph and Telephone Corp
Original Assignee
Fujitsu Ltd
Nippon Telegraph and Telephone Corp
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, Nippon Telegraph and Telephone Corp filed Critical Fujitsu Ltd
Priority to JP63090115A priority Critical patent/JP2672968B2/ja
Publication of JPH01260548A publication Critical patent/JPH01260548A/ja
Application granted granted Critical
Publication of JP2672968B2 publication Critical patent/JP2672968B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 〔概要〕 データ処理システムにおいて,プログラムのテスト/
デバッグに対する操作性を向上させたデバッグ用ソース
リスト出力処理方式に関し, 被デバッグプログラムとそのソースリストとを一元管
理し,デバッグ時に必要なソースリストを簡単に参照で
きるようにすることを目的とし, コンパイル時にコンパイルされたソースリスト情報
を,オブジェクトモジュールにおけるシンボリック情報
域に出力するソースリト組込み処理部と,デバッグ時に
指定範囲内のソースリストを出力することを指示するリ
スト出力コマンドを受け付けるデバッグ用コマンド受け
付け処理部と,リスト出力コマンドを受け付けることに
より,前記オブジェクトモジュールまたはそれを結合編
集したロードモジュールにおけるシンボリック情報域を
参照し,指定範囲内のソースリストを表示出力するリス
ト出力処理部とを備えるように構成する。
〔産業上の利用分野〕
本発明は,データ処理システムにおいて,プログラム
のテスト/デバッグに対する操作性を向上させたデバッ
グ用ソースリスト出力処理方式に関する。
〔従来の技術〕
例えばCOBOL言語で記述されたプログラムをデバッグ
する場合に,それをCOBOLコンパイラでコンパイルし、
対話型デバッガにより,適当なデバッグ指示を行いなが
ら実際に動作させて,正常/異常の確認をすることが行
われている。このようなデバッガでは,プログラムモジ
ュール内に設定された変数情報や行番号情報を持つシン
ボリック情報域を参照し,デバッグ指示により指定され
た変数情報の出力や,トラップ発生時における行番号の
出力などを行う処理機能を持っている。
しかし,従来,被デバッグプログラムのソースリスト
を,プログラムモジュール内に組込んでおき,デバッグ
時に,指定範囲内のソースリストを,対話的に表示し出
力するものはなかった。
〔発明が解決しようとする課題〕
デバッグ時に,変数情報の出力や行番号の出力があっ
た場合に,実際に正しく動作しているか否かの確認や,
異常個所の発見のために,そのつど,ソースリストの内
容を調べなければならないことがよくある。
従来方式によれば,プログラムモジュールを格納する
ファイルと,ソースリストのファイルとは,全く別に作
成されているため,ソースリストを予めラインプリンタ
(LP)で印刷して,LPリストとして持つか,または磁気
ディスク装置に格納されたソースファイルの内容を,デ
バッガとは別のプログラムにより,参照しなげればなら
なかった。
そのため,デバッグ時にLPリストをめくりながら端末
を操作しなければならず,デバッグに時間がかかるとい
う問題や,必要な個所をすぐに探しにくいという問題が
あった。また,ソースプログラムを変更するたびに,必
ずソースリストを印刷するのでは,プリンタ用紙と印刷
のための計算機時間が無駄になるので,変更量が多くな
ったときだけLPリストを出力することが多く,そのた
め,リストの世代が古くなって,行番号に食い違いが生
じるというような問題があった。
さらに,ソースファイルを直接参照する場合には,コ
ンパイラが自動的に付与した行番号がわからないとか,
いわゆるインライン展開やプリコンパイラレベルの情報
が見えないというような不便さがあった。
本発明は上記問題点の解決を図り,被デバッグプログ
ラムとそのソースリストとを一元管理し,デバッグ時に
必要なソースリストを簡単に参照できるようにすること
を目的としている。
〔課題を解決するための手段〕
第1図は本発明の構成例を示す。
第1図において,10はソースプログラムが格納された
ソースファイル,11はソースプログラムを機械語に翻訳
するコンパイラ,12はコンパイラ11が生成するオブジェ
クトモジュール中にコンパイルしたソースリストを出力
するソースリスト組込み処理部,13はコンパイル結果の
オブジェクトモジュールが格納されたオブジェクトモジ
ュールファイル,14は機械語の命令列などからなれテキ
スト部,15はプログラム名などの管理情報を持つヘッダ
部,16はシンボリック・デバッグ用の情報が格納される
シンボリック情報域,17はソースリストの文字コード列
が格納されるソースリスト情報域,18は結合編集処理を
行い実行可能形式のロードモジュールを作成するリン
カ,19はオブジェクトモジュールファイル13と同じオブ
ジェクトモジュールまたは結合編集されたロードモジュ
ールを持つプログラムモジュールファイル,20はシンボ
リック・デバッグ処理機能を持つ対話型デバッグ,21は
端末からの各種デバッグ指示要求を受け付けるデバッグ
用コマンド受け付け処理部,22はデバッグ時に端末から
の指示により被デバッグプログラムのソースリストを出
力するリスト出力処理部,23はディスプレイやキーボー
ドなどからなる端末を表す。
本発明では,コンパイラ11内に,ソースリスト組込み
処理部12が設けられ,ソースリスト組込み処理部12は,
オブジェクト生成時に,オブジェクトモジュールファイ
ル13におけるシンボリック情報域16内に,コンパイラ11
によってマクロ展開等がなされた結果のソースリストを
出力する。
リンカ18は,ロードモジュール作成時に,シンボリッ
ク情報域16の内容についても,結合編集処理を行う。こ
れにより,ソースリストも結合編集の対象となる。プロ
グラムモジュールファイル19は,オブジェクトモジュー
ルまたはリンカ18の出力であるロードモジュールからな
る被デバッグプログラムのモジュールが格納されたファ
イルである。
対話型デバッガ20は,プログラムモジュールファイル
19に格納された被デバッグプログラムを動作させ,端末
23から入力された各種デバッグ指示に応じた被テバッグ
プログラムの制御およびデバッグ情報の収集・出力を行
う。本発明では,デバッグ用コマンドの1つとして,リ
スト出力コマンドが設けられ,デバッグ用コマンド受け
付け処理21は,このコマンドを受け付ける。
リスト出力処理部22は,リスト出力コマンドの入力に
より,プログラムモジュールファイル19におけるシンボ
リック情報域を検索し,指定された範囲のソースリスト
を端末23に表示出力する処理を行うようになっている。
〔作用〕
コンパイラ11によって,シンボリック,デバイスのた
めのシンボリック情報域16内に,コンパイルリストであ
るソースリストが組込まれるので,対話型デバッガ20
は,デバッグ時に,シンボリック情報域16をサーチし,
被デバッグプログラムのソースリストを参照することが
できる。被デバッグプログラムとそのソースリストと
が,1つのプログラムモジュールファイル19として一元管
理されるため,デバッグ時に,そのプログラムモジュー
ルファイル19だけがあればよく,ペーパレスによるデバ
ッグが可能になる。
〔実施例〕
第2図は本発明の一実施例に係るコンパイラの処理の
例,第3図はシンボリック情報域の例,第4図はソース
リスト出力処理の例,第5図は本発明の一実施例による
デバッガの処理を説明するための図を示す。
以下,計算機言語の1つであるCOBOL言語のプログラ
ムに対するコンパイラおよびデバッガを例に説明する。
第2図において,COBOLコンパイラ32は,最初にソース
プログラム30に対する前処理を行うために,プリプロセ
ッサ33を起動する。プリセッサ33は,指定されたソース
プログラム30を入力すると,その中のCOPY句を探す。行
番号が120の位置に「COPY COPFILE.」の文があるの
で,そこで指定されたCOPFILEの名前を持つインクルー
ドファイル31を参照し,行番号120の位置に,インクル
ードファイル31の内容を展開する。この結果を,マクロ
展開ソース36として作業ファイルに出力する。
次に,構文解析部34は,マクロ展開ソース36を1行ず
つ入力し,構文を解析する。その解析結果により,ソー
スプログラムを中間言語に変換し,中間言語ファイル37
に出力する。コード生成部35は,中間言語ファイル37か
ら入力した中間言語に基づき,必要に応じて最適化を行
い,機械語の命令列からなるコードを生成し,オブジェ
クトモジュールファイル13に,そのテキストを出力す
る。また,COBOLコンパイラ32の起動時に,テバッグオプ
ションが指定されていれば,変数情報,行番号情報など
のシンボリック情報を生成し,オブジェクトモジュール
ファイル13に格納する。
以上の処理は従来と同様であるが,本発明では,さら
にソースリスト組込み処理部12によって,マクロ展開ソ
ース36の内容を,シンボリック情報が格納されるオブジ
ェクトモジュールファイル13中のシンボリック情報域に
組込む。
このシンボリック情報(ISD)域は,例えば第3図に
示すようになっている。
シンボリック情報域16において,ディレクトリ(DI
R)部40,変数情報(IST)部41,行番号情報(LNT)部42
は,従来と同様な形式である,ただし,本実施例では,
ディレクトリ部40内に,本実施例により新設された行番
号・ソースリスト相対番号対応表43へのポインタ情報
と,ソースリスト情報域17へのポインタ情報とが追加し
て登録されるようになっている。
変数情報部41は,ソースプログラム中で用いられてい
る各標,その属性,そのアドレス情報などを持つテーブ
ルである。行番号情報部42は,ソースプログラムの各行
番号と,対応するアドレスと,カードID情報等を持つ。
行番号・ソースリスト相対番号対応表43は,ソースリ
ストの出力にあたって,指定された行番号の検索を高速
化するために,各行番号が,ソースリスト情報域17にお
けるどの位置に対応するかを示す情報を持つテーブルで
ある。コンパイラが行番号を自動的に付与し、行番号の
増分が一定の場合には,計算により,直接,ソースリス
ト情報域17の該当位置を参照できるので,行番号・ソー
スリスト相対番号対応表43は不要である。行番号・ソー
スリスト相対番号対応表43の有無に関する情報は,ディ
レクト部40内に設定される。
ソースリスト情報域17には,ユーザがソースプログラ
ムとしてコーディングしたものでなく,COPY句の展開な
ど,コンパイラが編集した結果のリストが格納される。
本実施例におけるCOBOLデバッガによるソースリスト
の出力処理は,第4図に示すように行われる。
デバッガに対し,例えば「TYPE 100/200.“MOVE"」
というような,リスト出力コマンド50が入力されると,
第4図に示す処理51により,このコマンドで指定された
参照行番号,検索文字列等を解析する。このコマンド50
は,ソースリストにおける行番号が100から200までの中
で,文字列“MOVE"を持つ行を出力することを指示して
いる。
このコマンドの解析結果に従って,処理52により,ソ
ースリスト情報を検索し,処理53により,出力情報54の
ように,該当するソースリストの行をユーザの端末に出
力する。
全体のデバッガの処理の流れは,第5図に示すように
なっている。
第5図において,第1図と同符号のものは,第1図に
示すように対応し,60はCPUおよびメモリなどからなる処
理装置,61はCOBOL言語で記述されたソースプログラムを
コンパイルした被デバッグプログラム,62はシンボリッ
ク・デバッグ機能を持つ対話型COBOLデバッガである。
以下,第5図に示す〜に従って説明する。
端末23から,デバッグしようとする被デバッグプロ
グラムが格納されたプログラムモジュールファイル19を
指定して,対話型COBOLデバッガ62を起動する。
また,出力される変数情報や,中断点情報などの各
種テバッグ指示情報を入力する。
対話型COBOLテバッガ62は,プログラムモジュール
ファイル19からテキスト部14を入力し,メモリにテキス
ト部14の内容である被デバッグプログラム61をロードす
る。
そして,指示された中断点の設定などを行い,被デ
バッグプログラム61を起動する。
被デバッグプログラム61の実行により,トラップが
発生した場合,対話型COBOLデバッガ62へ制御が移行す
る。
対話型COBOLデバッガ62では,中断した行番号情報
等を端末23に表示出力ると共に,デバッグ指示の入力要
求を行う。
ここで,端末から第4図で説明したリスト出力コマ
ンドが投入されると,そのコマンドを受け付け,パラメ
ータを解析する。
解析結果に従って,ソースリスト情報域17を検索
し,該当する行のソースリストを,端末23に表示出力す
る。ユーザは,これにより,中断点に関連するソースを
直ちにチェックできることになる。以下,従来と同様
に,端末23からの指示に応じて,対話型COBOLデバッガ6
2の停止または被デバッグプログラム61の再起動などを
行う。
〔発明の効果〕
以上説明したように,本発明によれば,ユーザは,プ
ログラムモジュールファイルを持つだけで,必要なテス
ト/デバッグを行うことができるようになり,デバッグ
を進めながら,各種デバッグ情報と同様に,簡単な操作
でソースリストの情報を取得することができるようにな
る。オブジェクトとソースリストの世代がソースプログ
ラムの変更によってずれることはなく,世代管理を一元
化できるため,ファイルの管理が容易になると共に,デ
バッグにおけるミスが少なくなる。また,ラインプリン
タへの出力リストなどが不要となるため,デバッグ・修
正のサイクルを短縮し,かつペーパレスによるテスト/
デバッグを進めることができるようになる。
【図面の簡単な説明】
第1図は本発明の構成例, 第2図は本発明の一実施例に係るコンパイラの処理の
例, 第3図はシンボリック情報域の例, 第4図はソースリスト出力処理の例, 第5図は本発明の一実施例によるデバッガの処理を説明
するための図を示す。 図中,10はソースファイル,11はコンパイラ,12はソース
リスト組込み処理部,13はオブジェクトモジュールファ
イル,14はテキスト部,15はヘッダ部,16はシンボリック
情報域,17はソースリスト情報域,18はリンカ,19はプロ
グラムモジュールファイル,20は対話型デバッガ,21はデ
バッグ用コマンド受け付け処理部,22はリスト出力処理
部,23は端末を表す。
フロントページの続き (56)参考文献 特開 昭60−175155(JP,A) 特開 昭59−208645(JP,A) 特開 昭62−274344(JP,A) 特開 昭60−33640(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】計算機用言語で記述されたソースプログラ
    ムを機械語にコンパイルしオブジェクトモジュールを生
    成するコンパイル処理機能と,該オブジェクトモジュー
    ルまたはそれを結合編集したロードモジュールを試験動
    作させるデバッグ処理機能とを有するデータ処理システ
    ムにおいて, コンパイル時にコンパイル対象となっているマクロ展開
    後のソースリスト情報を,オブジェクトモジュールにお
    けるシンボリック情報域に出力するソースリスト組込み
    処理部と, デバッグ時に指定範囲内のソースリストを出力すること
    を指示するリスト出力コマンドを受け付けるデバッグ用
    コマンド受け付け処理部と, リスト出力コマンドを受け付けることにより,前記オブ
    ジェクトモジュールまたはそれを結合編集したロードモ
    ジュールにおけるシンボリック情報域を参照し,指定範
    囲内のソースリストを表示出力するリスト出力処理部と
    を備えたことを特徴とするデバッグ用ソースリスト出力
    処理方式。
JP63090115A 1988-04-12 1988-04-12 デバッグ用ソースリスト出力処理方式 Expired - Lifetime JP2672968B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63090115A JP2672968B2 (ja) 1988-04-12 1988-04-12 デバッグ用ソースリスト出力処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63090115A JP2672968B2 (ja) 1988-04-12 1988-04-12 デバッグ用ソースリスト出力処理方式

Publications (2)

Publication Number Publication Date
JPH01260548A JPH01260548A (ja) 1989-10-17
JP2672968B2 true JP2672968B2 (ja) 1997-11-05

Family

ID=13989516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63090115A Expired - Lifetime JP2672968B2 (ja) 1988-04-12 1988-04-12 デバッグ用ソースリスト出力処理方式

Country Status (1)

Country Link
JP (1) JP2672968B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3105546B2 (ja) * 1990-12-13 2000-11-06 日本電気株式会社 アセンブラのシンボル・デバッグ情報処理方式
JP2013210920A (ja) * 2012-03-30 2013-10-10 Nec Corp コンパイル装置、コンパイル方法及びコンパイラ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5245114B2 (ja) * 1972-01-13 1977-11-12
JPS6371003A (ja) * 1986-09-13 1988-03-31 Daifuku Co Ltd 物品仕分け設備

Also Published As

Publication number Publication date
JPH01260548A (ja) 1989-10-17

Similar Documents

Publication Publication Date Title
US5926638A (en) Program debugging system for debugging a program having graphical user interface
US5313387A (en) Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers
US5182806A (en) Incremental compiler for source-code development system
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5170465A (en) Incremental-scanning compiler for source-code development system
US5193191A (en) Incremental linking in source-code development system
US5201050A (en) Line-skip compiler for source-code development system
Fischer et al. The POE language-based editor project
US5946488A (en) Method for selectively and incrementally displaying the results of preprocessing
US5956479A (en) Demand based generation of symbolic information
US5301327A (en) Virtual memory management for source-code development system
AU638999B2 (en) Incremental compiler for source-code development system
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JPH0766342B2 (ja) プログラムテスト装置
GB2420638A (en) Method of substituting code fragments in Internal Representation
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
JP2004287869A (ja) プログラム実行監視装置および方法
JP2827724B2 (ja) プログラムデバッグ処理方法
JP3368795B2 (ja) コンパイル制御方法、コンパイル装置及び記録媒体
JPS6367695B2 (ja)
JPH0887416A (ja) 制御プログラム作成装置
JPH02100732A (ja) プログラム文法チェック方式
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
Lane Porting Pan I to Allegro COMMON Lisp

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080711

Year of fee payment: 11