JPH05108404A - デバツガシステム - Google Patents
デバツガシステムInfo
- Publication number
- JPH05108404A JPH05108404A JP3267952A JP26795291A JPH05108404A JP H05108404 A JPH05108404 A JP H05108404A JP 3267952 A JP3267952 A JP 3267952A JP 26795291 A JP26795291 A JP 26795291A JP H05108404 A JPH05108404 A JP H05108404A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- resource
- program
- instruction
- debugging
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 被デバッグプログラムの逆方向へのステップ
実行を可能とし、デバッグ効率の向上を図る。 【構成】 デバッグ手段20は、被デバッグプログラム
の実行時に、その実行を構成する1命令実行において変
更した資源の情報を実行履歴として退避しておく退避手
段としてのバッファ書込み手段21および実行履歴バッ
ファ22と、この退避した実行履歴に基づき変更した資
源を元に戻すことにより逆方向への実行をシミュレート
する逆ステップ実行手段23とを含む。 【効果】 被デバッグプログラムの実行を誤って目的の
場所よりも先まで行ってしまった場合に、実行を始めか
らやりなおす必要がなくなり、デバッグ効率を向上させ
ることができる。
実行を可能とし、デバッグ効率の向上を図る。 【構成】 デバッグ手段20は、被デバッグプログラム
の実行時に、その実行を構成する1命令実行において変
更した資源の情報を実行履歴として退避しておく退避手
段としてのバッファ書込み手段21および実行履歴バッ
ファ22と、この退避した実行履歴に基づき変更した資
源を元に戻すことにより逆方向への実行をシミュレート
する逆ステップ実行手段23とを含む。 【効果】 被デバッグプログラムの実行を誤って目的の
場所よりも先まで行ってしまった場合に、実行を始めか
らやりなおす必要がなくなり、デバッグ効率を向上させ
ることができる。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
におけるプログラムのデバッガシステムに利用され、特
に、デバッグプログラムの実行を行うデバッグコマンド
方式に関する。
におけるプログラムのデバッガシステムに利用され、特
に、デバッグプログラムの実行を行うデバッグコマンド
方式に関する。
【0002】
【従来の技術】従来のデバッガシステムでは、被デバッ
グプログラムの実行を行うコマンドとして、ノーマル実
行(ブレークポイントや端末からの割り込みのみで停止
する実行方法)、およびステップ実行(機械語の1命令
実行、もしくは高級言語の1行実行)を行うものが存在
する。
グプログラムの実行を行うコマンドとして、ノーマル実
行(ブレークポイントや端末からの割り込みのみで停止
する実行方法)、およびステップ実行(機械語の1命令
実行、もしくは高級言語の1行実行)を行うものが存在
する。
【0003】また、ステップ実行の上位機能として、機
械語の1命令先または高級言語の1行先まで実行を行う
コマンドも存在する。つまり、このコマンドは、ステッ
プ実行の際にサブルーチン呼び出しあるいは関数呼び出
しがあった場合は、サブルーチンあるいは関数を実行し
てから停止する手段を備えている。
械語の1命令先または高級言語の1行先まで実行を行う
コマンドも存在する。つまり、このコマンドは、ステッ
プ実行の際にサブルーチン呼び出しあるいは関数呼び出
しがあった場合は、サブルーチンあるいは関数を実行し
てから停止する手段を備えている。
【0004】その他、被デバッグプログラムがどのよう
に実行しているか、または実行してきたかをトレースす
る手段も存在する。トレースする情報としては、実行し
た命令または実行した高級言語のソース行やメモリのア
クセス状況等が存在する。
に実行しているか、または実行してきたかをトレースす
る手段も存在する。トレースする情報としては、実行し
た命令または実行した高級言語のソース行やメモリのア
クセス状況等が存在する。
【0005】
【発明が解決しようとする課題】デバッガを使用してプ
ログラムをデバッグする際、通常、被デバッグプログラ
ム中のある目的の場所までの実行とその場所での資源の
参照または変更を繰り返し行う。しかし、実行時に誤っ
て目的の場所よりも数命令先まで進めてしまった場合、
その後予定していた資源の参照および変更を行うことが
困難になる。つまり、この状態において資源の参照は、
トレース手段を使用することにより、数命令前の情報を
ある程度得ることができるが、資源の変更は、トレース
手段およびその他の手段では実現することはできない。
よって、デバッガのユーザは、プログラムのデバッグを
最初からやりなおす必要があった。このように、従来の
デバッガでは被デバッグプログラムの実行を誤って目的
の場所よりも先まで行ってしまった場合、デバッグ効率
が低くなる欠点があった。
ログラムをデバッグする際、通常、被デバッグプログラ
ム中のある目的の場所までの実行とその場所での資源の
参照または変更を繰り返し行う。しかし、実行時に誤っ
て目的の場所よりも数命令先まで進めてしまった場合、
その後予定していた資源の参照および変更を行うことが
困難になる。つまり、この状態において資源の参照は、
トレース手段を使用することにより、数命令前の情報を
ある程度得ることができるが、資源の変更は、トレース
手段およびその他の手段では実現することはできない。
よって、デバッガのユーザは、プログラムのデバッグを
最初からやりなおす必要があった。このように、従来の
デバッガでは被デバッグプログラムの実行を誤って目的
の場所よりも先まで行ってしまった場合、デバッグ効率
が低くなる欠点があった。
【0006】本発明の目的は、前記の欠点を除去するこ
とにより、被デバッグプログラムの実行を誤って目的の
場所よりも先まで行ってしまった場合に、デバッグ効率
を低くすることなくデバッグできるデバッガシステムを
提供することにある。
とにより、被デバッグプログラムの実行を誤って目的の
場所よりも先まで行ってしまった場合に、デバッグ効率
を低くすることなくデバッグできるデバッガシステムを
提供することにある。
【0007】
【課題を解決するための手段】本発明は、被デバッグプ
ログラムを実行することでプログラムのデバッグを行う
デバッグ手段を備えたデバッガシステムにおいて、前記
デバッグ手段は、前記被デバッグプログラムの実行時に
その実行を構成する1命令実行において変更した資源の
情報を実行履歴として退避しておく退避手段と、この退
避した実行履歴に基づき変更した資源を元に戻すことに
より逆方向への実行をシミュレートする逆ステップ実行
手段とを含むことを特徴とする。
ログラムを実行することでプログラムのデバッグを行う
デバッグ手段を備えたデバッガシステムにおいて、前記
デバッグ手段は、前記被デバッグプログラムの実行時に
その実行を構成する1命令実行において変更した資源の
情報を実行履歴として退避しておく退避手段と、この退
避した実行履歴に基づき変更した資源を元に戻すことに
より逆方向への実行をシミュレートする逆ステップ実行
手段とを含むことを特徴とする。
【0008】
【作用】被デバッグプログラムの実行時に、その実行を
構成する1命令実行において変更した資源の情報を実行
履歴として、退避手段により、例えば、実行履歴バッフ
ァに格納しておく。そして、被デバッグプログラムの実
行を誤って目的より先の場所に行った場合に、逆ステッ
プ実行手段により、前記の退避した実行履歴に基づき変
更した資源を元に戻すことにより逆方向への実行をシミ
ュレートする。
構成する1命令実行において変更した資源の情報を実行
履歴として、退避手段により、例えば、実行履歴バッフ
ァに格納しておく。そして、被デバッグプログラムの実
行を誤って目的より先の場所に行った場合に、逆ステッ
プ実行手段により、前記の退避した実行履歴に基づき変
更した資源を元に戻すことにより逆方向への実行をシミ
ュレートする。
【0009】従って、デバッグを最初からやり直す必要
がなくなり、デバッグにかける作業量を大幅に縮減で
き、処理効率を向上させることが可能となる。
がなくなり、デバッグにかける作業量を大幅に縮減で
き、処理効率を向上させることが可能となる。
【0010】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。
て説明する。
【0011】図1は本発明の一実施例の要部を示すブロ
ック構成図である。
ック構成図である。
【0012】本実施例は、被デバッグプログラム10を
実行することでプログラムのデバッグを行うデバッグ手
段20を備えたデバッガシステムにおいて、本発明の特
徴とするところの、デバッグ手段20は、被デバッグプ
ログラム10の実行時にその実行を構成する1命令実行
において変更した資源の情報を実行履歴として退避して
おく退避手段としてのバッファ書込み手段21および実
行履歴バッファ22と、この退避した実行履歴に基づき
変更した資源を元に戻すことにより逆方向への実行をシ
ミュレートする逆ステップ実行手段23とを含んでい
る。
実行することでプログラムのデバッグを行うデバッグ手
段20を備えたデバッガシステムにおいて、本発明の特
徴とするところの、デバッグ手段20は、被デバッグプ
ログラム10の実行時にその実行を構成する1命令実行
において変更した資源の情報を実行履歴として退避して
おく退避手段としてのバッファ書込み手段21および実
行履歴バッファ22と、この退避した実行履歴に基づき
変更した資源を元に戻すことにより逆方向への実行をシ
ミュレートする逆ステップ実行手段23とを含んでい
る。
【0013】図2(a)および(b)に実行履歴バッフ
ァ22の形式について示す。図2(a)は実行履歴バッ
ファ22の形式の例で、図2(b)はそれに対応する実
行命令10aをアセンブリ表示したものである。なお、
「#」で始まる行はコメント行である。
ァ22の形式について示す。図2(a)は実行履歴バッ
ファ22の形式の例で、図2(b)はそれに対応する実
行命令10aをアセンブリ表示したものである。なお、
「#」で始まる行はコメント行である。
【0014】この実行履歴バッファ22の場合、実行し
た命令単位の区切りは「INST」で示してあり、変更
資源情報の表記は、資源名、サブ資源名、変更前の値の
順序で行っている。また、ポインタ33によってこれか
ら実行する命令による変更資源情報の格納領域の位置を
管理している。
た命令単位の区切りは「INST」で示してあり、変更
資源情報の表記は、資源名、サブ資源名、変更前の値の
順序で行っている。また、ポインタ33によってこれか
ら実行する命令による変更資源情報の格納領域の位置を
管理している。
【0015】この例では、まずLD命令(ロード命令)
によってレジスタR1に対して書き込みを行うため、レ
ジスタR1の変更前の値を実行履歴バッファ22に格納
する。またプログラム・カウンタPCもこの命令の実行
によって増加するため、プログラムカウンタPCの変更
前の値を実行履歴バッファ22に格納する(フィールド
31)。次に、ST命令(ストア命令)によってメモリ
の0x5000番地に対して書き込みを行うため、0x
5000番地の変更前の値を実行履歴バッファ22に格
納する。プログラムカウンタPCも同様である(フィー
ルド32)。
によってレジスタR1に対して書き込みを行うため、レ
ジスタR1の変更前の値を実行履歴バッファ22に格納
する。またプログラム・カウンタPCもこの命令の実行
によって増加するため、プログラムカウンタPCの変更
前の値を実行履歴バッファ22に格納する(フィールド
31)。次に、ST命令(ストア命令)によってメモリ
の0x5000番地に対して書き込みを行うため、0x
5000番地の変更前の値を実行履歴バッファ22に格
納する。プログラムカウンタPCも同様である(フィー
ルド32)。
【0016】次に、本実施例の動作について説明する。
【0017】まず、ステップ実行(1命令実行)を行う
際の資源の変更履歴の退避方法を2種類のデバッグ手段
20について説明する。デバッグ手段20が命令シミュ
レータの場合のフローチャートを図3に示す。このデバ
ッガシステムの場合は、機械語命令の動作をシミュレー
トする(ステップS1)と同時に変更した資源の変更前
の値を実行履歴バッファ22に格納する(ステップS
2)。そして、ポインタ33をバッファの空き領域まで
進める(ステップS3)。
際の資源の変更履歴の退避方法を2種類のデバッグ手段
20について説明する。デバッグ手段20が命令シミュ
レータの場合のフローチャートを図3に示す。このデバ
ッガシステムの場合は、機械語命令の動作をシミュレー
トする(ステップS1)と同時に変更した資源の変更前
の値を実行履歴バッファ22に格納する(ステップS
2)。そして、ポインタ33をバッファの空き領域まで
進める(ステップS3)。
【0018】デバッグ手段20が、命令をシミュレート
せずに実機上で命令を実行するデバッガの場合のフロー
チャートを図4に示す。このデバッガシステムの場合
は、命令を実行する前にその命令を解析し(ステップS
11)、その命令の実行によって変更される可能性のあ
る資源の値を変更資源情報として実行履歴バッファ22
に格納する(ステップS12)。そしてポインタ33を
バッファの空き領域まで進める(ステップS13)。そ
して1命令を実行する(ステップS14)。
せずに実機上で命令を実行するデバッガの場合のフロー
チャートを図4に示す。このデバッガシステムの場合
は、命令を実行する前にその命令を解析し(ステップS
11)、その命令の実行によって変更される可能性のあ
る資源の値を変更資源情報として実行履歴バッファ22
に格納する(ステップS12)。そしてポインタ33を
バッファの空き領域まで進める(ステップS13)。そ
して1命令を実行する(ステップS14)。
【0019】次に、逆ステップ実行のフローチャートを
図5に示す。逆ステップ実行を起動すると、実行履歴バ
ッファ22中のポインタ33の指す領域の1つ前にポイ
ンタ33を戻し(ステップS21)、その領域に格納さ
れている変更資源の情報を読み出し(ステップS2
2)、その情報に基づいて該当の資源の値を元に戻す
(ステップS23)。
図5に示す。逆ステップ実行を起動すると、実行履歴バ
ッファ22中のポインタ33の指す領域の1つ前にポイ
ンタ33を戻し(ステップS21)、その領域に格納さ
れている変更資源の情報を読み出し(ステップS2
2)、その情報に基づいて該当の資源の値を元に戻す
(ステップS23)。
【0020】また、実際にこの逆ステップの実行手段2
3を使用した場合の例を図6に示す。この使用例40で
は、ステップ実行を行うコマンドは「step」であ
り、逆ステップ実行を行うコマンドは「rstep」で
ある。まず、コマンド実行34に示すように、「ste
p」コマンドを連続実行して被デバッグプログラムを数
命令実行する。ここで実行し過ぎた場合は、コマンド実
行35に示すように、「rstep」コマンドを実行し
て1命令前の環境に戻す。
3を使用した場合の例を図6に示す。この使用例40で
は、ステップ実行を行うコマンドは「step」であ
り、逆ステップ実行を行うコマンドは「rstep」で
ある。まず、コマンド実行34に示すように、「ste
p」コマンドを連続実行して被デバッグプログラムを数
命令実行する。ここで実行し過ぎた場合は、コマンド実
行35に示すように、「rstep」コマンドを実行し
て1命令前の環境に戻す。
【0021】
【発明の効果】以上説明したように、本発明は、逆ステ
ップ実行手段を有し、被デバッグプログラムの実行が目
的の場所よりも先に行き過ぎた場合に、逆に戻ることが
可能であるため、デバッグを最初からやり直す必要がな
くなり、デバッグにかける作業量を大幅に短縮すること
ができ、処理効率を向上できる効果がある。
ップ実行手段を有し、被デバッグプログラムの実行が目
的の場所よりも先に行き過ぎた場合に、逆に戻ることが
可能であるため、デバッグを最初からやり直す必要がな
くなり、デバッグにかける作業量を大幅に短縮すること
ができ、処理効率を向上できる効果がある。
【図1】本発明の一実施例の要部を示すブロック構成
図。
図。
【図2】その実行履歴バッファの形式例を示す説明図。
【図3】デバッグ手段が命令シミュレータである場合の
命令実行の処理内容を示すフローチャート。
命令実行の処理内容を示すフローチャート。
【図4】デバッグ手段が命令シミュレータ以外の場合の
命令実行の処理内容を示すフローチャート。
命令実行の処理内容を示すフローチャート。
【図5】逆ステップ実行の処理内容を示すフローチャー
ト。
ト。
【図6】本実施例の使用例を示す説明図。
10 被デバッグプログラム 10a 実行命令 20 デバッグ手段 21 バッファ書込み手段 22 実行履歴バッファ 23 逆ステップ実行手段 31、32 フィールド 33 ポインタ 34、35 コマンド実行 40 使用例 S1〜S3、S11〜S14、S21〜S23 ステッ
プ
プ
Claims (1)
- 【請求項1】 被デバッグプログラムを実行することで
プログラムのデバッグを行うデバッグ手段を備えたデバ
ッガシステムにおいて、 前記デバッグ手段は、前記被デバッグプログラムの実行
時にその実行を構成する1命令実行において変更した資
源の情報を実行履歴として退避しておく退避手段と、こ
の退避した実行履歴に基づき変更した資源を元に戻すこ
とにより逆方向への実行をシミュレートする逆ステップ
実行手段とを含むことを特徴とするデバッガシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3267952A JPH05108404A (ja) | 1991-10-16 | 1991-10-16 | デバツガシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3267952A JPH05108404A (ja) | 1991-10-16 | 1991-10-16 | デバツガシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05108404A true JPH05108404A (ja) | 1993-04-30 |
Family
ID=17451880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3267952A Pending JPH05108404A (ja) | 1991-10-16 | 1991-10-16 | デバツガシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05108404A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07191875A (ja) * | 1993-12-27 | 1995-07-28 | Nec Corp | デバッガー |
JPH08320813A (ja) * | 1995-05-26 | 1996-12-03 | Nec Corp | プログラムシミュレータ装置及びプログラムデバッグ方法 |
JP2007004400A (ja) * | 2005-06-22 | 2007-01-11 | Oki Data Corp | プログラム・デバッグ方法 |
-
1991
- 1991-10-16 JP JP3267952A patent/JPH05108404A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07191875A (ja) * | 1993-12-27 | 1995-07-28 | Nec Corp | デバッガー |
JPH08320813A (ja) * | 1995-05-26 | 1996-12-03 | Nec Corp | プログラムシミュレータ装置及びプログラムデバッグ方法 |
JP2007004400A (ja) * | 2005-06-22 | 2007-01-11 | Oki Data Corp | プログラム・デバッグ方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100248376B1 (ko) | 동적-비주얼 통합 병렬 디버깅 장치 및 디버깅 방법 | |
JP2749528B2 (ja) | エラー解析用のトレーサシステム | |
US5870607A (en) | Method and apparatus for selective replay of computer programs | |
US20080127113A1 (en) | Method and system for implementing watchpoints | |
JP2004164554A (ja) | プログラム実行監視装置および方法 | |
US7240334B1 (en) | Methods, systems, and computer program products for deferred computer program tracing | |
US6330691B1 (en) | Use of dynamic translation to provide breakpoints in non-writeable object code | |
US20070277165A1 (en) | Debugging Interpreted Input | |
JPH05108404A (ja) | デバツガシステム | |
JP2007034825A (ja) | デバッグ装置 | |
US8914274B1 (en) | Method and system for instruction set simulation with concurrent attachment of multiple debuggers | |
JP2002342113A (ja) | プログラム実行状況表示方法及びその実施装置並びにその処理プログラム | |
JPH0283749A (ja) | マイクロプロセッサの内部割込み制御方式 | |
JPH0561717A (ja) | プログラムデバツグ装置 | |
KR0175469B1 (ko) | 칠프로그램 변수의 가시성 제어방법 | |
JP2663895B2 (ja) | Cpuシミュレータ | |
JP2659366B2 (ja) | デバッグ方法及びその装置 | |
JPH0461380B2 (ja) | ||
JP2788353B2 (ja) | タスクトレース方法 | |
JP2002366378A (ja) | プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体 | |
JPH05250221A (ja) | シミュレータ実行方式 | |
JPH04328644A (ja) | デバッグ支援装置 | |
JP2001166966A (ja) | デバッガにおける被テストプログラムの実行環境管理方法 | |
JPH05108372A (ja) | コンパイラ最適化処理内容の出力方式 | |
JPS63259735A (ja) | プログラム実動作環境におけるプログラム図によるプログラムデバツク方式 |