JPH06259278A - デバッグ情報の獲得方式 - Google Patents

デバッグ情報の獲得方式

Info

Publication number
JPH06259278A
JPH06259278A JP5070750A JP7075093A JPH06259278A JP H06259278 A JPH06259278 A JP H06259278A JP 5070750 A JP5070750 A JP 5070750A JP 7075093 A JP7075093 A JP 7075093A JP H06259278 A JPH06259278 A JP H06259278A
Authority
JP
Japan
Prior art keywords
information
debugging
file
debug information
debug
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
Application number
JP5070750A
Other languages
English (en)
Inventor
Tomoo Kamata
智夫 鎌田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP5070750A priority Critical patent/JPH06259278A/ja
Publication of JPH06259278A publication Critical patent/JPH06259278A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 特定のデバッグ情報を持たない実行可能形式
のファイルの実際のソフトウェア実行時に不都合が生じ
た場合にも、速やかにデバッグを行うことができるよう
にすること、デバッグのためにあらかじめ特定のデバッ
グ情報を実行可能形式のファイルに付加しておく必要が
ないようにすること。 【構成】 特定のデバッグ情報を持たない実行可能形式
のファイルのデバッグ情報を獲得するデバッグ情報の獲
得方式であって、前記実行可能形式のファイルにおける
シンボル情報を読み込む手段(12)と、シンボル情報
が実行コードに関するものであるとき、その実行コード
を解析し、スタックサイズ等のデバッグに必要な情報を
抽出して、デバッグ情報を生成するデバッグ情報生成手
段(13)とを備えたものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、特定のデバッグ情報を
持たない実行可能形式のファイルからデバッグ情報を獲
得するデバッグ情報獲得方式に関する。
【0002】従来のソフトウェアのデバッグ方式におい
ては、デバッグを効率よく行うために、ソースコードか
ら実行コードを作成する際に、特定のデバッグコードを
挿入したり、デバッグ用のデータをあらかじめ付加する
のが一般的である(例えば、特公昭63−67695号
公報参照)。
【0003】
【発明が解決しようとする課題】このような従来技術で
は、デバッグ用に必要な特定の情報を付加するので、コ
ードサイズあるいはファイルサイズが増大してしまうと
いう問題があった。
【0004】また、実際のソフトウェア利用時にはこの
ようなデバッグ情報を含まないコードを用いるのが普通
で、実行に必要な最小限の情報しか持っていない。デバ
ッグ情報を含まないコードの実行時に問題が生じた場合
のデバッグは非常に困難となる。
【0006】本発明は、以上のような従来技術の問題を
解決することを目的とする。すなわち、本発明は、デバ
ッグ対象の実行可能形式のファイルにデバッグ情報をあ
らかじめ付加しておく必要がなく、従ってデバッグのた
めにファイルサイズの増加を招くことがないようにする
ことを目的とする。
【0007】また、特定のデバッグ情報を持たない実行
可能形式のファイルの実際のソフトウェア実行時に不都
合が生じ、デバッグする必要が生じた場合にも、速やか
にデバッグを行うことができるようにすることを目的と
する。
【0008】
【課題を解決するための手段】本発明のデバッグ情報獲
得方式は、特定のデバッグ情報を持たない実行可能形式
のファイルのデバッグ情報を獲得するデバッグ情報の獲
得方式であって、前記実行可能形式のファイルにおける
シンボル情報を読み込む手段(図1の12)と、シンボ
ル情報が実行コードに関するものであるとき、その実行
コードを解析し、スタックサイズ等のデバッグに必要な
情報を抽出して、デバッグ情報を生成するデバッグ情報
生成手段(図1の13)とを備えたものである。
【0009】
【作用】シンボルを読み込む手段(12)は、実行可能
形式のファイルいわゆるオブジェクトファイル(図2の
21)をデバッグのためにメモリに読み込む際にオブジ
ェクトファイルにおけるシンボル情報(図2の24、図
3(a))を取り出してデバッグ情報生成手段(13)
へ読み込む。デバッグ情報生成手段(13)は、入力さ
れたシンボル情報(24)を一つずつ調べ、デバッグに
関係する情報を抽出して一定の形式のデバッグ情報(図
3(b))を生成する。本発明によれば、デバッグ対象
の実行可能形式のファイルにデバッグ情報をあらかじめ
付加しておく必要がないので、ファイルサイズの増加を
招くことがない。また、実際のソフトウェア利用時に不
都合が生じ、デバッグする必要が生じた場合にも、本発
明によればデバッグ情報の獲得ができるので、簡単にデ
バッグを行うことができる。
【0010】
【実施例】図1は本発明の実施例によるデバッグ情報獲
得装置の概略の構成を示す図である。本装置は、オブジ
ェクトファイル11を記憶装置14のアドレス空間内の
所定のアドレスへ読み込み、必要に応じてリロケーショ
ン処理を行なうとともに、デバッグ情報獲得部13へ実
行コードとオブジェクトファイルのシンボル情報を与え
るローダ12と、シンボル情報に基づいて読み込まれた
実行コードを解析し、デバッグ情報を作成するデバッグ
情報16を作成するデバッグ情報獲得部13と、実行コ
ード15やデバッグ情報16を格納する記憶装置14
と、デバッグを行うデバッガ17とを備えている。
【0011】スタックをトレースするために必要なデバ
ッグ情報を作成する場合について説明する。スタックの
トレースには関数の利用するスタックサイズとリターン
する際の戻りアドレスの情報が必要である。
【0012】まず、ローダ12により、指定されたオブ
ジェクトファイルから実行コード(テキスト部分)とシ
ンボル情報をデバッグ情報獲得部13に読み込む。シン
ボル情報は図3(a)に示すようにシンボルの名前を表
す「シンボル名」、ファイル内部でのオフセット値を表
す「オフセット」、関数やデータなどのシンボルのタイ
プを表す「タイプ」と、その大きさ等を表す「サイズ」
の各情報からなっている。
【0013】図2はオブジェクトファイルとテキストフ
ァイルの内容を例示するものである。オブジェクトファ
イル21は実行コード(テキスト)22とデータ23と
シンボル情報24からなっている。その実行コード22
は複数の関数25で構成される機械語形式のものであ
り、各関数25は図2の26に示すように処理に必要な
スタックの確保を行い、レジスタ類をセーブして関数自
身に定義された処理を行う。また、処理の終了時にはセ
ーブしたレジスタ類を元に戻してリターンする。
【0014】デバッグ情報獲得部13によるデバッグ情
報の作成は、ローダ12から読み込まれたシンボル情報
を一つずつ調べ、タイプが関数を示すシンボルに関して
図4に示す処理を行い、タイプが関数以外のシンボルは
そのまま次のシンボルの処理へ進む。
【0015】図4に示すデバッグ情報の作成は、次のと
おりである。 (ステップS41) 関数の先頭から一つずつ機械語を
調べ、スタック拡張命令を探す。 (ステップS42) スタック拡張命令からリターンア
ドレスのセーブ位置(スタック内での位置)を取り出
す。 (ステップS43) 関数の先頭から一つずつ機械語を
調べ、リターンアドレスのセーブ命令を探す。 (ステップS44) リターンアドレスのセーブ命令か
らリターンアドレスのセーブ位置(スタック内での位
置)を取り出す。 (ステップS45) 図3(b)のデバッグ情報のフォ
ームを作成し、前記2)および4)で得られたスタック
フレームのサイズとリターンアドレスのセーブ位置を、
それぞれ「スタックサイズ」および「レジスタオフセッ
ト」に記録する。
【0016】デバッガ17は、デバッグ情報獲得部13
で生成され、記憶装置14に格納されたデバッグ情報1
6をもとにデバッグを行う。
【0017】
【発明の効果】本発明によれば、デバッグ情報を含まな
い実行可能形式のファイルを実行する際、ファイルのロ
ード時に実行コードを解析して関数のスタックフレーム
サイズ等のデバッグに必要な情報を作成するようにした
ので、デバッグ対象の実行可能形式のファイルにデバッ
グ情報をあらかじめ付加しておく必要がなく、ファイル
サイズの増加を招くことがない。
【0018】また、本発明によれば、デバッグ情報を含
まない実行可能形式のファイルからデバッグに必要な情
報を獲得できるので、実際のソフトウェア利用時に不都
合が生じ、デバッグする必要が生じた場合にも、速やか
にデバッグを行うことができる。
【図面の簡単な説明】
【図1】 本発明の実施例の構成を示す図
【図2】 オブジェクトファイルとテキストの内容を示
す図
【図3】 (a)はオブジェクトファイルにあるシンボ
ル情報、(b)は作成されるデバッグ情報を示す図
【図4】 デバッグ情報獲得部の処理の流れを示す図。
【符号の説明】
11…オブジェクトファイル、12…ローダ、13…デ
バッグ情報獲得部、14…記憶装置、15…実行コー
ド、16…デバッグ情報、17…デバッガ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 特定のデバッグ情報を持たない実行可能
    形式のファイルのデバッグ情報を獲得するデバッグ情報
    の獲得方式であって、 前記実行可能形式のファイルにおけるシンボル情報を読
    み込む手段と、 シンボル情報が実行コードに関するものであるとき、そ
    の実行コードを解析し、デバッグに必要な情報を抽出し
    て、デバッグ情報を生成するデバッグ情報生成手段とを
    備えたことを特徴とするデバッグ情報の獲得方式。
