JP2751423B2 - プログラムデバッグ処理方式 - Google Patents

プログラムデバッグ処理方式

Info

Publication number
JP2751423B2
JP2751423B2 JP1155202A JP15520289A JP2751423B2 JP 2751423 B2 JP2751423 B2 JP 2751423B2 JP 1155202 A JP1155202 A JP 1155202A JP 15520289 A JP15520289 A JP 15520289A JP 2751423 B2 JP2751423 B2 JP 2751423B2
Authority
JP
Japan
Prior art keywords
loop
program
command
address
execution
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
Application number
JP1155202A
Other languages
English (en)
Other versions
JPH0318941A (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
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 JP1155202A priority Critical patent/JP2751423B2/ja
Publication of JPH0318941A publication Critical patent/JPH0318941A/ja
Application granted granted Critical
Publication of JP2751423B2 publication Critical patent/JP2751423B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 〔概 要〕 計算機における、プログラムのデバッグ処理に関し、 デバッグ実行中のプログラムの、ループ又はその繰り
返しサイクルから脱出時の中断点設定を容易にしたプロ
グラムデバッグ処理方式を目的とし、 計算機のプログラムのデバッグをサポートするプログ
ラムデバッガにおいて、該計算機のプログラムのループ
に於けるループ開始点の命令語、ループ終了点の命令語
及び該ループの終了条件を満たした処理の実行終了後に
最後実行する命令語の各アドレスを、それぞれ第1アド
レス、第2アドレス及び第3アドレス群によって示す項
を有するループ情報テーブルを設けて、デバッガが制御
して計算機のプログラムを実行させ、該ループの実行中
に所定の指令を受け取った場合には、現実行命令のアド
レスをキーにして、該ループ情報テーブルの当該ループ
に対応する項を検索し、第1の該指令の場合には該第2
アドレス、第2の該指令の場合には該第3アドレス群で
該プログラムの実行を中断するように所定の中断点制御
情報を設定するように構成する。
〔産業上の利用分野〕
本発明は、計算機における、プログラムのデバッグ処
理方式に関する。
〔従来の技術と発明が解決しようとする課題〕
第4図は計算機の構成例を示すブロック図である。デ
バッガ1は利用者が入出力部2から入力する所定のコマ
ンドによって指定されるプログラム3を、例えば指定さ
れた中断点で実行を停止させるように制御して実行さ
せ、実行中や中断点における所要の各データの内容をコ
マンドに従って入出力部2に表示する等の処理を行う。
そのためにデバッガ1は、例えばFORTRANプログラミ
ング言語等で記述された原始プログラムの命令文と、原
始プログラムを翻訳して、計算機で実行可能な形式に生
成されたプログラム3の命令語との対応を、適当な対応
アドレスで示すアドレステーブル4を持ち、利用者が原
始プログラム上の行番号等によって指定する命令文等に
対応するプログラム3の命令語のアドレス等を、アドレ
ステーブル4によって識別して制御する。このアドレス
テーブル4は、例えばコンパイラが原始プログラムの翻
訳処理を行った際に、プログラムと共に生成する。
そのようにしてデバッガ1の制御下で実行しているプ
ログラム3が、あるループの実行を繰り返していること
を利用者が判別した場合に、そのループから脱出し、又
は実行中のサイクルを終わったところで実行を中断し
て、デバッグのためにプログラムの状態を調べたい場合
がある。
その場合に利用者は、例えば所定の中断点設定のコマ
ンドを入力してデバッガ1に渡し、デバッガ1はそのコ
マンドで指定された命令文を展開して生成した命令語の
アドレスをアドレステーブル4から求めて、プログラム
3のそのアドレスの命令で実行を中断するように制御情
報を設定してプログラムを実行させるので、プログラム
は設定された中断点で停止する。そこで利用者は必要な
調査をした後、例えば再起動のコマンドを入力して、プ
ログラムの実行を中断点から再開させる。
こゝで利用者が中断点設定コマンドに指定する必要の
ある命令文は、ループ或いはサイクルの終了後、最初に
実行するシーケンスにある命令文であり、利用者は原始
プログラムのリストを読んで、該当する命令文を決定
し、行番号等によってその文を指定する。
従って、利用者は指定すべき中断点を決定するため
に、原始プログラム上でプログラムのシーケンスを読み
取らなければならないが、例えば第5図(a)に例示す
る、FORTRANの原始プログラムの場合のように、行番号2
00〜1000からなるループの場合に、ループ実行終了後に
実行する文が、ループ終了文(行番号1000のCONTINUE)
に続く行の文ではなく、離れた位置の行番号2600の文で
あるという場合も多いので単純に決定できない。
又、第5図(b)に例示するように、行番号100、行
番号600及び行番号1200から始まる3個のループが行番
号2000のループ終了文を共用しているような場合には、
行番号1200から始まるループのサイクルを実行して行番
号2000の次に実行される文は、行番号1300か700か又は2
00かであって、原始プログラム上から1つに決めるこが
できないという問題がある。
更に、ループでは一般に、ループ中の分岐命令文によ
って直接ループ外へ脱出するようにプログラムを構成す
ることがあり、そのような分岐命令文があれば、その個
数だけの中断点を設けなければならない。
本発明は、そのように脱出先を直接指定する必要が無
いようにして、デバッグ実行中のプログラムに、ループ
又はその繰り返しサイクルからの脱出時の中断点を設定
することを容易にしたプログラムデバッグ処理方式を目
的とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。
図は計算機におけるプログラムデバッグ処理方式の構
成を示し、計算機のプログラム3のデバッグをサポート
するプログラムデバッガ11において、該計算機のプログ
ラム3のループに於けるループ開始点の命令語、ループ
終了点の命令語及び該ループの終了条件を満たした処理
の実行終了後に最後実行する命令語の各アドレスを、そ
れぞれ第1アドレス、第2アドレス及び第3アドレス群
によって示す項を有するループ情報テーブル15を設け
て、デバッガ11が制御して計算機のプログラム3を実行
させ、該ループの実行中に所定の指令を受け取った場合
には、現実行命令のアドレスをキーにして、該ループ情
報テーブルの当該ループ15に対応する項を検索し、第1
の該指令の場合には該第2アドレス、第2の該指令の場
合には該第3アドレス群で該プログラムの実行を中断す
るように、所定の中断点制御情報を設定する。
〔作 用〕
例えば、コンパイラの処理でアドレステーブルと共に
前記のループ情報テーブルを作成しておくようにすれ
ば、前記処理方式により、被デバッグ中のプログラムが
ループを実行中に、ループからの脱出か、サイクルから
の脱出かの別(この区別は、その場合のデバッグの内容
によって利用者が選ぶ)のみ指定するコマンドを入力す
れば、デバッガがループ情報テーブルから脱出先命令ア
ドレスを自動的に決定して、そのアドレスで中断するよ
うに中断点制御情報を設定するので、デバッグのために
ループ等から脱出した点を捕えることが極めて容易にで
きるようになる。
〔実施例〕
第3図は、第1図に示すループ情報テーブル15の構成
を説明する図であり、第3図(a)に例示する原始プロ
グラムをコンパイラが翻訳処理して、(b)に示すいわ
ゆる機械語命令のプログラムを生成する場合に、同時に
(c)に示すようなループ情報テーブルを生成するよう
にする。
こゝで、第3図(a)はFORTRAN様式で記述された原
始プログラムであって、行番号100〜500で構成するルー
プにより、配列変数のIANS(0,1)からIANS(0,10)の
各々に、IANS(1,Y)からIANS(10,Y)までの合計をそ
れぞれ格納し、このループを終了後、行番号600のIF文
が実行される。
この原始プログラムに対応する第3図(b)のプログ
ラムは、右端に「100行の展開」等で説明のために注記
してあるように、原始プログラム等を翻訳して、各命令
文が1以上の機械語の命令に対応するように展開され
る。左端のアドレス欄は、各命令後の先頭アドレスをプ
ログラムの先頭からのオフセット値で示すものである。
ここに「500行の展開」の部分で示すように、原始プロ
グラムでは2つのループで共用する行番号500のループ
終了文が、アドレス欄のオフセット000003E0から始まる
内側ループ対応部分と、オフセット00000400から始まる
外側ループ対応部分に展開される。
以上の展開に基づいてコンパイラは、各ループ内の処
理の先頭の命令を示す開始命令オフセット、ループの各
サイクルの終了処理の先頭を示すループ終了命令オフセ
ット、及びループの終了条件を満たした処理の実行終了
後に最初実行する命令を示すループ終了後実行命令オフ
セットを取り出して、第3図(c)のようにループ情報
テーブルを構成する。なお、この例では、ループ終了後
実行命令オフセットが各1個であるが、ループ内にルー
プ外への直接分岐を起こすプログラム文がある場合に
は、各分岐先ごとに対応してループ終了後実行命令オフ
セットがあるので、一般にループ終了後実行命令オフセ
ットの欄は、複数のオフセットからなるアドレス群にな
る。
第1図のデバッガ11は従来と同様のアドレステーブル
4と共に、ループ情報テーブル15を参照して、プログラ
ム3の実行を制御し、利用者はループのサイクルから次
のサイクルへ脱出した点に中断点を設ける場合に例えば
「CYCLE」コマンドを、ループから脱出した点に中断点
を設ける場合に例えば「EXIT」コマンドを、入出力部2
から入力するものとする。
デバッガ11は、前記の何れかのコマンドを受け取る
と、第2図の処理の流れに例示するように、処理ステッ
プ20でプログラム3の現実行命令のオフセットを求め、
処理ステップ21でループ情報テーブル15をそのオフセッ
トで検索して、現命令オフセットがループ開始命令オフ
セットからループ終了命令オフセットまでの間にあるル
ープの項を決定する。
項が決まると処理ステップ22から処理ステップ23に進
み、CYCLEコマンドであった場合は、処理ステップ24で
該当項のループ終了命令オフセットで決まるアドレスを
中断点とするように、プログラムに中断点制御情報を設
定する。又、EXITコマンドの場合には、処理ステップ25
でループ終了後実行命令オフセット欄の各オフセットで
決まる各アドレスを、何れも中断点にするように制御情
報を設定する。
なお、ループ情報テーブルに該当するアドレスがない
場合は、現実行命令がループ内ではないものとして、処
理ステップ26でその旨のメッセージを入出力部2に出力
して終わる。
以上のようにして、中断点を設定したプログラムを利
用者の入力するコマンドに従って、実行再開させると、
通常の制御により指定の中断点の1つでプログラムが停
止するので、利用者は所要の情報を得ることができ、必
要ならばその後プログラムの実行を継続させる。
デバッガ11は、プログラムを中断点で停止させたと
き、その中断点がCYCLE又はEXITコマンドによって設定
した中断点であることを識別し、その場合にはそれらの
コマンドで設定した中断点の設定を解除し、一時的に設
定した中断点設定を利用者が改めて解除する手間を省く
ことができるようにする。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算
機における、プログラムのデバッグ処理において、ルー
プ又はその繰り返しサイクルから脱出した点に中断点を
設定することを容易にして、デバッグ作業の効率を向上
するという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の構成を示すブロック図、 第2図は本発明の処理の流れ図、 第3図はループ情報テーブルの説明図、 第4図は従来の構成例を示すブロック図、 第5図はループの説明図である。 図において、 1、11はデバッガ、2は入出力部、 3はプログラム、4はアドレステーブル、 15はループ情報テーブル、 20〜26は処理ステップを示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】計算機のプログラムのデバッグをサポート
    するプログラムデバッガにおいて、 該計算機のプログラムのループに於けるループ開始点の
    命令語、ループ終了点の命令語及び該ループの終了条件
    を満たした処理の実行終了後に最初実行する命令語の各
    アドレスを、それぞれ第1アドレス、第2アドレス及び
    第3アドレス群によって示す項を有するループ情報テー
    ブルを設け、 前記デバッガが制御して前記計算機のプログラムを実行
    させ、前記ループの実行中に所定の指令を受け取った場
    合には、現実行命令のアドレスをキーにして、前記ルー
    プ情報テーブルの当該ループに対応する項を検索し、 前記所定の指令が第1の指令の場合には前記第2アドレ
    スで、又第2の指令の場合には前記第3アドレス群で前
    記計算機のプログラムの実行を中断するように、所定の
    中断点制御情報を設定するように構成したことを特徴と
    するプログラムデバッグ処理方式。
JP1155202A 1989-06-15 1989-06-15 プログラムデバッグ処理方式 Expired - Fee Related JP2751423B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1155202A JP2751423B2 (ja) 1989-06-15 1989-06-15 プログラムデバッグ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1155202A JP2751423B2 (ja) 1989-06-15 1989-06-15 プログラムデバッグ処理方式

Publications (2)

Publication Number Publication Date
JPH0318941A JPH0318941A (ja) 1991-01-28
JP2751423B2 true JP2751423B2 (ja) 1998-05-18

Family

ID=15600732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1155202A Expired - Fee Related JP2751423B2 (ja) 1989-06-15 1989-06-15 プログラムデバッグ処理方式

Country Status (1)

Country Link
JP (1) JP2751423B2 (ja)

Also Published As

Publication number Publication date
JPH0318941A (ja) 1991-01-28

Similar Documents

Publication Publication Date Title
JPS63250702A (ja) シ−ケンスコントロ−ラ
JP2751423B2 (ja) プログラムデバッグ処理方式
JP2827724B2 (ja) プログラムデバッグ処理方法
JPH0581069A (ja) プログラムのデバツグ方法
JP3114686B2 (ja) プログラム・ディバグ方法
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JP2977951B2 (ja) 演算装置
JPH07200350A (ja) ソフトウェアデバッガ
JPH02220145A (ja) プログラムトレース方式
JPH0262639A (ja) 言語デバッガの中断方式
JPS63205740A (ja) プログラム実行トレ−ス処理方式
KR100218696B1 (ko) 프로그램 수행경로 역추적 기능을 가지는 프로그램가능 논리제어기
JPH0327453A (ja) プログラム文指定処理方式
JPS63292338A (ja) 最適化プログラムデバツグ方式
JP2642787B2 (ja) 中断位置検索方式
JP3240647B2 (ja) コンピュータ言語の構造化処理方式
JPH04216131A (ja) 対話型プログラム作成システム
JP3019330B2 (ja) コンパイル装置
JPH05216719A (ja) デバッガのブレイク方法およびデバッガ
JPH04333146A (ja) デバッグにおけるプログラムの実行制御方式
JPH04107605A (ja) 制御プログラム用言語処理装置
JPH0425947A (ja) 試験プログラム動的相互矛盾検出プログラムの全走行路決定方式
JPH06119203A (ja) デバック行削除装置
JPH05241913A (ja) 自動アボート検索処理方式
JPH07191873A (ja) デバッガにおける変数の値の推移出力方式

Legal Events

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