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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Description
グラムのソフトウェア開発時におけるデバッグ技術に関
し、特にデバッグ情報ファイルをデバッガにロードする
時間を短縮する技術に関するものである。
ロセッサを用いてソフトウェアを開発するときは、ソー
スプログラムを複数のサブモジュールに分割し、夫々の
サブモジュール毎にコンパイル又はアセンブルを行って
オブジェクト情報ファイルを生成し、生成されたオブジ
ェクト情報ファイルの全体をリンクして一つのロードモ
ジュールを生成する。ロードモジュールは、これを実行
するターゲットマシンのメモリにロードされる。デバッ
ガはターゲットマシンにそのロードモジュールを実行さ
せながらデバッグを支援する。ロードモジュールに記述
された命令は絶対アドレスに割り当てられているが、オ
ブジェクト情報ファイルの記述はサブモジュール単位の
相対アドレスに割り当てられている。また、サブモジュ
ールは高級言語などによって記述されている。そのた
め、デバッグに際しては、ロードモジュールにおける絶
対アドレスとサブモジュールの記述との相関などを把握
することが必要であり、コンパイラは、オブジェクト情
報ファイルの他に、デバッグ情報ファイルを生成する。
オブジェクト情報ファイル毎に生成されるデバッグ情報
ファイルもリンカによって全体がリンクされ、これによ
って一つのデバッグ情報ファイルが生成される。一つに
リンクされたデバッグ情報ファイルはデバッガにロード
されて利用される。
実行させ、デバッグ情報ファイルを用いたデバッグにお
いて、あるサブモジュールに誤りが発見されたときは、
そのサブモジュールを修正し、これを再度コンパイルし
て、オブジェクト情報ファイルとデバッグ情報ファイル
を生成し直す。新たに生成されたオブジェクト情報ファ
イルやデバッグ情報ファイルは、その他の修正不要なオ
ブジェクト情報ファイルやデバッグ情報ファイルと再度
リンクされ、これによって生成された修正ロードモジュ
ールはターゲットマシンに再ロードされ、また、一つに
リンクされた修正デバッグ情報ファイルはデバッガに再
ロードされる。その後デバッグを再開できる。
修正する度に前記修正ロードモジュールや修正デバッグ
情報ファイルの全ての再ロードを必要とするため、デバ
ッグ効率が低下することが予想される。
特開昭62-290945号公報には、一部のサブモジ
ュールを変更する場合に、サブモジュール全体の再リン
ク及び再ロードを必要とせず、修正したサブモジュール
だけの変更と再ロードだけで済むようにした技術が示さ
れる。すなわち、修正サブモジュールにその他の修正不
要サブモジュールとのリンク関係を規定するするための
マップ情報を付加し、修正前のロードモジュールの格納
領域以外のメモリ領域に修正されたサブモジュールのオ
ブジェクトプログラムを配置したとき、そのマップ情報
に基づいて、修正サブモジュールのオブジェクトプログ
ラムを前記修正前のロードモジュールにリンクさせるよ
うにして、サブモジュール全体の再リンクと再ロードを
不要にしたものである。また、特開平7−44379に
は、上記技術におけるメモリ領域の利用効率を向上させ
た改良技術が示されている。
来技術はデバッグ情報ファイルについて考慮されていな
い。デバッグ情報ファイルは、ロードモジュールにおけ
る絶対アドレスとサブモジュールの記述との相関などを
把握できるようにするための情報が記述されている。例
えば、サブモジュールの記述がブロック単位で階層化さ
れ、各階層に含まれるシンボル名、シンボルのアドレス
範囲、シンボルの型等の情報と共に、サブモジュールの
記述行とその記述内容に対する割付けアドレスとの対応
付け等のための行情報が含まれている。一般に行情報は
量が多く、また型として構造体が定義される場合には構
造体の要素やサイズの情報が含まれることになる。これ
により、デバッグ情報ファイルのデータはロードモジュ
ールに比べて格段に多くなり、10倍近くになることが
ある。
の修正毎にデバッグ情報ファイルをデバッガに再ロード
するとなれば、ロードモジュールの再ロードに要する時
間が改善されたとしても、デバッグ効率の向上を期待で
きないことが本発明者によって明らかにされた。
ロード時間短縮、そして、デバッグ情報によるメモリ利
用効率向上に寄与できるデバッグ技術を提供することに
ある。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
スプログラムを構成するサブモジュールを読み込み、読
み込んだサブモジュール毎にオブジェクト情報ファイル
とデバッグ情報ファイルとを生成する変換処理と、前記
ソースプログラムに対応されるオブジェクト情報ファイ
ルを読み込み、読み込んだオブジェクト情報ファイルか
らロードモジュールと管理情報ファイルとを生成するリ
ンク処理とを含む。前記変換処理は、サブモジュールの
記述を、機械語に変換しサブモジュール毎の相対アドレ
スに割り当てた、オブジェクト情報を含むオブジェクト
情報ファイルと、オブジェクト情報の割付相対アドレス
とそれに対応されるサブモジュールの記述内容との対応
関係を定義するデバッグ情報ファイルとを、サブモジュ
ール毎に生成する処理を含む。前記リンク処理は、複数
のオブジェクト情報ファイルのオブジェクト情報を絶対
アドレスに割り当ててロードモジュールを生成する処理
と、サブモジュール毎のオブジェクト情報に対する割付
絶対アドレスとそのサブモジュールに対応されるデバッ
グ情報ファイル名とを関連付ける管理情報ファイルを生
成する処理とを含む。
応される全てのデバッグ情報ファイルを全体的にリンク
させる処理(一つのデバッグ情報ファイルに編集する処
理)は行わない。それに代えて、管理情報ファイルを生
成する。この管理情報ファイルを絶対アドレスで検索す
ると、その絶対アドレスに対応されるデバッグ情報ファ
イルを特定できる。
バッグ情報ファイルを読み込んで、デバッグに利用す
る。すなわち、上記デバッグ情報作成方法によって作成
されたデバッグ情報ファイルと管理情報ファイルとを用
いてソースプログラムのデバッグを支援するデバッグ方
法は、前記リンク処理で生成されたロードモジュールを
ターゲットシステムに実行させると共に前記デバッグ情
報ファイルを用いてソースプログラムのデバッグを支援
するデバッガ処理を含み、このデバッガ処理は、前記リ
ンク処理で生成されたロードモジュールを読み込んでタ
ーゲットシステムに供給すると共に、管理情報ファイル
を読み込み、ロードモジュールの着目絶対アドレスに対
応するデバッグ情報ファイル名を前記管理情報ファイル
から検索し、検索されたファイル名のデバッグ情報ファ
イルを読み込んで、読み込んだデバッグ情報ファイルを
用いて前記ソースプログラムのデバッグを支援する。
は、デバッグに際して着目する絶対アドレスに対応され
るデバッグ情報ファイルだけを入力すればよく、デバッ
グ情報の読込みのための時間を短縮できる。着目する物
理アドレスが所定範囲に変更若しくは推移されたとき
は、それに応じて新たに必要なデバッグ情報を追加して
読み込むだけでよい。
該当するソースファイルを修正した後、修正に係るソー
スファイルを再度コンパイルしてそのオブジェクト情報
ファイルとデバッグ情報ファイルを生成し直す。そし
て、修正されたオブジェクト情報ファイルと修正不要な
既存のオブジェクト情報ファイルを用いて再度リンクし
て、ロードモジュールと管理情報ファイルを新たに作成
する。このようにソースファイルを修正した場合にも、
着目する絶対アドレスに対応されるデバッグ情報ファイ
ルだけを入力してテーブルに展開すればよく、デバッグ
情報の読み込みのための時間を短縮できる。
ュールが前記変換処理された日付情報を前記デバッグ情
報ファイル名と関連付けて含めるとき、デバッガ処理
は、リンク処理で生成されたロードモジュールを読み込
んでターゲットシステムに供給すると共に、管理情報フ
ァイルを読み込み、既に読み込み済みの管理情報ファイ
ルがあるとき双方のファイルの前記日付情報を比較し、
比較結果が相違する前記読み込み済みの管理情報ファイ
ルの日付情報に対応したデバッグ情報ファイルが読み込
まれているときはこれを無効化し、この処理の後、前記
ロードモジュールの着目絶対アドレスに対応するデバッ
グ情報ファイル名を前記読み込んだ管理情報ファイルか
ら検索し、検索されたファイル名のデバッグ情報ファイ
ルを読み込んで、読み込んだデバッグ情報ファイルを用
いて前記ソースプログラムのデバッグを支援することが
できる。これによれば、デバッガに複数のデバッグ情報
が読み込まれて複数のデバッグ情報テーブルが形成され
ているとき、部分的にソースファイルを修正しても、ソ
ースファイルの修正直前まで用いられていたデバッグ情
報テーブルを無条件に全て破棄することなく、その修正
の影響を受けるデバッグ情報テーブルだけを破棄して、
必要なデバッグ情報ファイルだけを再ロードすることが
できるから、ソースファイルを修正したときもデバッグ
情報ファイルの再ロードを一層効率化することができ
る。
ブロック図が示される。ソースプログラムは、例えば高
級言語で記述され、複数のサブモジュールに分割されて
いる。この例において夫々のサブモジュールは代表的に
示されたソースファイル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を生成する。デバッグ情
報ファイルに記述されたアドレスもオブジェクト情報フ
ァイルに記述された割付けアドレスと同様の相対アドレ
スとされる。
されるオブジェクト情報ファイル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を生成する。
ロードモジュールfile12.absをターゲットシステムに実
行させると共に前記デバッグ情報ファイルfile1.dbg,f
ile2.dbgを選択的に用いてソースプログラムのデバッグ
を支援する。すなわち、前記デバッガ4は、ロードモジ
ュールfile12.absを読み込んでターゲットシステムに供
給する。また、デバッガ4は、管理情報ファイル3を読
み込み、前記ターゲットシステムに供給したロードモジ
ュールの中で着目する絶対アドレス(実効アドレス)な
どによって管理情報ファイル3を参照し、その絶対アド
レスに対応されるデバッグ情報ファイルを検索し、検索
されたデバッグ情報ファイルを読み込んで、ソースプロ
グラムのデバッグに用いる。
ェア構成の一例が示されている。デバッグシステムは、
ホストコンピュータ(ホストシステム)80及びエミュ
レータ81から成り、エミュレータ81にターゲットシ
ステム84が接続されている。ホストコンピュータ80
は各種プログラムを実行出来るコンピュータである。ホ
ストコンピュータ80は、その動作プログラムによって
前記コンパイラ1、リンカ2及びデバッガ4の機能を実
現する。エミュレータ81はエミュレータ本体82とエ
ミュレーションポッド83によって構成される。エミュ
レーションポッド83には、ターゲットシステム84に
塔載されるべきマイクロプロセッサ若しくはマイクロコ
ンピュータのような図示を省略するターゲットプロセッ
サを代替するエミュレーション用のプロセッサが搭載さ
れている。エミュレーション用のプロセッサは一方にお
いてターゲットシステム84のターゲットプロセッサソ
ケットに結合され、他方においてエミュレータ本体82
に結合される。エミュレータ本体82は、評価専用のロ
ジックが搭載され、ブレークポイント制御、トレース制
御など、ターゲットシステムの状態を確認可能にした
り、ターゲットシステムのメモリ領域を代替したりする
ための装置である。エミュレータ81に対する制御はホ
ストコンピュータ80が行う。
レータ81を介してターゲットシステム84のアドレス
空間に配置されたメモリにロードされ、実行される。図
2の例に従えば、ロードモジュールは、エミュレーショ
ンポッド83に配置された図示を省略するエミュレーシ
ョン用のプロセッサが実行する。そのようなメモリはタ
ーゲットシステム7に実装され、あるいエミュレータ内
部のメモリで代替される。前記デバッグ情報ファイルfi
le1.dbg,file2.dbgはホストコンピュータ80のメモリ
にロードされ、デバッグ情報テーブルとして展開され
る。
マットが示される。前記管理情報ファイルは、前記コン
パイルを行った日付情報をデバッグ情報ファイル名に対
応して有する。即ち、前記管理情報ファイル3は、サブ
モジュール名(ソースファイル名)に1対1対応される
ユニット名(file1,file2)の欄30、ユニット名に対
応されるオブジェクト情報ファイルの作成(更新を含
む)日付情報の欄31、及びユニット名に対応されるデ
バッグ情報ファイル名(file1.dbg,file2.dbg)の欄3
2を有する。更に、サブモジュールに記述された関数及
びデータ単位で対応されるセクション名の欄33、セク
ション名に対応される関数及びデータを含むサブモジュ
ールのユニット名の欄34、及びセクション名に対応さ
れる関数及びデータの割付け絶対アドレス範囲の欄35
S(スタートアドレス),35E(エンドアドレス)を
有する。そして、サブモジューに記述されたシンボル名
の欄36、シンボル名に対応されるシンボルを含むサブ
モジュールのユニット名の欄37、シンボル名に対応さ
れるシンボルの割付け絶対アドレス(スタートアドレ
ス)の欄38を有する。
ファイル3には、前記デバッグ情報ファイルfile1.db
g,file2.dbgとその内容に対応する割付け絶対アドレス
との関連付けが定義されている。即ち、ユニット名の欄
34と割付け絶対アドレス範囲の欄35S,35Eとの
対応から、デバッグに際して着目する絶対アドレスが割
付けらえたデータや関数の記述を含むソースファイルを
特定することができる。また、ユニット名の欄37と割
付け絶対アドレスの欄38との対応から、デバッグに際
して着目する絶対アドレスが割付けらえたシンボルの記
述を含むソースファイルを特定することができる。その
ようにして特定されたソースファイルに対応されるデバ
ッグ情報ファイルは、ユニット名の欄30とデバッグ情
報ファイル名の欄32との対応から検索することができ
る。
基本型〕図4には前記管理情報ファイル3を参照してデ
バッグ情報ファイルを選択的にロードするところまでの
処理がコンパイラ1、リンカ2及びデバッガ4による一
連の処理と共に示されている。コンパイラ1はソースプ
ログラムを入力し(S1)、ソースファイル毎に、機械
語に翻訳する(S2)。そして、ソースファイル毎にオ
ブジェクト情報ファイルとデバッグ情報ファイルを生成
する(S3)。
を入力し、それらを全体的にリンクして(S4)、ロー
ドモジュールと管理情報ファイルを生成する(S5)。
報ファイルを入力する(S6)。入力されたロードモジ
ュールはターゲットシステムのメモリ空間に配置された
メモリにロードされる。管理情報ファイルはデバッガの
メモリに読み込まれる。デバッガ4は、デバッグに際し
て着目する絶対アドレス(デバッグに際してロードモジ
ュールを実行開始する絶対アドレス若しくは絶対アドレ
スの範囲など)を検索キーとして管理情報ファイル3を
検索し、この絶対アドレスに対応されるデバッグ情報フ
ァイル名を得る(S7)。デバッガ4は、これによって
得られたファイル名のデバッグ情報ファイルを選択して
入力する(S8)。入力したデバッグ情報ファイルはデ
バッガのメモリにテーブルとして展開されて、利用され
る。
は、着目する絶対アドレスに対応されるデバッグ情報フ
ァイルだけを入力してテーブルに展開すればよく、デバ
ッグ情報の読み込みのための時間を短縮できる。デバッ
グ対象が異なるときは、再度ステップS7の処理を行っ
て、新たにデバッグ情報ファイルを読み込めばよい。
良があった場合には、該当するソースファイルを修正し
た後、修正に係るソースファイルを再度コンパイルして
そのオブジェクト情報ファイルとデバッグ情報ファイル
を生成し直す。そして、修正されたオブジェクト情報フ
ァイルと修正不要な既存のオブジェクト情報ファイルを
用いて再度リンクして、ロードモジュールと管理情報フ
ァイルを新たに作成する。この段階で、既にデバッガに
デバッグ情報ファイルがテーブルとして展開されている
場合に、そのテーブルを無条件に破棄し、図4のステッ
プS7,S8の処理を繰り返すことによって、ソースフ
ァイルを修正した場合にも、対処出来る。この場合に
も、着目する絶対アドレスに対応されるデバッグ情報フ
ァイルだけを入力してテーブルに展開すればよく、デバ
ッグ情報の読み込みのための時間を短縮できる。
情報ファイルの数は、デバッグに必要な数とされ、複数
のデバッグ情報テーブル(デバッグ情報ファイルをデバ
ッガのメモリ上に展開して成るテーブル)が展開される
場合もある。このとき、前述のように、ソースファイル
の修正直前まで用いられていたデバッグ情報テーブルを
無条件に破棄して、再度デバッグ情報テーブルを形成す
る場合には、無駄を生ずる場合がある。即ち、修正とは
無関係なソースファイルに関するデバッグ情報テーブル
が既に展開されている場合には、ソースファイルの修正
後に同じデバッグ情報テーブルを利用する場合も、再度
該当するデバッグ情報ファイルをデバッガのメモリにロ
ードしてテーブル展開しなければならない。
化〕ここでは、ソースファイルを修正したときデバッグ
情報ファイルの再ロードを一層効率化することを考慮し
た処理について説明する。
モリにロードされ、管理情報テーブル3Tとして展開さ
れる。図7にはデバッガ4のメモリ上に形成される管理
情報テーブル3Tとワークテーブル5Tが示される。ワ
ークテーブル5Tは、特に制限されないが、読み込みフ
ラグFR1〜FRnと、更新フラグFC1〜FCnを有
する。管理情報テーブル3Tは管理情報ファイル3の各
欄30〜38の情報がテーブル化されている。前記ワー
クテーブル5Tの読み込みフラグFR1〜FRnと、更
新フラグFC1〜FCnとの夫々は、ユニット名の欄3
0の各ユニット名に1対1対応される。
バッグ情報ファイルを再ロードする処理がコンパイラ
1、リンカ2及びデバッガ4による一連の処理と共に示
されている。ステップS1〜S6までの処理は図4と同
じである。特に制限されないが、デバッガ4は、管理情
報テーブル3Tの形成エリアを二つ持ち、一方には最新
に入力した管理情報ファイルに基づく管理情報テーブル
3Tが形成され、他方にはその一つ前に入力した管理情
報ファイルに基づく管理情報テーブル3Tが形成されて
いる。テーブル形成エリアの何れを最新のテーブル形成
領域にするかは、管理情報ファイル3の入力毎に交互に
切換えられる。管理情報ファイル3が新たに読み込まれ
るとき、前記更新フラグFC1〜FCnはリセット状態
に初期化される。読み込みフラグFR1〜FRnは直前
の状態を維持する。
イル3を入力したとき、リロード処理か否かを判定する
(S9)。この処理は、例えばデバッガのメモリにデバ
ッグ情報テーブルが作成されているか否の判定によって
行う。即ち、前記読み込みフラグFR1〜FRnは、デ
バッガ4が読み込んだデバッグ情報ファイルに対応され
るユニット名の欄のユニット名に対応されるものがセッ
ト状態にされる。これら読み込みフラグFR1〜FRn
を参照し、一つでもセット状態にされていればデバッグ
情報テーブルが作成されていることになる。デバッグ情
報テーブルが作成済みの場合にはリロード処理と判定す
る。リロード処理と判定された場合には、ソースプログ
ラムの修正によって更新されたデバッグ情報ファイルの
テーブルが既に形成されているとき、それをデバッガの
メモリから開放する(S10)。例えば、デバッグ情報
ファイル名に対応されるソースファイル作成日付を、今
回作成された管理情報テーブルと前回作成された管理情
報テーブルとの間で比較し、不一致である場合には更新
されていると判断する。更新されているものに対して
は、更新フラグFC1〜FCnの内、そのデバッグ情報
ファイル名に対応されるフラグをセット状態に反転す
る。そして、デバッガは、更新フラグFC1〜CFnと
読み込みフラグFR1〜FRnとの相互に対応されるも
のが共にセット状態にされているフラグに対応されるフ
ァイル名のデバッグ情報テーブルをメモリから開放(デ
ータの破棄)して、当該更新フラグとメモリから開放し
たデバッグ情報テーブルに対応される読み込みフラグを
リセット状態に戻す。これにより、ソースファイルの修
正の影響を受けるデバッグ情報テーブルだけが破棄され
る。リロード処理でない場合はステップS10の処理は
実質的に行われない。
対象PCを含むデバッグ情報ファイルを検索し(S1
1)、検索されたデバッグ情報ファイルがデバッガのメ
モリにロードされ、デバッグ情報テーブルが形成される
(S12)。ステップS9〜S12の処理については後
から図6に基づいて詳述する。
バッグに必要なデバッグ情報テーブルがデバッガ4のメ
モリに形成される。デバッガ4は修正されたロードモジ
ュールをターゲットシステムに実行させ、デバッグ情報
テーブルを用いてデバッグを再開することができる。そ
のデバッグによりソースプログラムに不良があるかを判
定し(S14)、不良がある場合には不良に係るソース
ファイルを修正して(S15)、前記ステップS1から
の処理を繰り返す。
の処理フローを別の形式で整理して示してある。上記デ
バッグ情報ファイルの選択的ロード並びにリロード処理
について図8をも参照しながら更に説明する。デバッガ
4は、ロードモジュールと共に管理情報ファイル3を入
力する(S50)。入力された管理情報ファイル3はデ
バッガ4のメモリ上に管理情報テーブル3Tとして展開
される。新たに管理情報テーブルが形成されるとき、図
8の(A)に示されるように更新フラグFC1〜FCn
はリセット状態に初期化される。読込みフラグFR1〜
FRnはそのまま維持される。また、管理情報ファイル
の読み込み以前に管理情報テーブルが形成されていた場
合には、一つ先に形成されていた管理情報テーブル(旧
管理情報テーブル)もそのまま維持される。
ブル)が作成されると、デバッガ4は、リロード(再ロ
ード)処理かの判定を行う(S51)。リロード処理か
の判定は、前記同様にデバッガ4のメモリにデバッグ情
報テーブルが作成されているか否を読み込みフラグFR
1〜FRnの何れかがセット状態にされているかによっ
て判定する。例えば図8の(A)に示されるように読込
みフラグFRh,FRiがセット状態にされているな
ら、リロード処理と判定する。読込みフラグFRh,F
Riがセット状態にされているので、そのフラグに対応
されるデバッグ情報ファイルfileh.dbg,filei.dbgのテ
ーブルが既にデバッガのメモリに形成されている。
た場合、新管理情報テーブルと旧管理情報テーブルとの
各ユニットの作成日付を比較し作成日付の異なるユニッ
トに対応される変更フラグをセットする。例えば、図8
の(B)に示されるように、ユニットfilei,filekに対
応される変更フラグFCi,FCkがセット状態に反転
される。セット状態の変更フラグに対応される読込みフ
ラグがセット状態ならば、そのフラグに対応されるユニ
ット名のデバッグ情報テーブルがデバッガのメモリから
開放される(S52)。デバッグ情報テーブルがメモリ
から開放されたときはそのテーブルに対応される読込み
フラグはリセット状態に初期化される。例えば図8の
(B)において変更フラグFCiに対応される読込みフ
ラグFRiがセット状態にされているから、ユニット名
fileiに対応されるデバッグ情報ファイルfilei.dbgのテ
ーブルが開放される。これに呼応して、図8の(C)に
例示されるように、読込みフラグFRiがリセット状態
に初期化される。
ス(絶対アドレス)のユニット名に対応するデバッグ情
報ファイルのテーブルが作成済みであるかを判定する
(S53)。即ち、管理情報テーブルから所要の絶対ア
ドレスを検索し、この絶対アドレスに対応されるユニッ
ト名の読込みフラグがセット状態かによって、作成済み
かを判定する。読込みフラグがリセット状態の場合に
は、そのフラグに対応されるユニット名のデバッグ情報
ファイルを読込んで新たにデバッグ情報テーブルを作成
する(S54)。例えば、図8の(C)の状態におい
て、検索されたユニット名がfileiならば、読み込みフ
ラグFRiがリセット状態であるから、前記修正された
ソースファイルに対応されるデバッグ情報ファイルfile
i.dgbが読み込まれてそのテーブルが作成される。ま
た、検索されたユニット名がfilehならば、読み込みフ
ラグFRhはセット状態であるから、デバッグ対象PC
を含むデバッグ情報ファイルは既に読み込まれてテーブ
ル化されているので、新たなデバッグ情報ファイルの読
み込みは行われない。
でないときは、前記ステップS53,S54の処理が行
われる。
ユニットについては、デバッグの実効アドレスが当該ユ
ニットに推移したとき、或いは着目シンボルが当該ユニ
ット内で定義されているとき、そのユニットに係るデバ
ッグ情報ファイルが上記同様の手法で選択されてデバッ
ガのメモリにロードされ、デバッグ情報テーブルが形成
される。
報テーブルが形成されているとき、部分的にソースファ
イルを修正しても、ソースファイルの修正直前まで用い
られていたデバッグ情報テーブルを無条件に全て破棄す
ることなく、その修正の影響を受けるデバッグ情報テー
ブルだけを破棄して、必要なデバッグ情報ファイルをロ
ードすることができるから、ソースファイルを修正した
ときもデバッグ情報ファイルの再ロードを一層効率化す
ることができる。
比較例が示される。図22のようにリンカによる全ての
デバッグ情報ファイルを一つに編集してデバッグ情報フ
ァイルを形成する場合、図23に示されるように、一つ
に編集されたデバッグ情報ファイルの全てをロードモジ
ュールと共にデバッガに読み込まなければならず、デバ
ッグ情報ファイルの読み込みに多くの時間が費やされる
ことになる。したがって、一部のソースファイルだけを
修正した場合にも、図24に示されるように、修正及び
修正不用に係る全てのソースファイルに対応されるデバ
ッグ情報ファイルは再度一つに編集し直され、一つに編
集し直されたデバッグ情報ファイルの全体が再度デバッ
ガにロードされなければならない。前述のように、デバ
ッグ情報ファイルのデータ量はロードモジュールのデー
タ量に比べて格段に多いから、ソースファイルの誤りを
たびたび修正しながらデバッグを行う場合、デバッグ情
報ファイルの読み込みに多大の時間を要し、デバッグ効
率は著しく低下する。
で、前記ソースファイル、オブジェクト情報ファイル、
デバッグ情報ファイル、ロードモジュール、及び管理情
報ファイルの具体例を示す。
のソースファイルに対応されるオブジェクト情報ファイ
ル、図11には図9のソースファイルに対応されるデバ
ッグ情報ファイルの一例が夫々示される。図9に示され
るソースファイルは、先頭で整数データの配列を宣言
し、次にメイン関数に続けてデータiが整数型であるこ
とを宣言し、for文の条件が成立したときの実行文と
してif文が続いている。
れるオブジェクト情報ファイルは、図10に示されるよ
うに、ヘッダ情報、セクション情報、シンボル情報、オ
ブジェクト情報、及びリロケーション情報を含む。
ァイル名(test1)、コンパイル日付等の情報を含む。
セクション情報は、ソースファイルにおける関数やデー
タのアドレス付けされる単位であるセクションの名前
(P,B)、各セクションに対応される関数やデータに対
する割付けアドレスの先頭アドレスやサイズ情報を含
む。割付けアドレスは各ソースファイル毎のセクション
内相対アドレスとされる。シンボル情報は、関数や変数
等のシンボル名(a,b,main,sub)、シンボル名に対応さ
れるシンボルの属性(define(定義),refer(参
照))、種別(data(データ),func(関数))、対応
セクション名(P,B)、及び各シンボルに対する割付け
アドレスの先頭アドレスを含む。割付けアドレスは各ソ
ースファイル毎のセクション内相対アドレスである。オ
ブジェクト情報は、セクション名、先頭相対アドレス、
サイズ、及びデータを含む。このデータが、機械語の命
令列である。リロケーション情報は、シンボル参照に対
するオブジェクト情報毎の相対アドレスを定義する。
ように、先頭にヘッダ情報を有し、これに続けてブロッ
ク情報とシンボル情報の複数のペアを有する。そして最
後に行情報を有する。ヘッダ情報はオブジェクト情報フ
ァイルと同じである。ブロック情報は、ソースファイル
の記述をブロック単位で階層化するための記述範囲を特
定し、シンボル情報は対応するブロックに含まれるシン
ボルの情報を有する。ブロックの種別はシンボルの有効
範囲を示すことになる。シンボル情報には配列や関数と
いった型情報が含まれる。行情報は、ファイル名、行番
号、セクション名、アドレス及びサイズの情報を含み、
これによって、ソースファイルの記述行とその内容に対
応される割付けアドレスとを対応付けることができる。
割付けアドレスはソースファイル毎の相対アドレスで与
えられる。一般に行情報のデータ量は多く、しかも、シ
ンボル情報によって構造体の型が定義される場合にはそ
のメンバやサイズ情報によってデータ量が増える。図9
〜図11の例からも明らかな様に、デバッグ情報ファイ
ルのデータ量は非常に多い。この点からも、前述のよう
にデバッグ情報ファイルを選択的にロードすることによ
り、デバッグに要する時間を格段に短縮できることが理
解されるであろう。
0のオブジェクト情報ファイルの内容に対応されるCP
U命令列の一例が示されている。図13には図12のC
PU命令列に示されている参照記号*1,*2,*3の部分との
対応を参照記号*1,*2,*3で明示したオブジェクト情報フ
ァイルを示す。図12に示されるCPU命令列の内容の
うち、コード(CODE)の部分は、図13に示されるオブ
ジェクト情報ファイルのオブジェクト情報に含まれる
“CPU命令列”の内容に相当する。
グ情報ファイルとの対応が例示されている。図15は図
14の行情報に示されている参照記号*1〜*9の部分との
対応を参照記号*1〜*9で明示したCPU命令列を示す。
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に対応されている。
前記選択的にロードされたデバッグ情報ファイルを用い
たデバッグ処理の一例について説明する。
である。例えば着目位置でロードモジュールの実行を止
めたとき、その実効アドレス(カレントPC)を含むセ
クションのユニット名を管理情報テーブル3から求め
る。デバッガは、管理情報テーブル3で求めたユニット
名に対応されるデバッグ情報ファイルがロードされてい
なければそれをデバッガのメモリにロードしデバッグ情
報テーブルを形成する(S20)。デバッガはデバッグ
情報テーブルのブロック情報からカレントPCを含む最
下位ブロックを求める(S21)。このとき、デバッグ
情報のアドレスは相対アドレスである。デバッガは、管
理情報ファイル3のセクション割付けアドレスをベース
アドレスとして、デバッグ情報ファイルの相対アドレス
から絶対アドレスを把握することができる。即ち、デバ
ッガは、管理情報ファイル3の開始アドレスの欄35
S、終了アドレスの欄35E、及びセクション名の欄3
3の情報と、デバッグ情報テーブルが持つ相対アドレス
とによって、カレントPCを含むセクション及びソース
ファイルを把握することができる。また、デバッガは、
デバッグ情報テーブルから直接カレントPCを含む関数
を求めることもできる。
がある場合、有効な変数はカレント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の何れかで登録されたシンボル情報を表示
する。
の動作例を示す。ユーザがブレークポイントをロードモ
ジュールの実効アドレス(カレントPC)で指定したと
き、デバッガは、指定されたカレントPCを含むセクシ
ョンのユニット名を管理情報テーブル3から求める。デ
バッガは、管理情報テーブル3で求めたユニット名に対
応されるデバッグ情報ファイルがロードされていなけれ
ばそれをデバッガのメモリにロードしデバッグ情報テー
ブルを形成する(S30)。そして、デバッガは、デバ
ッグ情報テーブルの行情報の相対アドレスをサーチして
カレントPCに対応する行番号を得る(S31)。この
ようにして得られた行番号のアドレス、例えば#6がブ
レークポイントとして設定される(S32)。
一つにリンクされ絶対アドレスで解決されたデバッグ情
報を用いる場合には、デバッグ情報の全体に対してブロ
ック情報のユニットアドレスからソースファイルを特定
する事が必要になり、上述の例に比べて検索効率は低
い。
ルを表示させる処理の一例を示す。ブレークポイントで
ロードモジュールの実行が停止されたとき、デバッガ
は、その実効アドレス(カレントPC)を含むセクショ
ンのユニット名を管理情報テーブル3から求める(S4
0)。デバッガは、管理情報テーブル3で求めたユニッ
ト名に対応されるデバッグ情報テーブルが形成されてい
るかを判定し(S41)、形成されていなければ、該当
するデバッグ情報ファイルをデバッガのメモリにロード
しデバッグ情報テーブルを形成する(S42)。このと
きデバッガには、所定のシンボルを表示するシンボル表
示コマンドが発行されているものとする。デバッガは、
デバッグ情報テーブルを検索して(S43)、ブレーク
したときのカレントPCに対応されるユニット(ソース
ファイル)内に所要のシンボルが含まれているかを判定
する(S44)。指定シンボルがあれば、そのシンボル
情報によって当該シンボルの内容を表示する。ステップ
S44の判定により指定シンボルがない場合には、管理
情報テーブル3のシンボルの欄36から指定シンボルを
検索し(S46)、指定シンボルがあるか否かを判定す
る(S47)。ない場合には、指定シンボルは表示不可
能であるからエラー表示を行う(S48))。ステップ
S47の判定で指定シンボルがある場合には、デバッガ
は、そのシンボルに対応されるユニット名を管理情報テ
ーブル3から求める(S49)、前記ステップS41の
処理に戻る。この場合には、ステップS43の処理で指
定シンボルが検索され、検索された指定シンボルの情報
はステップS45で表示されることになる。
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
のに限定されず、アセンブラを用いるものであってもよ
い。また、管理情報ファイルのエントリは図3で示した
内容に限定されず適宜変更することができる。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
ト情報ファイルのオブジェクト情報に絶対アドレスを割
り当てて全体的にリンクさせるリンク処理は、全てのデ
バッグ情報ファイルを一つのデバッグ情報ファイルに編
集する処理を行わず、それに代えて、管理情報ファイル
を生成する。この管理情報ファイルを絶対アドレスで検
索することにより、その絶対アドレスに対応されるデバ
ッグ情報ファイルを特定することができる。
は、デバッグに際して着目する絶対アドレスに対応され
るデバッグ情報ファイルだけを入力すればよく、デバッ
グ情報の読込みのための時間を短縮できる。着目する物
理アドレスが所定範囲に変更若しくは推移されたとき
は、それに応じて新たに必要なデバッグ情報を追加して
読み込むだけでよい。
該当するソースファイルを修正した後、修正に係るソー
スファイルを再度コンパイルしてそのオブジェクト情報
ファイルとデバッグ情報ファイルを生成し直す。そし
て、修正されたオブジェクト情報ファイルと修正不要な
既存のオブジェクト情報ファイルを用いて再度リンクし
て、ロードモジュールと管理情報ファイルを新たに作成
する。このようにソースファイルを修正した場合にも、
着目する絶対アドレスに対応されるデバッグ情報ファイ
ルだけを入力してテーブルに展開すればよく、デバッグ
情報の読み込みのための時間を短縮できる。
ュールが前記変換処理された日付情報を前記デバッグ情
報ファイル名と関連付けて含めるとき、デバッガ処理
は、リンク処理で生成されたロードモジュールを読み込
んでターゲットシステムに供給すると共に、管理情報フ
ァイルを読み込み、既に読み込み済みの管理情報ファイ
ルがあるとき双方のファイルの前記日付情報を比較し、
比較結果が相違する日付情報に対応したデバッグ情報フ
ァイルが読み込まれているときはこれを無効化し、この
処理の後、前記ロードモジュールの着目絶対アドレスに
対応するデバッグ情報ファイル名を前記読み込んだ管理
情報ファイルから検索し、検索されたファイル名のデバ
ッグ情報ファイルを読み込んで、読み込んだデバッグ情
報ファイルを用いて前記ソースプログラムのデバッグを
支援することができる。これによれば、デバッガに複数
のデバッグ情報が読み込まれて複数のデバッグ情報テー
ブルが形成されているとき、部分的にソースファイルを
修正しても、ソースファイルの修正直前まで用いられて
いたデバッグ情報テーブルを無条件に全て破棄すること
なく、その修正の影響を受けるデバッグ情報テーブルだ
けを破棄して、必要なデバッグ情報ファイルだけを再ロ
ードすることができるから、ソースファイルを修正した
ときもデバッグ情報ファイルの再ロードを一層効率化す
ることができる。
ファイルのロード時間短縮、そして、デバッグ情報によ
るメモリ利用効率向上に寄与できる。
る。
一例を示す説明図である。
ある。
イルを選択的にロードするところまでの処理をコンパイ
ラ、リンカ及びデバッガによる一連の処理と共に示すフ
ローチャートである。
ァイルを再ロードする処理をコンパイラ、リンカ及びデ
バッガによる一連の処理と共に示すフローチャートであ
る。
の形式で整理して示したフローチャートである。
ブルとワークテーブルの一例を示す説明図である。
して操作される読み込みフラグと更新フラグの状態の一
例を示す説明図である。
クト情報ファイルの詳細な一例説明図である。
情報ファイルの詳細な一例説明図である。
クト情報ファイルの内容に対応されるCPU命令列の一
例説明図である。
号*1,*2,*3の部分との対応を参照記号*1,*2,*3で明示し
たオブジェクト情報ファイルの説明図である。
ルとの対応を例示する説明図である。
*9の部分との対応を参照記号*1〜*9で明示したCPU命
令列の説明図である。
例を示す説明図である。
パイルして得られるオブジェクト情報ファイルtest1.ob
j,test2.objの一例を示す説明図である。
test1.obj,test2.objをリンクして得られる一つのロー
ドモジュールtest12.absと一つの管理情報ファイルとの
説明図である。
用いて変数のシンボル情報を検索するデバッグ動作の一
例を示すフローチャートである。
用いてブレークポイントを設定する動作の一例を示すフ
ローチャートである。
所要のシンボルを表示させる処理の一例を示すフローチ
ャートである。
Claims (6)
- 【請求項1】 ソースプログラムを構成するサブモジュ
ールの記述を、機械語に変換しサブモジュール毎の相対
アドレスに割り当てた、オブジェクト情報を含むオブジ
ェクト情報ファイルと、オブジェクト情報の割付相対ア
ドレスとそれに対応されるサブモジュールの記述内容と
の対応関係を定義するデバッグ情報ファイルとを、サブ
モジュール毎に生成する変換処理と、 ソースプログラムを構成する全てのオブジェクト情報フ
ァイルのオブジェクト情報を絶対アドレスに割り当てて
ロードモジュールを生成すると共に、サブモジュール毎
のオブジェクト情報に対する割付絶対アドレスとそのサ
ブモジュールに対応されるデバッグ情報ファイル名とを
関連付ける管理情報ファイルを生成するリンク処理と、
を含むことを特徴とするデバッグ情報作成方法。 - 【請求項2】 前記管理情報ファイルは、サブモジュー
ル名に1対1対応されるユニット名、ユニット名に対応
されるオブジェクト情報ファイルの作成日付情報及びユ
ニット名に対応されるデバッグ情報ファイル名を有する
と共に、関数及びデータ単位で対応されるセクション
名、セクション名に対応される関数及びデータを含むサ
ブモジュールのユニット名、及びセクション名に対応さ
れる関数及びデータの割付け絶対アドレスを有すること
を特徴とする請求項1記載のデバッグ情報作成方法。 - 【請求項3】 ソースプログラムを構成するサブモジュ
ールの記述を、機械語に変換しサブモジュール毎の相対
アドレスに割り当てた、オブジェクト情報を含むオブジ
ェクト情報ファイルと、オブジェクト情報の割付相対ア
ドレスとそれに対応されるサブモジュールの記述内容と
の対応関係を定義するデバッグ情報ファイルとを、サブ
モジュール毎に生成する変換処理と、 ソースプログラムを構成する全てのオブジェクト情報フ
ァイルのオブジェクト情報を絶対アドレスに割り当てて
ロードモジュールを生成すると共に、サブモジュール毎
のオブジェクト情報に対する割付絶対アドレスとそのサ
ブモジュールに対応されるデバッグ情報ファイル名とを
関連付ける管理情報ファイルを生成するリンク処理と、 前記リンク処理で生成されたロードモジュールを読み込
んでターゲットシステムに供給すると共に、管理情報フ
ァイルを読み込み、ロードモジュールの着目絶対アドレ
スに対応するデバッグ情報ファイル名を前記管理情報フ
ァイルから検索し、検索されたファイル名のデバッグ情
報ファイルを読み込んで、読み込んだデバッグ情報ファ
イルを用いて前記ソースプログラムのデバッグを支援す
るデバッガ処理と、を含むことを特徴とするデバッグ方
法。 - 【請求項4】 ソースプログラムを構成するサブモジュ
ールの記述を、機械語に変換しサブモジュール毎の相対
アドレスに割り当てた、オブジェクト情報を含むオブジ
ェクト情報ファイルと、オブジェクト情報の割付相対ア
ドレスとそれに対応されるサブモジュールの記述内容と
の対応関係を定義するデバッグ情報ファイルとを、サブ
モジュール毎に生成する変換処理と、 ソースプログラムを構成する全てのオブジェクト情報フ
ァイルのオブジェクト情報を絶対アドレスに割り当てて
ロードモジュールを生成すると共に、サブモジュール毎
のオブジェクト情報に対する割付絶対アドレスとそのサ
ブモジュールに対応されるデバッグ情報ファイル名とを
関連付け且つそのサブモジュールが前記変換処理された
日付情報を前記デバッグ情報ファイル名と関連付ける管
理情報ファイルを生成するリンク処理と、 前記リンク処理で生成されたロードモジュールを読み込
んでターゲットシステムに供給すると共に、管理情報フ
ァイルを読み込み、既に読み込み済みの管理情報ファイ
ルがあるとき双方のファイルの前記日付情報を比較し、
比較結果が相違する前記読み込み済みの管理情報ファイ
ルの日付情報に対応したデバッグ情報ファイルが読み込
まれているときはこれを無効化し、この処理の後、前記
ロードモジュールの着目絶対アドレスに対応するデバッ
グ情報ファイル名を前記読み込んだ管理情報ファイルか
ら検索し、検索されたファイル名のデバッグ情報ファイ
ルを読み込んで、読み込んだデバッグ情報ファイルを用
いて前記ソースプログラムのデバッグを支援するデバッ
ガ処理と、を含むことを特徴とするデバッグ方法。 - 【請求項5】 ソースプログラムを修正する処理を更に
含み、ソースプログラムを修正したとき、修正に係るサ
ブモジュールを読み込んで前記変換処理を行い、この変
換処理で得られたのオブジェクト情報ファイルとデバッ
グ情報ファイルによってソースプログラムの修正前のオ
ブジェクト情報ファイルとデバッグ情報ファイルを更新
し、更新されたオブジェクト情報ファイルを含む全ての
オブジェクト情報ファイルに対して前記リンク処理を行
ってロードモジュールと管理情報ファイルとを新たに生
成する処理を更に含むことを特徴とする請求項4記載の
デバッグ方法。 - 【請求項6】 ターゲットシステムに接続されるホスト
コンピュータを有し、このホストコンピュータは、 ソースプログラムを構成するサブモジュールの記述を、
機械語に変換しサブモジュール毎の相対アドレスに割り
当てた、オブジェクト情報を含むオブジェクト情報ファ
イルと、オブジェクト情報の割付相対アドレスとそれに
対応されるサブモジュールの記述内容との対応関係を定
義するデバッグ情報ファイルとを、サブモジュール毎に
生成するコンパイラと、 ソースプログラムを構成する全てのオブジェクト情報フ
ァイルのオブジェクト情報を絶対アドレスに割り当てて
ロードモジュールを生成すると共に、サブモジュール毎
のオブジェクト情報に対する割付絶対アドレスとそのサ
ブモジュールに対応されるデバッグ情報ファイル名とを
関連付け且つそのサブモジュールが前記コンパイラによ
ってコンパイルされた日付情報を前記デバッグ情報ファ
イル名と関連付ける管理情報ファイルを生成するリンカ
と、 前記リンカで生成されたロードモジュールを読み込んで
ターゲットシステムに供給すると共に、管理情報ファイ
ルを読み込み、既に読み込み済みの管理情報ファイルが
あるとき双方のファイルの前記日付情報を比較し、比較
結果が相違する前記読み込み済みの管理情報ファイルの
日付情報に対応したデバッグ情報ファイルが読み込まれ
ているときはこれを無効化し、この処理の後、前記ロー
ドモジュールの着目絶対アドレスに対応するデバッグ情
報ファイル名を前記読み込んだ管理情報ファイルから検
索し、検索されたファイル名のデバッグ情報ファイルを
読み込んで、読み込んだデバッグ情報ファイルを用いて
前記ソースプログラムのデバッグを支援するデバッガ
と、を含むことを特徴とするデバッグシステム。
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)
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 |
-
1996
- 1996-12-11 JP JP33062596A patent/JP3352893B2/ja not_active Expired - Fee Related
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 |