JP3105546B2 - アセンブラのシンボル・デバッグ情報処理方式 - Google Patents
アセンブラのシンボル・デバッグ情報処理方式Info
- Publication number
- JP3105546B2 JP3105546B2 JP02401773A JP40177390A JP3105546B2 JP 3105546 B2 JP3105546 B2 JP 3105546B2 JP 02401773 A JP02401773 A JP 02401773A JP 40177390 A JP40177390 A JP 40177390A JP 3105546 B2 JP3105546 B2 JP 3105546B2
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- assembler
- debug information
- label
- compiler
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Description
【0001】
【産業上の利用分野】本発明は、言語処理プログラムの
アセンブラに関し、特に、Cコンパイラなどで自動生成
したレーベルを有するアセンブラ・ソース・プログラム
情報のシンボル・デバッグ情報処理方式に関する。
アセンブラに関し、特に、Cコンパイラなどで自動生成
したレーベルを有するアセンブラ・ソース・プログラム
情報のシンボル・デバッグ情報処理方式に関する。
【0002】
【従来の技術】プログラムを作成する場合、図2に示す
ような3つの手法がある。(A)は、アセンブラ言語の
みの記述の場合で、オブジェクト効率は良いがプログラ
ムの生産性は低い。(B)は、C言語のみの記述の場合
で、プログラムの生産性は良いが、オブジェクト効率は
余り良くない。(C)は、上述の2つを組合せた手法で
ある。つまり、プログラムの生産性を向上させるため
に、C言語を用いてプログラムを作成し、割込み制御や
サーボ制御などのようにオブジェクト効率を優先とする
箇所には、図3のようにCソース中にアセンブラ・ソー
スを記述してプログラムを作成する。この場合、作成し
たプログラムをCコンパイラに入力してコンパイル処理
した後、コンパイラが出力した図4のようなファイルを
アセンブラに入力して、アセンブル処理を行なうことと
なる。
ような3つの手法がある。(A)は、アセンブラ言語の
みの記述の場合で、オブジェクト効率は良いがプログラ
ムの生産性は低い。(B)は、C言語のみの記述の場合
で、プログラムの生産性は良いが、オブジェクト効率は
余り良くない。(C)は、上述の2つを組合せた手法で
ある。つまり、プログラムの生産性を向上させるため
に、C言語を用いてプログラムを作成し、割込み制御や
サーボ制御などのようにオブジェクト効率を優先とする
箇所には、図3のようにCソース中にアセンブラ・ソー
スを記述してプログラムを作成する。この場合、作成し
たプログラムをCコンパイラに入力してコンパイル処理
した後、コンパイラが出力した図4のようなファイルを
アセンブラに入力して、アセンブル処理を行なうことと
なる。
【0003】一般に、利用者は(C)のプログラム手法
をよく使う。
をよく使う。
【0004】しかし、言語処理プログラムのCコンパイ
ラは、C言語の「if」,「while」,「cas
e」などの制御分を処理する際、Cコンパイラが自動生
成した多くのレーベルを用いたアセンブル・ソース・プ
ログラム情報を生成する。図4の39行目に示す「?L
0003」のように先頭に「?L」の付くレーベルが自
動生成されたレーベルである。
ラは、C言語の「if」,「while」,「cas
e」などの制御分を処理する際、Cコンパイラが自動生
成した多くのレーベルを用いたアセンブル・ソース・プ
ログラム情報を生成する。図4の39行目に示す「?L
0003」のように先頭に「?L」の付くレーベルが自
動生成されたレーベルである。
【0005】Cコンパイラが自動生成したレーベルは、
アセンブラがアセンブル処理する際には必要なレーベル
ではあるが、ユーザがCソースレベルのデバッグを行な
う際には、不要なレーベルである。しかし、言語処理プ
ログラムのアセンブラは、Cコンパイラが自動生成した
レーベルか否かを判別することなくすべてのレーベルを
シンボル・デバッグ情報として出力していた。
アセンブラがアセンブル処理する際には必要なレーベル
ではあるが、ユーザがCソースレベルのデバッグを行な
う際には、不要なレーベルである。しかし、言語処理プ
ログラムのアセンブラは、Cコンパイラが自動生成した
レーベルか否かを判別することなくすべてのレーベルを
シンボル・デバッグ情報として出力していた。
【0006】
【発明が解決しようとする課題】ユーザがデバッグする
際に不要なレーベルであるCコンパイラが自動生成した
レーベルにより、シンボル・デバッグ情報量が過剰とな
っていた。そのため、リンカおよびデバッガがシンボル
・デバッグ情報をメモリ上に取り込めなくなるという問
題点があった。また、シンボル情報量が多いため、リン
カおよびデバッガがシンボルの検索を行なう場合に無駄
なシンボルに対しても検索を行なう必要があり、リンカ
およびデバッガの性能が悪くなるという問題点があっ
た。
際に不要なレーベルであるCコンパイラが自動生成した
レーベルにより、シンボル・デバッグ情報量が過剰とな
っていた。そのため、リンカおよびデバッガがシンボル
・デバッグ情報をメモリ上に取り込めなくなるという問
題点があった。また、シンボル情報量が多いため、リン
カおよびデバッガがシンボルの検索を行なう場合に無駄
なシンボルに対しても検索を行なう必要があり、リンカ
およびデバッガの性能が悪くなるという問題点があっ
た。
【0007】
【課題を解決するための手段】アセンブラのアセンブル
処理する手段の中に、特定のレーベルを判別する手段
と、特定のレーベルと判別したレーベルをシンボル・デ
バッグ情報として出力しないようにする手段を有する。
処理する手段の中に、特定のレーベルを判別する手段
と、特定のレーベルと判別したレーベルをシンボル・デ
バッグ情報として出力しないようにする手段を有する。
【0008】
【実施例】本発明の実施例について図面を参照してより
詳しく説明する。
詳しく説明する。
【0009】図1は、本発明の一実施例のシステム構成
図である。アセンブラ・システム101は、アセンブラ
・ソース・プログラム情報を入力ファイル102から入
力する入力部103と、入力したアセンブラ・ソース・
プログラム情報をアセンブル処理するアセンブル処理部
104と、アセンブルした結果を出力ファイル105に
出力する出力部106から構成され、アセンブル処理部
104の中に特定のレーベルを判別する特定レーベル判
別部107と、特定レーベルと判断したレーベルをシン
ボル・デバッグ情報として出力しないようにするシンボ
ル除去部108を有する。
図である。アセンブラ・システム101は、アセンブラ
・ソース・プログラム情報を入力ファイル102から入
力する入力部103と、入力したアセンブラ・ソース・
プログラム情報をアセンブル処理するアセンブル処理部
104と、アセンブルした結果を出力ファイル105に
出力する出力部106から構成され、アセンブル処理部
104の中に特定のレーベルを判別する特定レーベル判
別部107と、特定レーベルと判断したレーベルをシン
ボル・デバッグ情報として出力しないようにするシンボ
ル除去部108を有する。
【0010】図3は、Cコンパイラに入力する利用者が
作成したソース・プログラム情報のイメージである。
作成したソース・プログラム情報のイメージである。
【0011】図4は、Cコンパイラが第3図のソース・
プログラム情報を処理して得られたところの入力ファイ
ル102のアセンブラ・ソース・プログラム情報のイメ
ージである。
プログラム情報を処理して得られたところの入力ファイ
ル102のアセンブラ・ソース・プログラム情報のイメ
ージである。
【0012】利用者は、Cコンパイラで処理して得られ
たアセンブラ・ソース・プログラム情報である入力ファ
イル102をアセンブラ・システム101に入力する。
入力されたアセンブラ・ソース・プログラム情報は、入
力部103により入力され、アセンブル処理部104に
伝えられる。アセンブル処理部104では、アセンブル
処理を行なった後、特定レーベル判別部107とシンボ
ル除去部108によって、Cコンパイラなどによって自
動生成されたレーベルと判断されたシンボル・デバッグ
情報は除去され、アセンブル処理された情報が、出力部
106によって出力ファイル105となる。
たアセンブラ・ソース・プログラム情報である入力ファ
イル102をアセンブラ・システム101に入力する。
入力されたアセンブラ・ソース・プログラム情報は、入
力部103により入力され、アセンブル処理部104に
伝えられる。アセンブル処理部104では、アセンブル
処理を行なった後、特定レーベル判別部107とシンボ
ル除去部108によって、Cコンパイラなどによって自
動生成されたレーベルと判断されたシンボル・デバッグ
情報は除去され、アセンブル処理された情報が、出力部
106によって出力ファイル105となる。
【0013】次に、特定レーベル判別部107とシンボ
ル除去部108によって、Cコンパイラなどによって自
動生成されたレーベルと判断されたシンボル・デバッグ
情報が除去される処理フローを図5を用いて詳細に説明
する。なお、図6は、アセンブル処理されて得られたシ
ンボル・デバッグ情報テーブルである。
ル除去部108によって、Cコンパイラなどによって自
動生成されたレーベルと判断されたシンボル・デバッグ
情報が除去される処理フローを図5を用いて詳細に説明
する。なお、図6は、アセンブル処理されて得られたシ
ンボル・デバッグ情報テーブルである。
【0014】まず、シンボル・デバッグ情報テーブルの
個数分の処理を行なうためにもうけたカウンタをゼロで
初期化する(ステップ501)。次に、カウンタが示す
図6のシンボル・デバッグ情報のテーブルの先頭2文字
の文字列が「?L」か否かを判別し、「?L」である場
合は次のステップ503をスキップする(スキップ50
2)。「?L」でない場合はそのテーブルの内容をシン
ボル・デバッグ情報として、出力部106に伝える(ス
テップ503)。次に、カウンタを1つインクリメント
し(ステップ504)、カウンタの値が図6のシンボル
・デバッグ情報テーブルの登録個数分以上であるか否か
を判断し、個数分以上であればこの処理フローは終了
し、個数分未満であればステップ302にもどる(ステ
ップ505)。
個数分の処理を行なうためにもうけたカウンタをゼロで
初期化する(ステップ501)。次に、カウンタが示す
図6のシンボル・デバッグ情報のテーブルの先頭2文字
の文字列が「?L」か否かを判別し、「?L」である場
合は次のステップ503をスキップする(スキップ50
2)。「?L」でない場合はそのテーブルの内容をシン
ボル・デバッグ情報として、出力部106に伝える(ス
テップ503)。次に、カウンタを1つインクリメント
し(ステップ504)、カウンタの値が図6のシンボル
・デバッグ情報テーブルの登録個数分以上であるか否か
を判断し、個数分以上であればこの処理フローは終了
し、個数分未満であればステップ302にもどる(ステ
ップ505)。
【0015】
【発明の効果】以上、説明したように本発明のアセンブ
ラのシンボル・デバッグ情報処理方式は、Cコンパイラ
などが自動生成したレーベルをアセンブラのアセンブラ
処理時に判別し、シンボル・デバッグ情報としてそのレ
ーベルを除去することにより、シンボル・デバッグ情報
量を低減させ、リンカおよびデバッガ上でのメモリ制限
内でのシンボル情報の有効利用が可能となるとともに、
無駄なシンボルの検索を省くことにより性能を改善する
ことが可能となる。
ラのシンボル・デバッグ情報処理方式は、Cコンパイラ
などが自動生成したレーベルをアセンブラのアセンブラ
処理時に判別し、シンボル・デバッグ情報としてそのレ
ーベルを除去することにより、シンボル・デバッグ情報
量を低減させ、リンカおよびデバッガ上でのメモリ制限
内でのシンボル情報の有効利用が可能となるとともに、
無駄なシンボルの検索を省くことにより性能を改善する
ことが可能となる。
【図1】本発明の実施例のアセンブラ・システムの構成
図である。
図である。
【図2】プログラム作成手法例図である。
【図3】利用者が作成したソース・プログラム情報のイ
メージ図である。
メージ図である。
【図4】アセンブラ・ソース・プログラム情報のイメー
ジ図である。
ジ図である。
【図5】特定レーベルを判定・除去するフロー図であ
る。
る。
【図6】シンボル・デバッグ情報テーブル図である。
101 アセンブラ・システム 102 入力ファイル 103 入力部 104 アセンブル処理部 105 出力ファイル 106 出力部 107 特定レーベル判別部 108 シンボル除去部 501 カウンタの初期化 502 先頭文字列比較 503 シンボル文字列出力 504 カウンタのインクリメント 505 カウンタオーバーチェック
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−260548(JP,A) 日立マイコン技報,Vol.4,N O.2,1990,P.91〜97 情報処理学会研究報告,Vol.86, No.34,1986,P.47.2.1〜47. 2.8 横河技報,Vol.32,No.1, 1988,P.11〜16 (58)調査した分野(Int.Cl.7,DB名) G06F 11/28,9/44 JICSTファイル
Claims (1)
- 【請求項1】ソースプログラムをコンパイルしてアセン
ブラで表現された入力ファイルを作成するコンパイラ
と、前記入力ファイルをアセンブル処理してオブジェク
ト情報およびシンボル・デバッグ情報を含む出力ファイ
ルを作成するアセンブラと、前記出力ファイルのシンボ
ル・デバッグ情報を取り込んで前記ソース・プログラム
のデバッグを行うデバッガとを有するアセンブラのシン
ボル・デバッグ情報処理方式において、前記アセンブラ
は、前記入力ファイル中の、前記ソース・プログラムの
特定の制御文に対応して前記コンパイラで自動生成され
た特定のレーベルを判別する手段と、当該レーベルを前
記シンボル・デバッグ情報から除く手段とを含むことを
特徴とするアセンブラのシンボル・デバッグ情報処理方
式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02401773A JP3105546B2 (ja) | 1990-12-13 | 1990-12-13 | アセンブラのシンボル・デバッグ情報処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02401773A JP3105546B2 (ja) | 1990-12-13 | 1990-12-13 | アセンブラのシンボル・デバッグ情報処理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04215143A JPH04215143A (ja) | 1992-08-05 |
JP3105546B2 true JP3105546B2 (ja) | 2000-11-06 |
Family
ID=18511603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02401773A Expired - Fee Related JP3105546B2 (ja) | 1990-12-13 | 1990-12-13 | アセンブラのシンボル・デバッグ情報処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3105546B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2672968B2 (ja) * | 1988-04-12 | 1997-11-05 | 富士通株式会社 | デバッグ用ソースリスト出力処理方式 |
-
1990
- 1990-12-13 JP JP02401773A patent/JP3105546B2/ja not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
情報処理学会研究報告,Vol.86,No.34,1986,P.47.2.1〜47.2.8 |
日立マイコン技報,Vol.4,NO.2,1990,P.91〜97 |
横河技報,Vol.32,No.1,1988,P.11〜16 |
Also Published As
Publication number | Publication date |
---|---|
JPH04215143A (ja) | 1992-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH07141201A (ja) | 2パスコンパイラのための改良された方法 | |
JPH09212356A (ja) | インタープリタ言語で記述されたコンピュータ用ソフトウェアの保護システム | |
JP3105546B2 (ja) | アセンブラのシンボル・デバッグ情報処理方式 | |
US6983454B2 (en) | Extended “run to” function | |
JP3049814B2 (ja) | マイクロコンピュータの言語処理装置 | |
JP3196675B2 (ja) | 言語処理方式 | |
JP3461185B2 (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
JP2000207246A (ja) | デバッグ支援装置及び方法並びにデバッグ支援用ソフトウェアを記録した記録媒体 | |
Spencer | How to Steal Code-or-Inventing The Wheel Only Once. | |
JPH0863369A (ja) | 最適化情報出力方式 | |
JPH06242942A (ja) | ソースコードレベルデバッグ装置 | |
Tanenbaum et al. | The people's time sharing system | |
JP2990701B2 (ja) | ファイル編集方式 | |
JP2827724B2 (ja) | プログラムデバッグ処理方法 | |
JPH06250881A (ja) | シンボリックデバッグ方式 | |
JPS6367695B2 (ja) | ||
JPH05108404A (ja) | デバツガシステム | |
JPH0546434A (ja) | プログラムデバツグ方式 | |
JPH06259278A (ja) | デバッグ情報の獲得方式 | |
Cowling et al. | MICROSIM as a teaching aid | |
JPH05108372A (ja) | コンパイラ最適化処理内容の出力方式 | |
JPH0495139A (ja) | 言語処理プログラムのクロスリファレンス出力方式 | |
JPH05204699A (ja) | デバッグ時識別子探索方式 | |
JPH11272500A (ja) | デバッグ方法ならびにそのためのデバッグ装置およびプログラム記憶媒体 | |
Krause | Prolog‐2 Professional |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19970304 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080901 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |