JPH04149747A - トレース情報更新方式 - Google Patents

トレース情報更新方式

Info

Publication number
JPH04149747A
JPH04149747A JP2276019A JP27601990A JPH04149747A JP H04149747 A JPH04149747 A JP H04149747A JP 2276019 A JP2276019 A JP 2276019A JP 27601990 A JP27601990 A JP 27601990A JP H04149747 A JPH04149747 A JP H04149747A
Authority
JP
Japan
Prior art keywords
program
information
trace information
file
source program
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
JP2276019A
Other languages
English (en)
Inventor
Takao Shimomura
下村 隆夫
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2276019A priority Critical patent/JPH04149747A/ja
Publication of JPH04149747A publication Critical patent/JPH04149747A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、シンボリックデバッガを用いたプログラムの
デバッグ装置において、デバッグに使用されるトレース
情報を、プログラムの修正に伴い、最新のプログラムに
合わせて自動更新するトレース情報更新方式に関する。
[従来の技術] プログラムをデバッグする場合には、制御の流れや実行
途中での各種の変数の値を調べるために、予め、シンボ
リックデバッガのトレース機能を利用してプログラムの
プローブを埋め込む。まず、ソースプログラム行を指定
し、次に、プログラムの実行がその指定された行に移っ
た時にトレースする変数等を指定する。トレースする変
数の名前を指定するだけで、その変数名とその値を(構
造体であれば、その要素の値も)型に合せてプリントす
ることができる。このトレース情報をファイルに保存し
ておき、デバッガ起動時に自動的に設定する。
ところで、プログラムにバグがあってソースプログラム
を修正した場合には、ソースプログラムの行番号が変わ
るため、行番号変更の影響を受けたトレース情報につい
ては設定をやり直さなければならない。従来、このトレ
ース情報の更新はもっばら人手で行っていた。
従来のデバッグ形態を第4図に示す。プログラムにバグ
がある場合、まず、エディタ12を使って旧版ソースプ
ログラムファイアL11を修正し、新版・I−スプログ
ラムファイル1;3を生成する。
次に、コシバイラ14を起動して、新しいソースプログ
ラムファイル13からT行iiI能プログラム(機械語
プログラム)15を生成する。次に、ソースプログラム
修正のために行番号変更の影響を受けたトレース情報フ
ァイル16をエディタ18を用いて人手で修正し、更新
されたトレース情報を生成する。最後に、デバッガ20
を起動して、実行可能プログラム15をロード後、更新
されたトレース情報19を設定し、デバッグ作業を開始
する。
〔発明が解決しようとする課題1 上記従来技術では、プログラムにバグがあってソースプ
ログラムを修正した場合、影響を受けたトレース情報を
エディタを使って人手で更新しなければならず、作業の
効率が悪く、また、間違い易いという問題があった。
本発明の目的は、修正されたソースプログラムに合わせ
てトし・−ス情報を自動的に更新するよう(こして、デ
バッグ作業σ)効率化、jT確化を夕する−とにある。
(課卯を解決するたρ) i7’! 4−段1上ご2目
的を達成するために、本斧明は、シンボリックデバッガ
を用いたプログラムのデバッグ装置において、プログラ
ムを修正した場合に、旧版ソースプログラムと新版ソー
スプログラムの1分を検出し、該差分に基づいて、シン
ポリツタデバッガから出力され保持しておいたトレース
情報中の行番号を最新のプログラムに合せて自動的に更
新することを特徴とする。
[作 用] ソースプログラムの変更の差分に着目し、変更後のソー
スプログラムに合わせてトレース情報を更新する。本発
明によtば、エディタを起動してソースプログラムを修
正後、コンパイラにより実行可能なプログラムを作成す
る過程で、自動的にトレース情報が更新される。このた
め、利用者はトレース情報のことを特に意識する必要は
ない。
次にデバッガを起動した時には、最新のプログラムに合
せて自動的にトレース情報が設定される。
[実施例J 以ド、本発明の一実施例について図面により説明4る。
第1図に、本発明に基づくデバッグ形態を示す。
ここで、トレース情報更新部21が、第4図でエディタ
18により人手で行っていたトレース情報の更新を自動
的に行う部分である、このトレース情報更新部21は差
分検呂部22、変更情報ファイル23及びトレース情報
変換部24よりなる。
プログラムをデバッグする場合、まず、エディタ12を
使って旧版ソースプログラムファイル11を修正し、新
版ソースプログラム13を生成する。次に、コンパイラ
14を起動して、新版ソスプログラムファイル13から
実行i”T能プログラム15を生成する。一方、トレー
ス情報更新部21では旧版ソースプログラムファイル1
1と新版ソースプログラムファイル13を取り込り、差
分検出部22において旧版と新版のソースプログラムの
差分を解析し、変更情報を変更情報ファイル23に取得
する。そして、コンバイ→14でli版リソースプログ
ラムファイル1′1が参照される毎1こ、トレース情報
変換部24において、f型情報−ファイル23の変更情
報に堪づき、]・レース情報ファイル1(3のトし・−
ス情報を新しいプログラムに合せて自動的に更新する。
最後に、デバッガ20を起動し2、実行可能プログラム
15をロード後、更新されたトレース情報10を設定(
7、デ!べ・ソゲ作業を開始する。
第2図はトレース情報更新部21の一実施例の詳細構成
図である。ここで、)・シース情報変換部24は、変更
情報変換部25と′3つ組変更情報フィル26と行番号
変換部27からなる。
まず、差分検出s22が旧版と新版のソースプログラム
を解析して、その差分を変更情報ファイル23に格納す
る。次に、変(情@変Wh部25が行番号の更fを容易
にするため、変更情報を33つ級に変換し、3つ組変更
情報ファイル26に格納する。最後に1行番号変換部2
7が;3つ紹変更情報ファイル26から3つ組変更情報
を入力し、この3つm変更情報に基づいて、トレース情
報ファイル16から入力したトレース情報内の行番号を
最新のプログラムに合うように変換する。
以下に、コンパイラをUNIX上のプログラム生成ツー
ルであるmake (“make User’5Gui
de、” Sun Microsysteras、 P
art Nusber:800−1774−15)とし
、また、シンボリックデバッガをUNIX上のdbx(
“DebuggingTools、” Sun Mic
rosystems、 Part Nun−ber:8
00−1775−10)とした場合の具体的処理を示す
第3図はトレース情報内の行番号を変更する処理手順を
示したものである。
(1)トレース情報 dbxのトレース情報は、5top、when、tra
ceの3種類からなる。
’5top ブレークポイントの設定を行う。
[記述形式] ■5top at  “ファイル名”二行番号[if条
件式]■5top in開数名[if条件式]■5to
p if条件式 ■5top変数名[if条件式] 実行がある時点に到達した場合に、dbxコマンドを実
行する。
[記述形式] ■when at  “ファイル名″ :行番号(db
xコマンド;・・・) ■when in関数名(dbxコマンド;・)■wh
en条件式(dbxコマンド;・・・)・ t rac
e 実行暗所、変数値等のトレースを行う。
[記述形式] ■trace at  “ファイル名” :行番号[i
f条件式]■trace関数名[if条件式] @ trace  [inn関数ココ[if条件式]Q
 trace式at”ファイル名−行番号[if条件式
]@ trace変数名[in関数名][1f条件式]
%式% :12 ソースプログラムファイルが修正された場合、旧版と新
版の差分(変更情報)をUNrX上のdiffプログラ
ム(“5unO3RefernceManual、’ 
 Sun  Microsyste亀、  Part 
 Number: 800−1751−10)を用いて
求める。
r、d i f f−n旧版ファイル名新版ファイル名
」を実行すると、次の変更情報が得られる。
・行が削除された場合 LN L行目からN行分、削除されたことを示す。
・行が追加された場合 LN 追加された行 り行目の後にN行分、追加されたことを示す。
(例) err*1; printf (“5yntax errorVn” 
) ;(3)変更情報変換部 トレース情報内に含まれる行番号は、最新のソースプロ
グラムに合トせで更新する必要力くある。この行番号更
新処理を容易にするため、変更情報を次の3つ組(種別
、開始、Iii囲)!、:変換する。
[変換前]    [変換後] dl−N       (r、L、L+N−1)(i、
l→N、−へ) aL N       (i、L+1.↓N)ユニで、 (r、L、N)は、■1行目からN行目までが削除され
たこと、(1江、N)は、L行目以降は、行番号がNだ
け増えることを表す。
(例) d23            r 24r 5 +2 err=  l; prinゴ(”5yntax errorVn”)(1
)行番号?、換部 Jlo ]・コシ−ス情報1こ3まt■る7旬([・−
)27〕)の解析 トレース情報内のトーグニ、は、rファイル名」、「行
番号J、1話」、「テキスト」、および各種の「キーワ
ード」に分類される。1語」は、空白を含まない任意の
文字ダjでおり、トし−ス情報内の式を表現する。「テ
キス1−Jは、改行で終了する任意の文字列であり、条
件やdbxコマンドの列を表現する。「キーワード」は
、トレース情報の種別を表す文字列であり、rstop
 at ’ J、r”  」、 rwhen at ”
 J等がある。
「ファイル名」 トークンを認識しまた場合にはファイ
ル名を、 「行番号」 トークンを認識した場合には、
行番号を設定する。ファイ!L名がバス名(/vips
 vd prop、c等)で指定されている場合には、
最後のソースプログラムファイル名の部分(prog、
 c)を取り出して、設定する。
トレース情報の中には、  fstop if st 
ma口〕丁]〈0」のように行番号を含まないものもあ
る。
行番号を含まないトし・−ス情報は更新の必要がない。
従って、キーワードについては、行番号を含むi−L・
−ス情報内のキーワードのみを認巣す71ば良い。
(3)トレース情報の構文解析 「行番号J トークンを読み込んだ時に、trailば
r)rm処理を実行する。 transform処理て
は、ファイル名が修正されたソースプログラムファイル
名と同一であれば、行番号を変更情報に基づいて更新す
る(@3図)、(・レース情報を1行読み込んだ場合に
は、put処理を実行する。
put処理では、行番号が削除された場合には読み込ん
だ1行を読み捨て、それ以外の場合にはトし・−ス情報
ファイル19へ出力する。
トレース情報を1行読み込む途中で文字列がトークンと
して認識できない場合には、その行には行番号が含まれ
ていないので、そのまま、トレース情報ファイル19へ
出力する。
〔発明の効果1 以ト説明したように、こta(l!明L−: J: j
’lば、修11されたソースプログラムに合わせてトレ
−ス情報を1籾する部分か自動化さ才lるため、゛り一
〕、ブUコゲラムの修iEかも次のデハノヴ開始まで(
Tl jJ業が効率化され、また5人トの介入が1′い
たび戸lIスも肪げ5゜
【図面の簡単な説明】
第1メ]は本発明iこ基づくデl<ツブ奸′態を示すメ
j、第2図は本発明の一実施例を示す構成図、第二3タ
1はトし−ス情報内の行番号を変換する処理J[を示す
図、第4図は従東のデベッグ形態を小すツ1である。 11 旧版ソースプロプラムファイル、13 新版ソ・
−スプログラムファイノ1゜14 コシバイラ、 16−1− L−ス情報ファイル、 20 デハソガ、  2+  1・L−)、情aytt
s、22 ・差分検出部、  2:3 夢更情皓ファ4
ノL、24 トし−ス情報変換部。

Claims (1)

    【特許請求の範囲】
  1. (1)シンボリックデバッガを用いたプログラムのデバ
    ッグ装置において、プログラムを修正した場合に、旧版
    ソースプログラムと新版ソースプログラムの差分を検出
    し、該差分に基づいて、シンボリックデバッガから出力
    され保持しておいたトレース情報中の行番号を最新のプ
    ログラムに合せて自動的に更新することを特徴とするト
    レース情報更新方式。
JP2276019A 1990-10-15 1990-10-15 トレース情報更新方式 Pending JPH04149747A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2276019A JPH04149747A (ja) 1990-10-15 1990-10-15 トレース情報更新方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2276019A JPH04149747A (ja) 1990-10-15 1990-10-15 トレース情報更新方式

Publications (1)

Publication Number Publication Date
JPH04149747A true JPH04149747A (ja) 1992-05-22

Family

ID=17563658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2276019A Pending JPH04149747A (ja) 1990-10-15 1990-10-15 トレース情報更新方式

Country Status (1)

Country Link
JP (1) JPH04149747A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103263A (ja) * 1992-09-22 1994-04-15 Nec Corp 方程式編集装置
WO2001069391A3 (en) * 2000-03-14 2001-12-13 Arc Cores Inc Difference engine method and apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103263A (ja) * 1992-09-22 1994-04-15 Nec Corp 方程式編集装置
WO2001069391A3 (en) * 2000-03-14 2001-12-13 Arc Cores Inc Difference engine method and apparatus
US7162713B2 (en) 2000-03-14 2007-01-09 Arc International Difference engine method and apparatus

Similar Documents

Publication Publication Date Title
US11579856B2 (en) Multi-chip compatible compiling method and device
US5307498A (en) Automated method for adding hooks to software
US8826244B2 (en) Providing programming support to debuggers
US20160357519A1 (en) Natural Language Engine for Coding and Debugging
CN102279789B (zh) 生产阶段嵌入式系统的调试系统及其调试方法
US7178135B2 (en) Scope-based breakpoint selection and operation
CN112905184A (zh) 一种基于插桩的基本块粒度下工控协议语法逆向分析方法
JPH04149747A (ja) トレース情報更新方式
US20030188296A1 (en) Conditional debug monitors
US6983454B2 (en) Extended “run to” function
US20030018957A1 (en) Debugger monitor with anticipatory highlights
JP2000029678A (ja) プログラム言語変換方法、変換装置および記録媒体
US11256479B2 (en) Dynamic updates in an interactive programming environment
JPH02220145A (ja) プログラムトレース方式
JPH05165778A (ja) オンライントランザクションシステム
Rothwell Debugging Tools
JPH0324638A (ja) ルーチン迫跡装置
JPH05250213A (ja) プログラムデバッグ方式およびデバッガ
CN114357333A (zh) 一种低成本前端项目升级方法
JP2662533B2 (ja) ロジック・アナライザ
JPH0468446A (ja) デバッグ支援装置
JPH0561665A (ja) ソースプログラム修正方式
JP2021144521A (ja) サポート装置、サポートプログラムおよびサポート方法
JPH034336A (ja) プログラムデバッグ処理装置
JPH01197838A (ja) 制御プログラム