JP3352893B2 - デバッグ情報作成方法、デバッグ方法及びデバッグシステム - Google Patents

デバッグ情報作成方法、デバッグ方法及びデバッグシステム

Info

Publication number
JP3352893B2
JP3352893B2 JP33062596A JP33062596A JP3352893B2 JP 3352893 B2 JP3352893 B2 JP 3352893B2 JP 33062596 A JP33062596 A JP 33062596A JP 33062596 A JP33062596 A JP 33062596A JP 3352893 B2 JP3352893 B2 JP 3352893B2
Authority
JP
Japan
Prior art keywords
information file
debug
file
debug information
module
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
Application number
JP33062596A
Other languages
English (en)
Other versions
JPH10171680A (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
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems 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 Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP33062596A priority Critical patent/JP3352893B2/ja
Publication of JPH10171680A publication Critical patent/JPH10171680A/ja
Application granted granted Critical
Publication of JP3352893B2 publication Critical patent/JP3352893B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータプロ
グラムのソフトウェア開発時におけるデバッグ技術に関
し、特にデバッグ情報ファイルをデバッガにロードする
時間を短縮する技術に関するものである。
【0002】
【従来の技術】アセンブラやコンパイラ等の言語処理プ
ロセッサを用いてソフトウェアを開発するときは、ソー
スプログラムを複数のサブモジュールに分割し、夫々の
サブモジュール毎にコンパイル又はアセンブルを行って
オブジェクト情報ファイルを生成し、生成されたオブジ
ェクト情報ファイルの全体をリンクして一つのロードモ
ジュールを生成する。ロードモジュールは、これを実行
するターゲットマシンのメモリにロードされる。デバッ
ガはターゲットマシンにそのロードモジュールを実行さ
せながらデバッグを支援する。ロードモジュールに記述
された命令は絶対アドレスに割り当てられているが、オ
ブジェクト情報ファイルの記述はサブモジュール単位の
相対アドレスに割り当てられている。また、サブモジュ
ールは高級言語などによって記述されている。そのた
め、デバッグに際しては、ロードモジュールにおける絶
対アドレスとサブモジュールの記述との相関などを把握
することが必要であり、コンパイラは、オブジェクト情
報ファイルの他に、デバッグ情報ファイルを生成する。
オブジェクト情報ファイル毎に生成されるデバッグ情報
ファイルもリンカによって全体がリンクされ、これによ
って一つのデバッグ情報ファイルが生成される。一つに
リンクされたデバッグ情報ファイルはデバッガにロード
されて利用される。
【0003】ターゲットシステムにロードモジュールを
実行させ、デバッグ情報ファイルを用いたデバッグにお
いて、あるサブモジュールに誤りが発見されたときは、
そのサブモジュールを修正し、これを再度コンパイルし
て、オブジェクト情報ファイルとデバッグ情報ファイル
を生成し直す。新たに生成されたオブジェクト情報ファ
イルやデバッグ情報ファイルは、その他の修正不要なオ
ブジェクト情報ファイルやデバッグ情報ファイルと再度
リンクされ、これによって生成された修正ロードモジュ
ールはターゲットマシンに再ロードされ、また、一つに
リンクされた修正デバッグ情報ファイルはデバッガに再
ロードされる。その後デバッグを再開できる。
【0004】しかしながら、オブジェクトモジュールを
修正する度に前記修正ロードモジュールや修正デバッグ
情報ファイルの全ての再ロードを必要とするため、デバ
ッグ効率が低下することが予想される。
【0005】修正ロードモジュールの再ロードに関し、
特開昭62-290945号公報には、一部のサブモジ
ュールを変更する場合に、サブモジュール全体の再リン
ク及び再ロードを必要とせず、修正したサブモジュール
だけの変更と再ロードだけで済むようにした技術が示さ
れる。すなわち、修正サブモジュールにその他の修正不
要サブモジュールとのリンク関係を規定するするための
マップ情報を付加し、修正前のロードモジュールの格納
領域以外のメモリ領域に修正されたサブモジュールのオ
ブジェクトプログラムを配置したとき、そのマップ情報
に基づいて、修正サブモジュールのオブジェクトプログ
ラムを前記修正前のロードモジュールにリンクさせるよ
うにして、サブモジュール全体の再リンクと再ロードを
不要にしたものである。また、特開平7−44379に
は、上記技術におけるメモリ領域の利用効率を向上させ
た改良技術が示されている。
【0006】
【発明が解決しようとする課題】しかしながら、上記従
来技術はデバッグ情報ファイルについて考慮されていな
い。デバッグ情報ファイルは、ロードモジュールにおけ
る絶対アドレスとサブモジュールの記述との相関などを
把握できるようにするための情報が記述されている。例
えば、サブモジュールの記述がブロック単位で階層化さ
れ、各階層に含まれるシンボル名、シンボルのアドレス
範囲、シンボルの型等の情報と共に、サブモジュールの
記述行とその記述内容に対する割付けアドレスとの対応
付け等のための行情報が含まれている。一般に行情報は
量が多く、また型として構造体が定義される場合には構
造体の要素やサイズの情報が含まれることになる。これ
により、デバッグ情報ファイルのデータはロードモジュ
ールに比べて格段に多くなり、10倍近くになることが
ある。
【0007】このような事情の下では、サブモジュール
の修正毎にデバッグ情報ファイルをデバッガに再ロード
するとなれば、ロードモジュールの再ロードに要する時
間が改善されたとしても、デバッグ効率の向上を期待で
きないことが本発明者によって明らかにされた。
【0008】本発明の目的は、デバッグ情報ファイルの
ロード時間短縮、そして、デバッグ情報によるメモリ利
用効率向上に寄与できるデバッグ技術を提供することに
ある。
【0009】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0010】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0011】すなわち、デバッグ情報作成方法は、ソー
スプログラムを構成するサブモジュールを読み込み、読
み込んだサブモジュール毎にオブジェクト情報ファイル
とデバッグ情報ファイルとを生成する変換処理と、前記
ソースプログラムに対応されるオブジェクト情報ファイ
ルを読み込み、読み込んだオブジェクト情報ファイルか
らロードモジュールと管理情報ファイルとを生成するリ
ンク処理とを含む。前記変換処理は、サブモジュールの
記述を、機械語に変換しサブモジュール毎の相対アドレ
スに割り当てた、オブジェクト情報を含むオブジェクト
情報ファイルと、オブジェクト情報の割付相対アドレス
とそれに対応されるサブモジュールの記述内容との対応
関係を定義するデバッグ情報ファイルとを、サブモジュ
ール毎に生成する処理を含む。前記リンク処理は、複数
のオブジェクト情報ファイルのオブジェクト情報を絶対
アドレスに割り当ててロードモジュールを生成する処理
と、サブモジュール毎のオブジェクト情報に対する割付
絶対アドレスとそのサブモジュールに対応されるデバッ
グ情報ファイル名とを関連付ける管理情報ファイルを生
成する処理とを含む。
【0012】前記リンク処理は、ソースプログラムに対
応される全てのデバッグ情報ファイルを全体的にリンク
させる処理(一つのデバッグ情報ファイルに編集する処
理)は行わない。それに代えて、管理情報ファイルを生
成する。この管理情報ファイルを絶対アドレスで検索す
ると、その絶対アドレスに対応されるデバッグ情報ファ
イルを特定できる。
【0013】デバッガは、このようにして特定されたデ
バッグ情報ファイルを読み込んで、デバッグに利用す
る。すなわち、上記デバッグ情報作成方法によって作成
されたデバッグ情報ファイルと管理情報ファイルとを用
いてソースプログラムのデバッグを支援するデバッグ方
法は、前記リンク処理で生成されたロードモジュールを
ターゲットシステムに実行させると共に前記デバッグ情
報ファイルを用いてソースプログラムのデバッグを支援
するデバッガ処理を含み、このデバッガ処理は、前記リ
ンク処理で生成されたロードモジュールを読み込んでタ
ーゲットシステムに供給すると共に、管理情報ファイル
を読み込み、ロードモジュールの着目絶対アドレスに対
応するデバッグ情報ファイル名を前記管理情報ファイル
から検索し、検索されたファイル名のデバッグ情報ファ
イルを読み込んで、読み込んだデバッグ情報ファイルを
用いて前記ソースプログラムのデバッグを支援する。
【0014】したがって、デバッグに際してデバッガ
は、デバッグに際して着目する絶対アドレスに対応され
るデバッグ情報ファイルだけを入力すればよく、デバッ
グ情報の読込みのための時間を短縮できる。着目する物
理アドレスが所定範囲に変更若しくは推移されたとき
は、それに応じて新たに必要なデバッグ情報を追加して
読み込むだけでよい。
【0015】ソースファイルに不良があった場合には、
該当するソースファイルを修正した後、修正に係るソー
スファイルを再度コンパイルしてそのオブジェクト情報
ファイルとデバッグ情報ファイルを生成し直す。そし
て、修正されたオブジェクト情報ファイルと修正不要な
既存のオブジェクト情報ファイルを用いて再度リンクし
て、ロードモジュールと管理情報ファイルを新たに作成
する。このようにソースファイルを修正した場合にも、
着目する絶対アドレスに対応されるデバッグ情報ファイ
ルだけを入力してテーブルに展開すればよく、デバッグ
情報の読み込みのための時間を短縮できる。
【0016】また、前記管理情報ファイルに、サブモジ
ュールが前記変換処理された日付情報を前記デバッグ情
報ファイル名と関連付けて含めるとき、デバッガ処理
は、リンク処理で生成されたロードモジュールを読み込
んでターゲットシステムに供給すると共に、管理情報フ
ァイルを読み込み、既に読み込み済みの管理情報ファイ
ルがあるとき双方のファイルの前記日付情報を比較し、
比較結果が相違する前記読み込み済みの管理情報ファイ
ルの日付情報に対応したデバッグ情報ファイルが読み込
まれているときはこれを無効化し、この処理の後、前記
ロードモジュールの着目絶対アドレスに対応するデバッ
グ情報ファイル名を前記読み込んだ管理情報ファイルか
ら検索し、検索されたファイル名のデバッグ情報ファイ
ルを読み込んで、読み込んだデバッグ情報ファイルを用
いて前記ソースプログラムのデバッグを支援することが
できる。これによれば、デバッガに複数のデバッグ情報
が読み込まれて複数のデバッグ情報テーブルが形成され
ているとき、部分的にソースファイルを修正しても、ソ
ースファイルの修正直前まで用いられていたデバッグ情
報テーブルを無条件に全て破棄することなく、その修正
の影響を受けるデバッグ情報テーブルだけを破棄して、
必要なデバッグ情報ファイルだけを再ロードすることが
できるから、ソースファイルを修正したときもデバッグ
情報ファイルの再ロードを一層効率化することができ
る。
【0017】
【発明の実施の形態】
〔デバッグシステム〕図1にはデバッグシステムの機能
ブロック図が示される。ソースプログラムは、例えば高
級言語で記述され、複数のサブモジュールに分割されて
いる。この例において夫々のサブモジュールは代表的に
示されたソースファイルfile1.c,file2.cで与えられ
る。コンパイラ1は、ソースファイルfile1.c,file2.c
を読み込み、読み込んだソースファイルfile1.c,file
2.c毎にオブジェクト情報ファイルfile1.obj,file2.ob
jとデバッグ情報ファイルfile1.dbg,file2.dbgとを生
成する。すなわち、前記コンパイラ1は、ソースファイ
ルfile1.c,file2.cの記述をターゲットシステムの機械
語に変換しサブモジュール毎の相対アドレスに前記変換
した内容を割り当てて複数のオブジェクト情報ファイル
file1.obj,file2.objから成るオブジェクトプログラム
を生成する。また、コンパイラ1は、相互に対応される
ソースファイルfile1.cの記述とオブジェクト情報ファ
イルfile1.objの記述との対応関係を定義するデバッグ
情報ファイルfile1.dbgを生成すると共に、相互に対応
されるソースファイルfile2.cの記述とオブジェクト情
報ファイルfile2.objの記述との対応関係を定義するデ
バッグ情報ファイルfile2.dbgを生成する。デバッグ情
報ファイルに記述されたアドレスもオブジェクト情報フ
ァイルに記述された割付けアドレスと同様の相対アドレ
スとされる。
【0018】リンカ2は、前記ソースプログラムに対応
されるオブジェクト情報ファイルfile1.obj,file2.obj
を読み込み、読み込んだオブジェクト情報ファイルから
ロードモジュールfile12.absと管理情報ファイル3とを
生成する。すなわち、前記リンカ2は、前記複数のオブ
ジェクト情報ファイルfile1.obj,file2.objによって構
成されるオブジェクトプログラムをターゲットシステム
の絶対アドレスに割り当ててロードモジュールfile12.a
bsを生成する。更に詳しくは、オブジェクト情報ファイ
ルは、機械語を記述したオブジェクト情報を有し、オブ
ジェクト情報が絶対アドレスに割り付けられる。絶対ア
ドレスに割り付けられた全てのオブジェクト情報によっ
てロードモジュールが構成される。また、リンカ2は、
前記デバッグ情報ファイルfile1.dbg,file2.dbgとその
内容に対応する前記絶対アドレスとの関連付けを定義す
る管理情報ファイル3を生成する。すなわち、個々のオ
ブジェクト情報ファイルのオブジェクト情報に割り付け
られた絶対アドレスの範囲を、対応するデバッグ情報フ
ァイルと関連付けられるように、管理情報ファイルが形
成される。この例からも明らかなように、リンカ2は前
記デバッグ情報ファイルfile1.dbg,file2.dbgを全体的
にリンクさせる処理(一つのデバッグ情報ファイルに編
集する処理)は行わない。それに代えて、管理情報ファ
イル3を生成する。
【0019】デバッガ4は、前記リンカ2で生成された
ロードモジュールfile12.absをターゲットシステムに実
行させると共に前記デバッグ情報ファイルfile1.dbg,f
ile2.dbgを選択的に用いてソースプログラムのデバッグ
を支援する。すなわち、前記デバッガ4は、ロードモジ
ュールfile12.absを読み込んでターゲットシステムに供
給する。また、デバッガ4は、管理情報ファイル3を読
み込み、前記ターゲットシステムに供給したロードモジ
ュールの中で着目する絶対アドレス(実効アドレス)な
どによって管理情報ファイル3を参照し、その絶対アド
レスに対応されるデバッグ情報ファイルを検索し、検索
されたデバッグ情報ファイルを読み込んで、ソースプロ
グラムのデバッグに用いる。
【0020】図2には前記デバッグシステムのハードウ
ェア構成の一例が示されている。デバッグシステムは、
ホストコンピュータ(ホストシステム)80及びエミュ
レータ81から成り、エミュレータ81にターゲットシ
ステム84が接続されている。ホストコンピュータ80
は各種プログラムを実行出来るコンピュータである。ホ
ストコンピュータ80は、その動作プログラムによって
前記コンパイラ1、リンカ2及びデバッガ4の機能を実
現する。エミュレータ81はエミュレータ本体82とエ
ミュレーションポッド83によって構成される。エミュ
レーションポッド83には、ターゲットシステム84に
塔載されるべきマイクロプロセッサ若しくはマイクロコ
ンピュータのような図示を省略するターゲットプロセッ
サを代替するエミュレーション用のプロセッサが搭載さ
れている。エミュレーション用のプロセッサは一方にお
いてターゲットシステム84のターゲットプロセッサソ
ケットに結合され、他方においてエミュレータ本体82
に結合される。エミュレータ本体82は、評価専用のロ
ジックが搭載され、ブレークポイント制御、トレース制
御など、ターゲットシステムの状態を確認可能にした
り、ターゲットシステムのメモリ領域を代替したりする
ための装置である。エミュレータ81に対する制御はホ
ストコンピュータ80が行う。
【0021】前記ロードモジュールfile12.absはエミュ
レータ81を介してターゲットシステム84のアドレス
空間に配置されたメモリにロードされ、実行される。図
2の例に従えば、ロードモジュールは、エミュレーショ
ンポッド83に配置された図示を省略するエミュレーシ
ョン用のプロセッサが実行する。そのようなメモリはタ
ーゲットシステム7に実装され、あるいエミュレータ内
部のメモリで代替される。前記デバッグ情報ファイルfi
le1.dbg,file2.dbgはホストコンピュータ80のメモリ
にロードされ、デバッグ情報テーブルとして展開され
る。
【0022】図3には管理情報ファイル3の一例フォー
マットが示される。前記管理情報ファイルは、前記コン
パイルを行った日付情報をデバッグ情報ファイル名に対
応して有する。即ち、前記管理情報ファイル3は、サブ
モジュール名(ソースファイル名)に1対1対応される
ユニット名(file1,file2)の欄30、ユニット名に対
応されるオブジェクト情報ファイルの作成(更新を含
む)日付情報の欄31、及びユニット名に対応されるデ
バッグ情報ファイル名(file1.dbg,file2.dbg)の欄3
2を有する。更に、サブモジュールに記述された関数及
びデータ単位で対応されるセクション名の欄33、セク
ション名に対応される関数及びデータを含むサブモジュ
ールのユニット名の欄34、及びセクション名に対応さ
れる関数及びデータの割付け絶対アドレス範囲の欄35
S(スタートアドレス),35E(エンドアドレス)を
有する。そして、サブモジューに記述されたシンボル名
の欄36、シンボル名に対応されるシンボルを含むサブ
モジュールのユニット名の欄37、シンボル名に対応さ
れるシンボルの割付け絶対アドレス(スタートアドレ
ス)の欄38を有する。
【0023】図3の例からも明らかなように、管理情報
ファイル3には、前記デバッグ情報ファイルfile1.db
g,file2.dbgとその内容に対応する割付け絶対アドレス
との関連付けが定義されている。即ち、ユニット名の欄
34と割付け絶対アドレス範囲の欄35S,35Eとの
対応から、デバッグに際して着目する絶対アドレスが割
付けらえたデータや関数の記述を含むソースファイルを
特定することができる。また、ユニット名の欄37と割
付け絶対アドレスの欄38との対応から、デバッグに際
して着目する絶対アドレスが割付けらえたシンボルの記
述を含むソースファイルを特定することができる。その
ようにして特定されたソースファイルに対応されるデバ
ッグ情報ファイルは、ユニット名の欄30とデバッグ情
報ファイル名の欄32との対応から検索することができ
る。
【0024】〔デバッグ情報ファイルの選択的ロードの
基本型〕図4には前記管理情報ファイル3を参照してデ
バッグ情報ファイルを選択的にロードするところまでの
処理がコンパイラ1、リンカ2及びデバッガ4による一
連の処理と共に示されている。コンパイラ1はソースプ
ログラムを入力し(S1)、ソースファイル毎に、機械
語に翻訳する(S2)。そして、ソースファイル毎にオ
ブジェクト情報ファイルとデバッグ情報ファイルを生成
する(S3)。
【0025】リンカ2は、各オブジェクト情報ファイル
を入力し、それらを全体的にリンクして(S4)、ロー
ドモジュールと管理情報ファイルを生成する(S5)。
【0026】デバッガ4は、ロードモジュールと管理情
報ファイルを入力する(S6)。入力されたロードモジ
ュールはターゲットシステムのメモリ空間に配置された
メモリにロードされる。管理情報ファイルはデバッガの
メモリに読み込まれる。デバッガ4は、デバッグに際し
て着目する絶対アドレス(デバッグに際してロードモジ
ュールを実行開始する絶対アドレス若しくは絶対アドレ
スの範囲など)を検索キーとして管理情報ファイル3を
検索し、この絶対アドレスに対応されるデバッグ情報フ
ァイル名を得る(S7)。デバッガ4は、これによって
得られたファイル名のデバッグ情報ファイルを選択して
入力する(S8)。入力したデバッグ情報ファイルはデ
バッガのメモリにテーブルとして展開されて、利用され
る。
【0027】このように、デバッグに際してデバッガ4
は、着目する絶対アドレスに対応されるデバッグ情報フ
ァイルだけを入力してテーブルに展開すればよく、デバ
ッグ情報の読み込みのための時間を短縮できる。デバッ
グ対象が異なるときは、再度ステップS7の処理を行っ
て、新たにデバッグ情報ファイルを読み込めばよい。
【0028】特に図示はしないが、ソースファイルに不
良があった場合には、該当するソースファイルを修正し
た後、修正に係るソースファイルを再度コンパイルして
そのオブジェクト情報ファイルとデバッグ情報ファイル
を生成し直す。そして、修正されたオブジェクト情報フ
ァイルと修正不要な既存のオブジェクト情報ファイルを
用いて再度リンクして、ロードモジュールと管理情報フ
ァイルを新たに作成する。この段階で、既にデバッガに
デバッグ情報ファイルがテーブルとして展開されている
場合に、そのテーブルを無条件に破棄し、図4のステッ
プS7,S8の処理を繰り返すことによって、ソースフ
ァイルを修正した場合にも、対処出来る。この場合に
も、着目する絶対アドレスに対応されるデバッグ情報フ
ァイルだけを入力してテーブルに展開すればよく、デバ
ッグ情報の読み込みのための時間を短縮できる。
【0029】デバッガ4にテーブル展開されるデバッグ
情報ファイルの数は、デバッグに必要な数とされ、複数
のデバッグ情報テーブル(デバッグ情報ファイルをデバ
ッガのメモリ上に展開して成るテーブル)が展開される
場合もある。このとき、前述のように、ソースファイル
の修正直前まで用いられていたデバッグ情報テーブルを
無条件に破棄して、再度デバッグ情報テーブルを形成す
る場合には、無駄を生ずる場合がある。即ち、修正とは
無関係なソースファイルに関するデバッグ情報テーブル
が既に展開されている場合には、ソースファイルの修正
後に同じデバッグ情報テーブルを利用する場合も、再度
該当するデバッグ情報ファイルをデバッガのメモリにロ
ードしてテーブル展開しなければならない。
【0030】〔デバッグ情報ファイルの再ロードの効率
化〕ここでは、ソースファイルを修正したときデバッグ
情報ファイルの再ロードを一層効率化することを考慮し
た処理について説明する。
【0031】前記管理情報ファイル3はデバッガ4のメ
モリにロードされ、管理情報テーブル3Tとして展開さ
れる。図7にはデバッガ4のメモリ上に形成される管理
情報テーブル3Tとワークテーブル5Tが示される。ワ
ークテーブル5Tは、特に制限されないが、読み込みフ
ラグFR1〜FRnと、更新フラグFC1〜FCnを有
する。管理情報テーブル3Tは管理情報ファイル3の各
欄30〜38の情報がテーブル化されている。前記ワー
クテーブル5Tの読み込みフラグFR1〜FRnと、更
新フラグFC1〜FCnとの夫々は、ユニット名の欄3
0の各ユニット名に1対1対応される。
【0032】図5にはソースファイルを修正したときデ
バッグ情報ファイルを再ロードする処理がコンパイラ
1、リンカ2及びデバッガ4による一連の処理と共に示
されている。ステップS1〜S6までの処理は図4と同
じである。特に制限されないが、デバッガ4は、管理情
報テーブル3Tの形成エリアを二つ持ち、一方には最新
に入力した管理情報ファイルに基づく管理情報テーブル
3Tが形成され、他方にはその一つ前に入力した管理情
報ファイルに基づく管理情報テーブル3Tが形成されて
いる。テーブル形成エリアの何れを最新のテーブル形成
領域にするかは、管理情報ファイル3の入力毎に交互に
切換えられる。管理情報ファイル3が新たに読み込まれ
るとき、前記更新フラグFC1〜FCnはリセット状態
に初期化される。読み込みフラグFR1〜FRnは直前
の状態を維持する。
【0033】図5においてデバッガ4は、管理情報ファ
イル3を入力したとき、リロード処理か否かを判定する
(S9)。この処理は、例えばデバッガのメモリにデバ
ッグ情報テーブルが作成されているか否の判定によって
行う。即ち、前記読み込みフラグFR1〜FRnは、デ
バッガ4が読み込んだデバッグ情報ファイルに対応され
るユニット名の欄のユニット名に対応されるものがセッ
ト状態にされる。これら読み込みフラグFR1〜FRn
を参照し、一つでもセット状態にされていればデバッグ
情報テーブルが作成されていることになる。デバッグ情
報テーブルが作成済みの場合にはリロード処理と判定す
る。リロード処理と判定された場合には、ソースプログ
ラムの修正によって更新されたデバッグ情報ファイルの
テーブルが既に形成されているとき、それをデバッガの
メモリから開放する(S10)。例えば、デバッグ情報
ファイル名に対応されるソースファイル作成日付を、今
回作成された管理情報テーブルと前回作成された管理情
報テーブルとの間で比較し、不一致である場合には更新
されていると判断する。更新されているものに対して
は、更新フラグFC1〜FCnの内、そのデバッグ情報
ファイル名に対応されるフラグをセット状態に反転す
る。そして、デバッガは、更新フラグFC1〜CFnと
読み込みフラグFR1〜FRnとの相互に対応されるも
のが共にセット状態にされているフラグに対応されるフ
ァイル名のデバッグ情報テーブルをメモリから開放(デ
ータの破棄)して、当該更新フラグとメモリから開放し
たデバッグ情報テーブルに対応される読み込みフラグを
リセット状態に戻す。これにより、ソースファイルの修
正の影響を受けるデバッグ情報テーブルだけが破棄され
る。リロード処理でない場合はステップS10の処理は
実質的に行われない。
【0034】そして、管理情報ファイル3よりデバッグ
対象PCを含むデバッグ情報ファイルを検索し(S1
1)、検索されたデバッグ情報ファイルがデバッガのメ
モリにロードされ、デバッグ情報テーブルが形成される
(S12)。ステップS9〜S12の処理については後
から図6に基づいて詳述する。
【0035】これにより、ソースファイルの修正後のデ
バッグに必要なデバッグ情報テーブルがデバッガ4のメ
モリに形成される。デバッガ4は修正されたロードモジ
ュールをターゲットシステムに実行させ、デバッグ情報
テーブルを用いてデバッグを再開することができる。そ
のデバッグによりソースプログラムに不良があるかを判
定し(S14)、不良がある場合には不良に係るソース
ファイルを修正して(S15)、前記ステップS1から
の処理を繰り返す。
【0036】図6には前記図5のステップS9〜S12
の処理フローを別の形式で整理して示してある。上記デ
バッグ情報ファイルの選択的ロード並びにリロード処理
について図8をも参照しながら更に説明する。デバッガ
4は、ロードモジュールと共に管理情報ファイル3を入
力する(S50)。入力された管理情報ファイル3はデ
バッガ4のメモリ上に管理情報テーブル3Tとして展開
される。新たに管理情報テーブルが形成されるとき、図
8の(A)に示されるように更新フラグFC1〜FCn
はリセット状態に初期化される。読込みフラグFR1〜
FRnはそのまま維持される。また、管理情報ファイル
の読み込み以前に管理情報テーブルが形成されていた場
合には、一つ先に形成されていた管理情報テーブル(旧
管理情報テーブル)もそのまま維持される。
【0037】最新の管理情報テーブル(新管理情報テー
ブル)が作成されると、デバッガ4は、リロード(再ロ
ード)処理かの判定を行う(S51)。リロード処理か
の判定は、前記同様にデバッガ4のメモリにデバッグ情
報テーブルが作成されているか否を読み込みフラグFR
1〜FRnの何れかがセット状態にされているかによっ
て判定する。例えば図8の(A)に示されるように読込
みフラグFRh,FRiがセット状態にされているな
ら、リロード処理と判定する。読込みフラグFRh,F
Riがセット状態にされているので、そのフラグに対応
されるデバッグ情報ファイルfileh.dbg,filei.dbgのテ
ーブルが既にデバッガのメモリに形成されている。
【0038】ステップS51でリロード処理と判定され
た場合、新管理情報テーブルと旧管理情報テーブルとの
各ユニットの作成日付を比較し作成日付の異なるユニッ
トに対応される変更フラグをセットする。例えば、図8
の(B)に示されるように、ユニットfilei,filekに対
応される変更フラグFCi,FCkがセット状態に反転
される。セット状態の変更フラグに対応される読込みフ
ラグがセット状態ならば、そのフラグに対応されるユニ
ット名のデバッグ情報テーブルがデバッガのメモリから
開放される(S52)。デバッグ情報テーブルがメモリ
から開放されたときはそのテーブルに対応される読込み
フラグはリセット状態に初期化される。例えば図8の
(B)において変更フラグFCiに対応される読込みフ
ラグFRiがセット状態にされているから、ユニット名
fileiに対応されるデバッグ情報ファイルfilei.dbgのテ
ーブルが開放される。これに呼応して、図8の(C)に
例示されるように、読込みフラグFRiがリセット状態
に初期化される。
【0039】次にデバッグに際して着目する実効アドレ
ス(絶対アドレス)のユニット名に対応するデバッグ情
報ファイルのテーブルが作成済みであるかを判定する
(S53)。即ち、管理情報テーブルから所要の絶対ア
ドレスを検索し、この絶対アドレスに対応されるユニッ
ト名の読込みフラグがセット状態かによって、作成済み
かを判定する。読込みフラグがリセット状態の場合に
は、そのフラグに対応されるユニット名のデバッグ情報
ファイルを読込んで新たにデバッグ情報テーブルを作成
する(S54)。例えば、図8の(C)の状態におい
て、検索されたユニット名がfileiならば、読み込みフ
ラグFRiがリセット状態であるから、前記修正された
ソースファイルに対応されるデバッグ情報ファイルfile
i.dgbが読み込まれてそのテーブルが作成される。ま
た、検索されたユニット名がfilehならば、読み込みフ
ラグFRhはセット状態であるから、デバッグ対象PC
を含むデバッグ情報ファイルは既に読み込まれてテーブ
ル化されているので、新たなデバッグ情報ファイルの読
み込みは行われない。
【0040】前記リロード処理かの判定結果がリロード
でないときは、前記ステップS53,S54の処理が行
われる。
【0041】デバッグ情報テーブルが生成されていない
ユニットについては、デバッグの実効アドレスが当該ユ
ニットに推移したとき、或いは着目シンボルが当該ユニ
ット内で定義されているとき、そのユニットに係るデバ
ッグ情報ファイルが上記同様の手法で選択されてデバッ
ガのメモリにロードされ、デバッグ情報テーブルが形成
される。
【0042】このように、デバッガに複数のデバッグ情
報テーブルが形成されているとき、部分的にソースファ
イルを修正しても、ソースファイルの修正直前まで用い
られていたデバッグ情報テーブルを無条件に全て破棄す
ることなく、その修正の影響を受けるデバッグ情報テー
ブルだけを破棄して、必要なデバッグ情報ファイルをロ
ードすることができるから、ソースファイルを修正した
ときもデバッグ情報ファイルの再ロードを一層効率化す
ることができる。
【0043】図22〜図24には以上で説明した内容の
比較例が示される。図22のようにリンカによる全ての
デバッグ情報ファイルを一つに編集してデバッグ情報フ
ァイルを形成する場合、図23に示されるように、一つ
に編集されたデバッグ情報ファイルの全てをロードモジ
ュールと共にデバッガに読み込まなければならず、デバ
ッグ情報ファイルの読み込みに多くの時間が費やされる
ことになる。したがって、一部のソースファイルだけを
修正した場合にも、図24に示されるように、修正及び
修正不用に係る全てのソースファイルに対応されるデバ
ッグ情報ファイルは再度一つに編集し直され、一つに編
集し直されたデバッグ情報ファイルの全体が再度デバッ
ガにロードされなければならない。前述のように、デバ
ッグ情報ファイルのデータ量はロードモジュールのデー
タ量に比べて格段に多いから、ソースファイルの誤りを
たびたび修正しながらデバッグを行う場合、デバッグ情
報ファイルの読み込みに多大の時間を要し、デバッグ効
率は著しく低下する。
【0044】〔管理情報ファイル等の具体的例示〕ここ
で、前記ソースファイル、オブジェクト情報ファイル、
デバッグ情報ファイル、ロードモジュール、及び管理情
報ファイルの具体例を示す。
【0045】図9にはソースファイル、図10には図9
のソースファイルに対応されるオブジェクト情報ファイ
ル、図11には図9のソースファイルに対応されるデバ
ッグ情報ファイルの一例が夫々示される。図9に示され
るソースファイルは、先頭で整数データの配列を宣言
し、次にメイン関数に続けてデータiが整数型であるこ
とを宣言し、for文の条件が成立したときの実行文と
してif文が続いている。
【0046】このソースファイルをコンパイルして得ら
れるオブジェクト情報ファイルは、図10に示されるよ
うに、ヘッダ情報、セクション情報、シンボル情報、オ
ブジェクト情報、及びリロケーション情報を含む。
【0047】ヘッダ情報は、ユニット名としてソースフ
ァイル名(test1)、コンパイル日付等の情報を含む。
セクション情報は、ソースファイルにおける関数やデー
タのアドレス付けされる単位であるセクションの名前
(P,B)、各セクションに対応される関数やデータに対
する割付けアドレスの先頭アドレスやサイズ情報を含
む。割付けアドレスは各ソースファイル毎のセクション
内相対アドレスとされる。シンボル情報は、関数や変数
等のシンボル名(a,b,main,sub)、シンボル名に対応さ
れるシンボルの属性(define(定義),refer(参
照))、種別(data(データ),func(関数))、対応
セクション名(P,B)、及び各シンボルに対する割付け
アドレスの先頭アドレスを含む。割付けアドレスは各ソ
ースファイル毎のセクション内相対アドレスである。オ
ブジェクト情報は、セクション名、先頭相対アドレス、
サイズ、及びデータを含む。このデータが、機械語の命
令列である。リロケーション情報は、シンボル参照に対
するオブジェクト情報毎の相対アドレスを定義する。
【0048】デバッグ情報ファイルは図11に示される
ように、先頭にヘッダ情報を有し、これに続けてブロッ
ク情報とシンボル情報の複数のペアを有する。そして最
後に行情報を有する。ヘッダ情報はオブジェクト情報フ
ァイルと同じである。ブロック情報は、ソースファイル
の記述をブロック単位で階層化するための記述範囲を特
定し、シンボル情報は対応するブロックに含まれるシン
ボルの情報を有する。ブロックの種別はシンボルの有効
範囲を示すことになる。シンボル情報には配列や関数と
いった型情報が含まれる。行情報は、ファイル名、行番
号、セクション名、アドレス及びサイズの情報を含み、
これによって、ソースファイルの記述行とその内容に対
応される割付けアドレスとを対応付けることができる。
割付けアドレスはソースファイル毎の相対アドレスで与
えられる。一般に行情報のデータ量は多く、しかも、シ
ンボル情報によって構造体の型が定義される場合にはそ
のメンバやサイズ情報によってデータ量が増える。図9
〜図11の例からも明らかな様に、デバッグ情報ファイ
ルのデータ量は非常に多い。この点からも、前述のよう
にデバッグ情報ファイルを選択的にロードすることによ
り、デバッグに要する時間を格段に短縮できることが理
解されるであろう。
【0049】図12には図9のソースファイル及び図1
0のオブジェクト情報ファイルの内容に対応されるCP
U命令列の一例が示されている。図13には図12のC
PU命令列に示されている参照記号*1,*2,*3の部分との
対応を参照記号*1,*2,*3で明示したオブジェクト情報フ
ァイルを示す。図12に示されるCPU命令列の内容の
うち、コード(CODE)の部分は、図13に示されるオブ
ジェクト情報ファイルのオブジェクト情報に含まれる
“CPU命令列”の内容に相当する。
【0050】図14には図9のソースファイルとデバッ
グ情報ファイルとの対応が例示されている。図15は図
14の行情報に示されている参照記号*1〜*9の部分との
対応を参照記号*1〜*9で明示したCPU命令列を示す。
【0051】図16には2個のソースファイルtest1.c,
test2.cの一例が示されている。このソースファイルtes
t1.c,test2.cをコンパイルして得られるオブジェクト
情報ファイルtest1.obj,test2.objの一例が図17に示
される。図17に示されるオブジェクト情報ファイルte
st1.obj,test2.objをリンクすると、図18に示される
一つのロードモジュールtest12.absと一つの管理情報フ
ァイル3が得られる。ロードモジュールtest12.absにお
いては、オブジェクト情報ファイルtest1.obj,test2.o
bjにおけるシンボルのリロケーションは、リンクによっ
て絶対アドレスで解決されているので、リロケーション
情報の欄とシンボル情報の欄は設けられていない。図1
8に示される管理情報ファイル3に明示された参照記号
*1〜*11は図17のオブジェクト情報ファイルtest1.ob
j,test2.objに明示された参照記号*1〜*11に対応され
ている。図18のロードモジュールtest12.absに明示さ
れた参照記号*12,*13は図17のオブジェクト情報ファ
イルtest1.obj,test2.objに明示された参照記号*12,*
13に対応されている。
【0052】〔デバッグ情報ファイルの利用例〕次に、
前記選択的にロードされたデバッグ情報ファイルを用い
たデバッグ処理の一例について説明する。
【0053】図19は変数のシンボル情報を検索する例
である。例えば着目位置でロードモジュールの実行を止
めたとき、その実効アドレス(カレントPC)を含むセ
クションのユニット名を管理情報テーブル3から求め
る。デバッガは、管理情報テーブル3で求めたユニット
名に対応されるデバッグ情報ファイルがロードされてい
なければそれをデバッガのメモリにロードしデバッグ情
報テーブルを形成する(S20)。デバッガはデバッグ
情報テーブルのブロック情報からカレントPCを含む最
下位ブロックを求める(S21)。このとき、デバッグ
情報のアドレスは相対アドレスである。デバッガは、管
理情報ファイル3のセクション割付けアドレスをベース
アドレスとして、デバッグ情報ファイルの相対アドレス
から絶対アドレスを把握することができる。即ち、デバ
ッガは、管理情報ファイル3の開始アドレスの欄35
S、終了アドレスの欄35E、及びセクション名の欄3
3の情報と、デバッグ情報テーブルが持つ相対アドレス
とによって、カレントPCを含むセクション及びソース
ファイルを把握することができる。また、デバッガは、
デバッグ情報テーブルから直接カレントPCを含む関数
を求めることもできる。
【0054】ここで、異なる有効範囲を持つ同名の変数
がある場合、有効な変数はカレントPCを含む最も内側
のブロックの変数である。デバッガは、有効な変数を特
定するために、デバッグ情報テーブルのブロック情報及
びシンボル情報を利用する。即ち、カレントPCを含む
ローカルブロック(local-block)があるかを最下位の
ブロック情報から検索する(S21)。検索対象があれ
ば、それに対応されるシンボル情報内に着目する変数
(シンボル名)があるかを判定し(S22)、あれば、
そのシンボル情報を表示のために登録する(S24)。
上記ステップS22でNoと判定された場合、ステップS
23で上位ブロックがあるか否かの判定を行い、ステッ
プS23’で上位ブロックを求め、次に上記ステップS
22を実行する。すなわち、上記ステップS22〜S2
3’の処理は着目する変数が登録されない場合最上位の
ブロックに到達するまで繰返される。最後は、ステップ
S23の判定結果が“No”とされる。そして、上記ステ
ップS22〜S24の繰返しによってシンボル情報の登
録があったかを判定し(S25)、全くなければ、管理
情報を検索し(S25’)、あればこのシンボル情報を
登録し(S26)、最後に、デバッガは、ステップS2
4又はS26の何れかで登録されたシンボル情報を表示
する。
【0055】図20はブレークポイントを設定する場合
の動作例を示す。ユーザがブレークポイントをロードモ
ジュールの実効アドレス(カレントPC)で指定したと
き、デバッガは、指定されたカレントPCを含むセクシ
ョンのユニット名を管理情報テーブル3から求める。デ
バッガは、管理情報テーブル3で求めたユニット名に対
応されるデバッグ情報ファイルがロードされていなけれ
ばそれをデバッガのメモリにロードしデバッグ情報テー
ブルを形成する(S30)。そして、デバッガは、デバ
ッグ情報テーブルの行情報の相対アドレスをサーチして
カレントPCに対応する行番号を得る(S31)。この
ようにして得られた行番号のアドレス、例えば#6がブ
レークポイントとして設定される(S32)。
【0056】図19、図20で示された処理を、従来の
一つにリンクされ絶対アドレスで解決されたデバッグ情
報を用いる場合には、デバッグ情報の全体に対してブロ
ック情報のユニットアドレスからソースファイルを特定
する事が必要になり、上述の例に比べて検索効率は低
い。
【0057】図21にはブレークしたとき所要のシンボ
ルを表示させる処理の一例を示す。ブレークポイントで
ロードモジュールの実行が停止されたとき、デバッガ
は、その実効アドレス(カレントPC)を含むセクショ
ンのユニット名を管理情報テーブル3から求める(S4
0)。デバッガは、管理情報テーブル3で求めたユニッ
ト名に対応されるデバッグ情報テーブルが形成されてい
るかを判定し(S41)、形成されていなければ、該当
するデバッグ情報ファイルをデバッガのメモリにロード
しデバッグ情報テーブルを形成する(S42)。このと
きデバッガには、所定のシンボルを表示するシンボル表
示コマンドが発行されているものとする。デバッガは、
デバッグ情報テーブルを検索して(S43)、ブレーク
したときのカレントPCに対応されるユニット(ソース
ファイル)内に所要のシンボルが含まれているかを判定
する(S44)。指定シンボルがあれば、そのシンボル
情報によって当該シンボルの内容を表示する。ステップ
S44の判定により指定シンボルがない場合には、管理
情報テーブル3のシンボルの欄36から指定シンボルを
検索し(S46)、指定シンボルがあるか否かを判定す
る(S47)。ない場合には、指定シンボルは表示不可
能であるからエラー表示を行う(S48))。ステップ
S47の判定で指定シンボルがある場合には、デバッガ
は、そのシンボルに対応されるユニット名を管理情報テ
ーブル3から求める(S49)、前記ステップS41の
処理に戻る。この場合には、ステップS43の処理で指
定シンボルが検索され、検索された指定シンボルの情報
はステップS45で表示されることになる。
【0058】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0059】例えば、変換処理はコンパイラを用いるも
のに限定されず、アセンブラを用いるものであってもよ
い。また、管理情報ファイルのエントリは図3で示した
内容に限定されず適宜変更することができる。
【0060】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0061】すなわち、サブモジュール毎のオブジェク
ト情報ファイルのオブジェクト情報に絶対アドレスを割
り当てて全体的にリンクさせるリンク処理は、全てのデ
バッグ情報ファイルを一つのデバッグ情報ファイルに編
集する処理を行わず、それに代えて、管理情報ファイル
を生成する。この管理情報ファイルを絶対アドレスで検
索することにより、その絶対アドレスに対応されるデバ
ッグ情報ファイルを特定することができる。
【0062】したがって、デバッグに際してデバッガ
は、デバッグに際して着目する絶対アドレスに対応され
るデバッグ情報ファイルだけを入力すればよく、デバッ
グ情報の読込みのための時間を短縮できる。着目する物
理アドレスが所定範囲に変更若しくは推移されたとき
は、それに応じて新たに必要なデバッグ情報を追加して
読み込むだけでよい。
【0063】ソースファイルに不良があった場合には、
該当するソースファイルを修正した後、修正に係るソー
スファイルを再度コンパイルしてそのオブジェクト情報
ファイルとデバッグ情報ファイルを生成し直す。そし
て、修正されたオブジェクト情報ファイルと修正不要な
既存のオブジェクト情報ファイルを用いて再度リンクし
て、ロードモジュールと管理情報ファイルを新たに作成
する。このようにソースファイルを修正した場合にも、
着目する絶対アドレスに対応されるデバッグ情報ファイ
ルだけを入力してテーブルに展開すればよく、デバッグ
情報の読み込みのための時間を短縮できる。
【0064】また、前記管理情報ファイルに、サブモジ
ュールが前記変換処理された日付情報を前記デバッグ情
報ファイル名と関連付けて含めるとき、デバッガ処理
は、リンク処理で生成されたロードモジュールを読み込
んでターゲットシステムに供給すると共に、管理情報フ
ァイルを読み込み、既に読み込み済みの管理情報ファイ
ルがあるとき双方のファイルの前記日付情報を比較し、
比較結果が相違する日付情報に対応したデバッグ情報フ
ァイルが読み込まれているときはこれを無効化し、この
処理の後、前記ロードモジュールの着目絶対アドレスに
対応するデバッグ情報ファイル名を前記読み込んだ管理
情報ファイルから検索し、検索されたファイル名のデバ
ッグ情報ファイルを読み込んで、読み込んだデバッグ情
報ファイルを用いて前記ソースプログラムのデバッグを
支援することができる。これによれば、デバッガに複数
のデバッグ情報が読み込まれて複数のデバッグ情報テー
ブルが形成されているとき、部分的にソースファイルを
修正しても、ソースファイルの修正直前まで用いられて
いたデバッグ情報テーブルを無条件に全て破棄すること
なく、その修正の影響を受けるデバッグ情報テーブルだ
けを破棄して、必要なデバッグ情報ファイルだけを再ロ
ードすることができるから、ソースファイルを修正した
ときもデバッグ情報ファイルの再ロードを一層効率化す
ることができる。
【0065】したがって本発明によれば、デバッグ情報
ファイルのロード時間短縮、そして、デバッグ情報によ
るメモリ利用効率向上に寄与できる。
【図面の簡単な説明】
【図1】デバッグシステムの一例機能ブロック図であ
る。
【図2】図1のデバッグシステムのハードウェア構成の
一例を示す説明図である。
【図3】管理情報ファイルの一例フォーマット説明図で
ある。
【図4】管理情報ファイルを参照してデバッグ情報ファ
イルを選択的にロードするところまでの処理をコンパイ
ラ、リンカ及びデバッガによる一連の処理と共に示すフ
ローチャートである。
【図5】ソースファイルを修正したときデバッグ情報フ
ァイルを再ロードする処理をコンパイラ、リンカ及びデ
バッガによる一連の処理と共に示すフローチャートであ
る。
【図6】図5のステップS9〜S12の処理フローを別
の形式で整理して示したフローチャートである。
【図7】デバッガのメモリ上に形成される管理情報テー
ブルとワークテーブルの一例を示す説明図である。
【図8】デバッグ情報ファイルの選択的ロード処理に際
して操作される読み込みフラグと更新フラグの状態の一
例を示す説明図である。
【図9】ソースファイルの具体的な一例説明図である。
【図10】図9のソースファイルに対応されるオブジェ
クト情報ファイルの詳細な一例説明図である。
【図11】図9のソースファイルに対応されるデバッグ
情報ファイルの詳細な一例説明図である。
【図12】図9のソースファイル及び図10のオブジェ
クト情報ファイルの内容に対応されるCPU命令列の一
例説明図である。
【図13】図12のCPU命令列に示されている参照記
号*1,*2,*3の部分との対応を参照記号*1,*2,*3で明示し
たオブジェクト情報ファイルの説明図である。
【図14】図9のソースファイルとデバッグ情報ファイ
ルとの対応を例示する説明図である。
【図15】図14の行情報に示されれいる参照記号*1〜
*9の部分との対応を参照記号*1〜*9で明示したCPU命
令列の説明図である。
【図16】2個のソースファイルtest1.c,test2.cの一
例を示す説明図である。
【図17】このソースファイルtest1.c,test2.cをコン
パイルして得られるオブジェクト情報ファイルtest1.ob
j,test2.objの一例を示す説明図である。
【図18】図17に示されるオブジェクト情報ファイル
test1.obj,test2.objをリンクして得られる一つのロー
ドモジュールtest12.absと一つの管理情報ファイルとの
説明図である。
【図19】選択的にロードしたデバッグ情報ファイルを
用いて変数のシンボル情報を検索するデバッグ動作の一
例を示すフローチャートである。
【図20】選択的にロードしたデバッグ情報ファイルを
用いてブレークポイントを設定する動作の一例を示すフ
ローチャートである。
【図21】ブレークしたとき管理情報ファイルを用いて
所要のシンボルを表示させる処理の一例を示すフローチ
ャートである。
【図22】図1との比較説明図である。
【図23】図4との比較説明図である。
【図24】図5との比較説明図である。
【符号の説明】
file1.c,file2.c ソースファイル file1.obj,file2.obj オブジェクト情報ファイル file1.dbg,file2.dbg デバッグ情報ファイル file12.abs ロードモジュール 1 コンパイラ 2 リンカ 3 管理情報ファイル 3T 管理情報テーブル 30 ユニット名の欄 31 作成日付の欄 32 デバッグ情報ファイル名の欄 33 セクション名の欄 35S 開始アドレスの欄 35E 終了アドレスの欄 4 デバッガ 5T ワークテーブル FR1〜FRn 読み込みフラグ FC1〜FCn 更新フラグ 80 ホストコンピュータ 81 エミュレータ 82 エミュレータ本体 83 エミュレーションポッド 84 ターゲットシステム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 米山 浩司 東京都小平市上水本町五丁目20番1号 株式会社日立製作所 半導体事業部内 (72)発明者 鏡味 義仁 東京都小平市上水本町5丁目22番1号 株式会社日立マイコンシステム内 (56)参考文献 特開 平3−208135(JP,A) 特開 平3−50641(JP,A) 特開 昭63−268040(JP,A) 特開 平4−273342(JP,A) 特開 昭64−65644(JP,A) 特開 平4−138535(JP,A) 特開 昭63−41948(JP,A) 特開 平2−139641(JP,A) 特開 平4−52933(JP,A) 特開 昭62−290945(JP,A) 特開 平7−44379(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/28 G06F 9/44 G06F 9/45

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 ソースプログラムを構成するサブモジュ
    ールの記述を、機械語に変換しサブモジュール毎の相対
    アドレスに割り当てた、オブジェクト情報を含むオブジ
    ェクト情報ファイルと、オブジェクト情報の割付相対ア
    ドレスとそれに対応されるサブモジュールの記述内容と
    の対応関係を定義するデバッグ情報ファイルとを、サブ
    モジュール毎に生成する変換処理と、 ソースプログラムを構成する全てのオブジェクト情報フ
    ァイルのオブジェクト情報を絶対アドレスに割り当てて
    ロードモジュールを生成すると共に、サブモジュール毎
    のオブジェクト情報に対する割付絶対アドレスとそのサ
    ブモジュールに対応されるデバッグ情報ファイル名とを
    関連付ける管理情報ファイルを生成するリンク処理と、
    を含むことを特徴とするデバッグ情報作成方法。
  2. 【請求項2】 前記管理情報ファイルは、サブモジュー
    ル名に1対1対応されるユニット名、ユニット名に対応
    されるオブジェクト情報ファイルの作成日付情報及びユ
    ニット名に対応されるデバッグ情報ファイル名を有する
    と共に、関数及びデータ単位で対応されるセクション
    名、セクション名に対応される関数及びデータを含むサ
    ブモジュールのユニット名、及びセクション名に対応さ
    れる関数及びデータの割付け絶対アドレスを有すること
    を特徴とする請求項1記載のデバッグ情報作成方法。
  3. 【請求項3】 ソースプログラムを構成するサブモジュ
    ールの記述を、機械語に変換しサブモジュール毎の相対
    アドレスに割り当てた、オブジェクト情報を含むオブジ
    ェクト情報ファイルと、オブジェクト情報の割付相対ア
    ドレスとそれに対応されるサブモジュールの記述内容と
    の対応関係を定義するデバッグ情報ファイルとを、サブ
    モジュール毎に生成する変換処理と、 ソースプログラムを構成する全てのオブジェクト情報フ
    ァイルのオブジェクト情報を絶対アドレスに割り当てて
    ロードモジュールを生成すると共に、サブモジュール毎
    のオブジェクト情報に対する割付絶対アドレスとそのサ
    ブモジュールに対応されるデバッグ情報ファイル名とを
    関連付ける管理情報ファイルを生成するリンク処理と、 前記リンク処理で生成されたロードモジュールを読み込
    んでターゲットシステムに供給すると共に、管理情報フ
    ァイルを読み込み、ロードモジュールの着目絶対アドレ
    スに対応するデバッグ情報ファイル名を前記管理情報フ
    ァイルから検索し、検索されたファイル名のデバッグ情
    報ファイルを読み込んで、読み込んだデバッグ情報ファ
    イルを用いて前記ソースプログラムのデバッグを支援す
    るデバッガ処理と、を含むことを特徴とするデバッグ方
    法。
  4. 【請求項4】 ソースプログラムを構成するサブモジュ
    ールの記述を、機械語に変換しサブモジュール毎の相対
    アドレスに割り当てた、オブジェクト情報を含むオブジ
    ェクト情報ファイルと、オブジェクト情報の割付相対ア
    ドレスとそれに対応されるサブモジュールの記述内容と
    の対応関係を定義するデバッグ情報ファイルとを、サブ
    モジュール毎に生成する変換処理と、 ソースプログラムを構成する全てのオブジェクト情報フ
    ァイルのオブジェクト情報を絶対アドレスに割り当てて
    ロードモジュールを生成すると共に、サブモジュール毎
    のオブジェクト情報に対する割付絶対アドレスとそのサ
    ブモジュールに対応されるデバッグ情報ファイル名とを
    関連付け且つそのサブモジュールが前記変換処理された
    日付情報を前記デバッグ情報ファイル名と関連付ける管
    理情報ファイルを生成するリンク処理と、 前記リンク処理で生成されたロードモジュールを読み込
    んでターゲットシステムに供給すると共に、管理情報フ
    ァイルを読み込み、既に読み込み済みの管理情報ファイ
    ルがあるとき双方のファイルの前記日付情報を比較し、
    比較結果が相違する前記読み込み済みの管理情報ファイ
    ルの日付情報に対応したデバッグ情報ファイルが読み込
    まれているときはこれを無効化し、この処理の後、前記
    ロードモジュールの着目絶対アドレスに対応するデバッ
    グ情報ファイル名を前記読み込んだ管理情報ファイルか
    ら検索し、検索されたファイル名のデバッグ情報ファイ
    ルを読み込んで、読み込んだデバッグ情報ファイルを用
    いて前記ソースプログラムのデバッグを支援するデバッ
    ガ処理と、を含むことを特徴とするデバッグ方法。
  5. 【請求項5】 ソースプログラムを修正する処理を更に
    含み、ソースプログラムを修正したとき、修正に係るサ
    ブモジュールを読み込んで前記変換処理を行い、この変
    換処理で得られたのオブジェクト情報ファイルとデバッ
    グ情報ファイルによってソースプログラムの修正前のオ
    ブジェクト情報ファイルとデバッグ情報ファイルを更新
    し、更新されたオブジェクト情報ファイルを含む全ての
    オブジェクト情報ファイルに対して前記リンク処理を行
    ってロードモジュールと管理情報ファイルとを新たに生
    成する処理を更に含むことを特徴とする請求項4記載の
    デバッグ方法。
  6. 【請求項6】 ターゲットシステムに接続されるホスト
    コンピュータを有し、このホストコンピュータは、 ソースプログラムを構成するサブモジュールの記述を、
    機械語に変換しサブモジュール毎の相対アドレスに割り
    当てた、オブジェクト情報を含むオブジェクト情報ファ
    イルと、オブジェクト情報の割付相対アドレスとそれに
    対応されるサブモジュールの記述内容との対応関係を定
    義するデバッグ情報ファイルとを、サブモジュール毎に
    生成するコンパイラと、 ソースプログラムを構成する全てのオブジェクト情報フ
    ァイルのオブジェクト情報を絶対アドレスに割り当てて
    ロードモジュールを生成すると共に、サブモジュール毎
    のオブジェクト情報に対する割付絶対アドレスとそのサ
    ブモジュールに対応されるデバッグ情報ファイル名とを
    関連付け且つそのサブモジュールが前記コンパイラによ
    ってコンパイルされた日付情報を前記デバッグ情報ファ
    イル名と関連付ける管理情報ファイルを生成するリンカ
    と、 前記リンカで生成されたロードモジュールを読み込んで
    ターゲットシステムに供給すると共に、管理情報ファイ
    ルを読み込み、既に読み込み済みの管理情報ファイルが
    あるとき双方のファイルの前記日付情報を比較し、比較
    結果が相違する前記読み込み済みの管理情報ファイルの
    日付情報に対応したデバッグ情報ファイルが読み込まれ
    ているときはこれを無効化し、この処理の後、前記ロー
    ドモジュールの着目絶対アドレスに対応するデバッグ情
    報ファイル名を前記読み込んだ管理情報ファイルから検
    索し、検索されたファイル名のデバッグ情報ファイルを
    読み込んで、読み込んだデバッグ情報ファイルを用いて
    前記ソースプログラムのデバッグを支援するデバッガ
    と、を含むことを特徴とするデバッグシステム。
JP33062596A 1996-12-11 1996-12-11 デバッグ情報作成方法、デバッグ方法及びデバッグシステム Expired - Fee Related JP3352893B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33062596A JP3352893B2 (ja) 1996-12-11 1996-12-11 デバッグ情報作成方法、デバッグ方法及びデバッグシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33062596A JP3352893B2 (ja) 1996-12-11 1996-12-11 デバッグ情報作成方法、デバッグ方法及びデバッグシステム

Publications (2)

Publication Number Publication Date
JPH10171680A JPH10171680A (ja) 1998-06-26
JP3352893B2 true JP3352893B2 (ja) 2002-12-03

Family

ID=18234763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33062596A Expired - Fee Related JP3352893B2 (ja) 1996-12-11 1996-12-11 デバッグ情報作成方法、デバッグ方法及びデバッグシステム

Country Status (1)

Country Link
JP (1) JP3352893B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627303B2 (en) * 2009-11-30 2014-01-07 International Business Machines Corporation Memory optimization of virtual machine code by partitioning extraneous information

Also Published As

Publication number Publication date
JPH10171680A (ja) 1998-06-26

Similar Documents

Publication Publication Date Title
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5170465A (en) Incremental-scanning compiler for source-code development system
US5313387A (en) Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers
US5182806A (en) Incremental compiler for source-code development system
US5193191A (en) Incremental linking in source-code development system
US5201050A (en) Line-skip compiler for source-code development system
US5249275A (en) Apparatus and method enabling a compiled program to exactly recreate its source code
EP0699996A1 (en) Method and apparatus for a fast debugger fix and continue operation
US8010937B2 (en) Method and apparatus for application building using build styles
US5926639A (en) Embedded flow information for binary manipulation
US5301327A (en) Virtual memory management for source-code development system
JPH1115689A (ja) ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体
KR100532467B1 (ko) 서로 다른 버전에서 생성된 디버깅 정보 파일들을 이용한소스 코드 레벨 디버깅을 제공하는 엠시유 응용프로그램검증 시스템 및 그 방법
JP3352893B2 (ja) デバッグ情報作成方法、デバッグ方法及びデバッグシステム
EP0406028A2 (en) Incremental compiler for source code development system
US6086622A (en) Method and apparatus for converting an architecture of a program and method, and apparatus for debugging a program by using them
CN101256499B (zh) 一种下载目标文件的方法及系统
Stepney Incremental development of a high integrity compiler: experience from an industrial development
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JP2002259121A (ja) ソースラインデバッグ装置
JPH1091423A (ja) プログラムの修正装置、修正方法、および修正プログラ ムを記憶する記憶媒体
JPH08137684A (ja) プログラム転送方法、プログラム開発システムならびにプログラム開発装置およびプログラム実行装置
CN100357908C (zh) 电子装置程序的测试方法
JPH05119982A (ja) コンパイラ
JP2004192604A (ja) 組込みソフトウェア開発装置及び組込みソフトウェア開発方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020910

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070920

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090920

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees