JPH0196741A - デバッガにおける共通セクション方式 - Google Patents
デバッガにおける共通セクション方式Info
- Publication number
- JPH0196741A JPH0196741A JP62253518A JP25351887A JPH0196741A JP H0196741 A JPH0196741 A JP H0196741A JP 62253518 A JP62253518 A JP 62253518A JP 25351887 A JP25351887 A JP 25351887A JP H0196741 A JPH0196741 A JP H0196741A
- Authority
- JP
- Japan
- Prior art keywords
- debugger
- language
- section
- common
- program
- 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)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕
ソースプログラムを入力し、オブジェクトプログラムを
生成するコンパイル時においてデバッグ指定が行れた場
合、複数言語からなるプログラムに対しても各言語毎に
シンポリンクデバッグすることを可能とするデバッガに
おける共通セクション方式に関し、 複数言語から成るプログラムに対して、各言語毎にシン
ポリンクデバッグすることを可能とするデバッガにおけ
る共通セクション方式を提供することを目的とし、 複数言語からなるソースプログラムをオブジェクトプロ
グラムに変換するコンパイラが出力する各言語のオブジ
ェクトプログラム中にデバッガを呼出すための呼出し命
令を生成する生成手段と、前記コンパイラが出力する前
記各言語の各COMMONセクションとリンクする前の
デバッガが持つCOMMONセクションを共通リンクし
た場合、リンク後の共通のCOMMONセクションの形
成は前記デバッガの持つCOMMONセクションを優先
的に有効とする制御手段と、前記各言語のオブジェクト
を走行中に前記呼出し命令が起動されたとき前記共通の
COMMONセクション内のフラグが有効になり、かつ
前記COMMONセクション内に格納されたデバッガア
ドレスを介してリンク後のデバッガを起動する起動手段
と、前記デバッガが走行された場合に走行中のセクショ
ンがどの言語に釦応するオブジェクトであるのかをデバ
ッガ自身が自動的に認識する言語識別手段とを有するよ
うに構成する。
生成するコンパイル時においてデバッグ指定が行れた場
合、複数言語からなるプログラムに対しても各言語毎に
シンポリンクデバッグすることを可能とするデバッガに
おける共通セクション方式に関し、 複数言語から成るプログラムに対して、各言語毎にシン
ポリンクデバッグすることを可能とするデバッガにおけ
る共通セクション方式を提供することを目的とし、 複数言語からなるソースプログラムをオブジェクトプロ
グラムに変換するコンパイラが出力する各言語のオブジ
ェクトプログラム中にデバッガを呼出すための呼出し命
令を生成する生成手段と、前記コンパイラが出力する前
記各言語の各COMMONセクションとリンクする前の
デバッガが持つCOMMONセクションを共通リンクし
た場合、リンク後の共通のCOMMONセクションの形
成は前記デバッガの持つCOMMONセクションを優先
的に有効とする制御手段と、前記各言語のオブジェクト
を走行中に前記呼出し命令が起動されたとき前記共通の
COMMONセクション内のフラグが有効になり、かつ
前記COMMONセクション内に格納されたデバッガア
ドレスを介してリンク後のデバッガを起動する起動手段
と、前記デバッガが走行された場合に走行中のセクショ
ンがどの言語に釦応するオブジェクトであるのかをデバ
ッガ自身が自動的に認識する言語識別手段とを有するよ
うに構成する。
本発明はソースプログラムを入力し、オブジェクトプロ
グラムを生成するコンパイル時においてデバッグ指定が
行れた場合、複数言語からなるプログラムに対しても各
言語毎にシンポリンクデバッグすることを可能とするデ
バッガにおける共通セクション方式に関する。
グラムを生成するコンパイル時においてデバッグ指定が
行れた場合、複数言語からなるプログラムに対しても各
言語毎にシンポリンクデバッグすることを可能とするデ
バッガにおける共通セクション方式に関する。
情報処理技術の発展に伴い、ソフトウェアによる情報処
理の多機能化が進み、ソフトウェアの重要度が向上して
きた。そして、アルゴリズムを表現する言語の種類も多
種多様化し、処理の目的に合致した言語を選択し、使用
できるようになってきた。例えば、コボル言語は事務処
理に適し、フォートラン言語あるいはパスカル言語等は
科学計算用の数値計算に適し、LISP言語やプロロー
グ言語等は記号処理を対象とした応用に適する。
理の多機能化が進み、ソフトウェアの重要度が向上して
きた。そして、アルゴリズムを表現する言語の種類も多
種多様化し、処理の目的に合致した言語を選択し、使用
できるようになってきた。例えば、コボル言語は事務処
理に適し、フォートラン言語あるいはパスカル言語等は
科学計算用の数値計算に適し、LISP言語やプロロー
グ言語等は記号処理を対象とした応用に適する。
このような言語は計算機に入力されると、高級言語で書
かれたソースプログラムは計算機が理解できるオブジェ
クトプログラムに変換され、計算機内部に用意されたラ
イブラリー等の他のオブジェクトモジュールとリンクさ
れる。そして生成されたロードモジュールは主記憶装置
内に常駐でき、その後実行される。しかし、入力された
プログラムが正しく動くまでにはコンパイル時の誤りや
実行時の誤りを訂正する必要がある。この実行時の誤り
訂正を効率よく行うためにコンパイル時にデバッグモー
ドを指定すればプログラム実行前にユーザは高級言語イ
メージでデバッグすることが可能となる。コンパイラが
デバッグモードで指定された場合にはデバッグ用のシン
ポリンク情報が出力される。すなわち、変数情報などが
人間が理解できる形で出力表示される。この情報をもと
にプログラムの誤りを訂正することが可能となる。
かれたソースプログラムは計算機が理解できるオブジェ
クトプログラムに変換され、計算機内部に用意されたラ
イブラリー等の他のオブジェクトモジュールとリンクさ
れる。そして生成されたロードモジュールは主記憶装置
内に常駐でき、その後実行される。しかし、入力された
プログラムが正しく動くまでにはコンパイル時の誤りや
実行時の誤りを訂正する必要がある。この実行時の誤り
訂正を効率よく行うためにコンパイル時にデバッグモー
ドを指定すればプログラム実行前にユーザは高級言語イ
メージでデバッグすることが可能となる。コンパイラが
デバッグモードで指定された場合にはデバッグ用のシン
ポリンク情報が出力される。すなわち、変数情報などが
人間が理解できる形で出力表示される。この情報をもと
にプログラムの誤りを訂正することが可能となる。
従来のシンボリックデバッガは各言語毎に固有に作成さ
れていた。各言語は異なった変数の定義や命令を持ち、
デバッガもその言語に適した形で作成され、言語共通の
デバッガは作成されていなかった。デバッグモードコン
パイルで実行した場合にオブジェクトプログラムとは別
にデバッグ情報が生成されるが、この生成の仕方も言語
特有のものであり、デバッガは1つの言語に対するシン
ポリンク情報しか出力することができなかった。
れていた。各言語は異なった変数の定義や命令を持ち、
デバッガもその言語に適した形で作成され、言語共通の
デバッガは作成されていなかった。デバッグモードコン
パイルで実行した場合にオブジェクトプログラムとは別
にデバッグ情報が生成されるが、この生成の仕方も言語
特有のものであり、デバッガは1つの言語に対するシン
ポリンク情報しか出力することができなかった。
〔発明が解決しようとする問題点〕
すなわち、従来、この種のデバッガは各言語毎に独自の
デバッガインタフェースを持つ方式が使われていた。そ
のため各言語毎に対応のデバッガを持つだけで複数の言
語からなるプログラムに対してはプログラムデバッグは
出来ず、また出来ても特定の部分のみに限られるという
問題があった。
デバッガインタフェースを持つ方式が使われていた。そ
のため各言語毎に対応のデバッガを持つだけで複数の言
語からなるプログラムに対してはプログラムデバッグは
出来ず、また出来ても特定の部分のみに限られるという
問題があった。
本発明は複数言語から成るプログラムに対して、各言語
毎にシンポリンクデバッグすることを可能とするデバッ
ガにおける共通セクション方式を提供する。
毎にシンポリンクデバッグすることを可能とするデバッ
ガにおける共通セクション方式を提供する。
本発明のデバッガにおける共通セクション方式の構成ブ
ロック図を第1図に示す。
ロック図を第1図に示す。
複数言語からなるプログラムに対してデバッガ指定のコ
ンパイルを実行した場合に、各言語のオブジェクトが生
成される。例えば、コボル言語のオブジェクト11、フ
ォートラン言語のオブジェクト12が生成される。これ
とは別にデバッガプログラム10があるとする0本発明
では各言語毎の出力オブジェクト11.12とデバッガ
10とで共通のC0MM0Nセクション100,110
゜120を持つ。前記COM M ON’セクション1
00.110.120は全て同じ名称とする。このよう
なオブジェクト11.12とデバッガ10をダイナミッ
ク或いはスタテックリンクで結合した場合、COMMO
Nセクションは同じ名称である場合には1つのセクショ
ンに統一される。本発明はこのことを利用して同じ名称
を持った前記COMMONセクション100,110.
120を1つにまとめた形でリンクする。そして、他の
コボルオブジェクト11、フォートランオブジェクト1
2及びデバッガ10は1つにリンクされ、それぞれ、リ
ンク後のコボルオブジェクト15、フォートランオブジ
ェクト16及びデバッガ14となる。リンクされてでき
た1つのCOMMONセクション130はリンクされた
デバッガ14、コボルオブジェクト15、フォートラン
オブジェクト16からなるモジュールに共通の機能であ
る。
ンパイルを実行した場合に、各言語のオブジェクトが生
成される。例えば、コボル言語のオブジェクト11、フ
ォートラン言語のオブジェクト12が生成される。これ
とは別にデバッガプログラム10があるとする0本発明
では各言語毎の出力オブジェクト11.12とデバッガ
10とで共通のC0MM0Nセクション100,110
゜120を持つ。前記COM M ON’セクション1
00.110.120は全て同じ名称とする。このよう
なオブジェクト11.12とデバッガ10をダイナミッ
ク或いはスタテックリンクで結合した場合、COMMO
Nセクションは同じ名称である場合には1つのセクショ
ンに統一される。本発明はこのことを利用して同じ名称
を持った前記COMMONセクション100,110.
120を1つにまとめた形でリンクする。そして、他の
コボルオブジェクト11、フォートランオブジェクト1
2及びデバッガ10は1つにリンクされ、それぞれ、リ
ンク後のコボルオブジェクト15、フォートランオブジ
ェクト16及びデバッガ14となる。リンクされてでき
た1つのCOMMONセクション130はリンクされた
デバッガ14、コボルオブジェクト15、フォートラン
オブジェクト16からなるモジュールに共通の機能であ
る。
本発明ではデバッガを呼び出すために、デバッガに通知
する呼出し命令を各オブジェクト11゜12上に生成さ
せる。また、コンパイラが出力するC0MM0Nセクシ
ョン110,120はオール0の状態で初期値を持たず
、デバッガがもっているCOMMONセクション100
にのみデバッガを呼び出すためのビットと自分のデバッ
ガのアドレスを持たせる。従って、リンクされた場合に
はデバッガのもっているC0MM0Nセクシツン100
が有効になり、プログラムは自動的にデバッガを呼ぶこ
と−になる。呼び出されたアドレスを指定することによ
りデバッガが起動されると、デバッガはプログラムから
通知される毎にその言語を自動認識し、各言語対応のシ
ンポリンク処理を行うことが可能となる。このようにし
て、本発明は複数言語からなるプログラムで各言語ごと
にシンポリンクデバッグを可能とする。 ′〔作
用〕 コンパイラが出力するCOMMONセクションとデバッ
ガが持つCOMMONセクションを同じ名称にしてリン
クした場合、COMMONセクションは同じ名称に対し
ては1つにまとめられ、1つのセクションになる。この
ことを利用して、本発明では各言語毎の出力オブジェク
トとデバッガで共通のCOMMONセクションを持つよ
うにする。そして、本発明では、1つに統一化された前
記C0MM0Nセクシツン内のフラグがデバッガ走行中
となることを示すとき、デバッガへ通知する。その通知
を可能にするためにコンパイラがデバッガへの呼出し命
令をオブジェクト中に自動生成する。
する呼出し命令を各オブジェクト11゜12上に生成さ
せる。また、コンパイラが出力するC0MM0Nセクシ
ョン110,120はオール0の状態で初期値を持たず
、デバッガがもっているCOMMONセクション100
にのみデバッガを呼び出すためのビットと自分のデバッ
ガのアドレスを持たせる。従って、リンクされた場合に
はデバッガのもっているC0MM0Nセクシツン100
が有効になり、プログラムは自動的にデバッガを呼ぶこ
と−になる。呼び出されたアドレスを指定することによ
りデバッガが起動されると、デバッガはプログラムから
通知される毎にその言語を自動認識し、各言語対応のシ
ンポリンク処理を行うことが可能となる。このようにし
て、本発明は複数言語からなるプログラムで各言語ごと
にシンポリンクデバッグを可能とする。 ′〔作
用〕 コンパイラが出力するCOMMONセクションとデバッ
ガが持つCOMMONセクションを同じ名称にしてリン
クした場合、COMMONセクションは同じ名称に対し
ては1つにまとめられ、1つのセクションになる。この
ことを利用して、本発明では各言語毎の出力オブジェク
トとデバッガで共通のCOMMONセクションを持つよ
うにする。そして、本発明では、1つに統一化された前
記C0MM0Nセクシツン内のフラグがデバッガ走行中
となることを示すとき、デバッガへ通知する。その通知
を可能にするためにコンパイラがデバッガへの呼出し命
令をオブジェクト中に自動生成する。
次に本発明のデバッガにおける共通セクション方式を図
面を参照して説明する。
面を参照して説明する。
第1図は本発明のデバッガにおける共通セクション方式
の構成ブロック図である0本発明はプログラム実行時に
全走行しているセクションがどの言語から生成され、ど
のコンパイラで作ったオブジェクトであるかを認識する
。一般にCOMMONセクションというのは同じ名称で
ある場合、すなわちコンパイラが出力する各言語(例え
ばコボル、フォートラン言語)のC0MM0Nセクショ
ン110.120とデバッガ10が持っているCOMM
ONセクション100が同じ名称である場合、リンクさ
れた後のC0MM0Nセクシツン130は同じ名前のC
0MM0N−9クシヨンに対しては1つにまとめられる
。この特徴を利用し、プログラムリンク時にはデバッガ
のC0MM0Nセクシツン100を有効にし、デバッガ
のC0MM0Nセクシツン130内にあるデバッガのア
ドレスをアクセスすることにより、各言語毎のシンポリ
ンクデバッグを可能とする。
の構成ブロック図である0本発明はプログラム実行時に
全走行しているセクションがどの言語から生成され、ど
のコンパイラで作ったオブジェクトであるかを認識する
。一般にCOMMONセクションというのは同じ名称で
ある場合、すなわちコンパイラが出力する各言語(例え
ばコボル、フォートラン言語)のC0MM0Nセクショ
ン110.120とデバッガ10が持っているCOMM
ONセクション100が同じ名称である場合、リンクさ
れた後のC0MM0Nセクシツン130は同じ名前のC
0MM0N−9クシヨンに対しては1つにまとめられる
。この特徴を利用し、プログラムリンク時にはデバッガ
のC0MM0Nセクシツン100を有効にし、デバッガ
のC0MM0Nセクシツン130内にあるデバッガのア
ドレスをアクセスすることにより、各言語毎のシンポリ
ンクデバッグを可能とする。
本発明では、第2図に示すように、各言語のオブジェク
)15.16にデバッガ14を呼ぶ機能がある。すなわ
ちリンク後のデバッガ14を呼び出すための呼出し命令
20をソースプログラム22をオブジェクト21に変換
するコンパイラが出力する各オブジェクト21内に設け
る。コンパイルオプションで、もし、デバッガ使用モー
ドが指定された場合に、生成オブジェクト21のプロロ
ーグ処理用のコンパイラ生成部(機械語)20を前記呼
出し命令として自動的にコンパイラが生成する。例えば
、第2図のソースプログラム22はAda言語で表現さ
れた高級言語で、PROCEDURHの名前がAでbe
gin−endから構成されるプログラムが以下に書か
れている。これをコンパイルにかけるとデバッガ使用モ
ード時にはオブジェクトとして第2図の21に示される
ように、IF文からENDIFまでのコンパイラ生成部
20がデバッガに通知するための命令として自動的に生
成される。この生成部20の内容は、COMMONセク
ション内の特定のビットが有効になった時デバッガアド
レスに向かってデバッガを呼び出すことを意味する。
)15.16にデバッガ14を呼ぶ機能がある。すなわ
ちリンク後のデバッガ14を呼び出すための呼出し命令
20をソースプログラム22をオブジェクト21に変換
するコンパイラが出力する各オブジェクト21内に設け
る。コンパイルオプションで、もし、デバッガ使用モー
ドが指定された場合に、生成オブジェクト21のプロロ
ーグ処理用のコンパイラ生成部(機械語)20を前記呼
出し命令として自動的にコンパイラが生成する。例えば
、第2図のソースプログラム22はAda言語で表現さ
れた高級言語で、PROCEDURHの名前がAでbe
gin−endから構成されるプログラムが以下に書か
れている。これをコンパイルにかけるとデバッガ使用モ
ード時にはオブジェクトとして第2図の21に示される
ように、IF文からENDIFまでのコンパイラ生成部
20がデバッガに通知するための命令として自動的に生
成される。この生成部20の内容は、COMMONセク
ション内の特定のビットが有効になった時デバッガアド
レスに向かってデバッガを呼び出すことを意味する。
すなわち、BITという変数が1であれば、コールデバ
ッガ(CALL DRUG )という命令が働き、デバ
ッガが起動されることになる。
ッガ(CALL DRUG )という命令が働き、デバ
ッガが起動されることになる。
このAda言語のオブジェクト21でBITという変数
が0である場合にはデバッガは呼ばれない。
が0である場合にはデバッガは呼ばれない。
デバッガがリンクされる場合にはB”IT変数はlとな
りデバッガが呼ばれることになり、BITという変数が
0(コンパイラ出力のままの値)である場合にはオブジ
ェクト単独で走行できる0本発明ではデバッガ使用−−
ドが指定され、且つデバッガとリンクされた場合のみ前
記デバッガ呼出命令(CALL DBUG )が実行さ
れる。
りデバッガが呼ばれることになり、BITという変数が
0(コンパイラ出力のままの値)である場合にはオブジ
ェクト単独で走行できる0本発明ではデバッガ使用−−
ドが指定され、且つデバッガとリンクされた場合のみ前
記デバッガ呼出命令(CALL DBUG )が実行さ
れる。
次に第3図を用いて、本発明のデバッガにおける共通セ
フシラン方式を更に詳細に説明する0例えばコボル言語
とフォートラン言語を共に含む複数言語からなるプログ
ラムに対してコンパイルをデバッガ指定とした場合には
各言語のオブジェク)11.12が生成される0例えば
第3図ではコボルオブジェクト11、フォートランオブ
ジェクト12が生成される0本発明では各言語毎の出力
オブジェク)11.12とデバッガ10で共通のC0M
MM0Nセクシ57100.110.120を持つ、C
OMMONセクションは同じ名称で第3図の実施例では
全てXXXとなっている。そして、本発明では第2図で
説明したように各言語のオブジェクト11.12にリン
ク後のデバッガ14を呼ぶ機能がある。すなわちリンク
後のデバッガ14を呼び出すための呼出し命令20をコ
ンパイラが出力する各オブジェクト11.12内に設け
る。IF文からEND IFまでのコンパイラ生成部2
0がデバッガに通知されるための命令として自動的に生
成される。この生成部20の内容はリンク後のCOMM
ONセクション130・内の特定のビット(■で示され
る)が有効になった時デバッガアドレス(A (デバッ
ガエントリ)〕に向かってデバッガ14を呼び出すこと
を意味する。すなわち、BITという変数が1であれば
、コールデバッガ(CALL DBUG)という命令が
働き、デバッガが呼出されることになる。コボルオブジ
ェクト11、フォートランオブジェクト12及びデバッ
ガ10がダイナミック或いはスタテックリンクで結合さ
れた場合、COMMONセクション100゜110.1
20は同じ名称であるので1つのセクション130に統
一される。また、他のコボルオブジェクト、フォートラ
ンオブジェクト及びデバッガは別々にリンクされ、それ
ぞれ、リンク後のモジュール15.16及び14となる
。リンクされて出来た1つのCOMMONセクション1
30は全部のモジュールに共通の機能である。リンクす
る場合に、リンク後のCOMMONセクションをデバッ
ガのCOMMONセクション120とするために、各オ
ブジェクトのC0MM0Nセクション100.110の
内容を全て零のall Oとし、初期値のない状態にす
る。一方、デバッガ10のCOMMONセクション12
0の内容はデバッガへのアドレス(A (デバッガエン
トリ)〕とし、初期値ありの属性を持つ、また、先頭に
有効ビット(■で示される)を入れておく。このように
、デバッガ10はコンパイラが生成するC0MM0Nセ
クション100,110と同一名で、先頭ビットがオン
の値及びコンパイラ生成オブジェクトの呼出し用デバッ
ガアドレスを〜初期値として持つCOMMONセクショ
ン120を準備する。更にこのCOMMONセクション
120のサイズはコンパイラ出力のものより大きいもの
とする。リンク(ローダリンク機能を含む)時にCOM
MONセクションが1個なるとき、“初期値を持つもの
/サイズの大きいもの”を優先することよりデバッガ1
0所有のCOMMONセクション120が有効COMM
ONセクションとなる。これにより、各プログラムのプ
ロローグ部20に制御が渡ると自動的にデバッガが呼出
される。デバッガは各言語プロローグ処理部20での呼
出し元アドレスより走行中セクション14.15または
16の先頭アドレスを得る。そしてそのセクション14
.15または16の言語種別を識別し、どのようなシン
ボリック変換を行えば良いかを知ることができる。すな
わち、デバッガは呼び出されたアドレスより、そのセク
ションの言語種別を得ることにより、デバッガはプログ
ラムから通知される毎にその言語を自動認識し、各言語
対応のシンボリック処理を行うことが可能となる。
フシラン方式を更に詳細に説明する0例えばコボル言語
とフォートラン言語を共に含む複数言語からなるプログ
ラムに対してコンパイルをデバッガ指定とした場合には
各言語のオブジェク)11.12が生成される0例えば
第3図ではコボルオブジェクト11、フォートランオブ
ジェクト12が生成される0本発明では各言語毎の出力
オブジェク)11.12とデバッガ10で共通のC0M
MM0Nセクシ57100.110.120を持つ、C
OMMONセクションは同じ名称で第3図の実施例では
全てXXXとなっている。そして、本発明では第2図で
説明したように各言語のオブジェクト11.12にリン
ク後のデバッガ14を呼ぶ機能がある。すなわちリンク
後のデバッガ14を呼び出すための呼出し命令20をコ
ンパイラが出力する各オブジェクト11.12内に設け
る。IF文からEND IFまでのコンパイラ生成部2
0がデバッガに通知されるための命令として自動的に生
成される。この生成部20の内容はリンク後のCOMM
ONセクション130・内の特定のビット(■で示され
る)が有効になった時デバッガアドレス(A (デバッ
ガエントリ)〕に向かってデバッガ14を呼び出すこと
を意味する。すなわち、BITという変数が1であれば
、コールデバッガ(CALL DBUG)という命令が
働き、デバッガが呼出されることになる。コボルオブジ
ェクト11、フォートランオブジェクト12及びデバッ
ガ10がダイナミック或いはスタテックリンクで結合さ
れた場合、COMMONセクション100゜110.1
20は同じ名称であるので1つのセクション130に統
一される。また、他のコボルオブジェクト、フォートラ
ンオブジェクト及びデバッガは別々にリンクされ、それ
ぞれ、リンク後のモジュール15.16及び14となる
。リンクされて出来た1つのCOMMONセクション1
30は全部のモジュールに共通の機能である。リンクす
る場合に、リンク後のCOMMONセクションをデバッ
ガのCOMMONセクション120とするために、各オ
ブジェクトのC0MM0Nセクション100.110の
内容を全て零のall Oとし、初期値のない状態にす
る。一方、デバッガ10のCOMMONセクション12
0の内容はデバッガへのアドレス(A (デバッガエン
トリ)〕とし、初期値ありの属性を持つ、また、先頭に
有効ビット(■で示される)を入れておく。このように
、デバッガ10はコンパイラが生成するC0MM0Nセ
クション100,110と同一名で、先頭ビットがオン
の値及びコンパイラ生成オブジェクトの呼出し用デバッ
ガアドレスを〜初期値として持つCOMMONセクショ
ン120を準備する。更にこのCOMMONセクション
120のサイズはコンパイラ出力のものより大きいもの
とする。リンク(ローダリンク機能を含む)時にCOM
MONセクションが1個なるとき、“初期値を持つもの
/サイズの大きいもの”を優先することよりデバッガ1
0所有のCOMMONセクション120が有効COMM
ONセクションとなる。これにより、各プログラムのプ
ロローグ部20に制御が渡ると自動的にデバッガが呼出
される。デバッガは各言語プロローグ処理部20での呼
出し元アドレスより走行中セクション14.15または
16の先頭アドレスを得る。そしてそのセクション14
.15または16の言語種別を識別し、どのようなシン
ボリック変換を行えば良いかを知ることができる。すな
わち、デバッガは呼び出されたアドレスより、そのセク
ションの言語種別を得ることにより、デバッガはプログ
ラムから通知される毎にその言語を自動認識し、各言語
対応のシンボリック処理を行うことが可能となる。
デバッガとのリンクが行われないときは、オブジェクト
11.12のCOMMONセクション100.110が
1つになるが、デバッガアドレスはなく、デバッガを結
合しない状態で各オブジェクト11.12が単独でその
まま走行する。
11.12のCOMMONセクション100.110が
1つになるが、デバッガアドレスはなく、デバッガを結
合しない状態で各オブジェクト11.12が単独でその
まま走行する。
本発明は複数言語からなるプログラムで各言語毎にシン
ポリンクデバッグを可能とする効果がある。従って、各
プログラムをそのプログラムのアルゴリズムに最適な言
語を用いて書いた場合でもデバッグが可能となる。
ポリンクデバッグを可能とする効果がある。従って、各
プログラムをそのプログラムのアルゴリズムに最適な言
語を用いて書いた場合でもデバッグが可能となる。
第1図は本発明のデバッガにおける共通セクション方式
の構成ブロック図、 第2図は本発明のデバッガにおける共通セクション方式
における各デバッガ呼出し命令を含むオブジェクトモジ
ュールの実施例図、 第3図は本発明のデバッガにおける共通セクション方式
を説明するためのオブジェクトモジュールとデバッガと
のリンク方式を示す詳細図である。 10・・・リンク前のデバッガ、 11.12・・・各言語のオブジェクト、14・・・リ
ンク後のデバッガ、 15.16・・・リンク後の各言語のオブジェクト、 20・・・デバッガ呼出し命令を含むコンパイラ生成部
、 100・・・リンク前のデバッガのC0MM0Nセクシ
ツン、 110.120・・・各言語のCOMMONセクション
、 130・・・リンク後のC0MM0Nセクシツン。
の構成ブロック図、 第2図は本発明のデバッガにおける共通セクション方式
における各デバッガ呼出し命令を含むオブジェクトモジ
ュールの実施例図、 第3図は本発明のデバッガにおける共通セクション方式
を説明するためのオブジェクトモジュールとデバッガと
のリンク方式を示す詳細図である。 10・・・リンク前のデバッガ、 11.12・・・各言語のオブジェクト、14・・・リ
ンク後のデバッガ、 15.16・・・リンク後の各言語のオブジェクト、 20・・・デバッガ呼出し命令を含むコンパイラ生成部
、 100・・・リンク前のデバッガのC0MM0Nセクシ
ツン、 110.120・・・各言語のCOMMONセクション
、 130・・・リンク後のC0MM0Nセクシツン。
Claims (1)
- 【特許請求の範囲】 1)複数言語からなるソースプログラムをオブジェクト
プログラムに変換するコンパイラが出力する各言語のオ
ブジェクトプログラム(11、12)中にデバッガ(1
4)を呼出すための呼出し命令を生成する生成手段と、 前記コンパイラが出力する前記各言語の各COMMON
セクション(110、120)とリンクする前のデバッ
ガ(10)が持つCOMMONセクション(100)を
共通リンクした場合、リンク後の共通のCOMMONセ
クション(130)の形成は前記デバッガ(10)の持
つCOMMONセクション(100)を優先的に有効と
する制御手段と、 前記各言語のオブジェクトを走行中に前記呼出し命令が
起動されたとき前記共通のCOMMONセクション(1
30)内のフラグが有効になり、かつ前記COMMON
セクション(130)内に格納されたデバッガアドレス
を介してリンク後のデバッガ(14)を起動する起動手
段と、 前記デバッガ(14)が走行された場合に走行中のセク
ションがどの言語に対応するオブジェクトであるのかを
デバッガ自身が自動的に認識する言語識別手段とを有す
ることを特徴とするデバッガにおける共通セクション方
式。 2)前記制御手段は、前記各言語の出力する各COMM
ONセクション(110、120)とリンクする前のデ
バッガ(10)が持つCOMMONセクション(100
)とを同じ名称にし、更に、各言語の各出力するCOM
MONセクション(110、120)の内容は零で初期
値なしの状態にし、リンク前のデバッガ(10)のCO
MMONセクション(100)の内容はデバッガのアド
レスを含む初期値ありの状態にし、リンク時に初期値あ
りのCOMMONセクションを優先的に有効にすること
を特徴とする特許請求の範囲第1項記載のデバッガにお
ける共通セクション方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62253518A JPH0196741A (ja) | 1987-10-09 | 1987-10-09 | デバッガにおける共通セクション方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62253518A JPH0196741A (ja) | 1987-10-09 | 1987-10-09 | デバッガにおける共通セクション方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0196741A true JPH0196741A (ja) | 1989-04-14 |
Family
ID=17252482
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62253518A Pending JPH0196741A (ja) | 1987-10-09 | 1987-10-09 | デバッガにおける共通セクション方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0196741A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0434625A (ja) * | 1990-05-30 | 1992-02-05 | Yokogawa Electric Corp | デバッグ・サポート装置 |
-
1987
- 1987-10-09 JP JP62253518A patent/JPH0196741A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0434625A (ja) * | 1990-05-30 | 1992-02-05 | Yokogawa Electric Corp | デバッグ・サポート装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2666847B2 (ja) | 異種言語間連絡方式 | |
| USRE38104E1 (en) | Method and apparatus for resolving data references in generated code | |
| US6877155B1 (en) | System and method for generating target language code utilizing an object oriented code generator | |
| JPH04247536A (ja) | オブジェクトの実行時データ形式の識別を支援するコンピュータソフトウェアコンパイルシステム及びデバッガ | |
| US20100229161A1 (en) | Compile method and compiler | |
| JPH0196741A (ja) | デバッガにおける共通セクション方式 | |
| JPH11110256A (ja) | プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体 | |
| JP2004038279A (ja) | コンパイラ、演算処理システム及び演算処理方法 | |
| JP3682050B2 (ja) | 組込みソフトウェア開発装置 | |
| CN118192952B (zh) | 着色器文件的生成方法、装置、存储介质及程序产品 | |
| JP3596570B2 (ja) | クラスの主記憶装置への配置方法 | |
| JP3915208B2 (ja) | コンパイル装置 | |
| JPS58169637A (ja) | コンパイル処理方式 | |
| JPH0196735A (ja) | シンボリック情報を持つオブジェクトモジュールのリンク結合方式 | |
| JP2527055B2 (ja) | タスク内共有変数検出処理方式 | |
| JP2001142719A (ja) | コンパイラ装置及びコンパイラプログラムを記録した記録媒体 | |
| JP2807162B2 (ja) | プログラム翻訳装置 | |
| JP2682215B2 (ja) | 並列処理時の手続き呼出し方式 | |
| JPS63292338A (ja) | 最適化プログラムデバツグ方式 | |
| JPH05197589A (ja) | テストプログラム自動生成方式 | |
| JP2001014172A (ja) | プログラム変換装置 | |
| JPS6398031A (ja) | 添字式の値検査方式 | |
| JPH09258969A (ja) | プログラム開発装置及びプログラム開発方法 | |
| JPH0612259A (ja) | コンパイラ処理方式 | |
| JPH10312312A (ja) | 仕様によって動作が変わるc言語の計算機プログラム検査処理方法およびプログラム記憶媒体 |