JP5070750A 1993-03-08 1993-03-08 デバッグ情報の獲得方式 Pending JPH06259278A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5070750A JPH06259278A (ja) 1993-03-08 1993-03-08 デバッグ情報の獲得方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5070750A JPH06259278A (ja) 1993-03-08 1993-03-08 デバッグ情報の獲得方式

Publications (1)

Publication Number Publication Date
JPH06259278A true JPH06259278A (ja) 1994-09-16

Family

ID=13440504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5070750A Pending JPH06259278A (ja) 1993-03-08 1993-03-08 デバッグ情報の獲得方式

Country Status (1)

Country Link
JP (1) JPH06259278A (ja)

Similar Documents

Publication Publication Date Title
US5926638A (en) Program debugging system for debugging a program having graphical user interface
KR950006619B1 (ko) 번역 코드 실행용의 개선된 에러 기록 방법 및 시스템
JP2004164554A (ja) プログラム実行監視装置および方法
JP3062266B2 (ja) 支援装置
CN111026604B (zh) 一种日志文件解析方法及装置
JPH0766342B2 (ja) プログラムテスト装置
JPH06259278A (ja) デバッグ情報の獲得方式
JP4055197B2 (ja) プログラムに含まれる手続きの解析装置
JP2752827B2 (ja) デバッガ処理方式
JP3645452B2 (ja) プログラムデバッグ装置及びプログラムを記録した記録媒体
US7281166B1 (en) User-customizable input error handling
JPH05108404A (ja) デバツガシステム
KR0175469B1 (ko) 칠프로그램 변수의 가시성 제어방법
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP3077627B2 (ja) デバッグ方法およびデバッグプログラムを記録する記録媒体
KR100279731B1 (ko) 칠 언어에 대한 제어 흐름 표시방법
JP3165105B2 (ja) プログラムのトレーサ、コンパイラ及びリンカー
JP3105546B2 (ja) アセンブラのシンボル・デバッグ情報処理方式
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
JPH05250213A (ja) プログラムデバッグ方式およびデバッガ
JP2005301415A (ja) コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム
JPS6367695B2 (ja)
JPH05181702A (ja) ソフトデバッガ
JPH06222950A (ja) 例外原因メッセージ出力装置
JPH06250881A (ja) シンボリックデバッグ方式