JPH04184544A - ブレークポイント制御方式 - Google Patents

ブレークポイント制御方式

Info

Publication number
JPH04184544A
JPH04184544A JP2314601A JP31460190A JPH04184544A JP H04184544 A JPH04184544 A JP H04184544A JP 2314601 A JP2314601 A JP 2314601A JP 31460190 A JP31460190 A JP 31460190A JP H04184544 A JPH04184544 A JP H04184544A
Authority
JP
Japan
Prior art keywords
subroutine
program
rom
breakpoint
ram
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
JP2314601A
Other languages
English (en)
Inventor
Naomasa Shimojo
下條 直政
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2314601A priority Critical patent/JPH04184544A/ja
Publication of JPH04184544A publication Critical patent/JPH04184544A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 ROMから供給されるプログラムで制御されるマイクロ
コンピュータシステムにおいて障害発生時等に任意のア
ドレスにプークポイントを設定することか可能なブレー
クポイント制御方式に関し、ROMに組み込まれた簡易
なデバッガにより任意のアドレスにブレークポイントを
設定できるようにすることを目的とし、 ROM上に設けられサブルーチンテーブルに従って該R
OM上のサブルーチンから所要のサブルーチンを選択す
るように構成されたプログラムのデバッグにおいて、サ
ブルーチンテーブルとサブルーチンの編集領域とをRA
M上に設ける機能とサブルーチンテーブルを選択するス
イッチ機能とを該プログラムに設け、前記RAM上のサ
ブルーチンテーブルで前記−葉領域を指定できるように
し、ターゲットサブルーチンを前記ROM上から前記編
集領域にコピーして所望のブレークポイントを設定し、
前記スイッチ機能によって該RAM上のサブルーチンテ
ーブルを選択することによって、ブレークポイントが設
定された前記編集領域上のターゲットサブルーチンに到
達可能とした構成である。
〔産業上の利用分野〕
本発明は、ROMから供給されるプログラムで制御され
るマイクロコンピュータシステムにおいて障害発生時等
に任意のアドレスにブークポイントを設定することか可
能なブレークポイント制御方式に関する。
通信装置等の監視制御では、マイクロプロセッサかRO
Mから供給されるプログラム(ファームウェア)によっ
て制御されるようになっている。
このようなプログラムのデパックは、開発環境の整った
総合試験やシステム試験などにおいてはCPUエミュレ
ータによって行われている。しかし、十分な開発環境か
期待てきない現地(装置の設置場所)での障害に対して
は素早くデバッグを行うのは容易でない。そこで、プロ
グラム自身に付加機能として搭載されたリモートデバッ
ガを用いるか、プログラムか書替え不能なROM領域に
あるシステムにおいては、従来のデバッガでは任意のア
ドレスにブレークポイント設定することかできない。本
発明によれば、一般のサブルーチン単位でのプログラム
の開発時にブレークポイント設定機能を含むリモートデ
バッガを組込むことか可能となり、ROMシステムによ
ってファームウェアを提供しているあらゆる装置へ適用
することかできる。
〔従来の技術〕
マイクロコンピュータに処理を実行させるプログラムは
、一般にとんなに巨大であってもそれぞれ特定の目的を
実現する細分化された比較的小さいサブルーチンの集合
て構成されている場合か多い。従って、デバッグ時にブ
レークポイントを設定するときは、あるサブルーチン上
の一点に設定することになる。
従来のデバッガの実行制御において、特に任意アドレス
での実行の停止は、実行を停止させたいアドレス(ブレ
ークポイント)に格納されている命令を取り出して保存
し、その代わりに割込みを発生させる命令をブレークポ
イントに格納することで行っている。
このフローを簡単に示すと次のようになる。
■デバッガはコンソールからのコマンド入力待ちの状態
になっている。
■デバッガはコンソールから入力された実行制御コマン
ドおよびそのパラメータ(実行開始アドレス、ブレーク
ポイント)を受は取る。
■デバッガはデバッグ対象であるプログラムのブレーク
ポイントに格納されている命令を取り出して保存する。
■デバッガはプログラムのブレークポイントに割込みを
発生させる命令を格納する。
■デバッガからプログラムに実行か移り、実行開始アド
レスからプログラムか実行される。
■プログラムかブレークポイントまで実行されると割込
みか発生する。この割込み発生により、デバッガに実行
か移るように予め割込みベクタか登録されているのでデ
バッガに実行か戻る。デバッガは■て保存した命令をブ
レークポイントに戻す。
■デバッガはコンソールからの入力待ちの状態となる。
〔発明か解決しようとする課題〕
前述の従来技術によれば、デパック対象であるプログラ
ムのブレークポイントにある命令を書き換える必要かあ
る。このため、プログラムが書き換え可能なメモリ、即
ちRAM (random accessmemory
)上にある場合にしか適用てきないという問題があった
ところが伝送装置の制御プロセッサ等ではプログラム(
ファームウェア)は、通常、書き換えのできないメモリ
、即ちROM (read only memory)
上にあることか多く、ROM上ではブレークポイントの
命令を書き換えてきないため、任意のアドレスにおいて
プログラムの実行を停止できない。
このため、プログラムかROMから供給されるシステム
においては、プログラムにブレークポイントを設定した
い場合には、エミュレータをシステムに接続してデバッ
グを行うことになる。しかしこの方法には、エミュレー
タか高価であること、マイクロコンピュータとプリント
配線板か接着さているシステムには適用できないこと、
エミュレータのない現場での障害解析には即応できない
、等の問題かある。
このような理由から、稼働中の実際の装置以外にはデパ
ックのための特別の装置を必要としない簡易的なブレー
クポイント設定機能の実現が要求されていた。本発明は
書き換え不可能なROMシステムからプログラムを提供
されるシステムにおいて、ROMに組み込まれた簡易な
デバッガにより任意のアドレスにブレークポイントを設
定てきるようにすることを目的とする。
〔課題を解決するための手段〕
第1図は本発明のブレークポイント制御方式の原理図で
ある。上記課題は第1図に示す如く、ROMI上に設け
られサブルーチンテーブル11aに従って該ROM上の
サブルーチン10a、 10b、 10Cから所要のサ
ブルーチン10aを選択するように構成されたプログラ
ムのデバッグにおいて、サブルーチンテーブル11bと
サブルーチンの編集領域12とをRAM3上に設ける機
能とサブルーチンテーブルを選択するスイッチ機能13
とを該プログラムに設け、前記RAMa上のサブルーチ
ンテーブル11bで前記編集領域12を指定できるよう
にし、ターゲットサブルーチンIOaを前記ROM2上
から前記編集領域12にコピーして所望のブレークポイ
ントを設定し、前記スイッチ機能14によって該RAM
上のサブルーチンテーブル11bを選択することによっ
て、ブレークポイントが設定された前記編集領域12上
のターゲットサブルーチン10aに到達可能としたこと
を特徴とする本発明のブレークポイント制御方式により
解決される。
〔作用〕
第2図は本発明の処理フローを示す図である。
図において、デバッグ時には、S−1,S−2によりサ
ブルーチンテーブルとブレークポイントを設定しようと
するターゲットサブルーチンはRAM上にある。そして
、S−3によりサブルーチンテーブル内のターゲットサ
ブルーチンのアドレスに編集領域を示すアドレスを書込
み、S−4によりターゲットサブルーチンのブレークポ
イントアドレスにデバッガ循環ルーチン等へのジャンプ
命令を書込むブレークポイントの設定を行いスイッチ機
能をRAM上のサブルーチンテーブルか選択されるよう
に設定する。そしてS−5によりメインルーチンを起動
すると、S−6によりターゲットサブルーチンへの分岐
命令の実行時にスイッチ機能の設定に応じてRAM上の
サブルーチンテーブルか選択使用され、S−7により該
サブルーチンテーブルが指定する編集領域内のターゲッ
トサブルーチンヘジャンプする。そしてS−8によりタ
ーゲットサブルーチン内のブレークポイントアドレスで
、ブレークされてデバッガ循環ルーチンに分岐し、この
ブレークポイントでの内部状態が保存されるのでデバッ
ガ循環ルーチンでターゲットサブルーチンのデバッグが
可能となる。
〔実施例〕
第3図は、本発明のブレークポイント制御方式を用いた
デバッグ処理ルーチンを示す。図の処理フローを実行す
るためのプログラムは全てROMシステムからり提供さ
れる。
デバッガのプログラムも最初からROMに格納されてお
り、その機能としては、メモリのダンプ、ブロックコピ
ーを含むREAD、WRITE機能のみとし、コンソー
ルからコマンドに基づく割込みにより起動されるように
なっている。
図において、lはメインルーチン、10a、 10bは
サブルーチンである。
ブレークポイント設定機能を実現するために、下記の機
能(ソフトウェアデバイス)か予めプログラムに設けら
れている。
11a、11bはそれぞれROM上とRAM上に設けら
れたサブルーチンテーブルである。これは装置の状態や
発生要因に対応する特定の処理を系統的に行うために、
それぞれのサブルーチンの先頭番地を表形式で格納した
テーブルであり、例えば伝送装置の状態パラメータを行
側にまた発生要因を列側にとった各欄に、サブルーチン
ジャンプ命令とジャンプ先アドレスとが格納されており
、メインルーチンは状態と要因に対応したサブルーチン
に実行をわたすようになっている。(本実施例では、二
つのサブルーチンへのジャンプ命令を格納している)こ
のサブルーチンテーブルは従来はR○N1領域に11a
の如く固定的に設けられていたものを本発明ではさらに
そのコピー11bを初期化ルーチンでマイクロプログラ
ムによって自動的にRAM領域にも設定する。
12はRAM上に設けられたサブルーチン編集領域であ
り、コンソールからのコマンド及びパラメータ入力によ
って、ブレークポイントを設定しようとするサブルーチ
ン(以後ターゲットサブルーチンと称す)を、ROMか
らブロックコピーして格納するためのもので、この編集
領域上のサブルーチンに対して実際にブレークポイント
の設定やパッチ処置等を行う。
13はスイッチ機構であり、コンソールからのコマンド
で設定されるフラグでROMとRAMの両方に設けられ
たサブルーチンテーブル11a、 11bの一方を選択
する。このフラグかONのときはメインルーチンからサ
ブルーチンに分岐する際にRAM上のサブルーチンテー
ブルIlbか参照され、そのテーブルで指示されるアド
レスに分岐するようになっている。
14はデバッグ循環ルーチンであり、デバッガのみを動
作させるために用いられ、ブレークによる割込み時点で
処理はこのルーチンに移る。また系を元の系へ戻すため
の復帰スイッチ機構15を備えている。
復帰スイッチ機構15はコンソールからのコマンドで設
定されるフラグで、デバッグ循環ルーチンから元のプロ
グラムに復帰する際に用いる。このフラグがONされて
いるとRAMの編集領域上のブレークポイントアドレス
の命令コードを保存領域に退避させていた元のコードに
書き直してから、分岐前のアドレスに移りデバッガ循環
ルーチンから抜は出す。
これらのソフトデバイスは、従来のデバッガと同様にメ
インルーチン処理とは独立して動作する。
従ってこれらを付加することによって、(メイン)プロ
グラムの煩わしさ(復雑さ)か増大することはない。
次にこれらのソフトデバイスを用いてブレークポイント
を設定する手順を説明する。
通常処理のときはスイッチ機能はOFFとされるため、
プログラムカウンタかメインルーチン実行中にサブルー
チンに分岐するアドレスに達すると、(aj ROM上
のサブルーチンテーブル11aを選択し、(b)このテ
ーブルで指定されるアドレス1000にジャンプしてR
OM上のターゲットサブルーチン12aによって処理を
行い、(C)リターン命令でメインルーチンに戻るよう
になっており、全てROM上のプログラムによって処理
か実行される。
プログラムデバッグ時には、以下の手順でブレークポイ
ントか設定される。
■初期化ルーチンによって、ROM上のサブルーチンテ
ーブル11aと同しテーブル11bかRAM上に設定さ
れる。
■コンソールからの指定により、ブレークポイントの設
定対象となるターゲットサブルーチン10aをROMか
ら読出してRAM上のサブルーチン編集領域I2にブロ
ックコピーする。
■RAM上のサブルーチンテーブル11aにおけるター
ゲットサブルーチンへのジャンプ先アドレス1000を
サブルーチン編集領域の先頭アドレスAOOOに書き換
える。
■ブレークポイントを解除するときのために、ブレーク
ポイントアドレスA035と、ジャンプコマンドか上書
きされることによって消去される命令コー1”2B、3
4.F5とを保存領域I6に保存する。
■サブルーチン編集領域I2のターゲットサブルーチン
内において、ブレークポイントを設定したいアドレスA
035にデバッガ循環ルーチン14へのジャンプコマン
ドJSRBOOOを書き込む。
[有])ジャンプテーブルスイッチ13をROMテーブ
ル→RAMテーブルへONする。
この状態でメインルーチンを起動すると以下の動作によ
って、ブレークポイント処理状態へ移行する。
■まずメインルーチンを処理中のプログラムカウンタか
、ターゲットサブルーチンを含むサブルーチンテーブル
へ移る直前にジャンプテーブルの選択を行う。このとき
、ジャンプテーブルスイッチかRAMテーブルにONL
でいるので、RAM上のサブルーチンテーブル11bか
選択されプログラムカウンタはRAMテーブルへ移動す
る。
■RAM上のサブルーチンテーブルで選択されたターゲ
ットサブルーチンの格納場所には、先の書き換えによっ
てROM上のターゲットサブルーチンの先頭アドレスへ
のジャンプ命令JSR1000の代わりにサブルーチン
編集領域12の先頭アドレスへのジャンプ命令“JSR
AOOO”が書き込まれているので、プログラムカウン
タは更にそのアドレスA000ヘジャンプする。
■サブルーチン編集領域12にはターゲットサブルーチ
ンか書き込まれているので、プログラムカウンタはサブ
ルーチンのステップを順次移動し、ブレークポイントア
ドレスに到達する。
■ブレークポイントアドレスには、デバッグ循環ルーチ
ン14へのジャンプコマンドJSRBOOOが書かれて
いるので、プログラムカウンタはさらにデバッグ循環ル
ーチン14へ移動する。
デバッグ循環ルーチンは図に示すようにデバッグ処理だ
けのループ構造になっており、復帰スイッチ15をON
に設定しない限りプログラムカウンタはこのループを抜
は出せない。
この状態において、ターゲットサブルーチンの実行はブ
レークポイントアドレスて停止しており、RA Ni上
の変数領域の状態はその命令ステップにおける状態が保
存されている。そこでコンソールからのコマンドにより
デバッガ17を起動させて、メモリのチエツクや変更を
行うなどのデバッグを行うことができる。
なお、さらに汎用レジスタの値も保持したい場合には、
ブレーク直後に汎用レジスタの内容をスタックに退避す
るなどしてその内容を確認することもできる。
ブレーク前の状態に戻す場合には、復帰スイッチをON
することによって、デバッガ循環ループから分岐しても
とのターゲットサブルーチンの継続処理に移ることがで
きる。このときプログラムカウンタが元のメインルーチ
ンへ戻る様子を以下に示す。
■復帰スイッチがONされると、まず編集領域上のブレ
ークポイントアドレスに元の命令コードが復元される。
このとき■によって保存領域16に保存しておいたブレ
ークポイントアドレスと元の命令コードが用いられる。
■上記復元か終了すると、プログラムカウンタはブレー
クポイントに移動し、その後プログラムカウンタはRA
M上の編集領域内のターゲットサブルーチンブログムに
よってサブルーチンの処理を終了し0、リターン命令に
よってメインルーチンへリターンする。
プログラムカウンタが再びターゲットサブルーチンのジ
ャンプテーブルの選択を行うポイントに到達する。この
とき、スイッチ機能13かONされたままであれば、タ
ーゲットサブルーチンはRAMの編集領域内のデバッグ
済みのプログラムによって実行されるので、デバッグの
結果を確認することかてきる。
[有]またジャンプテーブルスイッチがROM側にON
されていると、今度はROM上のテーブルが選択されて
もとの処理経路(a)、 (b)、 (C)に戻る。
障害の原因を特定するのにブレークポイント機能は極め
て有効であるが、本発明ではこの機能をROMシステム
自身が付加機能として有するので大掛かりなデバッグ環
境を必要としない。またすブルーチン単位での編集が可
能であり、障害の原因追求のみならずパッチ当てなどの
プログラムの修正をオンラインで行うことかできる。
〔発明の効果〕
以上説明した如く、本発明によればROMから提供され
るプログラムによって制御されるマイクロコンピータシ
ステムにおいて、RAM領域にサブルーチンを移すこと
によってデバッガのみでプログラムの任意のアドレスに
ブレークポイントを設定したデバッグを行うことができ
るとともに、エミュレータが無いまたは存在しない場合
でもデバッグを行うことができるどういう効果かある。
【図面の簡単な説明】
第1図は、本発明のブレークポイント制御方式第2図は
、本発明の処理フローを示す図、第3図は、本発明のブ
レークポイント制御方式によりデバッグ処理ルーチン、 である。 図において、 1−メインルーチン、 2・−ROM、3−−RA M
Sloa、 10b、 10c  −サブルーチン11
a −R0M上のサブル ーチンテーブル、   11b −RAM上のサブルー
チンテーブル、   12−サブルーチンの編集領域、
         13−スイッチ機能、14−−デパ
