JPH01161543A - 高級言語におけるエラー発生行番号探索方式 - Google Patents

高級言語におけるエラー発生行番号探索方式

Info

Publication number
JPH01161543A
JPH01161543A JP62318994A JP31899487A JPH01161543A JP H01161543 A JPH01161543 A JP H01161543A JP 62318994 A JP62318994 A JP 62318994A JP 31899487 A JP31899487 A JP 31899487A JP H01161543 A JPH01161543 A JP H01161543A
Authority
JP
Japan
Prior art keywords
program
error
address
control table
subroutine
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
JP62318994A
Other languages
English (en)
Other versions
JP2820937B2 (ja
Inventor
Yujiro Suzuki
鈴木 勇二郎
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 JP62318994A priority Critical patent/JP2820937B2/ja
Publication of JPH01161543A publication Critical patent/JPH01161543A/ja
Application granted granted Critical
Publication of JP2820937B2 publication Critical patent/JP2820937B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 目的プログラム実行過程でエラーが発生したとき対応す
る原始プログラム上のエラー発生行番号。
を求めるエラー発生行番号探索方式に関し、エラーの発
生した目的プログラムのアドレスが通知されない場合に
対応する原始プログラム上のエラー発生行番号を求める
ことを目的とし、目的プログラム実行過程でエラー発生
時に原始プログラム上のエラー発生番号を求める高級言
語におけるエラー発生行番号探索方式であって、目的プ
ログラムを実行する各プログラムをリンケージ規約に従
ってリンケージし、原始プログラムの各行番号と目的プ
ログラムのアドレスの対応を示すエラー制御テーブルを
生成してそのアドレスを別のテーブルに設定し、エラー
処理を行うプログラムの復帰アドレスとリンケージ規約
に基づいてエラーの発生した目的プログラムアドレスを
求め、エラー制御テーブルより原始プログラム上のエラ
ー発生番号を求めるように構成する。
〔産業上の利用分野〕
本発明は、高級言語で記述された原始プログラムを翻訳
して生成された目的プログラムの実行過程でエラーが発
生した場合に、対応する原始プログラム上のエラー発生
行番号を求める高級言語におけるエラー発生行番号探索
方式に関する。
〔従来の技術〕
C0BOL等の高級言語で記述された原始プログラムは
、目的プログラムに翻訳されて実行される。この原始プ
ログラムを翻訳して生成された目的プログラムの実行過
程でエラーが発生した場合は、その原始プログラム上の
エラーの発生行番号を求めることがデパック等を行うた
めに必要である。
エラーによるプログラム割込み発生時のプログラムカウ
ンタの値すなわち目的プログラムを実行しているプログ
ラムのアドレスがオペレーティング・システム(O8)
より通知された場合は、そのプログラムのアドレスに基
づいて目的プログラム上のエラーの発生したプログラム
アドレスを求め、更にその原始プログラム上の対応する
エラー発生行番号を求めることができる。
しかしながら、高級語の論理エラー等はO8にとっての
エラーではない。したがってO8は正常動作であり、エ
ラー通知は行わない。この場合は、他にエラーの発生し
た目的プログラム上の位置を知る手段がないため、それ
に対応する原始プログラム上のエラー発生行番号を求め
有効な方法がなかった。
〔発明が解決しようとする問題点〕
高級言語で記述された原始プログラムを翻訳して生成さ
れた目的プログラムを実行するシステムにおいて、その
目的プログラムの実行過程でエラーが発生したとき、シ
ステムのO8よりエラーによるプログラム割込み発生時
のプログラムのアドレスが通知されない場合、従来は対
応する原始プログラム上の行番号を求めることができな
いという問題があった。
本発明は、目的プログラムの実行過程でエラーを発生し
たプログラムのアドレスがO8より通知されない場合に
、エラーの発生した目的プログラム上のアドレスに対応
する原始プログラム上のエラー発生行番号を容易かつ確
実に求めることのできる高級言語におけるエラー発生行
番号探索方式を提供することを目的とする。
〔問題点を解決するための手段〕
本発明の採用した解決手段を、第1図を参照して説明す
る。第1図は、本発明の基本構成を処理フローチャート
で示したものである。
処理S1では、目的プログラムを実行する各プログラム
を、子プログラムを呼び出した親プログラムの作業域ア
ドレスが子プログラム側から分るようにリンクし、親プ
ログラムはその子プログラムの作業域内に子からの復帰
アドレスを設定するリンケージ規約に従ってリンケージ
処理が行われる。
処理Stでは、原始プログラムの翻訳単位毎に、原始プ
ログラム上の各行番号とその目的プログラム上の各プロ
グラムアドレスとの対応を示すエラー制御テーブルを目
的プログラム内に生成する処理が行われる。
処理S、では、実行のために呼び出された目的プログラ
ムが、自身の初期処理によりそのエラー制御テーブルの
アドレスを実行単位制御テーブルに設定する処理が行わ
れる。
処理S4では、目的プログラムの命令を実行中のプログ
ラムにエラーが発生したとき、そのエラー処理を行う子
プログラムの作業域にある復帰アドレス及び前記リンケ
ージ規約に基づいて目的プログラムのエラーの発生した
プログラムアドレスを求める処理が行われる。
処理SSでは、実行単位作業域にあるエラー制御テーブ
ルアドレスより実行中の目的プログラムのエラー制御テ
ーブルを求め、該エラー制御テーブルと前記プログラム
アドレスより、目的プログラム上のエラーを発生したプ
ログラムアドレスに対応する原始プログラムのエラー発
生行番号を求める処理が行われる。
〔作 用〕
本発明の作用を、第2図に示す処理の流れを参照して説
明する。
第2図において、SPGは原始プログラムで、行番号1
.2等にMOVE、ADD等の命令が記述されている。
10はシステムメモリで、目的プログラムや各種サブル
ーチン等が格納され、それらの作業域及び各種の制御テ
ーブルが設けられる。
システムメモリ10において、11は目的プログラム域
で、原始プログラムSPGを各翻訳単位毎に翻訳して生
成された各目的プログラムが格納される。111はこの
目的プログラム0BPCのエラー制御テーブルで、行番
号槽には原始プログラムSPGの行番号が格納され、プ
ログラムアドレス欄には各行番号の命令に対応する目的
プログラムのプログラムアドレス(すなわち、次に説明
する復帰アドレス)がテキスト相対アドレス又は絶対ア
ドレスで設定される。
なお、−目的プログラム域11及びそのエラー制御テー
ブル111は、各翻訳単位毎に生成された各目的プログ
ラム毎に設けられるが、図にはその1つの目的プログラ
ム0BPCのものが示されている。
12は目的プログラム0BPGの1つの命令を実行する
サブルーチンPSBRを格納するサブルーチン域で、サ
ブルーチンPSBRは、目的プログラム0BPGを親プ
ログラムとするとその子プログラムの関係にある。12
1はその作業域で、リンクアドレス域121L及び復帰
アドレス域121Rが設けられている。
13はエラー出カサブルーチンESBRを格納するエラ
ー出カサブルーチン域で、エラー出カサブルーチンES
BRは、サブルーチンPSBRを親とすると子プログラ
ムの関係にあり、エラーの発生した目的プログラム0B
PG上のアドレスに対応する原始プログラムアドレスの
エラー発生行番号を探索し、エラーメツセージとして出
力する処理を行う、131はその作業域で、リンクアド
レス域131L及び復帰アドレス域131Rが設けられ
ている。
なお、サブルーチンPSBRとエラー出カサブルーチン
ESBHの間には更にサブルーチンが入り得るが、エラ
ー発生行番号探索動作は各サブルーチンに共通であるの
で、1個のサブルーチンの場合が示されている。
14は実行単位制御サブルーチン域で、実行単位制御サ
ブルーチンEC3BRが格納される。実行単位制御サブ
ルーチンEC3BRは、目的プログラムの1つの実行単
位を実行する互いに親子の関係にある一連のサブルーチ
ンプログラム系を管理、制御するプログラムである。1
41は、実行単位制御サブルーチンEC3BRの作業域
で、現在実行中であるすなわち有効な目的プログラムの
エラー制御テーブルのアドレスが設定される。
15は実行単位制御テーブルで、実行単位制御サブルー
チンEC3BRにより獲得、管理され、現在実行中の有
効な目的プログラム0BPCの先頭ADP、 、最終ア
ドレスADPf及びそのエラー制御テーブルアドレスが
格納される。
以上の構成において、実行単位制御サブルーチンEC3
BRが起動すると、実行単位制御サブルーチンEC3B
Rは、原始プログラムSPGを翻訳して生成された各目
的プログラム中の1つ(目的プログラム0BPCとする
)を、メモリシステムの目的プログラム域11に読み込
み、それを実行させる。
以下の各処理も実行単位制御サブルーチンEC3BHに
よって制御されて実行されるが、必要のない限り特に言
及しない。
次いで、リンケージ規約に従って、目的プログラム0B
PCが使用する各プログラムをリンクし、子プログラム
を呼び出した親プログラムが使用し□ている作業域のア
ドレスが子プログラム側から分るようにされる(処理S
、)。
この処理は、親子の関係にあるプログラムの子プログラ
ムのリンクアドレス域に親プログラムの作業域のアドレ
スを格納することにより行われる。
すなわち、エラー出カサブルーチンESBRのリンクア
ドレス域131Lに、その親プログラムであるサブルー
チンPSBHの作業域121のアドレスが格納される。
同じくリンケージ規約に従って、親プログラムの作業域
内の固定的な位置(すなわち復帰アドレス域)に子プロ
グラムからの復帰アドレスが設定される(処理S+)。
この処理は、親プログラム内で子プログラムに制御を移
した命令の次の命令のアドレス(すなわち復帰アドレス
)を子プログラムの復帰アドレス域に設定することによ
り行われる。
いま、目的プログラム0BPCがアドレスADPi  
(復帰アドレスはADP8.1)でその子プログラムで
あるサブルーチンPSBHに制御を移したとすると、そ
の復帰アドレスADPi、+が、サブルーチンPSBH
の復帰アドレス域121Lに設定される。また、サブル
ーチンPSBRが実行途中でエラーを発生し、アドレス
ADSjでその子プログラムであるエラー出カサブルー
チンESBRに制御を移したとすると、その復帰アドレ
スA D S j、1がエラー出カサブルーチンESB
Hの復帰アドレス域131Rに設定される。
一方、原始プログラムSPGの翻訳単位毎に、原始プロ
グラムの各桁番号とその目的プログラムの各アドレスと
の対応を示すエラー制御テーブルが、目的プログラム内
に生成される(処理St)。
第2図において、111は目的プログラム0BPGのエ
ラー制御テーブルである。
目的プログラム0BPCが実行のために呼び出されると
、目的プログラム0BPC自身の初期処理により、その
エラー制御テーブル111のアドレスを実行単位制御テ
ーブル15に設定する(処理S3)、これにより、複数
の目的プログラムが交互に実行される実行単位中で、現
在有効なエラー制御テーブルのアドレスが分かる。
目的プログラム0BPCの実行途中のアドレスADP、
においてサブルーチンPSBRに制御が移り、サブルー
チンPSBHの実行途中でエラーが発生し、アドレスA
DS、(復帰アドレスADSj、、 )においてエラー
出カサブルーチンESBRに制御が移ったとする。
エラー出カサブルーチンESBRは、その復帰アドレス
域131Rにある復帰アドレスADSj++及びリンケ
ージ規約に基づいて、目的プログラム0BPCのエラー
発生時のプログラムアドレス(すなわち復帰ADP=−
1)を求める(処理S4、なお、この処理S4の具体的
な内容は〔実施例〕の項で説明する)。
目的プログラム0BPCのエラー発生時のプログラムア
ドレスが求まると、実行単位制御テーブル15に設定さ
れである目的プログラムアドレスよ、り目的プログラム
0BPGのエラー制御テーブル111を求める。このエ
ラー制御テーブル111にある各プログラムアドレスを
サーチし、前述の処理S4で求められた復帰アドレスA
DP=−+に合致するプログラムアドレスを求めると、
対応する行番号よりエラーの発生した目的プログラム上
のアドレスに対応する原始プログラムアドレスのエラー
発生行番号を求めることができる(処理Ss)。
以上のようにして、目的プログラムの実行過程でエラー
を発生したプログラムのアドレスがO8より通知されな
い場合でも、目的プログラム上の゛エラーを発生したプ
ログラムアドレスに対応する原始プログラム上の行番号
を容易かつ確実に求めることができる。
〔実施例〕
本発明の実施例を、第2図及び第3図を参照して説明す
る。第3図は、同実施例のエラー発生行番号探索処理フ
ローチャートである。
第2図で行われる実施例の各処理中、リンケージ処理(
処理SI)、エラー制御、テーブルを目的プログラム内
に生成する処理(処理Sz ) 、実行のために呼び出
された目的プログラム0BPCが自身の初期処理により
そのエラー制御テーブル111のアドレスを実行単位制
御テーブル14に設定する処理(処理S、)までの各処
理は、前述の〔作用〕の項すなわち第2図で説明した処
理Sl〜処理S、と同じである。なお、目的プログラム
0BPCの先頭アドレスADP、及び最終アドレスAD
Pfは、目的プログラム0BPGのローディング時にO
8により実行単位制御テーブル15に設定される0、ま
た、各リングアドレスは、呼ぶプログラムが呼ばれるプ
ログラムを呼ぶ直前と呼ばれるプログラムに制御が渡っ
た直後にそれぞれのプログラムが設定する。
以下、サブルーチンPSBRが実行途中でエラーを発生
し、アドレスADSj (復帰アドレスADSJ+1)
においてエラー出カサブルーチンESBHに制御が移り
、そこで行われる処理S4及びS、の処理、すなわちエ
ラー発生行番号探索処理を、第3図を参照し、その処理
ステップに従って説明する。なお、第3図において、処
理341〜S44は処理S4の内部処理であり、処理S
S+及びSS!は処理S、の内部処理である。
■ 処理S41 エラー出カサブルーチンESBRは、実行単位制御サブ
ルーチンEC3BRに実行単位制御テーブルアドレスの
通知を依頼する。実行単位制御サブルーチンEC3B、
Rは、その作業域141にある実行単位制御テーブル1
5のアドレスを通知する。
エラー出カサブルーチンESBRは、実行単位制御テー
ブル15をサーチして、現在実行中で有効な目的プログ
ラム0BPCの先頭アドレスADP5と最終アドレスA
DP、を求める。
■ 処理S4□、543s S44 エラー出カサブルーチンESBRは、その作業域131
の復帰アドレス域131Rより復帰アドレスA D S
 4 * rを取り出しく処理Saw) 、このADS
