JPS62121536A - プログラム処理装置 - Google Patents
プログラム処理装置Info
- Publication number
- JPS62121536A JPS62121536A JP60261264A JP26126485A JPS62121536A JP S62121536 A JPS62121536 A JP S62121536A JP 60261264 A JP60261264 A JP 60261264A JP 26126485 A JP26126485 A JP 26126485A JP S62121536 A JPS62121536 A JP S62121536A
- Authority
- JP
- Japan
- Prior art keywords
- module
- program
- execution
- modules
- file
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の技術分野]
この発明はプログラムデバッグ時にユーザの負担が軽減
された装置に関する。
された装置に関する。
ある程度以上のプログラム作成にあたってはプログラム
を小規模で、ある程度まとまった機能を実行するモジュ
ールの集まりとするのが普通である。
を小規模で、ある程度まとまった機能を実行するモジュ
ールの集まりとするのが普通である。
例えば、Fortran 8語ではサブルーチン、Li
5p言語では関数と呼ばれるモジュールの集まりとして
プログラムを作成する。これによりプログラムの作成が
容易になることは知られている。
5p言語では関数と呼ばれるモジュールの集まりとして
プログラムを作成する。これによりプログラムの作成が
容易になることは知られている。
一方、モジュールはいくつかのファイル(ディスク、磁
気テープ、カード等の媒体を問わない)に分散され、格
納記憶されるのが普通である。これにより、各ファイル
の大きさを小さくでき、プログラムの管理が容易になり
、間接的にプログラムの作成が容易になることも知られ
ている。
気テープ、カード等の媒体を問わない)に分散され、格
納記憶されるのが普通である。これにより、各ファイル
の大きさを小さくでき、プログラムの管理が容易になり
、間接的にプログラムの作成が容易になることも知られ
ている。
上記のように、複数のファイルに複数のモジュールが格
納されたプログラムの実行において、あるモジュール中
の実行中に異常が生ずるとユーザはプログラムのデバッ
グを行なうために異常事態を発生したプログラムのあち
こちを参照して異常事態を起こす原因となったモジュー
ルとそれを呼び出しているすべてのモジュールをデータ
の流れを保持したうえで捜し出さなければならないとい
う負担を強いられている。この操作は比較的モジュール
数の少ない場合には容易であるが、多い場合には複雑で
やっかいなものとなる。
納されたプログラムの実行において、あるモジュール中
の実行中に異常が生ずるとユーザはプログラムのデバッ
グを行なうために異常事態を発生したプログラムのあち
こちを参照して異常事態を起こす原因となったモジュー
ルとそれを呼び出しているすべてのモジュールをデータ
の流れを保持したうえで捜し出さなければならないとい
う負担を強いられている。この操作は比較的モジュール
数の少ない場合には容易であるが、多い場合には複雑で
やっかいなものとなる。
特に、Li5p言語の場合には関数型言語特有の特長の
ため、プログラムをトップダウンに解析していけばその
動作が容易に理解できる手続き型言語と比較して、モジ
ュールの階層的呼び出しが複雑となっている。そのため
プログラムを理解するためには新しい関数名が出現する
ごとにその関数の定義をいちいち把握しておかなければ
ならない。
ため、プログラムをトップダウンに解析していけばその
動作が容易に理解できる手続き型言語と比較して、モジ
ュールの階層的呼び出しが複雑となっている。そのため
プログラムを理解するためには新しい関数名が出現する
ごとにその関数の定義をいちいち把握しておかなければ
ならない。
その解決策としては
0エデイタを使ってプログラム(モジュール)を参照す
る。
る。
0クロスリフアレンスをつ<す、’hモモジュール間関
係を参照する。
係を参照する。
0各フアイル中のプログラム(モジュール)をリストと
して出力しそれを参照する。
して出力しそれを参照する。
等が行なわれているが、各々
0モジユールごとにエディタを呼び出してその内容を参
照しなければならない。
照しなければならない。
Oモジュール間の関係はよく理解できるが、そのモジュ
ールの内容の把握ができない。
ールの内容の把握ができない。
O該当するモジュールがどのファイルに存在しているか
を捜してその内容を理解するということを繰り返さなけ
ればならない。
を捜してその内容を理解するということを繰り返さなけ
ればならない。
といりた欠点があり、特にLi sp言語では他言語(
手続き型)と比較して非常に多くの時間がかかり誤りを
犯しやすくプログラム作成上の一種のネックとなってい
る。
手続き型)と比較して非常に多くの時間がかかり誤りを
犯しやすくプログラム作成上の一種のネックとなってい
る。
この発明は上述した従来装置の欠点を改良したもので、
プログラムのデバッグ時にユーザの負担軽減を図る情報
処理装置の提供を目的とする。
プログラムのデバッグ時にユーザの負担軽減を図る情報
処理装置の提供を目的とする。
プログラミング環境において実行待異常事態が発生した
場合1本装置はユーザの実行指示したプログラムが呼び
出しているモジュールを参照にしながら異常事態の発生
原因となったモジュールをトップダウンにたどっていき
、そこへ到るまでのすべてのモジュールの呼び出し関係
データの生成を行なう。この際、モジュールの呼び出し
関係における谷モジュールにはファイル中の自身の位置
清報が生成付加される。
場合1本装置はユーザの実行指示したプログラムが呼び
出しているモジュールを参照にしながら異常事態の発生
原因となったモジュールをトップダウンにたどっていき
、そこへ到るまでのすべてのモジュールの呼び出し関係
データの生成を行なう。この際、モジュールの呼び出し
関係における谷モジュールにはファイル中の自身の位置
清報が生成付加される。
このモジュールの呼び出し関係を出力することによって
、従来ユーザ自身が行なっていたデバッグ時の作業を軽
減でき、デバッグの効率性の向上も期待される。
、従来ユーザ自身が行なっていたデバッグ時の作業を軽
減でき、デバッグの効率性の向上も期待される。
ユーザがプログラムをデバッグする場合、従来は実行し
たプログラムが呼び出しているモジュールをトップダウ
ンに実行時具常事態の発生原因となったモジュールを発
見するまでたどっていった。
たプログラムが呼び出しているモジュールをトップダウ
ンに実行時具常事態の発生原因となったモジュールを発
見するまでたどっていった。
このようなことをユーザはファイル中のプログラム(モ
ジュール)のあちこちを参照することによってプログラ
ム全体の構造を理解しながらデバッグしていった。
ジュール)のあちこちを参照することによってプログラ
ム全体の構造を理解しながらデバッグしていった。
本発明により上述のようなデバッグに欠くことのできな
い情報をユーザに提供することでデバッグ時の負担を軽
減し効率的な作業が可能となる。
い情報をユーザに提供することでデバッグ時の負担を軽
減し効率的な作業が可能となる。
[発明の実施例]
発明の実施例について図面を用いて説明する。
第1図には本発明の実施列である装置の概略構成が示さ
れている。入力装置1よりプログラム名を入力する。そ
の場合、出力装置2上にはそのプログラムが表示されて
いる。プログラム実行部3でプログラムを実行し、実行
待異常事態が発生したかどうかを異常状態検知部4で調
べる。この異常状態検知部4は入力されたプログラムが
実行待異常状態に陥った原因となっているモジエールを
捜し出す。これは通常のプログラム言語処理系に組み込
まれているエラー処F5機嘴と同等なものである。格納
解析部6はファイル中に存在しているプログラム(モジ
ュール)とファイルとの関係をテーブル形式11で生成
する。呼び出し解析部5は入力実行したプログラムが呼
び出しているモジュールをトップダウンに実行待異常状
態の発生原因となりたモジュールに到達するまでたどっ
ていき、その際に得られた各モジュールをトリー形式で
表現する。つまり、モジュール呼び出し関係データ10
が生成される。表示部7は生成されたモジエールの呼び
出し関係データを参照して、入力実行されたモジュール
の呼び出し図をインデンテーションをつけて出力装置2
に表示する。また、表示された図(モジュールの呼び出
し情報)だけではなく、その中のモジニールがプログラ
ム(モジュール)中のどのような位置に存在しているか
。
れている。入力装置1よりプログラム名を入力する。そ
の場合、出力装置2上にはそのプログラムが表示されて
いる。プログラム実行部3でプログラムを実行し、実行
待異常事態が発生したかどうかを異常状態検知部4で調
べる。この異常状態検知部4は入力されたプログラムが
実行待異常状態に陥った原因となっているモジエールを
捜し出す。これは通常のプログラム言語処理系に組み込
まれているエラー処F5機嘴と同等なものである。格納
解析部6はファイル中に存在しているプログラム(モジ
ュール)とファイルとの関係をテーブル形式11で生成
する。呼び出し解析部5は入力実行したプログラムが呼
び出しているモジュールをトップダウンに実行待異常状
態の発生原因となりたモジュールに到達するまでたどっ
ていき、その際に得られた各モジュールをトリー形式で
表現する。つまり、モジュール呼び出し関係データ10
が生成される。表示部7は生成されたモジエールの呼び
出し関係データを参照して、入力実行されたモジュール
の呼び出し図をインデンテーションをつけて出力装置2
に表示する。また、表示された図(モジュールの呼び出
し情報)だけではなく、その中のモジニールがプログラ
ム(モジュール)中のどのような位置に存在しているか
。
すなわちどのようなファイルに属しているかを付加して
表示したり、ファイルにおける該当関数の位置情報の表
示をも行なう。第2図には装置全体の制御部分のフロー
チャートを示す。
表示したり、ファイルにおける該当関数の位置情報の表
示をも行なう。第2図には装置全体の制御部分のフロー
チャートを示す。
更に具体的に説明する。第3図に示すモジュールはLi
5p 8語で記述されている。
5p 8語で記述されている。
第3図のde funは関数の定義を行なう関数、
fnで始まるシンボルは関数名(但し最後にシンボルキ
が付いているものはユーザ定義の関数名ではなく、シス
テムで定義されている関数である)。
fnで始まるシンボルは関数名(但し最後にシンボルキ
が付いているものはユーザ定義の関数名ではなく、シス
テムで定義されている関数である)。
ar、9で始まるシンボルは引数を表わしている。ここ
では、第3図の例を用b1関数fn5=:l″のスペJ
しを間違えてシステムに未定義関数が存在するというエ
ラー(実行待異常事態)が発生した@会について示す。
では、第3図の例を用b1関数fn5=:l″のスペJ
しを間違えてシステムに未定義関数が存在するというエ
ラー(実行待異常事態)が発生した@会について示す。
この場合、関数fn5$が未定義のため、i&終的には
ユーザが実行を指示した関数1口1がエラーを発生した
とみなされる。従って本装置によって第4図のような関
数の呼び出し図が出力される。
ユーザが実行を指示した関数1口1がエラーを発生した
とみなされる。従って本装置によって第4図のような関
数の呼び出し図が出力される。
第4図においては関数fnlが関数fn2とfn3を。
関数fn2がfn4’#−を、関数fn3がfn541
−をそれぞれ呼び出していることを意味する。この例は
関数fnlは5ource 1というファイルに、関数
fn2は5ource 2というファイル知、関数f−
03は5ource 3というファイル中に存在してお
り% 1口3は未定義エラーとなった関数fn5$を呼
び出している。なお、この図は第1図における呼び出し
解析部5より作成されたモジュールの呼び出し表現1o
を参照にして得られたものである。
−をそれぞれ呼び出していることを意味する。この例は
関数fnlは5ource 1というファイルに、関数
fn2は5ource 2というファイル知、関数f−
03は5ource 3というファイル中に存在してお
り% 1口3は未定義エラーとなった関数fn5$を呼
び出している。なお、この図は第1図における呼び出し
解析部5より作成されたモジュールの呼び出し表現1o
を参照にして得られたものである。
第5図は第3図の例でのファイル中の関数の配置を示し
ている。さらに、関数(モジュール)呼び出し図中の関
数のファイルの位置情報の表示列を第6図に示す。第6
図は関数fnlの位置情報(強調のためブリンクされて
表示)の例であり、第1図における格納解析部6より作
成されたモジュールとファイルの関係データ11を参照
にして得られたものである。
ている。さらに、関数(モジュール)呼び出し図中の関
数のファイルの位置情報の表示列を第6図に示す。第6
図は関数fnlの位置情報(強調のためブリンクされて
表示)の例であり、第1図における格納解析部6より作
成されたモジュールとファイルの関係データ11を参照
にして得られたものである。
次にモジニール(関数)名が与えられたとき。
ファイル中から該当するモジュール(関数)を探索する
ことが重要となり、たとえば以下のようにして行なう。
ことが重要となり、たとえば以下のようにして行なう。
該当したモジュール(関1j!りがまずどのファイルに
あるのかをプログラム(モジュール又は関数)とファイ
ルとの関係テーブルを参照して特定する。
あるのかをプログラム(モジュール又は関数)とファイ
ルとの関係テーブルを参照して特定する。
そして、特定されたファイルを初めから順番に検索して
いき、該当するプログラム(モジュール又は関数)を探
し出す。
いき、該当するプログラム(モジュール又は関数)を探
し出す。
第1図は本発明の一実施例の構成図、第2図はその制御
部分のフローチャート、第3図は関数の定義の例を示す
図、第4図は出力された関数fnlの関数呼び出し図、
第5図は第4図の例でのファイル中の関数の配置を示す
図、第6図はファイル中に格納された関数の位置情報表
示の列を示す図である。 1・・・入力装置、2・・・出力装置、3・・・実行部
、4・・・異常状態検知部、5・・・呼び出し解析部、
6・・・格納解析部、7・・・表示部。 代理人 弁理士 則 近 庸 佑 同 竹 花 喜久男 141[へメ奈゛1雀ヱ七〒’+f)′ローう−vJ第
2図 (de−fc、、 f、Lt (αi@ l )(
f7+、2 0−トyl) (fn3 噂1 啼)) (def−+n2 (q2) (f711tヰ 岬2)) 第a 図関叛e楚4−nイケ1 第 4 図出力さ+T;関数f、、t−、閘tひ吟0
但し固 −f−へし第 5 図 7.イル+
、l関数^6む1SOu−ce−fr(e narne
Stomlfunci;□n5oLLhc
ef f−n 1(、ff fn21 : ; 7フイ]し1;キ各糸内さ]℃T=関型<=rw 1−
tti呪d辷矛、。停止第6図
部分のフローチャート、第3図は関数の定義の例を示す
図、第4図は出力された関数fnlの関数呼び出し図、
第5図は第4図の例でのファイル中の関数の配置を示す
図、第6図はファイル中に格納された関数の位置情報表
示の列を示す図である。 1・・・入力装置、2・・・出力装置、3・・・実行部
、4・・・異常状態検知部、5・・・呼び出し解析部、
6・・・格納解析部、7・・・表示部。 代理人 弁理士 則 近 庸 佑 同 竹 花 喜久男 141[へメ奈゛1雀ヱ七〒’+f)′ローう−vJ第
2図 (de−fc、、 f、Lt (αi@ l )(
f7+、2 0−トyl) (fn3 噂1 啼)) (def−+n2 (q2) (f711tヰ 岬2)) 第a 図関叛e楚4−nイケ1 第 4 図出力さ+T;関数f、、t−、閘tひ吟0
但し固 −f−へし第 5 図 7.イル+
、l関数^6む1SOu−ce−fr(e narne
Stomlfunci;□n5oLLhc
ef f−n 1(、ff fn21 : ; 7フイ]し1;キ各糸内さ]℃T=関型<=rw 1−
tti呪d辷矛、。停止第6図
Claims (1)
- 複数のモジュールからなり、モジュールはモジュールを
呼び出す事があり、ユーザはそのうちの1つを指定して
実行させ、モジュールは複数のファイルに格納記憶され
ているプログラム処理装置において、モジュール間の呼
び出し関係データを作成する呼び出し解析部と、モジュ
ールのファイルへの格納関係データを作成する格納解析
部を有し、モジュールの実行中にエラーが生じた場合、
上記解析部の作成するデータを用いてユーザの指定した
モジュールからエラーが生じたモジュールまでの各モジ
ュールの呼び出し経路及び存在ファイル名、そのファイ
ル中の位置を出力する事を特徴とするプログラム処理装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60261264A JPS62121536A (ja) | 1985-11-22 | 1985-11-22 | プログラム処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60261264A JPS62121536A (ja) | 1985-11-22 | 1985-11-22 | プログラム処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62121536A true JPS62121536A (ja) | 1987-06-02 |
Family
ID=17359407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60261264A Pending JPS62121536A (ja) | 1985-11-22 | 1985-11-22 | プログラム処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62121536A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0264747A (ja) * | 1988-08-30 | 1990-03-05 | Fujitsu Ltd | 関数トレース・ステップトレース切り替え制御方式 |
JPH0264748A (ja) * | 1988-08-30 | 1990-03-05 | Fujitsu Ltd | 関数トレース処理方式 |
JPH0573367A (ja) * | 1991-09-18 | 1993-03-26 | Fujitsu Ltd | 複数トレースバツクマツプ出力方式 |
JPH05151030A (ja) * | 1991-11-29 | 1993-06-18 | Nec Corp | 利用者プログラム異常終了時の情報表示方式 |
-
1985
- 1985-11-22 JP JP60261264A patent/JPS62121536A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0264747A (ja) * | 1988-08-30 | 1990-03-05 | Fujitsu Ltd | 関数トレース・ステップトレース切り替え制御方式 |
JPH0264748A (ja) * | 1988-08-30 | 1990-03-05 | Fujitsu Ltd | 関数トレース処理方式 |
JPH0573367A (ja) * | 1991-09-18 | 1993-03-26 | Fujitsu Ltd | 複数トレースバツクマツプ出力方式 |
JPH05151030A (ja) * | 1991-11-29 | 1993-06-18 | Nec Corp | 利用者プログラム異常終了時の情報表示方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8091075B2 (en) | Method and apparatus for breakpoint analysis of computer programming code using unexpected code path conditions | |
EP0785510B1 (en) | Program debugging system for debugging a program having a graphical user interface | |
US8010949B2 (en) | Database breakpoint apparatus and method | |
US8336032B2 (en) | Implementing enhanced template debug | |
Chapin | New format for flowcharts | |
CN117149658A (zh) | 呈现代码实体调用之间的差异 | |
US20100251214A1 (en) | Apparatus, system, and method for dynamic module flow analysis | |
JPS62121536A (ja) | プログラム処理装置 | |
WO2007071615A1 (en) | Methods, apparatus and computer programs for handling parameters associated with call statements | |
CN104145249A (zh) | 调试方法和计算机程序产品 | |
JPH02275539A (ja) | デバッグ処理方式 | |
Sarraga | Static data flow analysis of PL/I programs with the PROBE system | |
US20220308985A1 (en) | Debugging sql statements | |
JP3098501B2 (ja) | ソースステップ実行方法およびその装置 | |
JP3077627B2 (ja) | デバッグ方法およびデバッグプログラムを記録する記録媒体 | |
Metcalf | Aspects of FORTRAN in large-scale programming | |
JPH0431933A (ja) | 原始プログラム解析装置 | |
Wolman | Debugging PL/I programs in the Multics environment | |
JP3130421B2 (ja) | プログラム解析方法および装置 | |
CN111309615A (zh) | 基于PyCharm的代码选择执行方法、装置、设备及存储介质 | |
JPH04229343A (ja) | 対話型デバッガにおけるメモリ内容表示方式 | |
JP2001202272A (ja) | デバッグの方法とこの方法を用いたデバッグ装置及びデバッグの方法を記録した記録媒体 | |
Earley et al. | VERS Manual: Version 4 | |
JPH10289124A (ja) | データフロー異常検査装置 | |
JPS5846439A (ja) | 計算機のプログラム編集方法 |