JPH05298148A - ファイル作成装置 - Google Patents

ファイル作成装置

Info

Publication number
JPH05298148A
JPH05298148A JP4102868A JP10286892A JPH05298148A JP H05298148 A JPH05298148 A JP H05298148A JP 4102868 A JP4102868 A JP 4102868A JP 10286892 A JP10286892 A JP 10286892A JP H05298148 A JPH05298148 A JP H05298148A
Authority
JP
Japan
Prior art keywords
file
symbol
backtrace
files
object files
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.)
Withdrawn
Application number
JP4102868A
Other languages
English (en)
Inventor
Kazuhiro Kawagome
和宏 河込
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP4102868A priority Critical patent/JPH05298148A/ja
Publication of JPH05298148A publication Critical patent/JPH05298148A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】複数のオブジェクトファイルをリンクして実行
形式のファイルを作成し、このファイルのバックトレー
ス結果の信頼性を高める。 【構成】このファイル作成装置は、複数のソースファイ
ル1を複数のオブジェクトファイル3a、3b、3c、
3d…に翻訳すると共に、それぞれのオブジェクトファ
イル3a、3b、3c、3d…に特殊なシンボルを登録
するコンパイラ2と、このコンパイラ2によって作成さ
れた複数のオブジェクトファイル3a、3b、3c、3
d…をリンクして1つの実行形式のファイル7を作成す
ると共に、それぞれのオブジェクトファイル3a、3
b、3c、3d…の特殊なシンボルを検索し、シンボル
テーブル5よりこのシンボルに対応する「1」または
「0」のシンボル値を取り出し、すべてのシンボル値が
「1」であれば、実行形式のファイル7にシンボル値
「1」を登録するリンカー6とを具備している。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、例えばコンピュータプ
ログラムなど複数のファイルをリンクして1つの実行形
式のファイルを作成するファイル作成装置に関する。
【0002】
【従来の技術】近年、設計の分業化が進む中で複数のオ
ブジェクトファイルがリンクされて一つの実行形式のフ
ァイルが作成されることが多くあり、この実行形式のフ
ァイルの内容に対するエラー解析には、通常、スタック
フレームを利用してプログラム上の手続きをさかのぼる
ことが行われるが、現実的には、スタックフレームをも
たないオブジェクトファイルが混在することもあり、エ
ラー解析結果の信頼性向上が望まれている。
【0003】従来、コンピュータなどの情報処理装置に
おいて、例えばオブジェクトファイルのエラー解析に
は、バックトレースというデバッグ方法が用いられてい
る。バックトレースとは、プログラムの実行が中断した
ときには、この中断時から手続き、例えば関数などの呼
び出し系列をさかのぼってエラー解析を行う方法であ
る。
【0004】通常、バックトレースを実行する前提でコ
ンピュータプログラムをコンパイルする場合、コンパイ
ラによって特殊なシンボルが付加されてオブジェクトフ
ァイルが作成される。これにはコンパイラのスタックメ
モリ内のリンク(スタックフレーム)が利用される。こ
のスタックフレームは、レジスタ数が比較的少なく、戻
りアドレスをスタックに積むような従来のマシンアーキ
テクチャーでは、プログラムの実行に大変便利な機能で
あるが、レジスタ数が比較的多いマシンでは、かえって
最適化の障害になることがある。
【0005】コンピュータが上記したオブジェクトファ
イルの処理を実行中にプログラムのエラーが生じた場
合、ユーザーはバックトレーサを呼び出してコンピュー
タにバックトレース動作を実行させる。
【0006】このとき、コンピュータはスタックフレー
ムより特殊なシンボルを検索し、この特殊なシンボルに
対応するシンボル値「1」または「0」のバックトレー
ス可否情報をシンボルテーブルより取り出す。例えばシ
ンボル値が「1」の場合、コンピュータはバックトレー
ス可能と判断しバックトレース動作を実行する。
【0007】このバックトレース結果は、オブジェクト
ファイル1つの内容であれば、保証できるといえる。
【0008】ところで、設計の分業化が進む中では、コ
ンピュータプログラムは部分的に作成されることも多く
なっており、それぞれ作成されたソースファイルがコン
パイラによって個々にオブジェクトファイル化され、リ
ンカーによって実行形式のファイルにリンクされること
もある。
【0009】また、通常、コンピュータが個々のオブジ
ェクトファイルの処理を実行する際には、バックトレー
スのためのスタックフレームを必要としないので、コン
ピュータの実行速度を向上させる目的から最適化された
コンパイラ、例えばレジスタ数を比較的多くもつコンパ
イラなどは、スタックフレームを生成しないものもあ
る。
【0010】これらの場合、通常と同じようにオブジェ
クトファイルをリンクしたのでは、バックトレースが適
確に行えないことがある。
【0011】例えば複数のオブジェクトファイルの中に
それぞれスタックフレームをもたないものと、スタック
フレームをもつものとが生じた状態で複数のオブジェク
トファイルをリンクし、これをバックトレースすると、
コンピュータはスタックフレームをもたないオブジェク
トファイルの部分を飛び越して手続きをさかのぼってし
まいバックトレース動作そのものが誤動作したりエラー
解析結果の妥当性が保証できなくなる。
【0012】この対策としては、所定のコンパイラによ
って常にスタックフレームをもつオブジェクトファイル
を作成することや複数のオブジェクトファイルのリンク
を禁止することなどがあげられるが、現実的な分業形態
を考慮するとこれらの対策では不確実である。
【0013】
【発明が解決しようとする課題】このように従来のファ
イル作成装置では、複数のオブジェクトファイルをリン
クさせて一つの実行形式のファイルを作成しこのファイ
ルについてバックトレースを実行した場合、その結果が
信頼性に欠けるという問題があった。
【0014】本発明はこのような課題を解決するために
なされたもので、複数のオブジェクトファイルをリンク
して一つの実行形式のファイルを作成した場合でも、バ
ックトレース結果が信頼できるようなファイル作成装置
を提供することを目的としている。
【0015】
【課題を解決するための手段】本発明のファイル作成装
置は上記した目的を達成するために、複数のソースファ
イルを複数のオブジェクトファイルに翻訳すると共に、
それぞれのオブジェクトファイルにバックトレース可否
情報を登録するファイル翻訳部と、このファイル翻訳部
によって作成された前記複数のオブジェクトファイルを
リンクして1つの実行形式のファイルを作成すると共
に、それぞれのオブジェクトファイルより前記バックト
レース可否情報を取り出し、取り出したすべてのバック
トレース可否情報がバックトレース可能を示す情報であ
れば、前記実行形式のファイルにバックトレース可能を
示す情報を登録するファイル結合部とを具備している。
【0016】
【作用】本発明では、ファイル翻訳部により複数のソー
スファイルは複数のオブジェクトファイルに翻訳される
と共にバックトレース可否情報が登録される。
【0017】これらのオブジェクトファイルは、ファイ
ル結合部によって1つの実行形式のファイルにリンクさ
れる。このとき、ファイル結合部はすべてのオブジェク
トファイルより個々にバックトレース可否情報を取り出
して、それぞれのバックトレース可否情報がすべてバッ
クトレース可能を示す情報であれば、作成する実行形式
のファイルにもそのバックトレース可能を示す情報を登
録する。
【0018】したがって、実行形式のファイルよりコン
ピュータがこのバックトレース可能を示す情報が得られ
れば、コンピュータはバックトレースの可否を正確性を
判定できるようになる。
【0019】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。
【0020】図1は本発明に係る一実施例のファイル作
成装置の構成を示す図である。
【0021】同図において、1は複数のソースファイル
(プログラム)であり、各ユーザーによって処理の実行
手順が記述されたコンピュータプログラムである。2は
ファイル作成装置のファイル翻訳部としてのコンパイラ
であり、複数のソースファイル1を複数のオブジェクト
ファイル3a、3b、3c、3d…などに翻訳する。こ
のコンパイラ2はレジスタ数が比較的少なくファイル作
成装置の図示しないスタックメモリ内でファイルをリン
クさせるためのスタックフレームを形成する。また、こ
のコンパイラ2には、コンパイルスイッチ4が設けられ
ておりユーザーが任意に切り替え設定できる。このコン
パイルスイッチ4はユーザーがソースファイル1の内容
に応じて、例えば実行速度を優先する場合などにスタッ
クフレームを生成しないようにするためのものである。
このコンパイラ2は、特殊なシンボルを生成し、コンパ
イルスイッチ4の切り替えに応じてこのシンボルに対応
するシンボル値を格納するシンボルテーブル5を各オブ
ジェクトファイル3a、3b、3c、3d…に設ける。
6はファイル作成装置のファイル結合部としてのリンカ
ーであり、複数のオブジェクトファイル3a、3b、3
c、3d…などを結合して実行形式のファイル7を作成
する。この実行形式のファイル7は、コード記録部8、
シンボル指示部9およびシンボル対応テーブル10など
からなる。
【0022】11はコンピュータのメモリであり、実行
形式のファイル7が記憶される。12はコンピュータの
バックトレーサであり、メモリ11の内容(実行形式の
ファイル7)を解析してプログラムの実行手続き、例え
ば関数の呼び出し系列などをさかのぼる(以下この動作
をバックトレースと称す)。また、このバックトレーサ
12は、実行形式のファイル7のシンボル指示部9に指
示されているシンボル値に基づきバックトレースの可能
および不可能を判定する。
【0023】このファイル作成装置では、ユーザーが複
数のソースファイル1をこのファイル作成装置にかける
ことにより、1つの実行型式のファイルが作成される。
【0024】まず、それぞれのソースファイル1は、コ
ンパイラ2によって複数のオブジェクトファイル3a、
3b、3c、3d…などに翻訳される。
【0025】このとき、ユーザーはコンパイラ2のコン
パイルスイッチ4を切り替えることによりそれぞれのオ
ブジェクトファイル3a、3b、3c、3d…などにス
タックフレームを生成するかどうかを選択できる。
【0026】例えばユーザーがコンパイルスイッチ4を
a側に切り替えると、オブジェクトファイルにはスタッ
クフレームが作成される。このときに、例えば1つのソ
ースファイル1をコンパイラ2にかけると、コンパイラ
2は特殊なシンボルの名称、例えば「$back-tracable?
$」を生成し、このシンボルに対応させてバックトレー
スの可能を示す情報、例えばシンボル値「1」をシンボ
ルテーブル5に登録し、ソースファイル1をオブジェク
トファイル3dに翻訳する。これによりオブジェクトフ
ァイル3dは、コンピュータのデバッグ(バックトレー
ス)動作をサポートすることができるようになる。
【0027】一方、ユーザーがコンパイルスイッチ4を
b側に切り替えると、オブジェクトファイルにはスタッ
クフレームは作成されない。このとき、3つのソースフ
ァイル1をコンパイラ2にかけると、コンパイラ2は
「$back-tracable?$」のエントリにバックトレースの不
可能を示すシンボル値「0」を登録して3つのソースフ
ァイル1を3つのオブジェクトファイル3a〜3cに翻
訳する。
【0028】上記したように作成された複数のオブジェ
クトファイル3a〜3d(異なるシンボル値が登録され
ている)は、リンカー6によって結合されて一つの実行
形式のファイル7が作成される。
【0029】このとき、このリンカー6は、結合するす
べてのオブジェクトファイル3a〜3dの「$back-trac
able?$」を検索して、対応するシンボル値をシンボルテ
ーブル5より取り出し、このシンボル値がすべて「1」
ならば、実行形式のファイル7のシンボル指示部9に
「$back-tracable?$」の初期値「1」を登録し、そうで
なければ「0」を登録する。
【0030】この実施例の場合、オブジェクトファイル
3a〜3cに登録されたシンボル値は「0」であり、オ
ブジェクトファイル3dに登録されたシンボル値は
「1」であることから、「$back-tracable?$」の初期値
としては「0」が登録される。また、このリンカー6
は、実行形式のファイル7の所定位置にシンボルの名称
「$back-tracable?$」と、その初期値、例えば「0」の
登録位置とを対応づけたシンボル対応テーブル10を作
成する。
【0031】このように作成された実行形式のファイル
7は、コンピュータのメモリ11に格納される。したが
って、ユーザーが実行形式のファイル7を使用するとき
には、メモリ11から実行形式のファイル7を呼び出し
てコンピュータによってその処理を実行させることにな
る。
【0032】そして、この処理の実行中にエラーが発生
した場合、ユーザーはこの実行形式のファイル7につい
てデバッグを行うことになる。
【0033】この場合、ユーザーはメモリ11の他のエ
リアよりバックトレーサ12を呼び出し、コンピュータ
にバックトレース動作を実行させる。
【0034】バックトレーサ12は、まず、実行型式の
ファイル7の特殊なシンボル「$back-tracable?$」を検
索してシンボル対応テーブル10よりその登録位置を求
め、その位置に登録されているシンボル値を取り出す。
そして、バックトレーサ12は、取り出したシンボル値
に基づいてバックトレース可否の判定を行う。
【0035】例えばシンボル値が「1」のときにはバッ
クトレース動作を実行し、それ以外のとき(例えば
「0」)には、バックトレース動作を行わず、「バック
トレース不能」をユーザーに通知し、ユーザーの判断を
仰ぐ。
【0036】このように本実施例のファイル作成装置に
よれば、複数のオブジェクトファイル3a〜3dには、
コンパイラ2によってそれぞれ「$back-tracable?$」が
生成され、リンカー6がこれらのオブジェクトファイル
3a〜3dをリンクするときに、すべての「$back-trac
able?$」のシンボル値を取り出し、個々のシンボル値が
すべて「1」のときに限り、実行形式のファイル7のシ
ンボル値として「1」を登録するので、コンピュータは
このシンボル値を検索することにより、実行形式のファ
イル7について、バックトレース動作が正確に行えるか
どうかの判定ができるようになる。
【0037】したがって、このファイル作成装置を用い
て作成されたファイル7について、コンピュータはシン
ボル値「1」が登録されているファイル7に限りバック
トレース動作を実行するので、そのバックトレース動作
により得られたエラー解析結果は信頼性の高いものにな
る。
【0038】
【発明の効果】以上説明したように本発明のファイル作
成装置によれば、ファイル結合部によってバックトレー
ス可否情報が登録された実行形式のファイルが作成され
る。
【0039】この実行形式のファイルについてバックト
レースを行うときは、バックトレース可能な情報が登録
されているときに限りバックトレースが行われるのでバ
ックトレース結果は信頼できるものになる。
【図面の簡単な説明】
【図1】本発明に係る一実施例のファイル作成装置の構
成を示すブロック図である。
【符号の説明】
1…ソースファイル、2…コンパイラ、3a、3b、3
c、3d…オブジェクトファイル、4…コンパイルスイ
ッチ、5…シンボルテーブル、6…リンカー、7…実行
形式のファイル、8…コード記録部、9…シンボル指示
部、10…シンボル対応テーブル、11…メモリ、12
…バックトレーサ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数のソースファイルを複数のオブジェ
    クトファイルに翻訳すると共に、それぞれのオブジェク
    トファイルにバックトレース可否情報を登録するファイ
    ル翻訳部と、 このファイル翻訳部によって作成された前記複数のオブ
    ジェクトファイルをリンクして1つの実行形式のファイ
    ルを作成すると共に、それぞれのオブジェクトファイル
    より前記バックトレース可否情報を取り出し、取り出し
    たすべてのバックトレース可否情報がバックトレース可
    能を示す情報であれば、前記実行形式のファイルにバッ
    クトレース可能を示す情報を登録するファイル結合部と
    を具備したことを特徴とするファイル作成装置。