j+1が処理S41で求めた目的プログラム0BPGの
先頭アドレスADP、と最終アドレスADP、の範囲内
にあるか、すなわちADP、≦ADS、。、≦ADP、
の条件を満足するか判別する(処理S4.)。満足した
場合は、その復帰アドレスがエラーの発生した目的プロ
グラム0BPGのプログラムアドレスとして求められる
復帰アドレスA D S 、、、については、前記条件
は満足されない。この場合は、エラー出カサブルーチン
ESBRのリンクアドレス域131Lにあるリンクアド
レスより、エラー出カサブルーチンESBRの親プログ
ラムであるサブルーチンPSBHの作業域121を求め
る(処理544)。
次に、サブルーチンPSBHの作業域121を現作業域
として、前述の処理S4!及びS41の処理を行う。す
なわち、その復帰アドレス域121Rより復帰アドレス
A D P i+1を取り出しく処理S4□) 、AD
S、≦ADP籠、≦ADPfの条件を満足するかを判別
する(処理S4.)。
ADPi0.の場合は、当然前記条件は満足するので、
このADPi、、がエラーの発生した目的プログラム0
BPCのプログラムアドレスとして求められる。
なお、サブルーチンが複数個存在し、それらが親と子プ
ログラムの関係で順番にリンクされているときは、エラ
ー出カサブルーチンESBRを出発点として親となるサ
ブルーチンの作業域を順番にたどって行き、前述の条件
が満足される復帰アドレスが得られるまで、前述の処理
S4!〜s44が繰り返される。
■ 処理SSl、SS! エラー出カサブルーチンESBRは、実行単位制御テー
ブル15にあるエラー制御テーブルアドレスより、目的
プログラム0BPGのエラー制御テーブル111を求め
、処理S43で求めた復帰アドレスADPiや、に合致
するプログラムアドレスを求める(処理Ss+)。
復帰アドレスADPi++に合致するプログラムアドレ
スが求まると、それに対応する行番号より、エラーの発
生した目的プログラム上のアドレスに対応する原始プロ
グラムアドレスのエラー発生行番号が求められる(処理
S sz)。 。
エラー出カサブルーチンESBRは、求められた原始プ
ログラムSPGのエラー発生行番号を画面に表示又はプ
リントアウトする。
以上1つの目的プログラム0BPGの実行過程でエラー
が発生した場合の対応する原始プログラムのエラー発生
行番号探索処理について説明したが、この目的プログラ
ム0BPGと並行して交互に実行されている他の目的プ
ログラムの実行過程にエラーが発生した場合も、同様に
して対応する原始プログラムのエラー発生行番号を探索
することができる。
〔発明の効果〕
以上説明したように、本発明によれば、目的プログラム
の実行過程でエラーを発生したプログラムアドレスがO
8より通知されない場合でも、目的プログラム上のエラ
ーを発生したプログラムアドレスに対応する原始プログ
ラム上の行番号を容易かつ確実に求めることができる。
【図面の簡単な説明】
第1図は本発明の基本構成の説明図、 第2図は本発明及び実施例における処理の流れ説明図、 第3図は同実施例のエラー発生行番号探索処理フローチ
ャートである。 第2図において、 10・・・システムメモリ、11・・・目的プログラム
。 (OB P G)域、111・・・エラー制御テーブル
、12・・・サブルーチン(P S B R)域、12
1・・・作業域、121L・・・リンクアドレス域、1
21R・・・復帰アドレス域、13°・・・エラー出カ
サブルーチン(ESBR)域、131・・・作業域、1
31L・・・リンクアドレス域、131R・・・復帰ア
ドレス域、14・・・実行単位制御サブルーチン(EC
3BR)域、141・・・作業域、15・・・実行単位
制御テーブル。 本発明の基本構成 第1図