ック循環ルーチン、 15−復帰スイッチ機能、16−保存領域、である。 18月のプレー7ポ4ント隼11魯plへ0原理口実 
1 口 ;F発明/)処理70−Σ示すl 泪 2 ロ

Claims (1)

  1. 【特許請求の範囲】 ROM(1)上に設けられサブルーチンテーブル(11
    a)に従って該ROM上のサブルーチン(10a、10
    b、10c)から所要のサブルーチン(10a)を選択
    するように構成されたプログラムのデバッグにおいて、 サブルーチンテーブル(11b)とサブルーチンの編集
    領域(12)とをRAM(3)上に設ける機能とサブル
    ーチンテーブルを選択するスイッチ機能(13)とを該
    プログラムに設け、前記RAM(3)上のサブルーチン
    テーブル(11b)で前記編集領域(12)を指定でき
    るようにし、ターゲットサブルーチン(10a)を前記
    ROM2上から前記編集領域(12)にコピーして所望
    のブレークポイントを設定し、前記スイッチ機能(13
    )によって該RAM上のサブルーチンテーブル(11b
    )を選択することによって、ブレークポイントが設定さ
    れた前記編集領域(12)上のターゲットサブルーチン
    (11a)に到達可能としたことを特徴とするブレーク
    ポイント制御方式。