JP4102868A 1992-04-22 1992-04-22 ファイル作成装置 Withdrawn JPH05298148A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4102868A JPH05298148A (ja) 1992-04-22 1992-04-22 ファイル作成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4102868A JPH05298148A (ja) 1992-04-22 1992-04-22 ファイル作成装置

Publications (1)

Publication Number Publication Date
JPH05298148A true JPH05298148A (ja) 1993-11-12

Family

ID=14338887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4102868A Withdrawn JPH05298148A (ja) 1992-04-22 1992-04-22 ファイル作成装置

Country Status (1)

Country Link
JP (1) JPH05298148A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100636095B1 (ko) * 1999-08-27 2006-10-19 삼성전자주식회사 멀티미디어 파일 관리방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100636095B1 (ko) * 1999-08-27 2006-10-19 삼성전자주식회사 멀티미디어 파일 관리방법

Similar Documents

Publication Publication Date Title
US5048018A (en) Debugging parallel programs by serialization
US6954747B1 (en) Methods for comparing versions of a program
JP3405996B2 (ja) コンピュータベースのソフトウェアコンパイルシステム及びデバッガ
US9141603B2 (en) Computer program product and computer system for language-enhanced programming tools
US5854924A (en) Static debugging tool and method
JPH07122854B2 (ja) プログラム翻訳方法
Pauck et al. Jicer: Simplifying Cooperative Android App Analysis Tasks
JPH05298148A (ja) ファイル作成装置
KR900006667B1 (ko) 부분적 프로그램 결합 시스템
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JP2002108652A (ja) プログラムの相関関係検出装置
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JP2001142688A (ja) プログラム分析装置及び記録媒体
KR100231692B1 (ko) Chill 디버깅 정보 생성방법
JPH0922346A (ja) コンパイラシステム
JPH06259278A (ja) デバッグ情報の獲得方式
JPH07152577A (ja) コンパイル、リンク方法の共通化方式
JPH04287230A (ja) インライン展開の引数結合方法
JPH1195996A (ja) 冗長コード検査装置
JPH05204705A (ja) 未定義変数検出処理方法
JP2000132405A (ja) インライン展開処理装置及び方法
JPS63205740A (ja) プログラム実行トレ−ス処理方式
JPH05204699A (ja) デバッグ時識別子探索方式
JPH0566929A (ja) コンパイラの再コンパイル時間の短縮方式
Aßmann A short review of high speed compilation

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990706