Claims (1)

  1. 【特許請求の範囲】 高級言語で記述された原始プログラムを翻訳して生成さ
    れた目的プログラムの実行過程でエラーが発生した場合
    に、対応する原始プログラム上のエラー発生行番号を求
    める高級言語におけるエラー発生行番号探索方式であっ
    て、 (A)目的プログラムの命令を実行する各プログラムを
    、子プログラムを呼び出した親プログラムの作業域アド
    レスが子プログラム側から分るようにリンクし、親プロ
    グラムはその子プログラムの作業域内に子プログラムか
    らの復帰アドレスを設定するリンケージ規約に従ったリ
    ンケージ処理を行い(処理S_1)、 (B)原始プログラムの翻訳単位毎に、原始プログラム
    上の各行番号とその目的プログラム上の各プログラムア
    ドレスとの対応を示すエラー制御テーブルを目的プログ
    ラム内に生成し(処理S_2)、 (C)実行のために呼び出された目的プログラムが自身
    の初期処理によりそのエラー制御テーブルのアドレスを
    、実行単位制御テーブルに設定し(処理S_3)、 (D)目的プログラムの命令を実行中のプログラムにエ
    ラーが発生したとき、そのエラー処理を行う子プログラ
    ムの作業域にある復帰アドレス及び前記リンケージ規約
    に基づいて目的プログラムのエラーの発生したプログラ
    ムアドレスを求め(処理S_4)、 (E)実行単位制御テーブルにあるエラー制御テーブル
    アドレスより実行中の目的プログラムのエラー制御テー
    ブルを求め、該エラー制御テーブルと前記プログラムア
    ドレスより、目的プログラム上のエラーを発生したプロ
    グラムアドレスに対応する原始プログラム上のエラー発
    生行番号を求める(処理S_5)、 ことを特徴とする高級言語におけるエラー発生行番号探
    索方式。
