JP2777938B2 - プログラム実行経路出力装置 - Google Patents

プログラム実行経路出力装置

Info

Publication number
JP2777938B2
JP2777938B2 JP3022562A JP2256291A JP2777938B2 JP 2777938 B2 JP2777938 B2 JP 2777938B2 JP 3022562 A JP3022562 A JP 3022562A JP 2256291 A JP2256291 A JP 2256291A JP 2777938 B2 JP2777938 B2 JP 2777938B2
Authority
JP
Japan
Prior art keywords
program
execution
operation management
output
management table
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
JP3022562A
Other languages
English (en)
Other versions
JPH04263336A (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 JP3022562A priority Critical patent/JP2777938B2/ja
Publication of JPH04263336A publication Critical patent/JPH04263336A/ja
Application granted granted Critical
Publication of JP2777938B2 publication Critical patent/JP2777938B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、再帰呼び出し時の実行
経路出力方法であって、実行プログラムの実行経路の出
力量を削減および確実に出力する再帰呼び出し時の実行
経路出力方法に関するものである。
【0002】
【従来の技術】従来の言語デバッガは、対象となる実行
プログラムが自分自身を呼び出す再帰呼び出しの性質を
持つプログラムの場合でも実行経路の出力について特別
の対処を行っていなく図5の(ハ)に示すように、再帰
呼び出しの全てについて呼び出し元のプログラムから呼
び出し先のプログラムの関係を羅列するようにしてい
た。以下図5について簡単に説明する。
【0003】図5の(イ)は、再帰呼び出しのプログラ
ムの例を示す。これは、mainからfuncを呼び出
し、この呼び出されたfunc内で自身のfuncを1
0回、再帰的に呼び出すプログラムである。図5の
(ロ)は、図5の(イ)の再帰呼び出しプログラムにつ
いて、その呼び出し関係を模式的に表示したものであ
る。ここで、program:mainから呼び出されたprogram:fu
ncが更に自身のprogram:funcを呼び出すことを10回繰
り返す様子を示したものである。
【0004】図5の(ハ)は、図5の(ロ)の再帰呼び
出し時の実行経路出力例を示す。これは、図5の(ロ)
で模式的に示した各呼び出しを利用者が理解し得るよう
に、例えばfunc called from main.(funcがmainから呼
び出された)という記述で表示したものである。
【0005】
【発明が解決しようとする課題】このため、再帰呼び出
しの性質を持つプログラムの実行経路を出力した場合、
再帰呼び出しの回数分の呼び出し関係(図5の(ハ)の
func called from func)が繰り返し表示されることとな
り、再帰呼び出しが増えれば増える程、実行経路出力量
が増え、必要な情報の取り出しを容易に行えないと共
に、画面上に表示したときに再帰呼び出し関係の表示で
占領されてしまい、次の画面に必要な情報が表示され、
ひいてはデバッグ時に見逃すという問題があった。ま
た、実行経路の情報を、動作対象のコンピュータ上のプ
ログラム動作規約に頼りにして、出力指示がされた時点
に採取していたため、途中のプログラム動作規約に基づ
かないプログラムが存在し、プログラム動作規約が破棄
されたような状態になった場合、正しい情報の出力がで
きないという問題があった。
【0006】本発明は、呼び出し元と呼び出し先のプロ
グラム名が一致する再帰呼び出しが行われときにこれを
まとめて出力し、実行経路出力指示時の出力量を削減お
よびプログラム動作規約に無関係にデバッガが実行経路
出力を行うことを目的としている。
【0007】
【課題を解決するための手段】図1は、本発明の原理構
成図を示す。図1において、監視点テーブル9は、実行
プログラム中の監視点の設定指示されたプログラム(手
続き)の入口および出口のアドレスを格納するテーブル
である。
【0008】動作管理テーブル10は、中断点の入り口
で呼び出されたプログラム名を設定し、リンクするテー
ブルである。実行監視部4は、監視点テーブル9をもと
に、動作管理テーブル10の更新などを行うものであ
る。出力制御部5は、動作管理テーブル10をもとに実
行経路を出力するものである。
【0009】
【作用】本発明は、図1に示すように、利用者からの実
行指示に対応して、実行監視部4が中断時に監視点テー
ブル9を参照してプログラムの入口と判明したときに動
作管理テーブル10を作成して呼び出されたプログラム
名を設定してリンクし、手続きの出口と判明したときに
該当する動作管理テーブル10を削除することを繰り返
し行い、利用者からの実行経路出力指示に対応して、出
力制御部5がリンクされている動作管理テーブル10を
検索し、プログラムが自身のプログラムを呼び出してい
る再帰呼び出しについてその回数を求めて出力し、それ
以外のプログラムは呼び出し関係を個々に出力するよう
にしている。
【0010】従って、呼び出し元と呼び出し先のプログ
ラム名が一致する再帰呼び出しが行われときにこれをま
とめて出力することにより、実行経路出力指示時の出力
量を削減することが可能となると共に、プログラム動作
規約に無関係にデバッガが実行経路出力を行うことが可
能となる。
【0011】
【実施例】次に、図1ないし図4を用いて本発明の実施
例の構成および動作を順次詳細に説明する。図1におい
て、入力部1は、監視指示のコマンドを入力したり、実
行指示のコマンドを入力したり、出力指示のコマンドを
入力したりするためのものである。監視指示は、例えば
コマンドAT 000100を利用者が入力してこのパ
ラメタで指定した文番号000100に監視点を設定
(元の命令を退避し、ここにSVC aaを埋め込んで
デバッガに制御が渡るように設定)する。実行指示は、
例えばコマンドGOを利用者が入力して実行プログラム
の実行を再開させる。出力指示は、例えばコマンドBA
CKTRを利用者が入力して実行経路出力を行わせる。
【0012】処理部2は、デバッグ処理を行うものであ
って、動作管理テーブル10作成のために監視点テーブ
ル9をもとに監視点を設定する監視点設定部3、入力部
1からの実行指示に対応して実行プログラム7の実行中
に、監視点テーブル9をもとに動作管理テーブル10の
作成、プログラム名の設定、解放などを行う実行監視部
4、および入力部1からの出力指示に対応して動作管理
テーブル10を参照して再起呼び出しの回数を求めて実
行経路出力(表示)する出力制御部5などから構成され
るものである。
【0013】メモリ6は、原始プログラムを翻訳した実
行可能形式の実行プログラム7をロードして実行するた
めのメモリである。デバッグ情報域8は、原始プログラ
ムの翻訳時に採取した原始プログラムの文番号と翻訳し
た実行プログラム7のアドレスとの対応関係を格納する
文情報テーブルや、利用者が設定した監視点(プログラ
ムの入口、出口)のアドレスおよびその種別を格納する
監視点テーブル9などを格納する領域である。
【0014】監視点テーブル9は、利用者が設定した監
視点のプログラムの入口アドレス、出口アドレスおよび
種別を格納するものである(図3の(イ)、(ロ)を用
いて後述する)。動作管理テーブル10は、監視点の入
り口で呼び出されたプログラム名を設定し、リンクする
テーブルであって、デバッグ時における監視点で呼び出
されたプログラム名などを設定して管理するテーブルで
ある。動作管理テーブル10はプログラムの順番がわか
るようにリンクする。この動作管理テーブル10を参照
して、現在の監視点(中断点)におけるプログラムの呼
び出し関係を表示させることができる(図3の(ホ)参
照)。
【0015】実行経路出力装置11は、出力制御部5が
動作管理テーブル10を参照して求めた実行経路(プロ
グラムの呼び出し関係など)をディスプレイ上に表示し
たり、印刷したりなどするものである。図2は、原始プ
ログラム/実行プログラム例を示す。図2の(イ)は、
原始プログラム例を示す。これは、プログラム名:ma
inからプログラム名:funcを図示矢印のように呼
び出し、復帰している。この際、プロプラム:func
内で点線の矢印を用いて示すように再帰呼び出しを10
回行っている。
【0016】図2の(ロ)は、図2の(イ)原始プログ
ラムを翻訳した実行可能形式の実行プログラムを模式的
に表わしたものである。ここで、プログラム名:mai
nから実線の矢印を用いて示すように、プログラム名:
funcを呼び出し、この呼び出されたプログラム名:
func内で点線の矢印を用いて示すように再帰呼び出
しを行った後、元のプログラム名:mainに復帰する
ようにしている。
【0017】図3は、本発明の具体例説明図を示す。図
3の(イ)は、監視点テーブルの形式例を示す。監視点
テーブル9は、実行プログラム中に設定した監視点のア
ドレス(監視点アドレス)および入口、出口などの種別
を格納するものである。図3の(ロ)は、監視点テーブ
ル例を示す。これは、図2の(ロ)実行プログラム7の
プログラム名:mainの入口のアドレス000100、出口
のアドレス000328、更にプログラム名:funcの入口
のアドレス00032C、出口のアドレス0003C8を図示のよう
に格納して記憶したものである。
【0018】図3の(ハ)は、動作管理テーブルの形式
例を示す。これは、図2の(ロ)実行プログラム7を実
行して監視点で中断したとき、入口のときに作成して呼
び出されたプログラム名を設定および他プログラム動作
管理テーブルとの呼び出し関係(このプログラムを呼び
出したプログラムのプログラム動作管理テーブル10へ
のリンク)を格納するものである。一方、出口のときは
削除する。
【0019】図3の(ニ)は、動作管理テーブル例を示
す。これは、実行プログラム7を実行して監視点で呼び
出されたプログラム名を図示のように、func、fu
nc・・・func、mainというように、動作管理
テーブル10を作成して連鎖の先頭に順次リンクした状
態を示す。この状態では、プログラム名funcが3
回、再帰的に呼び出されていることが判明するので、こ
れを図3の(ホ)のfunc recursive called 3 times.と
いうように再帰呼び出しの回数でまとめて表示する。こ
れにより、従来は、3行に表示していたものが1行にま
とまり、実行経路出力量を削減すると共に見やすく表示
することが可能となる。
【0020】次に、図4のフローチャートに示す順序に
従い、図3を参照して本発明の動作を詳細に説明する。
図4の(イ)は、実行プログラム動作時の処理を示す。
これは、利用者がコマンドGOを投入して実行プログラ
ムの再開を指示したことに対応して、行う処理である。
【0021】図4の(イ)において、S1は、SVC
aaか否かを判別する。これは、利用者がコマンドGO
を投入して実行プログラム7の実行を再開させ、順次実
行して予め設定した監視点であるSVC aaが実行さ
れ、実行監視部4に制御が渡ったか否かを判別する。Y
ESの場合には、S2以降に進む。NOの場合には、S
VC aaでないので、他の処理を続行する。
【0022】S2は、監視点か否かを判別する。YES
の場合には、更にその監視点テーブル(図3の(ロ)監
視点テーブル参照)を参照して監視点の種別が入口、あ
るいは出口のいずれであるかを判別する。監視点の種別
が入口の場合には、S3で動作管理テーブル10を作成
し、これに呼び出されたプログラム名を設定する(図3
の(ニ)の動作管理テーブル10参照)。また、監視点
の種別が出口の場合には、S4で該当する動作管理テー
ブル10をリンクから削除する。
【0023】以上の処理を繰り返すことにより、例えば
図2の(ロ)実行プログラム中のプログラム名:mai
nからプログラム名:funcを呼び出し、更にこの呼
び出されたプログラム名:funcで自身を再帰的に呼
び出すと、図3の(ニ)に示すように、呼び出されたプ
ログラム名が順次リンクされ、その呼び出し関係を記憶
する。
【0024】次に、図4の(ロ)は、実行経路出力指示
時の処理を示す。これは、中断した状態のもとで、利用
者がコマンドBACKTRを投入して実行経路出力指示
したことに対応して、行う処理である。図4の(ロ)に
おいて、S11は、動作管理テーブル10がリンクされ
ているか否かを判別する。ありの場合(呼び出されてい
るプログラムがありの場合)には、S12に進む。なし
の場合には、呼び出されているプログラムがないので、
処理を終了する。
【0025】S12は、再帰呼び出し回数=0と初期設
定する。S13は、現在の動作管理テーブル10のプロ
グラム名を調べる。例えば図3の(ニ)の中断している
現在の動作管理テーブル10のプログラム名として、連
鎖の先頭のfuncを調べる。S14は、呼び出し元の
動作管理テーブル10のプログラム名を調べる。
【0026】S15は、両者が等しいか否かを判別す
る。これらS13、S14、S15は、例えば図3の
(ニ)動作管理テーブル例中の、S13で連鎖の先頭の
動作管理テーブル10のプログラム名funcと、S1
4でこれを呼び出した元(連鎖の先頭から2番目)の動
作管理テーブル10のプログラム名funcとが等しい
か否か、即ち再帰呼び出しか否かを判別する。YESの
場合には、再帰呼び出しであると判明したので、S16
で再帰呼び出し回数+1し、S17で対象を次の動作管
理テーブル10にし、S13以降を繰り返す。一方、N
Oの場合には、再帰呼び出しでないと判明したので、S
18でこれら再帰呼び出しを実行経路出力し、S19に
進む。
【0027】S19は、再帰呼び出し回数=0か否かを
判別する。YESの場合には、S20で対象を次の動作
管理テーブル10にしてS21に進む。NOの場合に
は、S21に進む。S21は、次がある場合には、S1
1以降を繰り返し行い、次がない場合には終了する(E
ND)。
【0028】以上の処理によって、中断時に、出力指示
のコマンドBACKTRの投入に対応して、図3の
(ニ)のように連鎖の先頭からリンクされている動作管
理テーブル10を順次辿り、再帰呼び出し回数を求めて
これをまとめて図3の(ホ)出力例に示すように、func
recusive called 3times.というように、従来の3行分
を1行にまとめて表示することにより、実行経路出力量
を削減し、画面に表示した際に次画面に表示されて見逃
すことがなくなる。
【0029】
【発明の効果】以上説明したように、本発明によれば、
実行プログラム7の実行時のプログラムの呼び出し関係
を動作管理テーブル10に設定してリンクしておき、実
行経路出力指示に対応して、これらリンクされた動作管
理テーブル10を参照して再帰呼び出し回数を求めてこ
れを表示する構成を採用しているため、実行経路出力指
示時の出力量を削減することができると共に、プログラ
ム動作規約に無関係にデバッガが呼び出し関係のあるプ
ログラム名を動作管理テーブル10に格納しておきこれ
をもとに実行経路出力し、プログラムの動作規約に関係
することなく、確実に実行経路出力を行うことができ
る。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】原始プログラム/実行プログラム例である。
【図3】本発明の具体例説明図である。
【図4】本発明の動作説明フローチャートである。
【図5】従来技術の説明図である。
【符号の説明】
1:入力部 2:処理部 3:監視点設定部 4:実行監視部 5:出力制御部 6:メモリ 7:実行プログラム 8:デバッグ情報域 9:監視点テーブル 10:動作管理テーブル 11:実行経路出力装置

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】プログラムの実行経路を出力する実行経路
    出力装置において、 プログラムの呼び出し関係を記憶する動作管理記憶手段
    と、 利用者の実行経路出力指示に対応して、前記動作管理
    憶手段を検索し、プログラムが自身のプログラムを呼び
    出している再帰呼び出しの場合は再帰呼び出しであるこ
    ととその回数を求めて出力し、それ以外の場合は呼び出
    し関係を出力する出力制御手段とを有するプログラム
    行経路出力装置
JP3022562A 1991-02-18 1991-02-18 プログラム実行経路出力装置 Expired - Fee Related JP2777938B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3022562A JP2777938B2 (ja) 1991-02-18 1991-02-18 プログラム実行経路出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3022562A JP2777938B2 (ja) 1991-02-18 1991-02-18 プログラム実行経路出力装置

Publications (2)

Publication Number Publication Date
JPH04263336A JPH04263336A (ja) 1992-09-18
JP2777938B2 true JP2777938B2 (ja) 1998-07-23

Family

ID=12086311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3022562A Expired - Fee Related JP2777938B2 (ja) 1991-02-18 1991-02-18 プログラム実行経路出力装置

Country Status (1)

Country Link
JP (1) JP2777938B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6368939A (ja) * 1986-09-11 1988-03-28 Fujitsu Ltd プログラム遷移解析処理方式
JPH0362136A (ja) * 1989-07-28 1991-03-18 Nec Corp サブルーチン呼び出し回数測定方式
JPH03273346A (ja) * 1990-03-22 1991-12-04 Nec Corp シンボリックデバッガによる動的呼出し関係解析方式

Also Published As

Publication number Publication date
JPH04263336A (ja) 1992-09-18

Similar Documents

Publication Publication Date Title
US5712896A (en) Method for diagnosing a fault of digital exchanger
JP2777938B2 (ja) プログラム実行経路出力装置
JP2908442B1 (ja) トレース情報採取方式
JPH0581069A (ja) プログラムのデバツグ方法
JP2642788B2 (ja) 実行監視点削減方式
JPS61210415A (ja) Crtキ−入力操作装置
JPH1153411A (ja) 回路図エディタ
JPH03257524A (ja) データ処理装置のデータ管理方法
JPS61147336A (ja) ロ−ドモジユ−ルの世代管理方式
JP3194925B2 (ja) プログラム・デバツグ表示方法及びプログラム・デバッグ支援装置
JPH0667864A (ja) マニュアル類の自動作成,更新方法
JPH05181510A (ja) プログラマブルコントローラにおけるプログラミング装置の画面表示方法
JPH08194631A (ja) 画面入力デバッグ方法
JP2643839B2 (ja) コマンド入力時の補完方式
JPH06332684A (ja) プログラム修正支援装置
JPH04367029A (ja) プログラマブルコントローラ用プログラミング装置
JPH10320171A (ja) 文字コード変換装置および記録媒体
JPH09160611A (ja) プログラマブルコントローラ
JP3079238B2 (ja) デバッグ装置
JPH07182149A (ja) メッセージ表示方式
JPH0695868A (ja) ソフトウェア管理方式
JPS6332389B2 (ja)
JPH0612267A (ja) バッチ処理システム
JPH06266539A (ja) デバッグ用ロードモジュールの再作成に好適なリンク装置およびリンク方法
JPS63298531A (ja) オブジェクトプログラムの部分削除方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980331

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080508

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090508

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees