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

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

Info

Publication number
JPH0318941A
JPH0318941A JP1155202A JP15520289A JPH0318941A JP H0318941 A JPH0318941 A JP H0318941A JP 1155202 A JP1155202 A JP 1155202A JP 15520289 A JP15520289 A JP 15520289A JP H0318941 A JPH0318941 A JP H0318941A
Authority
JP
Japan
Prior art keywords
loop
program
address
instruction
command
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
JP1155202A
Other languages
English (en)
Other versions
JP2751423B2 (ja
Inventor
Toshiaki Sugiura
杉浦 壽昭
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)

Abstract

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

Description

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

Claims (1)

  1. 【特許請求の範囲】 計算機のプログラム(3)のループについて、各該ルー
    プの開始点の命令語、終了点の命令語、及び該ループの
    実行終了直後に実行する命令語の各アドレスを第1アド
    レス、第2アドレス及び第3アドレス群によって示す項
    を有するループ情報テーブル(15)を設け、 デバッガ(11)が制御して該プログラム(3)を実行
    させ、該ループの実行中に所定の指令を受け取った場合
    には、該ループ情報テーブル(15)の当該ループに対
    応する項を検索し、 第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 true JPH0318941A (ja) 1991-01-28
JP2751423B2 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
JP2751423B2 (ja) 1998-05-18

Similar Documents

Publication Publication Date Title
JPS63250702A (ja) シ−ケンスコントロ−ラ
JPH0318941A (ja) プログラムデバッグ処理方式
JPS62113244A (ja) プログラムテスト装置
JPH0581070A (ja) プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法
JPH0554277A (ja) プラント監視装置
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
JP2827724B2 (ja) プログラムデバッグ処理方法
JPH0327453A (ja) プログラム文指定処理方式
JPH0262639A (ja) 言語デバッガの中断方式
JPH02220145A (ja) プログラムトレース方式
JPS61180342A (ja) 高級言語のステツプ実行方式
KR100218696B1 (ko) 프로그램 수행경로 역추적 기능을 가지는 프로그램가능 논리제어기
JPH04333146A (ja) デバッグにおけるプログラムの実行制御方式
JPS61180344A (ja) 高級言語のステツプ実行システム
JPS63205740A (ja) プログラム実行トレ−ス処理方式
JPS63292338A (ja) 最適化プログラムデバツグ方式
JPH07319730A (ja) テスト・デバッグ方法
JPH04235642A (ja) プログラム・モジュールの中断制御方式
JPH04195549A (ja) デバッグ処理方式
JPH07200353A (ja) プログラムデバッグ方式
JPH03175539A (ja) デバッグ用マイクロプロセッサ
JPH0488438A (ja) 高級言語による原始プログラムに対するデバッガの一命令実行方式
JPS6172339A (ja) プログラム実行表示制御方式
JPS61235955A (ja) プログラムのデバツグ方式
JPH06119203A (ja) デバック行削除装置

Legal Events

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