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

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

Info

Publication number
JPH04263336A
JPH04263336A JP3022562A JP2256291A JPH04263336A JP H04263336 A JPH04263336 A JP H04263336A JP 3022562 A JP3022562 A JP 3022562A JP 2256291 A JP2256291 A JP 2256291A JP H04263336 A JPH04263336 A JP H04263336A
Authority
JP
Japan
Prior art keywords
program
output
execution
management table
operation management
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
JP3022562A
Other languages
English (en)
Other versions
JP2777938B2 (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 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)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、再帰呼び出し時の実行
経路出力方法であって、実行プログラムの実行経路の出
力量を削減および確実に出力する再帰呼び出し時の実行
経路出力方法に関するものである。
【0002】
【従来の技術】従来の言語デバッガは、対象となる実行
プログラムが自分自身を呼び出す再帰呼び出しの性質を
持つプログラムの場合でも実行経路の出力について特別
の対処を行っていなく図5の(ハ)に示すように、再帰
呼び出しの全てについて呼び出し元のプログラムから呼
び出し先のプログラムの関係を羅列するようにしていた
。以下図5について簡単に説明する。
【0003】図5の(イ)は、再帰呼び出しのプログラ
ムの例を示す。これは、mainからfuncを呼び出
し、この呼び出されたfunc内で自身のfuncを1
0回、再帰的に呼び出すプログラムである。図5の(ロ
)は、図5の(イ)の再帰呼び出しプログラムについて
、その呼び出し関係を模式的に表示したものである。こ
こで、program:mainから呼び出されたpr
ogram:funcが更に自身のprogram:f
uncを呼び出すことを10回繰り返す様子を示したも
のである。
【0004】図5の(ハ)は、図5の(ロ)の再帰呼び
出し時の実行経路出力例を示す。これは、図5の(ロ)
で模式的に示した各呼び出しを利用者が理解し得るよう
に、例えばfunc called from mai
n.(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を利用者が入力して実行プログラ
ムの実行を再開させる。出力指示は、例えばコマンドB
ACKTRを利用者が入力して実行経路出力を行わせる
【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、更にプログラム名:f
uncの入口のアドレス00032C、出口のアドレス
0003C8を図示のように格納して記憶したものであ
る。
【0018】図3の(ハ)は、動作管理テーブルの形式
例を示す。これは、図2の(ロ)実行プログラム7を実
行して監視点で中断したとき、入口のときに作成して呼
び出されたプログラム名を設定および他プログラム動作
管理テーブルとの呼び出し関係(このプログラムを呼び
出したプログラムのプログラム動作管理テーブル10へ
のリンク)を格納するものである。一方、出口のときは
削除する。
【0019】図3の(ニ)は、動作管理テーブル例を示
す。これは、実行プログラム7を実行して監視点で呼び
出されたプログラム名を図示のように、func、fu
nc・・・func、mainというように、動作管理
テーブル10を作成して連鎖の先頭に順次リンクした状
態を示す。この状態では、プログラム名funcが3回
、再帰的に呼び出されていることが判明するので、これ
を図3の(ホ)のfunc recursive ca
lled 3 times.というように再帰呼び出し
の回数でまとめて表示する。これにより、従来は、3行
に表示していたものが1行にまとまり、実行経路出力量
を削減すると共に見やすく表示することが可能となる。
【0020】次に、図4のフローチャートに示す順序に
従い、図3を参照して本発明の動作を詳細に説明する。 図4の(イ)は、実行プログラム動作時の処理を示す。 これは、利用者がコマンドGOを投入して実行プログラ
ムの再開を指示したことに対応して、行う処理である。
【0021】図4の(イ)において、S1は、SVC 
 aaか否かを判別する。これは、利用者がコマンドG
Oを投入して実行プログラム7の実行を再開させ、順次
実行して予め設定した監視点であるSVC  aaが実
行され、実行監視部4に制御が渡ったか否かを判別する
。YESの場合には、S2以降に進む。NOの場合には
、SVC  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と、S14で
これを呼び出した元(連鎖の先頭から2番目)の動作管
理テーブル10のプログラム名funcとが等しいか否
か、即ち再帰呼び出しか否かを判別する。YESの場合
には、再帰呼び出しであると判明したので、S16で再
帰呼び出し回数+1し、S17で対象を次の動作管理テ
ーブル10にし、S13以降を繰り返す。一方、NOの
場合には、再帰呼び出しでないと判明したので、S18
でこれら再帰呼び出しを実行経路出力し、S19に進む
【0027】S19は、再帰呼び出し回数=0か否かを
判別する。YESの場合には、S20で対象を次の動作
管理テーブル10にしてS21に進む。NOの場合には
、S21に進む。S21は、次がある場合には、S11
以降を繰り返し行い、次がない場合には終了する(EN
D)。
【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)

    【特許請求の範囲】
  1. 【請求項1】  再帰呼び出し時に実行経路を出力する
    実行経路出力方法において、実行プログラム中の監視指
    示されたプログラム(手続き)の入口および出口の種別
    およびそのアドレスを格納する監視点テーブル(9)と
    、監視点の入り口で呼び出されたプログラム名を設定し
    てリンクする動作管理テーブル(10)とを備え、利用
    者からの実行指示に対応して、中断がプログラムの入口
    であった場合に上記動作管理テーブル(10)を作成し
    て呼び出されたプログラム名を設定してリンクし、手続
    きの出口であった場合に該当する動作管理テーブル(1
    0)を削除することを繰り返し行い、利用者からの実行
    経路出力指示に対応して、リンクされている上記動作管
    理テーブル(10)を検索し、プログラムが自身のプロ
    グラムを呼び出している再帰呼び出しについてその回数
    を求めてまとめて出力し、これ以外のプログラムは呼び
    出し関係を個々に出力するように構成したことを特徴と
    する再帰呼び出し時の実行経路出力方法。
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 true JPH04263336A (ja) 1992-09-18
JP2777938B2 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)

Citations (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 シンボリックデバッガによる動的呼出し関係解析方式

Patent Citations (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
JP2777938B2 (ja) 1998-07-23

Similar Documents

Publication Publication Date Title
US7080360B2 (en) Breakpoint safety net
JPH04263336A (ja) プログラム実行経路出力装置
CN117520155B (zh) 一种rpa流程调试方法、装置、电子设备及存储介质
JPH0554277A (ja) プラント監視装置
JPH0581069A (ja) プログラムのデバツグ方法
JPH045703A (ja) シーケンスプログラム作成装置
JP2642788B2 (ja) 実行監視点削減方式
JP2579996B2 (ja) 炉心状態予測装置
JPH04153743A (ja) モジュールの呼び出し情報表示方式
JP2815638B2 (ja) デバッグ装置
JP2827724B2 (ja) プログラムデバッグ処理方法
JPH03130840A (ja) オーバーレイモジュールのトレース制御方式
JP2852402B2 (ja) プログラム開発装置
JPS63106047A (ja) 動的サブル−チン呼び出し方式
JPS61180342A (ja) 高級言語のステツプ実行方式
JPS63163543A (ja) 情報処理装置
JPH06231001A (ja) シンボル名入力装置
JPH06149617A (ja) ディバグ情報操作装置
JPS63298531A (ja) オブジェクトプログラムの部分削除方式
JPH0561716A (ja) プログラムデバツグ方式
JPH05113817A (ja) 数値制御装置
JPH0269837A (ja) プログラムデバック支援装置
JPH02161554A (ja) プログラム起動方式
JPH01136271A (ja) テキスト表示方式
JPH0244434A (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