JP2314601A 1990-11-20 1990-11-20 ブレークポイント制御方式 Pending JPH04184544A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2314601A JPH04184544A (ja) 1990-11-20 1990-11-20 ブレークポイント制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2314601A JPH04184544A (ja) 1990-11-20 1990-11-20 ブレークポイント制御方式

Publications (1)

Publication Number Publication Date
JPH04184544A true JPH04184544A (ja) 1992-07-01

Family

ID=18055263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2314601A Pending JPH04184544A (ja) 1990-11-20 1990-11-20 ブレークポイント制御方式

Country Status (1)

Country Link
JP (1) JPH04184544A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241728A (ja) * 2006-03-09 2007-09-20 Fuji Electric Fa Components & Systems Co Ltd コントローラ支援装置およびプログラマブルコントローラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241728A (ja) * 2006-03-09 2007-09-20 Fuji Electric Fa Components & Systems Co Ltd コントローラ支援装置およびプログラマブルコントローラ

Similar Documents

Publication Publication Date Title
US4796258A (en) Microprocessor system debug tool
JPH05505695A (ja) 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
JPH04184544A (ja) ブレークポイント制御方式
JP2001265620A (ja) Romのプログラムデバッグ方式
JPH0250228A (ja) デバッグ処理装置
KR950012113B1 (ko) 멀티 아키텍춰 환경내의 다중 코드 실행 및 디버깅 시스템에서 코드 인터페이스 자케팅에 특히 적합한 크로스-도메인 명령 호출 및 데이타 참조를 검출하기 위한 시스템 및 방법
JPH1049401A (ja) プログラムのデバッグ方法
JP3449812B2 (ja) 制御用電子装置
JP2659366B2 (ja) デバッグ方法及びその装置
JP2653411B2 (ja) ブレークポイント設定方法
JP2003044317A (ja) Romモニタ
JP2697230B2 (ja) デバッグ支援装置
JPH05233363A (ja) エミュレータのトレース装置
JPH1040131A (ja) プログラムデバッグ方法
JPS6214240A (ja) プログラム検査方式
JPH07253907A (ja) 自己デバッグ機能付き情報処理装置
JPH01232446A (ja) コンピュータのプログラム開発支援装置
JPH03209534A (ja) プログラム開発支援装置
JPH0588878A (ja) Lisp命令実行方式
JPH05241889A (ja) 機械語命令のステップ実行方式
JPH01286598A (ja) 交換プログラムデバッグ方式
JPH0675776A (ja) マイクロコンピュータ
JP2003263335A (ja) デバッグモニター
JPH04296943A (ja) 関数型言語のデバッグ方式
JPH10124339A (ja) デジタル制御装置