JP62318994A 1987-12-18 1987-12-18 高級言語におけるエラー発生行番号探索装置 Expired - Fee Related JP2820937B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62318994A JP2820937B2 (ja) 1987-12-18 1987-12-18 高級言語におけるエラー発生行番号探索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62318994A JP2820937B2 (ja) 1987-12-18 1987-12-18 高級言語におけるエラー発生行番号探索装置

Publications (2)

Publication Number Publication Date
JPH01161543A true JPH01161543A (ja) 1989-06-26
JP2820937B2 JP2820937B2 (ja) 1998-11-05

Family

ID=18105310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62318994A Expired - Fee Related JP2820937B2 (ja) 1987-12-18 1987-12-18 高級言語におけるエラー発生行番号探索装置

Country Status (1)

Country Link
JP (1) JP2820937B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58129557A (ja) * 1982-01-27 1983-08-02 Hitachi Ltd デ−タ処理システムにおけるプログラムのデバツグ用デ−タ収集処理方法
JPS58191047A (ja) * 1982-04-30 1983-11-08 Fujitsu Ltd プログラム・ダウン箇所検出方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58129557A (ja) * 1982-01-27 1983-08-02 Hitachi Ltd デ−タ処理システムにおけるプログラムのデバツグ用デ−タ収集処理方法
JPS58191047A (ja) * 1982-04-30 1983-11-08 Fujitsu Ltd プログラム・ダウン箇所検出方式

