JPH0659931A - デバッグ装置 - Google Patents
デバッグ装置Info
- Publication number
- JPH0659931A JPH0659931A JP4214838A JP21483892A JPH0659931A JP H0659931 A JPH0659931 A JP H0659931A JP 4214838 A JP4214838 A JP 4214838A JP 21483892 A JP21483892 A JP 21483892A JP H0659931 A JPH0659931 A JP H0659931A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- instruction
- pointer
- segment
- call
- 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
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】プログラムの不具合を迅速に発見する。
【構成】フェッチされた命令を解釈し、判断する命令解
釈手段と、フェッチされた命令がCALLだった場合に
起動されるスタック保持(CALL)手段と、フェッチ
された命令がRETだった場合に起動されるスタック保
持(RET)手段と、スタック情報を比較するスタック
比較手段と、従来のデバッガで構成される。 【効果】スタック管理の誤りによるプログラムの暴走が
どこで発生しているかを迅速に見つけることができる。
釈手段と、フェッチされた命令がCALLだった場合に
起動されるスタック保持(CALL)手段と、フェッチ
された命令がRETだった場合に起動されるスタック保
持(RET)手段と、スタック情報を比較するスタック
比較手段と、従来のデバッガで構成される。 【効果】スタック管理の誤りによるプログラムの暴走が
どこで発生しているかを迅速に見つけることができる。
Description
【0001】
【産業上の利用分野】本発明は、デバッグ装置に関し、
特にスタックトレース機能付きデバッガに属する。
特にスタックトレース機能付きデバッガに属する。
【0002】
【従来の技術】従来、デバッグ装置のトレースメモリに
はスタック情報は残らなかった。
はスタック情報は残らなかった。
【0003】
【発明が解決しようとする課題】上述したデバッグ装置
では、プログラムが暴走しても、プログラムのどこで不
正なアドレスへ制御が移ってしまったのか見つけるため
には最初からプログラムを追っていく必要があり、手間
がかかるという問題点があった。
では、プログラムが暴走しても、プログラムのどこで不
正なアドレスへ制御が移ってしまったのか見つけるため
には最初からプログラムを追っていく必要があり、手間
がかかるという問題点があった。
【0004】
【課題を解決するための手段】本発明のデバッグ装置
は、フェッチされた命令を解釈し判断する命令解釈手段
と、フェッチされた命令がコール命令だった場合にスタ
ックセグメント,スタックポインタ,実行アドレスおよ
びコール命令であるという情報をスタック保持領域に格
納するコール命令スタック保持手段と、フェッチされた
命令が戻り命令だった場合にスタックセグメント,スタ
ックポインタ,実行アドレスおよび戻り命令であるとい
う情報をスタック保持領域に格納する戻り命令スタック
保持手段と、前記スタック保持領域に格納した戻り命令
と対応するコール命令のスタックセグメントおよびスタ
ックポイントが異っている時にこれらの情報をメモリに
記憶させるスタック比較手段とを有する。
は、フェッチされた命令を解釈し判断する命令解釈手段
と、フェッチされた命令がコール命令だった場合にスタ
ックセグメント,スタックポインタ,実行アドレスおよ
びコール命令であるという情報をスタック保持領域に格
納するコール命令スタック保持手段と、フェッチされた
命令が戻り命令だった場合にスタックセグメント,スタ
ックポインタ,実行アドレスおよび戻り命令であるとい
う情報をスタック保持領域に格納する戻り命令スタック
保持手段と、前記スタック保持領域に格納した戻り命令
と対応するコール命令のスタックセグメントおよびスタ
ックポイントが異っている時にこれらの情報をメモリに
記憶させるスタック比較手段とを有する。
【0005】
【実施例】次に、本発明について図面を参照して説明す
る。
る。
【0006】図1は、本発明の一実施例のブロック図で
ある。本実施例のデバッグ装置はCRT1、ターゲット
マシンのCPU部分に挿入されるポット2、VRAM
3、CPU4、RAM5、フェッチされた命令を解釈
し、判断する命令解釈手段6、フェッチされた命令がC
ALL(コール命令)だった場合に起動されるスタック
保持(CALL)手段7、フェッチされた命令がRET
(戻り命令)だった場合に起動されるスタック保持(R
ET)手段8、スタック情報を比較するスタック比較手
段9からなる。
ある。本実施例のデバッグ装置はCRT1、ターゲット
マシンのCPU部分に挿入されるポット2、VRAM
3、CPU4、RAM5、フェッチされた命令を解釈
し、判断する命令解釈手段6、フェッチされた命令がC
ALL(コール命令)だった場合に起動されるスタック
保持(CALL)手段7、フェッチされた命令がRET
(戻り命令)だった場合に起動されるスタック保持(R
ET)手段8、スタック情報を比較するスタック比較手
段9からなる。
【0007】図2〜図5それぞれは命令解釈手段6、ス
タック保持手段7、スタック保持手段8およびスタック
比較手段9の実行フローチャートである。図6はスタッ
ク保持手段7,8によるスタック保持領域を表す。
タック保持手段7、スタック保持手段8およびスタック
比較手段9の実行フローチャートである。図6はスタッ
ク保持手段7,8によるスタック保持領域を表す。
【0008】ポット2は、ターゲットマシンのメロイ上
に展開されている被デバッグプログラムの命令をフェッ
チする。フェッチされた命令はシステムバス101、1
11を通り、命令解釈手段6を起動する。命令解釈手段
6は、システムバス101、バス111から入手した命
令を解釈して(ステップ21)、その命令がCALLで
あるかどうかを判断する(ステップ22)。CALLで
あった場合は、スタック保持(CALL)手段7を起動
する(ステップ23)。
に展開されている被デバッグプログラムの命令をフェッ
チする。フェッチされた命令はシステムバス101、1
11を通り、命令解釈手段6を起動する。命令解釈手段
6は、システムバス101、バス111から入手した命
令を解釈して(ステップ21)、その命令がCALLで
あるかどうかを判断する(ステップ22)。CALLで
あった場合は、スタック保持(CALL)手段7を起動
する(ステップ23)。
【0009】スタック保持(CALL)手段7は、次の
命令をフェッチし(ステップ31)、バス111、シス
テムバス101を経由して、ターゲットマシンのスタッ
クセグメントとスタックポインタ、実行アドレスを入手
する(ステップ33)。入手したスタックセグメントと
スタックポインタ、実行アドレス、CALLであるとい
う情報は、あらかじめ確保している図6に示すスタック
保持領域に格納する(ステップ34)。図6においてS
Sはスタックセグメント、SPはスタックポインタ、C
Sはコードセグメント、IPはインストラクションポイ
ンターを示す。パイプライン付きのCPUの場合、命令
のフェッチと実行がずれているため、予めずれる命令数
分カウンタ値を持ち、スタックセグメントとスタックポ
インタの入手を調節する(ステップ32、41)。
命令をフェッチし(ステップ31)、バス111、シス
テムバス101を経由して、ターゲットマシンのスタッ
クセグメントとスタックポインタ、実行アドレスを入手
する(ステップ33)。入手したスタックセグメントと
スタックポインタ、実行アドレス、CALLであるとい
う情報は、あらかじめ確保している図6に示すスタック
保持領域に格納する(ステップ34)。図6においてS
Sはスタックセグメント、SPはスタックポインタ、C
Sはコードセグメント、IPはインストラクションポイ
ンターを示す。パイプライン付きのCPUの場合、命令
のフェッチと実行がずれているため、予めずれる命令数
分カウンタ値を持ち、スタックセグメントとスタックポ
インタの入手を調節する(ステップ32、41)。
【0010】再び、命令解釈手段6が起動される。命令
解釈手段6は、システムバス101、バス111から入
手した命令を解釈して(ステップ32)、その命令がR
ETであるかどうかを判断する(ステップ24)。RE
Tであった場合は、スタック保持(RET)手段8を起
動する(ステップ25)。スタック保持(RET)手段
8は、バス111、システムバス101を経由して、タ
ーゲットマシンのスタックセグメントとスタックポイン
タ、実行アドレスを入手する(ステップ42)。入手し
たスタックセグメントとスタックポインタ、実行アドレ
ス、RETであるという情報はあらかじめ確保している
スタック保持領域に格納する(ステップ43)。パイプ
ライン付きのCPUの場合、命令のフェッチと実行がず
れているため、予めずれる命令数分カウンタ値を持ち、
スタックセグメントとスタックポインタの入手を調節す
る(ステップ32、41)。
解釈手段6は、システムバス101、バス111から入
手した命令を解釈して(ステップ32)、その命令がR
ETであるかどうかを判断する(ステップ24)。RE
Tであった場合は、スタック保持(RET)手段8を起
動する(ステップ25)。スタック保持(RET)手段
8は、バス111、システムバス101を経由して、タ
ーゲットマシンのスタックセグメントとスタックポイン
タ、実行アドレスを入手する(ステップ42)。入手し
たスタックセグメントとスタックポインタ、実行アドレ
ス、RETであるという情報はあらかじめ確保している
スタック保持領域に格納する(ステップ43)。パイプ
ライン付きのCPUの場合、命令のフェッチと実行がず
れているため、予めずれる命令数分カウンタ値を持ち、
スタックセグメントとスタックポインタの入手を調節す
る(ステップ32、41)。
【0011】スタック保持(RET)手段8が終了して
命令解釈手段6も終了すると、スタック比較手段9が起
動される。図6は、CALLが3回続いた後にRETさ
れた状態のスタック保持領域を表しており、ポインタは
最後に入ったRETを指している。スタック比較手段9
は、ポインタとポインター1(ポインタの指している情
報の1つ前の情報)の指しているスタックセグメントを
比較する(ステップ51)。同じであれば、次はポイン
タとポインター1の指しているスタックポインタを比較
する(ステップ52)。どちらか一方でも違っていた場
合は、スタック保持領域に格納しているポインタとポイ
ンター1の指している情報をバス112を経由して、全
てRAM5にコピーする(ステップ53)。次にRET
を入手した場合はポインタを2つ戻す(ステップ5
4)。
命令解釈手段6も終了すると、スタック比較手段9が起
動される。図6は、CALLが3回続いた後にRETさ
れた状態のスタック保持領域を表しており、ポインタは
最後に入ったRETを指している。スタック比較手段9
は、ポインタとポインター1(ポインタの指している情
報の1つ前の情報)の指しているスタックセグメントを
比較する(ステップ51)。同じであれば、次はポイン
タとポインター1の指しているスタックポインタを比較
する(ステップ52)。どちらか一方でも違っていた場
合は、スタック保持領域に格納しているポインタとポイ
ンター1の指している情報をバス112を経由して、全
てRAM5にコピーする(ステップ53)。次にRET
を入手した場合はポインタを2つ戻す(ステップ5
4)。
【0012】RAM5上の情報は、バス113、バス1
14を経由してVRAM3に展開され、CRT1に表示
される。
14を経由してVRAM3に展開され、CRT1に表示
される。
【0013】
【発明の効果】以上説明したように本発明は、従来のデ
バッガにスタックトレース機能を付けることにより、プ
ログラムのデバッグ時にスタック管理の不正による不具
合を、早期に発見できる。
バッガにスタックトレース機能を付けることにより、プ
ログラムのデバッグ時にスタック管理の不正による不具
合を、早期に発見できる。
【図1】本発明の一実施例のブロック図である。
【図2】図1中の命令解釈手段6のフローチャートであ
る。
る。
【図3】図1中のスタック保持(CALL)手段7のフ
ローチャートである。
ローチャートである。
【図4】図1中のスタック保持(RET)手段8の詳細
フローチャートである。
フローチャートである。
【図5】図1中のスタック比較手段9のフローチャート
である。
である。
【図6】図1中のスタック保持手段7、8によるスタッ
ク保持領域の構造を示す図である。
ク保持領域の構造を示す図である。
1 CRT 2 ポット 3 VRAM 4 CPU 5 RAM 6 命令解釈手段 7 スタック保持手段 8 スタック保持手段 9 スタック比較手段 101 システムバス 111〜114 バス
Claims (1)
- 【請求項1】 フェッチされた命令を解釈し判断する命
令解釈手段と、フェッチされた命令がコール命令だった
場合にスタックセグメント,スタックポインタ,実行ア
ドレスおよびコール命令であるという情報をスタック保
持領域に格納するコール命令スタック保持手段と、フェ
ッチされた命令が戻り命令だった場合にスタックセグメ
ント,スタックポインタ,実行アドレスおよび戻り命令
であるという情報をスタック保持領域に格納する戻り命
令スタック保持手段と、前記スタック保持領域に格納し
た戻り命令と対応するコール命令のスタックセグメント
およびスタックポイントが異っている時にこれらの情報
をメモリに記憶させるスタック比較手段とを含むことを
特徴とするデバッグ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4214838A JPH0659931A (ja) | 1992-08-12 | 1992-08-12 | デバッグ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4214838A JPH0659931A (ja) | 1992-08-12 | 1992-08-12 | デバッグ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0659931A true JPH0659931A (ja) | 1994-03-04 |
Family
ID=16662380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4214838A Pending JPH0659931A (ja) | 1992-08-12 | 1992-08-12 | デバッグ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0659931A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09179753A (ja) * | 1995-12-26 | 1997-07-11 | Nec Software Ltd | リターン処理を契機とするスタック情報収集方式 |
-
1992
- 1992-08-12 JP JP4214838A patent/JPH0659931A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09179753A (ja) * | 1995-12-26 | 1997-07-11 | Nec Software Ltd | リターン処理を契機とするスタック情報収集方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6915416B2 (en) | Apparatus and method for microcontroller debugging | |
JPS6226732B2 (ja) | ||
JPH0659931A (ja) | デバッグ装置 | |
JP2653412B2 (ja) | ブレークポイント設定方法 | |
JPH0465729A (ja) | シンボリック・デバッガ | |
JPS60124746A (ja) | デ−タ処理装置 | |
JPH02220145A (ja) | プログラムトレース方式 | |
JP2800577B2 (ja) | デバッグ装置 | |
JP3012618B1 (ja) | 被検査プログラムのデバグ方法とそのデバグ方式 | |
JPS59183443A (ja) | デバツグ装置 | |
JPH0772874B2 (ja) | 割込み受取り装置 | |
JPS61235955A (ja) | プログラムのデバツグ方式 | |
JP2684966B2 (ja) | 入出力処理装置のデバッグ装置 | |
JP2704117B2 (ja) | シミュレータ | |
JPH11167500A (ja) | エミュレータ装置のイベント回路及びデバッグシステム | |
JPH0398132A (ja) | デバグ方式 | |
JPH0231240A (ja) | コプロセッサ故障時の処理方式 | |
JPH05108402A (ja) | デバツグ装置 | |
JPH0354645A (ja) | プログラム実行時間測定装置 | |
JPH02113345A (ja) | 擬障発生方式 | |
JPH0520121A (ja) | デバツガ実行時情報の自動チエツク方式 | |
JPS6140648A (ja) | ブレ−クポイント設定装置 | |
JPS6282439A (ja) | 擬似障害発生方式 | |
JPH02242443A (ja) | 情報処理装置のデバッグ機構 | |
JPH01184551A (ja) | プログラムのデバッギング方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19980519 |