JPH03161842A - デバッグシステム - Google Patents
デバッグシステムInfo
- Publication number
- JPH03161842A JPH03161842A JP1301539A JP30153989A JPH03161842A JP H03161842 A JPH03161842 A JP H03161842A JP 1301539 A JP1301539 A JP 1301539A JP 30153989 A JP30153989 A JP 30153989A JP H03161842 A JPH03161842 A JP H03161842A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- debugging
- register
- information
- allocated
- 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.)
- Granted
Links
- 238000005457 optimization Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 abstract 3
- 238000010586 diagram Methods 0.000 description 3
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
レジスタ/w4域割付けされた変数のデバッグ方式に関
し、 変数および変数の実体に割付けたレジスタ/wi域をデ
バッグ情報として予め生成して保存しておき、デバッグ
時に中断点でこれを参照して該当するレジスタ/ fi
Jl域の値を変更などし、利用者が最適化による変数の
実体の場所を意識することなく正しいデバッグを行い得
るようにすることを目的とし、 最適化によって変数に固定的に割付けたレジスタ/領域
および特定の時期だけ変数の実体に割付けたレジスタ/
SN域の情報をデバッグ情報として予め生威して保存
し、デバッグ時にソースプログラムを展開した命令列の
中断した位置で、上記デバッグ情報を参照して変数およ
び変数の実体に割付けられているレジスタ/領域をアク
セスし、デバッグするように構戒する。
し、 変数および変数の実体に割付けたレジスタ/wi域をデ
バッグ情報として予め生成して保存しておき、デバッグ
時に中断点でこれを参照して該当するレジスタ/ fi
Jl域の値を変更などし、利用者が最適化による変数の
実体の場所を意識することなく正しいデバッグを行い得
るようにすることを目的とし、 最適化によって変数に固定的に割付けたレジスタ/領域
および特定の時期だけ変数の実体に割付けたレジスタ/
SN域の情報をデバッグ情報として予め生威して保存
し、デバッグ時にソースプログラムを展開した命令列の
中断した位置で、上記デバッグ情報を参照して変数およ
び変数の実体に割付けられているレジスタ/領域をアク
セスし、デバッグするように構戒する。
本発明は、レジスタ/領域割付けされた変数のデバッグ
方式に関するものである。
方式に関するものである。
〔従来の技術と発明が解決しようとする課題〕従来、最
適化によってある特定の時期だけ領域の他にレジスタを
割付ける変数についてデバッグする場合、固定的な領域
あるいはレジスタだけを意識していたため、局所的にレ
ジスタを割り付けた変数について正しくデハッグし得な
いという問題があった。例えば第4図に示すように、文
3の矢印の位置でプログラムの実行を中断している時に
、変数八をデバソガの機能によってその値を変更しよう
とする場合、変数Aに割りつけられた領域のみの値を変
更しても、このときに変数六の結果に対して最適化によ
り一時的に図示のようにレジスタreglも割付けられ
ているため、文の結果に反映させることができず、正し
くデバングできないという問題があった。
適化によってある特定の時期だけ領域の他にレジスタを
割付ける変数についてデバッグする場合、固定的な領域
あるいはレジスタだけを意識していたため、局所的にレ
ジスタを割り付けた変数について正しくデハッグし得な
いという問題があった。例えば第4図に示すように、文
3の矢印の位置でプログラムの実行を中断している時に
、変数八をデバソガの機能によってその値を変更しよう
とする場合、変数Aに割りつけられた領域のみの値を変
更しても、このときに変数六の結果に対して最適化によ
り一時的に図示のようにレジスタreglも割付けられ
ているため、文の結果に反映させることができず、正し
くデバングできないという問題があった。
本発明は、変数および変数の実体に割付けたレジスタ/
領域をデハソグ情報として予め生成して保存しておき、
デバッグ時に中断点でこれを参照して該当するレジスタ
/領域の値を変更などし、利用者が最適化による変数の
実体の場所を意識することなく正しいデバッグを行い得
るようにすることを目的としている。
領域をデハソグ情報として予め生成して保存しておき、
デバッグ時に中断点でこれを参照して該当するレジスタ
/領域の値を変更などし、利用者が最適化による変数の
実体の場所を意識することなく正しいデバッグを行い得
るようにすることを目的としている。
第1図は、本発明の原理構戒図を示す。
第1図において、ソースプログラム】ぱ、デバッグを行
おうとする展開前のプログラムである。
おうとする展開前のプログラムである。
展開された命令列2は、ソースプログラム1を展開した
命令列であって、デバッグを行おうとする機械語のプロ
グラムである。
命令列であって、デバッグを行おうとする機械語のプロ
グラムである。
デバッグ情報3ば、最適化によって変数に固定的に割付
けたレジスタ/領域および特定の時期だけ変数の実体に
割付けたレジスタ/領域の情報を予め生威して保存した
ものである。ここでは、特定の時期(例えば文2から文
3までの時期〉だけ変数の実体に割り付けたレジスタの
みを示す。
けたレジスタ/領域および特定の時期だけ変数の実体に
割付けたレジスタ/領域の情報を予め生威して保存した
ものである。ここでは、特定の時期(例えば文2から文
3までの時期〉だけ変数の実体に割り付けたレジスタの
みを示す。
本発明は、第1図に示すように、予めデバッグ情報3を
保存しておき、デバッグ時にソースプログラムlを展開
した命令列2の中断した位置で、デバッグ情報3を参照
して変数および変数の実体に割付けられているレジスタ
/領域を見つけ出してこれらをアクセスし、デハソグす
るようにしている。
保存しておき、デバッグ時にソースプログラムlを展開
した命令列2の中断した位置で、デバッグ情報3を参照
して変数および変数の実体に割付けられているレジスタ
/領域を見つけ出してこれらをアクセスし、デハソグす
るようにしている。
従って、デバソガを用いてプログラムの実行を中断させ
て変数の値を変更などしようとするときに、保存してお
いたデバッグ情報3を参照して該当するレジスタ/領域
の値を変更などすることにより、利用者が最適化による
変数の実体の場所を意識することなく、正しいデハソグ
を行うことが可能となる。
て変数の値を変更などしようとするときに、保存してお
いたデバッグ情報3を参照して該当するレジスタ/領域
の値を変更などすることにより、利用者が最適化による
変数の実体の場所を意識することなく、正しいデハソグ
を行うことが可能となる。
次に、第1図から第3図を用いて本発明の1実施例の構
或および動作を順次詳細に説明する。
或および動作を順次詳細に説明する。
第l図において、ソースプログラム1は、デバッグを行
おうとする展開前のプログラムであって、文1(A=1
)、文2 (B=2) 、文3 (C=A+B)から構
成されている。
おうとする展開前のプログラムであって、文1(A=1
)、文2 (B=2) 、文3 (C=A+B)から構
成されている。
展開された命令列2は、ソースプログラム1を展開した
命令列であって、ソースプログラムlの文1、文2、文
3を図示のように展開した機械語の命令列である。例え
ば文1(A=I、lを変数Aに代入するというソースプ
ログラム)を、LOAD regl. 1 ・・・
・・・・・・・・・・(1)STOREreg1lA・
・・・・・・・・・・・・(2)に展開する。ここで、
(1)はlをレジスタreglにロード、(2)はレジ
スタreg 1の内容を変数Aに割り付けられた領域に
ストアするという命令列である。
命令列であって、ソースプログラムlの文1、文2、文
3を図示のように展開した機械語の命令列である。例え
ば文1(A=I、lを変数Aに代入するというソースプ
ログラム)を、LOAD regl. 1 ・・・
・・・・・・・・・・(1)STOREreg1lA・
・・・・・・・・・・・・(2)に展開する。ここで、
(1)はlをレジスタreglにロード、(2)はレジ
スタreg 1の内容を変数Aに割り付けられた領域に
ストアするという命令列である。
以下同様に文2、文3を展開する。
デバッグ情報3は、翻訳時の最適化によって変数に固定
的に割付けたレジスタ/ fiJI域および特定の時期
だけ変数の実体に割付けたレジスタ/w4域の情報を予
め生成して保存したものである。ここでは、図示のよう
にAを文2〜3までreB1に割り付けたという情報、
および図示しないがA,Bを領域にそれぞれ割り付けた
という情報を生成して保存している。従って、デバソガ
によって文3で矢印を用いて示した位置で中断したとき
、変数Aの値を変更しようとするとき、デハソグ情@3
を参照してA+17)I域の内容および変数Aの実体が
存在するレジスタreglの内容の両者を変更などする
ことにより、正しくデバングすることができる。
的に割付けたレジスタ/ fiJI域および特定の時期
だけ変数の実体に割付けたレジスタ/w4域の情報を予
め生成して保存したものである。ここでは、図示のよう
にAを文2〜3までreB1に割り付けたという情報、
および図示しないがA,Bを領域にそれぞれ割り付けた
という情報を生成して保存している。従って、デバソガ
によって文3で矢印を用いて示した位置で中断したとき
、変数Aの値を変更しようとするとき、デハソグ情@3
を参照してA+17)I域の内容および変数Aの実体が
存在するレジスタreglの内容の両者を変更などする
ことにより、正しくデバングすることができる。
第2図は、本発明に係るデバッグ情報例を示す。
第2図(イ)は、ソースプログラム1およびこのソース
プログラム1の展開された命令列2を示す。
プログラム1の展開された命令列2を示す。
第2図(口〉は、デバッグ情報3を示す。
データの情報は、第2図(イ)文1、文2、文3を■、
■、■に対応づけた変数名、変数の属性、レジスタ/
eJI域の割付け情報などを持っている。
■、■に対応づけた変数名、変数の属性、レジスタ/
eJI域の割付け情報などを持っている。
文の情報は、第2図(イ)文l、文2、文3の順番に■
、■、■としてソースプログラム1上の行番号、展開さ
れた命令列2のオフセントアドレスの情報などを持って
いる。
、■、■としてソースプログラム1上の行番号、展開さ
れた命令列2のオフセントアドレスの情報などを持って
いる。
レジスタ割付け情報は、局所的に変数の割付け先が変わ
る旨の情報を持っている。ここで“Aがレジスタreg
lに2〜3まで”は、変数Aの実体がレジスタregl
に文2から文3まで割り付けられているという情報であ
る。尚、変数Aの領域への固定的な割付けは、データの
情報が持っている。
る旨の情報を持っている。ここで“Aがレジスタreg
lに2〜3まで”は、変数Aの実体がレジスタregl
に文2から文3まで割り付けられているという情報であ
る。尚、変数Aの領域への固定的な割付けは、データの
情報が持っている。
次に、第3図フローチャートに示す順序に従い、第2図
を参照して本発明の1実施例の構或の動作を具体的に説
明する。
を参照して本発明の1実施例の構或の動作を具体的に説
明する。
第3図において、■は、文の情報より、現在どの文に中
断しているかを調べる。例えば第2図(イ)中断と記載
した位置で中断している場合、第2図(口)デバッグ情
報3のうちの文の情報の■から文3の先頭で中断してい
ることが判明する(具体的には中断点のオフセントアド
レスが含まれる文を■の文3として見つけ出す).■は
、レジスタ割付け情報より、変数の実体がレジスタ上に
あるか調べる。例えば第2図(口)レジスク割付け情報
を参照し、変数A,変数Bについてレジスタに割りつけ
られているか調べると、変数Aが現在中断している文3
でレジスタreglに割付けられていることが判明する
。従って、変数Aについて■でレジスタに割付けられて
いると判明したので、レジスタ(レジスタregl)の
内容を変更すると共に[相]で領域の内容を変更する。
断しているかを調べる。例えば第2図(イ)中断と記載
した位置で中断している場合、第2図(口)デバッグ情
報3のうちの文の情報の■から文3の先頭で中断してい
ることが判明する(具体的には中断点のオフセントアド
レスが含まれる文を■の文3として見つけ出す).■は
、レジスタ割付け情報より、変数の実体がレジスタ上に
あるか調べる。例えば第2図(口)レジスク割付け情報
を参照し、変数A,変数Bについてレジスタに割りつけ
られているか調べると、変数Aが現在中断している文3
でレジスタreglに割付けられていることが判明する
。従って、変数Aについて■でレジスタに割付けられて
いると判明したので、レジスタ(レジスタregl)の
内容を変更すると共に[相]で領域の内容を変更する。
一方、変数Bについて■でレジスタに割付けられていな
いと判明したので、[相]で領域の内容のみを変更する
。
いと判明したので、[相]で領域の内容のみを変更する
。
以上のように、デバッグ時に中断点で、デバッグ情報3
を参照して変数の実体が一時的にレジスタに割付けられ
ていると判明したときに、この判明したレジスタの内容
および固定的に割付けられている領域の両者を変更する
ことにより、正しく変数の内容を変更してデバッグする
ことが可能となる。
を参照して変数の実体が一時的にレジスタに割付けられ
ていると判明したときに、この判明したレジスタの内容
および固定的に割付けられている領域の両者を変更する
ことにより、正しく変数の内容を変更してデバッグする
ことが可能となる。
以上説明したように、本発明によれば、デバンガを用い
てプログラムの実行を中断させて変数の値を変更などし
ようとするときに、保存しておいたデハッグ情報3を参
照して変数に固定的に割付けられたレジスタ/領域およ
び一時的に変数の実体に割付けられたレジスタ/領域の
両者をアクセスする#I威を採用しているため、利用者
が最適化による変数の実体の場所を意識することなく、
正しいデバッグを容易に行うことができる。
てプログラムの実行を中断させて変数の値を変更などし
ようとするときに、保存しておいたデハッグ情報3を参
照して変数に固定的に割付けられたレジスタ/領域およ
び一時的に変数の実体に割付けられたレジスタ/領域の
両者をアクセスする#I威を採用しているため、利用者
が最適化による変数の実体の場所を意識することなく、
正しいデバッグを容易に行うことができる。
第l図は本発明の原理構成図、第2図は本発明に係るデ
バッグ情報例、第3図は本発明の動作説明フローチャー
ト、第4図は従来技術の説明図を示す。 図中、1はソースプログラム、2は展開された命令列、
3はデバッグ情報を表す。
バッグ情報例、第3図は本発明の動作説明フローチャー
ト、第4図は従来技術の説明図を示す。 図中、1はソースプログラム、2は展開された命令列、
3はデバッグ情報を表す。
Claims (1)
- 【特許請求の範囲】 レジスタ/領域割付けされた変数のデバッグ方式におい
て、 最適化によって変数に固定的に割付けたレジスタ/領域
および特定の時期だけ変数の実体に割付けたレジスタ/
領域の情報をデバッグ情報(3)として予め生成して保
存し、 デバッグ時にソースプログラム(1)を展開した命令列
(2)の中断した位置で、上記デバッグ情報(3)を参
照して変数および変数の実体に割付けられているレジス
タ/領域をアクセスし、デバッグするように構成したこ
とを特徴とするレジスタ/領域割付けされた変数のデバ
ッグ方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01301539A JP3085309B2 (ja) | 1989-11-20 | 1989-11-20 | デバッグシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01301539A JP3085309B2 (ja) | 1989-11-20 | 1989-11-20 | デバッグシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03161842A true JPH03161842A (ja) | 1991-07-11 |
JP3085309B2 JP3085309B2 (ja) | 2000-09-04 |
Family
ID=17898156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01301539A Expired - Fee Related JP3085309B2 (ja) | 1989-11-20 | 1989-11-20 | デバッグシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3085309B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101832391B1 (ko) * | 2016-04-15 | 2018-02-26 | 조인남 | 무 껍질 제거장치 |
-
1989
- 1989-11-20 JP JP01301539A patent/JP3085309B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3085309B2 (ja) | 2000-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Needham et al. | The Cambridge CAP computer and its protection system | |
US6760905B1 (en) | Lazy compilation of template-generated classes in dynamic compilation execution environments | |
US9336001B2 (en) | Dynamic instrumentation | |
JPH10111818A (ja) | バーストプロファイリング方法およびシステム | |
JP2006294046A (ja) | 情報処理装置 | |
JPS6017539A (ja) | エミユレ−シヨン方式 | |
JP2003050715A (ja) | コンパイラおよびデバッグ装置 | |
JP2006277758A (ja) | 通信方法 | |
US6052530A (en) | Dynamic translation system and method for optimally translating computer code | |
US6948170B2 (en) | Computer and computer-readable storage medium for command interpretation | |
JPH03161842A (ja) | デバッグシステム | |
KR950027573A (ko) | 처리 시스템 및 그이 동작 방법 | |
JP3327674B2 (ja) | プログラム翻訳装置及び方法 | |
JPH0283749A (ja) | マイクロプロセッサの内部割込み制御方式 | |
JP2732768B2 (ja) | データ処理装置 | |
JPH09179738A (ja) | オブジェクト指向言語処理方法及び処理装置 | |
Babaoglu et al. | The HOCA operating system specifications | |
JPH04324525A (ja) | プログラム移植支援装置 | |
JP2000010820A (ja) | マルチプロセスシステムにおける1プロセスのテスト方法及びシステム | |
JPH0259829A (ja) | マイクロコンピュータ | |
JPH0962512A (ja) | 低級言語から高級言語への記述言語変換機能を有するプログラム変換装置及び方法 | |
Feriozi | AC programming model for OS/2 device drivers | |
JPH02231638A (ja) | オブジエクト指向データベース管理システムにおけるメツセージ処理方法 | |
JPS62274431A (ja) | 高水準言語記述プログラムにおける自動レジスタ固定方式 | |
JP2001005766A (ja) | ノンストップ拡張ドライバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |