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
Application number
JP4214838A
Other languages
English (en)
Inventor
Hiroko Nozaki
裕子 野▲崎▼
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP4214838A priority Critical patent/JPH0659931A/ja
Publication of JPH0659931A publication Critical patent/JPH0659931A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】プログラムの不具合を迅速に発見する。 【構成】フェッチされた命令を解釈し、判断する命令解
釈手段と、フェッチされた命令が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からなる。
【0007】図2〜図5それぞれは命令解釈手段6、ス
タック保持手段7、スタック保持手段8およびスタック
比較手段9の実行フローチャートである。図6はスタッ
ク保持手段7,8によるスタック保持領域を表す。
【0008】ポット2は、ターゲットマシンのメロイ上
に展開されている被デバッグプログラムの命令をフェッ
チする。フェッチされた命令はシステムバス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)。
【0010】再び、命令解釈手段6が起動される。命令
解釈手段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)。
【0012】RAM5上の情報は、バス113、バス1
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. 【請求項1】 フェッチされた命令を解釈し判断する命
    令解釈手段と、フェッチされた命令がコール命令だった
    場合にスタックセグメント,スタックポインタ,実行ア
    ドレスおよびコール命令であるという情報をスタック保
    持領域に格納するコール命令スタック保持手段と、フェ
    ッチされた命令が戻り命令だった場合にスタックセグメ
    ント,スタックポインタ,実行アドレスおよび戻り命令
    であるという情報をスタック保持領域に格納する戻り命
    令スタック保持手段と、前記スタック保持領域に格納し
    た戻り命令と対応するコール命令のスタックセグメント
    およびスタックポイントが異っている時にこれらの情報
    をメモリに記憶させるスタック比較手段とを含むことを
    特徴とするデバッグ装置。
JP4214838A 1992-08-12 1992-08-12 デバッグ装置 Pending JPH0659931A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09179753A (ja) * 1995-12-26 1997-07-11 Nec Software Ltd リターン処理を契機とするスタック情報収集方式

Cited By (1)

* Cited by examiner, † Cited by third party
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