JP2927180B2 - 情報処理プログラムのデバッグ方法およびそのためのデバッガ - Google Patents

情報処理プログラムのデバッグ方法およびそのためのデバッガ

Info

Publication number
JP2927180B2
JP2927180B2 JP6139945A JP13994594A JP2927180B2 JP 2927180 B2 JP2927180 B2 JP 2927180B2 JP 6139945 A JP6139945 A JP 6139945A JP 13994594 A JP13994594 A JP 13994594A JP 2927180 B2 JP2927180 B2 JP 2927180B2
Authority
JP
Japan
Prior art keywords
information
symbol
debug
data type
type
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 - Lifetime
Application number
JP6139945A
Other languages
English (en)
Other versions
JPH086812A (ja
Inventor
隆 西門
伸夫 山本
不二男 藤田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6139945A priority Critical patent/JP2927180B2/ja
Priority to US08/492,978 priority patent/US5655073A/en
Publication of JPH086812A publication Critical patent/JPH086812A/ja
Application granted granted Critical
Publication of JP2927180B2 publication Critical patent/JP2927180B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理プログラムの
デバッグ方法およびそのためのデバッガに関し、特に特
別なデバッグオプションで作成されていないため、その
プログラムオブジェクトファイルにデータタイプ情報や
データタイプシンボル情報などのデバッグ情報を持たな
い場合に有効なデバッグ方法およびデバッガに関する。
【0002】
【従来技術】高水準プログラム言語レベルで行われるシ
ンボリックデバッグ方式は従来から公知であり、例え
ば、AT&Tユニックスパシフィック発行、日本ソフト
バンク翻訳、ユニックス システム ファイヴ (UN
IX System V) プログラマ・ガイド リリ
ース3.1、第771頁〜第785頁に開示されてい
る。従来のシンボリックデバッグ方式は、図2に示すよ
うに、デバッグ対象の情報処理プログラム11を予め特
別なデバッグオプション(例えば、上記文献における−
gオプション)によって作成(コンパイル)し、該デバ
ッグオプションを使って作成されたプログラムオブジェ
クトファイル12pをデバッガ13が参照するように構
成しておき、オペレータ9がシンボリックな操作(ソー
ス上の変数名、関数名、タイプ名称などによる操作)を
行なうことによって情報処理プログラム11のデバッグ
を行っていた。すなわち、従来のシンボリックデバッグ
方式は、デバッグ対象の情報処理プログラムを特別なデ
バッグオプションで作成しておくことによって、デバッ
ガ13が参照するプログラムオブジェクトファイル12
pには、デバッグシンボル情報20として、該情報処理
プログラム11の各関数・変数に対して関数・変数シン
ボル名称情報21とアドレス情報22の他に、各関数・
変数シンボルのデータタイプ情報23、定義されたデー
タタイプの名称、サイズ、該データタイプが構造を持つ
場合のサブフィールド情報等のデータタイプシンボル情
報24等が格納されていることを前提としていた。な
お、デバッグシンボル情報はプログラムの実行には関係
がなく、デバッグのための補助情報である。
【0003】
【発明が解決しようとする課題】上述したように、上記
従来技術は、特別なデバッグオプションで作成されたプ
ログラムのデバッグを前提にしており、特別なデバッグ
オプションで作成されないプログラムのデバッグについ
ては全く考慮していなかった。特別なデバッグオプショ
ンで作成されないプログラムオブジェクトファイル12
pには、図2に示した各関数や変数のデータタイプ情報
23やデータタイプシンボル情報24等がないため、例
えばC言語におけるような構造を持つ変数のデータ等を
シンボリックにアクセスすることができないという問題
があった。本発明の目的は、特別なデバッグオプション
で作成されていない情報処理プログラムに対しても、構
造を持つデータ等をシンボリックにアクセスできるよう
にし、それによってシンボリックなデバッグを可能とす
ることにある。
【0004】
【課題を解決するための手段】上記目的を達成するため
に、本発明のデバッグ方法は、 (1)プログラムのオブジェクトファイルに格納されて
いるデバッグシンボル情報(図1の20p)を参照する
とともに、データタイプのシンボル情報を含む別の1つ
または複数のオブジェクトファイルのデバッグシンボル
情報(同20d)を追加参照し、情報処理プログラムの
変数シンボルと上記追加参照したデータタイプのシンボ
ル情報を使い、情報処理プログラムの変数を指定された
データタイプを持った変数としてアクセスを指示するよ
うにしたことを特徴としている。 (2)データタイプのデバッグシンボル情報を含まない
情報処理プログラムのオブジェトファイル(図5の20
p)と、該情報処理プログラムが使用しているデータタ
イプシンボルのデバッグシンボル情報(同20d)を含
む1つまたは複数のオブジェクトファイルとを組合せ指
定し、該情報処理プログラムをシンボリックにデバッグ
することを特徴としている。 (3)各オブジェクトファイルのデバッグシンボル情報
を論理的に別々の固まりとして、各デバッグシンボル情
報エントリがどのオブジェクトファイルのデバッグシン
ボル情報に属しているかが判定できる形でテーブルに読
み込み、さらに、シンボル参照時のサーチ順としてデバ
ッグシンボル情報の識別情報のリスト(50)を保持
し、該リスト順に従ってデバッグシンボルセットを上記
テーブルをサーチすることによって参照されたシンボル
に対応するデバッグシンボル情報を見つけ出すことを特
徴としている。 (4)シンボル参照のサーチ時に使用するオブジェクト
ファイル識別情報のリスト(図8の50)を保持し、該
リスト順に従ってオブジェクトファイルのデバッグシン
ボル情報を参照し、参照されたシンボルに対応するデバ
ッグシンボル情報を見つけ出すことを特徴としている。 (5)複数のオブジェクトファイルのデバッグシンボル
情報(図9の20p、20d)を、シンボル名称(同6
1)と、該シンボル名称の種別情報(同62)をキーと
してテーブル(60)に読み込み、該テーブルをサーチ
することによって参照されたシンボルに対応するデバッ
グシンボル情報を見つけ出すことを特徴としている。
【0005】また、本発明の情報処理プログラムのデバ
ッガ(図1の13)は、 (6)プログラムのオブジェクトファイルに格納されて
いるデバッグシンボル情報の参照に加え、データタイプ
のシンボル情報を含む別の1つまたは複数のオブジェク
トファイルのデバッグシンボル情報を追加参照する手段
(同100)と、情報処理プログラムの変数シンボルと
追加参照したデータタイプのシンボルとを使い、情報処
理プログラムの変数を指定されたデータタイプを持った
変数としてアクセスを指示するアクセス指示手段(同2
00)を有することを特徴としている。 (7)アクセス指示手段として、情報処理プログラムの
変数シンボルと該変数のデータタイプを表すデータタイ
プ情報との対応関係を保持するシンボルタイプ属性テー
ブル(図11の70)をデバッガ内に持ち、さらに、変
数シンボルとデータタイプ名称を使ったオペレータの指
定によりシンボルタイプ属性テーブルの対応するエント
リに変数のデータタイプ属性情報を設定する手段を有す
ることを特徴とするデバッガ。 (8)アクセス指示手段として、データタイプ名称をデ
ータタイプのサイズ値に変換する手段(図13の22
0)と、データタイプの部分フィールド名称参照をデー
タタイプ内でのオフセット値に変換する手段(同23
0)と、情報処理プログラムの変数名称を対応するアド
レス値に変換する手段(同210)とを有し、さらに各
値に対する四則演算(同240)と演算結果の値をアド
レスとして情報処理プログラムの空間をアクセスする手
段(同250)を有することを特徴としている。
【0006】
【作用】データタイプシンボル情報を含むデバッグ情報
オブジェクトファイルは、該データタイプ定義を書いた
ソースファイルをデバッグオプション付きでコンパイル
することで作成できる。従って、デバッグ対象の情報処
理プログラムのプログラムオブジェクトファイルがデー
タタイプシンボル情報を含まなくても、上記(1)、
(2)および(6)のように、データタイプのシンボル
情報を含む別の1つまたは複数のオブジェクトファイル
のデバッグシンボル情報を追加参照することによって、
必要なデータタイプシンボル情報を得ることができ、ま
た情報処理プログラムの変数シンボルと追加参照したデ
ータタイプのシンボルとを使い、情報処理プログラムの
変数を指定されたデータタイプを持った変数としてアク
セスを指示することにより、プログラムオブジェクトフ
ァイル12pに各関数・変数のデータタイプ情報を含ま
なくても、追加されたタイプシンボルと変数シンボルの
組合せでオペレータがデバッガに対して指定したタイプ
のデータとしてアクセスを指示できるので、情報処理プ
ログラムのデータのシンボリックなアクセスが可能にな
る。また、(3)〜(5)により、参照されたシンボル
に対するデバッグシンボル情報を見つけることができ
る。さらに(7)により、オペレータの操作により必要
な関数・変数シンボルに対してタイプを設定できる。さ
らに、(8)により、演算式の形でアドレスを生成して
操作対象の変数などをシンボリックにアクセスできる。
【0007】
【実施例】以下、本発明の実施例を説明する。図3は、
本発明を実施するシステムの各構成要素の関係を示すも
のである。同図に示したように、システム全体は、情報
処理を行うプロセッサ1、各種情報を記憶するメモリ
2、大容量の情報を記憶可能なディスク3、および、オ
ペレータ9が操作を行う端末装置4を信号線5によって
接続した形をしている。本発明におけるデバッグ対象の
情報処理プログラム11およびデバッガ13はメモリ2
に記憶されており、信号線5を介してプロセッサ1に送
られて必要な処理が実行される。また、情報処理プログ
ラム11の実行コードやデバッグのためのデバッグシン
ボル情報20等を含んだプログラムオブジェクトファイ
ル12p(図1参照)と、本発明に係わるデバッグのた
めのタイプシンボル情報を含んだデバッグ情報オブジェ
クトファイル12d(図1参照)は、ディスク3に格納
されている。メモリ2に格納されたデバッガ13は、端
末装置4から入力されるオペレータ9のデバッグ操作要
求を信号線5を介して受取り、プログラムオブジェクト
ファイル12pおよびデバッグ情報オブジェクトファイ
ル12dの中に格納されているデバッグシンボル情報2
0p、20dを参照しながら、デバッグ対象の情報処理
プログラム11をアクセスし、シンボリックなデバッグ
処理を実現する。
【0008】次に、図1を用いて、本発明のデバッガお
よびデバッグ方法を詳細に説明する。まず、従来方式と
比べて大きく違う点は、プログラムオブジェクトファイ
ル12pだけでなく、デバッグ情報オブジェクトファイ
ル12dの内容をデバッガ13が参照していることと、
デバッガ13に、従来のシンボリックデバッガ機能30
0だけでなく、デバッグ情報追加手段100とタイプ付
きデータアクセス指示手段200が追加されていること
である。本発明では、デバッグオプションを付けずに作
成された情報処理プログラムをデバッグ対象としている
ため、プログラムオブジェクトファイル12pに含まれ
るデバッグシンボル情報20pには、図示されたよう
に、情報処理プログラム11の各関数や変数のシンボル
名称情報21とアドレス情報22しか含まれない。すな
わち、従来デバッグオプションを付けたデバッグ方式で
は含まれていた各関数や変数のデータタイプ情報23や
該プログラム11の中で使われているデータタイプシン
ボル情報24は含まれない。例えば、図1および図2で
は、デバッグシンボル情報20の1例として、4バイト
整数型の2つのフィールドを持つ構造型データタイプxr
ecordをタイプとする変数varxの例を示している。図2
の従来例では、プログラムオブジェクトファイル12p
のデバッグシンボル情報20に、"varx"、"3fc4"、"xre
cord"が、該変数のシンボル名称21、アドレス情報2
2、データタイプ情報23として格納されている。それ
に対し、図1の本発明でのプログラムオブジェクトファ
イル12pのデバッグシンボル情報20pには、シンボ
ル名称21の"varx"とアドレス情報22の"3fc4"しかな
く、データタイプ情報が存在しない。
【0009】そこで、本発明では、新たにデバッガ13
に追加されたデバッグ情報追加手段100使って、必要
なデータタイプシンボル情報24を含むデバッグ情報オ
ブジェクトファイル12dを指定することにより、不足
しているデータタイプシンボル情報24を追加する。な
お、タイプシンボル情報24の内容は、例えば、図4に
示すように、各データタイプシンボルに対するタイプシ
ンボルテーブル30と構造を持つデータタイプのサブフ
ィールド情報を表すフィールド情報テーブル40等から
なっている。このうち、タイプシンボルテーブル30
は、タイプシンボル名称31、データタイプのサイズ情
報32、さらに、該データタイプが構造を持つ場合のフ
ィールド情報テーブル40ヘのリンク情報33等からな
っている。また、フィールド情報テーブル40は、デー
タ構造内のフィールド名称41、該フィールドのデータ
構造内オフセット情報42、および該フィールドのデー
タタイプを示すためのデータシンボルテーブル30への
リンク情報43等からなっている。参考までに、図4で
は、4バイト整数型の2つのフィールドxfld1およびxfl
d2を持つ構造型データタイプxrecord等の例を示してい
る。
【0010】しかし、上述したデバッグ情報追加手段1
00を用いたとしても、変数データ等のシンボリックア
クセスを行うためには、さらに各関数や変数のデータタ
イプ情報23が不足している。そこで、本発明では、さ
らに、デバッガ13に新たに追加したタイプ付きデータ
アクセス指示手段200を用いてこの不足を補うように
している。該タイプ付きデータアクセス指示手段200
は、プログラムオブジェクトファイル12pから得られ
る関数や変数のシンボル名称と、デバッグ情報オブジェ
クトファイル12dから得られるタイプシンボル名称お
よびフィールド名称を使って、情報処理プログラム11
の変数領域等を指定したデータタイプとしてアクセスす
ることをオペレータが指示するために設けた手段であ
る。本発明では、以上の2つの手段を用いることによっ
て、特別のデバッグオプションで作成しなかったプログ
ラムオブジェクトファイル12pの情報の不足を補い、
従来と同等のシンボリックデバッグを実現することがで
きる。なお、図1では、デバッグ情報オブジェクトファ
イルは簡単のため1つしか示していないが、複数個あっ
ても構わない。また、共用ライブラリ等を使用している
場合は、プログラムオブジェクトファイルが複数個ある
ケースもある。
【0011】本発明のデバッッガ13の概要が明らかと
なったところで、次に、本発明で新たに追加した2つの
手段100、200の具体的な実施例を詳細に説明す
る。図5は、デバッグ情報追加手段100の一実施例を
示すものであり、オペレータ9がデバッガ起動時にプロ
グラムオブジェクトファイル12pとデバッグ情報オブ
ジェクトファイル12dを同時に指定したり、あるい
は、特別なデバッガコマンドを用いてデバッグ情報オブ
ジェクトファイル12dを追加指定した場合の追加情報
の保持方法の概念図である。例えば、図5において、デ
バッガ起動時に一度にプログラムオブジェクトファイル
12pとデバッグ情報オブジェクトファイル12dを指
定した場合の処理は、図6のフローチャートに沿って行
われる。まず、指定された複数のオブジェクトファイル
12p、12dのデバッグシンボル情報20p、20d
それぞれを一塊とし、何れのオブジェクトファイルのデ
バッグシンボル情報であるかを異なる名称の付与などに
よって論理的に区別してデバッガ13内にロードし、メ
モリ内デバッガシンボル情報20pm、20dmとする
(ステップ111)。次に、オペレータ9から指定され
たシンボルをアドレス値等に変換する際に、どのデバッ
グシンボル情報をサーチするかの情報として、デバッガ
13内に新たに設けたサーチリスト定義エリア50に、
ロードしたメモリ内デバッガシンボル情報20pm、2
0dmの識別情報のリストを保持する(ステップ11
2)。
【0012】以上の処理により設定された情報を使い、
シンボル名称から対応するデバッグシンボル情報エント
リを見付け出す処理は、図7のフローチャートに沿って
行われる。まず、サーチリスト定義エリア50に保持さ
れたリスト情報に従い、サーチ対象をリストの先頭のデ
バッグシンボル情報とする(ステップ121)。次に、
該サーチ対象のデバッグシンボル情報内で一致するエン
トリをサーチする(ステップ122)。もし、対応する
エントリが見つかればその時点でサーチ処理を終了する
が(ステップ123)、対応するエントリが見つからな
い場合は、サーチリスト定義の次のデバッグシンボル情
報の有無を調べ(ステップ124)、次があればサーチ
対象を次のデバッグシンボル情報としてステップ122
に戻って上記処理を繰り返し(ステップ125)、次の
デバッグシンボル情報が無ければ指定されたシンボル情
報なしとして処理を終了する。
【0013】上記の実施例と論理的には同じであるが、
別の実施例としては、図8に示すようにデバッガ内にデ
バッグシンボル情報全体をロードしない方式も可能であ
る。本方式は、デバッグシンボル情報20p、20dを
オブジェクトファイル12p、12dの中に置いたまま
とし、サーチリスト定義エリア50にオブジェクトファ
イル名の識別情報リストを記憶しておき、デバッグシン
ボル情報サーチ時に該リストに従って直接対応するオブ
ジェクトファイルをサーチするものである。
【0014】また、別の実施例としては、各デバッグシ
ンボル情報を論理的に別々のテーブルにロードするので
はなく、デバッガ内の1つのテーブルに混合してロード
する方式も可能である。図9は、本方式を使った一実施
例を示す。デバッガ13には、シンボル名称61および
シンボルの種別62をサーチキーとするデバッグシンボ
ル情報テーブル60が設けられている。本テーブル60
の他のフィールドは、デバッグシンボル情報20pとデ
バッグシンボル情報20dを混合した形をしており、情
報処理プログラムの変数名称あるいは関数名称の場合の
アドレス情報あるいはデータタイプ名称の場合のタイプ
サイズを保持するアドレス・タイプサイズ情報フィール
ド63と、データタイプの場合のフィールド情報を保持
するタイプフィールド情報フィールド64などから成っ
ている。また、タイプフィールド情報フィールド64か
ら指されるメモリ内のタイプフールド情報テーブル40
mは、デバッグ情報オブジェクトファイル12dのタイ
プシンボル情報24のタイプ情報テーブル40(図4参
照)をデバッガ13内にロードしたものである。
【0015】次に、これらのテーブルへのデバッグシン
ボル情報のロード処理を図10のフローチャートを用い
て説明する。図10の処理は大きく2つに別れている。
前半部のステップ131からステップ134までがプロ
グラムオブジェクトファイル12pのデバッグシンボル
情報20pのロード処理で、後半部のステップ135か
らステップ139までがデバッグ情報オブジェクトファ
イル12dのデバッグシンボル情報20dのロード処理
である。まず、前半部では以下の処理を行う。プログラ
ムオブジェクトファイル12pから各変数・関数のシン
ボル名称情報21とアドレス情報22を取り出す(ステ
ップ131)。次に、取り出した情報のシンボル名称と
変数名・関数名の区別情報をキーとして、デバッグシン
ボル情報テーブル60のエントリを生成する(ステップ
132)。生成したエントリの各々に対して、残りの情
報であるアドレス情報22をアドレス・タイプサイズ情
報フィールド63に設定する(ステップ133)。最後
に、以上の処理131から処理132をデバッグシンボ
ル情報20pのエントリが尽きるまで繰り返し(ステッ
プ134)、20pの全てのエントリが終わったら前半
の処理を終了する。なお、タイプフィールド情報フィー
ルド64は、プログラムの変数・関数シンボルには使用
しない(図中斜線で示す)。
【0016】前半の処理が終ると、次は、後半のデバッ
グ情報オブジェクトファイル12dからのデバッグシン
ボル情報20dのロード処理を行なう。まず、デバッグ
情報オブジェクトファイル12dのタイプシンボル情報
24の中のフィールド情報テーブル40(図4参照)を
デバッガ13内のメモリ内フィールド情報テーブル40
mに等価ロード、すなわち変形しないでそのままロード
する(ステップ135)。次に、タイプシンボルテーブ
ル30の各エントリを取り出す(ステップ136)。そ
して、取り出したエントリのタイプシンボル名称とシン
ボル種別情報である“タイプ名”をキーとして、デバッ
グシンボル情報テーブル60のエントリを生成する(ス
テップ137)。生成したエントリのアドレス・タイプ
サイズフィールド63には、タイプシンボルテーブル3
0からタイプサイズ情報32を設定し、タイプフィール
ド情報フィールド64には、タイプフィールド情報テー
ブルへのリンク情報33を基に、ステップ135でロー
ドしたフィールド情報テーブル40mの対応するエント
リ指すようにリンク情報を設定する(ステップ13
8)。最後に、以上のステップ136からステップ13
8をタイプシンボルテーブル30のエントリが尽きるま
で繰り返し(ステップ139)、全てのエントリが終わ
ったらロード処理を終了する。以上のようにしてデバッ
ガシンボル情報20p、20dをデバッガ13にロード
すると、オペレータの操作中のシンボル名称に対するデ
バッグシンボル情報のサーチは簡単で、デバッグ情報テ
ーブル60をシンボル名称とシンボルの種別をキーとし
てサーチすることによって行われる。なお、図9の実施
例(各デバッグシンボル情報をデバッガ内の1つのテー
ブルに混合してロード)ではできないが、図5および図
8の実施例による方法を用いると、各オブジェクトファ
イルのデバッグシンボル情報は互いに識別できるので、
同じシンボル名称のデバッグシンボル情報エントリが複
数のオブジェクトファイルに含まれていても、オブジェ
クトファイル名称の識別子等を付加してシンボルを指定
するインタフェースを追加することで、所望のオブジェ
クトファイルのデバッグシンボル情報を使用することが
できるという効果がある。
【0017】次に、本発明で新たに追加したもう1つの
手段であるタイプ付きデータアクセス指示手段200の
実施例について説明する。図11は、タイプ付きデータ
アクセス指示手段200の一実施例の概念図である。特
別なデバッグオプションで作成されていないプログラム
オブジェクトファイル12pには、前述したように、各
関数・変数シンボルのデータタイプ情報23が存在しな
い。そこで、オペレータがデバッガ13への操作によ
り、必要な関数・変数シンボルに対してタイプを設定す
るという方式を用いる。まず、各関数・変数シンボルの
データタイプを表す情報を記述するシンボルタイプ属性
テーブル70をデバッガ13内に用意し、各関数・変数
シンボルのタイプ属性情報フィールド71に、例えば、
予め整数4バイトタイプを表す値である"int"等のデフ
ォルト値を入れておく。もし、デフォルト以外のデータ
タイプとしてある変数を扱いたい場合は、オペレータが
特別なデバッガコマンド等を使用し、変数名称と設定し
たいタイプ名称を指定することによって、デバッガ13
に該変数のデータタイプの設定を依頼する。例えば、オ
ペレータ9が、"set_typevarx xrecord"という操作を行
うと、シンボルタイプ属性テーブル70の変数varxに対
応するエントリのタイプ属性情報フィールド71にタイ
プ名"xrecord"が設定される。この設定処理は、図12
のフローチャートに示す通りの単純な処理である。ま
ず、指定された変数名称により、シンボルタイプ属性テ
ーブル70をサーチして対応するエントリを見付け出す
(ステップ201)。次に、見付け出したエントリのタ
イプ属性情報フィールド71に指定されたタイプ名称等
をタイプ属性値として設定し(ステップ202)、処理
を終了する。シンボルタイプ属性テーブル70が設定で
きると従来のデバッガが必要としていたすべての情報が
揃うので、後は従来と同様の方式によりシンボリックな
デバッグ操作が行える。なお、図11の実施例では、シ
ンボルタイプ属性情報テーブル70は、独立したテーブ
ルの形で示したが、情報処理プログラムの関数・変数名
称との対応関係を記述できる方式であれば、他のテーブ
ルの一部として実現することも可能である。
【0018】タイプ付きデータアクセス指示手段200
の別の実施例としては、図13に示す方式も可能であ
る。この方式では、各関数・変数シンボル対応にはデー
タタイプ属性情報を全く持たず、オペレータ9が、変数
名称、タイプ名称、構造を持つタイプの場合のフィール
ド名称を組合せてアクセスしたいアドレスを演算式の形
でシンボリックに指定し、得られたアドレスのデータを
アクセスを指示するコマンド(例えば、図13の例で
は、printコマンド)を使うことで、操作対象の変数等
をシンボリックにアクセスする。本方式は次のようにし
て実現される。まず、情報処理プログラムの関数・変数
名称を対応するアドレスに変換する手段210、タイプ
名称を該タイプのサイズ値に変換する手段220、構造
を持つタイプのフィールド名称を該フィールドのタイプ
内オフセット値に変換する手段230とをデバッガ13
に用意しておく。以上の手段は、プログラムオブジェク
トファイル12pに格納されているデバッグシンボル情
報20pのシンボル名称21とアドレス値情報22や、
デバッグ情報オブジェクトファイル12dに格納されて
いるデバッグシンボル情報20dのタイプシンボル情報
24を参照すれば、そこに対応する情報が存在するので
容易に実現可能である。
【0019】さらに、値の四則演算手段240をデバッ
ガ13に持たせることにより、変数が構造を持つ場合で
も、変数シンボル名称、タイプシンボル名称、タイプフ
ィールド名称を使い、最終アクセス対象のアドレスを計
算式の形で記述できる。例えば、図14に示す例では、
xfld1, xfld2という2つの4バイト整数のフィールドか
らなる構造を持つタイプxrecordを各要素とする配列変
数xarrayの2番目の要素のxfld2フィールドのアドレス
を式 "xarray+(xrecord*2)+xrecord.xfld2" で指定できることを示す。本例では、"xarray"がxarray
のアドレスに、"xrecord"がxrecordのタイプサイズであ
る“8”に、"xrecord.xfld1"は該フィールド名称のオ
フセット値である“4”に変換されるため、式の値とし
てはxarray+20となり、所望のアドレスが得られる。
以上の手段によりアクセスしたいデータのシンボリック
なアドレスが指定できるので、さらに、指定したアドレ
スに対して、4バイト整数、8バイト浮動少数点等、限
られた基本データタイプでアクセスする手段250をサ
ポートすることで、デバッグ対象の情報処理プログラム
11の任意のデータタイプを持つ変数のアクセスをシン
ボリックに指定できるようになる。
【0020】
【発明の効果】本発明によると、デバッグ対象の情報処
理プログラムが特別なデバッグオプションで作成されて
いなくても、シンボリックなデバッグが可能となる。即
ち、デバッグ用に作成されていない実用の情報処理プロ
グラムも、そのまま、シンボリックにデバッグできるよ
うになるという効果がある。
【図面の簡単な説明】
【図1】本発明のデバッグ方式の一実施例の概念図であ
る。
【図2】従来のデバッグ方式の概念図である。
【図3】本発明に係わるシステム構成図である。
【図4】本発明に係わるタイプシンボルのデバッグシン
ボル情報の一構成図である。
【図5】本発明のデバッグ情報追加手段の一実施例の概
念図である。
【図6】本発明のデバッグ情報追加手段の追加処理のフ
ローチャート例である。
【図7】本発明のデバッグ情報追加手段のデバッグシン
ボル情報サーチのフローチャート例である。
【図8】本発明のデバッグ情報追加手段の別の一実施例
の概念図である。
【図9】本発明のデバッグ情報追加手段の別の一実施例
の概念図である。
【図10】図9の本発明のデバッグ情報追加手段の追加
処理のフローチャート例である。
【図11】本発明のタイプ付きデータアクセス指示手段
の一実施例の概念図である。
【図12】本発明のタイプ付きデータアクセス指示手段
の一実施例のフローチャート例である。
【図13】本発明のタイプ付きデータアクセス指示手段
の別の一実施例の概念図である。
【図14】タイプ付きデータアクセス指示手段のアクセ
スアドレス指示の図である。
【符号の説明】
1…プロセッサ、2…メモリ、3…ディスク、4…端末
装置、5…信号線、9…オペレータ、11…デバッグ対
象の情報処理プログラム、12p…プログラムオブジェ
クトファイル、12d…デバッグ情報オブジェクトファ
イル、13…デバッガ、20…デバッグシンボル情報、
20p…プログラムオブジェクトファイル内のデバッグ
シンボル情報、20d…デバッグ情報オブジェクトファ
イル内のデバッグシンボル情報、20pm…メモリ上の
プログラムオブジェクトファイル内のデバッグシンボル
情報、20dm…メモリ上のデバッグ情報オブジェクト
ファイル内のデバッグシンボル情報、21…シンボル名
称、22…アドレス情報、23…データタイプ情報、2
4…タイプシンボル情報、30…タイプシンボルテーブ
ル、31…タイプシンボル名称、32…データタイプサ
イズ情報、33…フィールド情報テーブルへのリンク情
報、40…フィールド情報テーブル、40m…メモリ上
のフィールド情報テーブル、41…フィールド名称、4
2…フィールドオフセット情報、43…フィールドデー
タタイプ情報、44…フィールドタイプ情報、50…シ
ンボルサーチリスト定義エリア、60…デバッグ情報テ
ーブル、61…シンボル名称フィールド、62…シンボ
ル種別フィールド、63…アドレス・タイプサイズフィ
ールド、64…タイプフィールド情報フィールド、70
…シンボルタイプ属性テーブル、71…タイプ属性フィ
ールド、100…デバッグ情報追加手段、200…タイ
プ付きデータアクセス指示手段、210…変数・関数名
のアドレス変換手段、220…タイプ名のタイプサイズ
変換手段、230…タイプフィールド名のオフセット値
変換手段、240…値の四則演算手段、250…指定ア
ドレスの基本タイプによるアクセス手段、300…従来
のシンボリックデバッガ機能
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤田 不二男 神奈川県横浜市戸塚区戸塚町5030番地 株式会社日立製作所ソフトウェア開発本 部内 (56)参考文献 特開 平2−44434(JP,A) 特開 昭63−41948(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 11/28

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラムのオブジェクトファイルに格
    納されているデバッグシンボル情報を参照するととも
    に、データタイプのシンボル情報を含む別の1つまたは
    複数のオブジェクトファイルのデバッグシンボル情報を
    追加参照し、情報処理プログラムの変数シンボルと上記
    追加参照したデータタイプのシンボル情報を使い、情報
    処理プログラムの変数を外部から指定したデータタイプ
    を持った変数としてアクセスを指示するデバッグ方法に
    おいて、 データタイプのデバッグシンボル情報を含まない情報処
    理プログラムのオブジェクトファイルと、該情報処理プ
    ログラムが使用しているデータタイプシンボルのデバッ
    グシンボル情報を含む1つまたは複数のオブジェクトフ
    ァイルとを組合せ指定し、該情報処理プログラムをシン
    ボリックにデバッグすることを特徴とするデバッグ方
    法。
  2. 【請求項2】 請求項1に記載のデバッグ方法におい
    て、 前記各オブジェクトファイルの デバッグシンボル情報を
    論理的に別々の固まりとして、各デバッグシンボル情報
    エントリがどのオブジェクトファイルのデバッグシンボ
    ル情報に属しているかが判定できる形でテーブルに読み
    込み、さらに、シンボル参照時のサーチ順としてデバッ
    グシンボル情報の識別情報のリストを保持し、該リスト
    順に従ってデバッグシンボルセットを上記テーブルをサ
    ーチすることによって参照されたシンボルに対応するデ
    バッグシンボル情報を見つけ出すことを特徴とするデバ
    ッグ方法。
  3. 【請求項3】 請求項1に記載のデバッグ方法におい
    て、 前記 複数のオブジェクトファイルのデバッグシンボル情
    報を、シンボル名称と、該シンボル名称の種別情報をキ
    ーとしてテーブルに読み込み、該テーブルをサーチする
    ことによって参照されたシンボルに対応するデバッグシ
    ンボル情報を見つけ出すことを特徴とするデバッグ方
    法。
  4. 【請求項4】 情報処理プログラムのデバッガであっ
    て、プログラムのオブジェクトファイルに格納されてい
    るデバッグシンボル情報の参照に加え、データタイプの
    シンボル情報を含む別の1つまたは複数のオブジェクト
    ファイルのデバッグシンボル情報を追加参照する手段
    と、情報処理プログラムの変数シンボル と追加参照した
    データタイプのシンボルとを使い、情報処理プログラム
    の変数を指定されたデータタイプを持った変数としてア
    クセスを指示するアクセス指示手段を有し、 該アクセス指示手段として、データタイプ名称をデータ
    タイプのサイズ値に変換する手段と、データタイプの部
    分フィールド名称参照をデータタイプ内でのオフセット
    値に変換する手段と、情報処理プログラムの変数名称を
    対応するアドレス値に変換する手段とを有し、さらに各
    値に対する四則演算と演算結果の値をアドレスとして情
    報処理プログラムの空間をアクセスする手段を有するこ
    とを特徴とするデバッガ。
JP6139945A 1994-06-22 1994-06-22 情報処理プログラムのデバッグ方法およびそのためのデバッガ Expired - Lifetime JP2927180B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6139945A JP2927180B2 (ja) 1994-06-22 1994-06-22 情報処理プログラムのデバッグ方法およびそのためのデバッガ
US08/492,978 US5655073A (en) 1994-06-22 1995-06-21 Debugging method and debugger

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6139945A JP2927180B2 (ja) 1994-06-22 1994-06-22 情報処理プログラムのデバッグ方法およびそのためのデバッガ

Publications (2)

Publication Number Publication Date
JPH086812A JPH086812A (ja) 1996-01-12
JP2927180B2 true JP2927180B2 (ja) 1999-07-28

Family

ID=15257342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6139945A Expired - Lifetime JP2927180B2 (ja) 1994-06-22 1994-06-22 情報処理プログラムのデバッグ方法およびそのためのデバッガ

Country Status (2)

Country Link
US (1) US5655073A (ja)
JP (1) JP2927180B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1021169A (ja) * 1996-07-02 1998-01-23 Fujitsu Ltd 通信制御装置及び通信制御装置の通信制御方法並びに通信制御装置を有する通信システム
US6041177A (en) * 1997-02-26 2000-03-21 Fujitsu Limited Program analyzing apparatus which categorizes variables into domains and method thereof
US6253368B1 (en) * 1997-03-31 2001-06-26 International Business Machines Corporation Dynamically debugging user-defined functions and stored procedures
KR100248376B1 (ko) * 1997-10-28 2000-03-15 정선종 동적-비주얼 통합 병렬 디버깅 장치 및 디버깅 방법
US6108659A (en) * 1998-12-22 2000-08-22 Computer Associates Think, Inc. Method and apparatus for executing stored code objects in a database
US6611924B1 (en) * 1999-07-16 2003-08-26 Lucent Technologies Inc. Reducing code size of debug output statements
JP2001337823A (ja) * 2000-05-25 2001-12-07 Sony Corp コンポーネントウェア作成方法および記録媒体
US6799173B2 (en) * 2001-11-14 2004-09-28 Sun Microsystems, Inc. Method and apparatus for sharing code containing references to non-shared objects
US20030177419A1 (en) * 2002-03-15 2003-09-18 International Business Machines Corporation Facilitating the debugging of applications by employing user defined or redefined symbols
US8769517B2 (en) * 2002-03-15 2014-07-01 International Business Machines Corporation Generating a common symbol table for symbols of independent applications
US20050198624A1 (en) * 2004-03-02 2005-09-08 Chipman Timothy W. Method and system for program transformation
US7774758B2 (en) * 2005-05-16 2010-08-10 Texas Instruments Incorporated Systems and methods for secure debugging and profiling of a computer system
US8042099B2 (en) * 2007-05-30 2011-10-18 Red Hat, Inc. Facilitating availability of object data types at runtime
US8402438B1 (en) * 2007-12-03 2013-03-19 Cadence Design Systems, Inc. Method and system for generating verification information and tests for software
US8156474B2 (en) * 2007-12-28 2012-04-10 Cadence Design Systems, Inc. Automation of software verification
US8504344B2 (en) * 2008-09-30 2013-08-06 Cadence Design Systems, Inc. Interface between a verification environment and a hardware acceleration engine
US20110246966A1 (en) * 2010-04-06 2011-10-06 Sony Computer Entertainment America Inc. Embedding source files into program symbol files
US9274931B2 (en) 2013-05-06 2016-03-01 International Business Machines Corporation Inserting implicit sequence points into computer program code to support debug operations
WO2017105501A1 (en) * 2015-12-18 2017-06-22 Hewlett Packard Enterprise Development Lp Data type management

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394544A (en) * 1989-08-07 1995-02-28 Ricoh Co., Ltd. Software system debugger with distinct interrupt vector maps for debugging and application programs
JPH07113912B2 (ja) * 1991-05-31 1995-12-06 富士ゼロックス株式会社 分散型情報処理システムのデバッグ方式
JPH06103048A (ja) * 1992-04-24 1994-04-15 Nec Corp プログラム開発支援システム
JPH06161822A (ja) * 1992-11-20 1994-06-10 Mitsubishi Electric Corp マイクロプロセッサ
JP2731692B2 (ja) * 1993-04-28 1998-03-25 日本電気アイシーマイコンシステム株式会社 デバッグ装置

Also Published As

Publication number Publication date
US5655073A (en) 1997-08-05
JPH086812A (ja) 1996-01-12

Similar Documents

Publication Publication Date Title
JP2927180B2 (ja) 情報処理プログラムのデバッグ方法およびそのためのデバッガ
US5339435A (en) Heterogenous software configuration management apparatus
US5291601A (en) Shared libraries implemented with linking program loader
US5819282A (en) Database generator
US4833594A (en) Method of tailoring an operating system
US4692896A (en) Method of processing a plurality of code systems
JPH08171482A (ja) プログラムのバージョン生成方式
JPH06266563A (ja) 複数同時オブジェクト・バージョンをサポートする効率的ルータ
CA2255035C (en) Archiving tool
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
US5724559A (en) Method for displaying ISPF panels in a VM non-ISPF environment
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JP2620545B2 (ja) テーブル駆動による編集装置
US6311227B1 (en) Procedure calling method
JPH06110733A (ja) プログラムのテストケース生成装置
JP3489153B2 (ja) ファイルシステム
JPH04205422A (ja) プログラム自動翻訳結合及び選択方法
JPH06110750A (ja) 関係データベースをアクセス可能なアプリケーションプログラムのメイクファイルの自動生成方法
JP2623106B2 (ja) コンピュータ・システム
Davies The use of large computers for software support of minicomputers
Kneen A Users Guide to the IBM Linkage Editor
JPH06324853A (ja) オブジェクト指向プログラミング言語を対象とした原始プログラム編集装置
JPH05173766A (ja) プログラム管理システム
JP2000339175A (ja) 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法
JPS583042A (ja) プログラム実行方式