Also Published As

Publication number Publication date
JP2820937B2 (ja) 1998-11-05

Similar Documents

Publication Publication Date Title
US8752056B2 (en) Running native code across single or multi-core hybrid processor achitecture
CN110825745B (zh) 页面的生成方法及装置
JPH01161543A (ja) 高級言語におけるエラー発生行番号探索方式
JPH03126133A (ja) コンパイラ処理方法
JP2715222B2 (ja) 動作環境の動的反映方法
JPH1091418A (ja) 多国語対応ソフトウェア実現方式
JPH0327453A (ja) プログラム文指定処理方式
JP3240647B2 (ja) コンピュータ言語の構造化処理方式
JPH05197538A (ja) プリコンパイラ方式における例外発生行番号表示方式
JPH0644101A (ja) プログラムデバッグ処理方法
JPH02205930A (ja) インタフェースチェック処理方法
JPH03271939A (ja) メッセージ送信翻訳処理方式
JPS58109947A (ja) シミユレ−ト装置
JPH02146625A (ja) レジスタ個数の拡張方式
JPH04153741A (ja) 被デバッグプログラムのデバッグにおける逆方向実行方式
JPS63214838A (ja) デ−タフロ−グラフ作成方式
JPH10207738A (ja) 言語処理システム
JPH11184680A (ja) ファイル編集方法及びこれを用いたプログラム開発方法及び装置並びに記憶媒体
JPH0778085A (ja) プログラム翻訳処理方式
JPH0744095A (ja) ユーザプログラム設定方法
JPH05151030A (ja) 利用者プログラム異常終了時の情報表示方式
JPH05216684A (ja) プログラム実行装置および実行方法
JPS63317826A (ja) シンボリックデバッグ方式
JPS63201833A (ja) 未解決ラベル参照解決方式
JPH01158534A (ja) 生成ソースプログラムの生成方式

Legal Events

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