JPS638946A - プログラムデバツグサポ−ト方式 - Google Patents

プログラムデバツグサポ−ト方式

Info

Publication number
JPS638946A
JPS638946A JP61153445A JP15344586A JPS638946A JP S638946 A JPS638946 A JP S638946A JP 61153445 A JP61153445 A JP 61153445A JP 15344586 A JP15344586 A JP 15344586A JP S638946 A JPS638946 A JP S638946A
Authority
JP
Japan
Prior art keywords
breakpoint
task
address
instruction
interrupt
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
JP61153445A
Other languages
English (en)
Inventor
Yukiko Yamazaki
由紀子 山崎
Koichi Nakamoto
幸一 中本
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 JP61153445A priority Critical patent/JPS638946A/ja
Publication of JPS638946A publication Critical patent/JPS638946A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はプログラムデバッグサポート方式に関し、特に
複数のタスクを並行して処理する多重タスク実行処理を
行なう計算機システムにおいて、プログラムの命令コー
ド部を他のタスクと共有するようなタスクに関連してデ
バッグを行なうのに適したプログラムデバッグサポート
方式に関する。
〔従来の技術〕
計算機システムで動作するプログラムをデバッグする場
合、被デバツグプログラムの実行をブレークポイントと
呼ばれる箇所で中断してそのプログラムの内部状態を調
べ確認する方法が採用されている。
従来、プログラムに上記ブレークポイントを設定する方
式としては、計算機システムの外部から接続したデバッ
グモニタ装置を使用する方式と、計算機システム内で動
作するデバッグサポートプログラムを使用する方式とが
知られている。
前者の方゛式は、計算機システムのアドレスバスに外部
からデバッグモニタ装置を接続し、このデバッグモニタ
装置において、アドレスバスに現れる命令フヱッチアド
レスと自身に設定されたブレークポイントアドレスとを
比較し、一致した時にデバッグモニタ装置から計算機シ
ステムに割込みをかけてプログラムを停止させ、その旨
を出力装置に表示するものである。
他方、後者の方式は、計算機システム内のデバッグサポ
ートプログラムが、1プログラムに対応して存在するテ
ーブルに、被デバツグプログラムのブレークポイントア
ドレスに格納された命令コードを退避し、その代わりに
その箇所に内部割込み命令を挿入し、その後プログラム
を実行させ、プログラムの実行がブレークポイントアド
レスに達することによりその内部割込み命令により内部
割込みを発生させてプログラムを停止させ、その旨を出
力装置に表示するものである。
〔発明が解決しようとする問題点〕
ところで上述した従来の方式では、プログラムの命令コ
ード部を複数のタスクで共有する多重タスク処理の下に
おいて、その命令コード部のアドレスをブレークポイン
トアドレスとした場合、その命令コード部を共有するタ
スクの実行毎にそのタスクの実行が中断された旨が出力
装置に表示されることになる。この為、操作者は、中断
されたタスクがデバッグ対象の所望のタスクであるか否
かをタスクの実行中断が表示される毎に調べ、デバッグ
対象タスクであることを確認した後でなければデバッグ
処理を実施することができず、デバッグ時の作業能率が
悪いという欠点があった。
本発明はこのような従来の欠点を解決したもので、その
目的は、プログラムの命令コード部を複数のタスクで共
有する多重タスク処理が行なわれており、その共有する
命令コード部をブレークポイントに設定しても、予め指
定したタスクの実行の中断時にのみその旨を操作者に通
知し得るよう〔問題点を解決するための手段〕 本発明は上記目的を達成するために、複数のタスクを並
行して処理する計算機システムにおいて、ブレークポイ
ントアドレス設定エリアと該エリアにそれぞれ対応する
命令コード退避エリア及びタスク識別情報設定エリアと
を含み、各プログラムに対応して設けられたブレークポ
イント管理領域と、 タスク識別情報とブレークポイントアドレスとを含むブ
レークポイント設定コマンドの入力に応答して、該コマ
ンド中のブレークポイントアドレスを含むプログラムに
対応した前記ブレークポイント管理領域におけるブレー
クポイントアドレス設定エリアとタスク識別情報設定エ
リアとに前記入力されたブレークポイントアドレスとタ
スク識別情報とを設定し、且つ、該ブレークポイントア
ドレスが指示するプログラムの命令コードを前記命令コ
ード退避エリアに退避すると共に該命令コードの元の位
置に内部割込み命令を挿入するブレ前記挿入された内部
割込み命令による内部割込みがあったとき、鎖割込みに
よって中断されたタスクについて前記ブレークポイント
管理領域にブレークポイントアドレスが設定されており
且つそのブレークポイントアドレスと前記割込みがかか
ったアドレスとが一致するという条件の成否を判別する
判別手段と、 該判別手段によって前記条件が成立したと判別されたと
きはタスクの実行が中断された旨を出力装置に表示し、
前記条件が成立しないと判別されたときは、前記割込み
がかかったブレークポイントアドレスにある内部割込み
命令を該ブレークポイントアドレスと対応して前記ブレ
ークポイント管理領域に退避された命令コードで置換し
、再度該ブレークポイントアドレスからタスクの実行を
再開させ、該ブレークポイントアドレスの命令コントロ
ール実行後に再び該命令コードの退避と内部割込み命令
の挿入とを行なうブレーク処理手段とを備える。
〔作用〕
デバッグの為に中断したいタスクのタスク識別情報とブ
レークポイントアドレスとを含むブレークポイント設定
コマンドが入力されると、ブレークポイント設定手段に
より、そのコマンド中のブレークポイントアドレスを含
むプログラムに対応したブレークポイント管理領域にお
けるブレークポイントアドレス設定エリアとタスク識別
情報設定エリアとにその入力されたブレークポイントア
ドレスとタスク識別情報とが設定され、且つそのブレー
クポイントアドレスが指示するプログラムの命令コード
が命令コード退避エリアに退避されると共に、その命令
コードの元の位置に内部割込み命令が挿入される。
上記ブレークポイントを設定したタスクが走行し、その
ブレークポイントアドレスに達すると、内部割込み命令
によって内部割込みが発生し、判別手段によって、割込
みで中断されたタスクについてブレークポイント管理領
域にブレークポイントアドレスが設定されており且つそ
のブレークポイントアドレスとその割込みがかかった時
点のアドレスとが一致するという条件の成否つまりブレ
ークポイントで本当にブレークしたいタスクであるか否
かが判別され、その条件が成立したときには出力装置に
その旨が表示される。他方、判別手段で上記条件が成立
しないと判別されたときは、割込みがかけられたタスク
はブレークポイント設定コマンドでブレークポイントが
設定されたタスクではないことから、ブレーク処理手段
によって、割込みがかかりた時点のブレークポイントア
ドレスにある内部割込み命令がそのブレークポイントア
ドレスと対応してブレークポイント管理領域に退避され
た命令コードで復旧され、再度そのブレークポイントア
ドレスからタスクの実行が再開させられ、そのブレーク
ポイントアドレスの命令コード実行後に再びその命令コ
ードの退避と内部割込み命令の挿入とが行なわれる。
〔実施例〕
次に本発明の実施例について図面を参照して説明する。
第1図は本発明のプログラムデバッグサポート方式を実
施する計算機システムの一実施例のブロック図であり、
中央処理装置5と、主記憶装置1と、端末装置4とで構
成されている。
主記憶装置1には、一般プログラム占有メモリ空間2と
、オペレーティング・システム占有メモリ空間3とがあ
り、一般プログラム占有メモリ空間2には、この空間2
で走行するタスクのプログラム21.〜21.が含まれ
ている。また、オペレーティング・システム占有メモリ
空間3には、プログラム2L 〜21.対応のエントリ
311〜31いを有するブレークポイント管理テーブル
31と、ブレークポイント管理テーブル31を管理する
モジエール32と、ブレークポイントアドレスで発生す
る内部割込みに対応する割込み処理を行なう割込み処理
モジュール33と、実行中あるいは中断中のタスクの識
別情報を格納するタスクコントロールブロック34とが
含められている。
第2図はブレークポイント管理テーブル31における一
つのプログラムに対応するエントリの構成例を示す、ブ
レークポイント管理テーブル31の各エントリ311〜
317は、ブレークポイントアドレスを設定する為のエ
リアBKADR(BKADRI〜BKADR,)と、各
エリアBKADR,−BにADR,に設定されたブレー
クポイントアドレスに存在する命令コードを退避する為
のエリア5VCODE(SVCODEI 〜5VCOD
E、 )と、エリアBKADRI〜BKADR,に設定
されたブレークポイントアドレスで実際にブレークした
いタスクの識別情報たとえばタスク番号を設定する為の
エリアTSKN(TSKN、〜TSKN、 )  とで
構成されている。
次に本実施例の動作について、モジュール32で実行さ
れるブレークポイント設定処理例の流れを示す第3図、
モジュール32で実行されるブレークポイント解除処理
例の流れを示す第4図、および内部割込みが発生したと
きの処理例を示す第5図等を参照しながら以下説明する
[ブレークポイント設定処理] ブレークポイント設定時には、端末装置4から、アーギ
ュメントとしてブレークポイントを設定する対象タスク
のタスク識別子とブレークポイントアドレスとを持つブ
レークポイント設定コマン;!を入力する。このブレー
クポイント設定コマンドが与えられると、中央処理装置
5はモジュール32の第3図に示した処理を開始する。
即ち、先ずそのブレークポイント設定コマンド中に含ま
れたブレークポイントアドレスから必要なブレークポイ
ント管理テーブル31のエントリを求め、そのエントリ
中に指定されたタスク識別子を持つタスクに対応して指
定されたブレークポイントアドレスと同一のアドレスに
ブレークポイントが設定されているか否かを判断しく3
00) 、設定されていなければ、そのエントリにおけ
るエリアBKADRI〜BKADR。
のうちの空きエリアに指定されたブレークポイントアド
レスを、これと対応するエリア5VCODE + 〜5
vcooE、にそのブレークポイントアドレスから退避
させてきた命令コードを、また対応するエリアTSKN
、〜TSKN、に指定されたタスク番号をそれぞれ登録
しく301) 、指定されたブレークポイントアドレス
の内容に内部割込み命令を設定する(302)。
[ブレークポイント解除処理] ブレークポイント解除時には、端末装置4から、アーギ
ュメントとしてブレークポイントを解除する対象タスク
のタスク識別子と解除すべきブレークポイントアドレス
とを持つブレークポイント解除コマンドを入力する。こ
のブレークポイント解除コマンドが与えられると、中央
処理装置5はモジュール32の第4図に示した処理を開
始する。即ち、そのブレークポイント設定コマンド中に
含まれたブレークポイントアドレスから必要なブレーク
ポイント管理テーブル31のエントリを求め、そのエン
トリ中に指定されたタスク識別子を持つタスクに対応し
て指定されたブレークポイントアドレスと同一のアドレ
スにブレークポイントが設定されているか否かを判断し
く400) 、設定されていれば、指定されたブレーク
ポイントアドレスに対応して退避された命令コードによ
ってそのブレークポイントアドレスの内容を復旧しく4
01) 、次いでそのエントリにおける指定されたブレ
ークポイントアドレスを削除する(402)。
[内部割込み発生時の処理] 今、第1図において、あるプログラムたとえばプログラ
ム211における命令コード部210を共有する二つの
タスクTI、T2が存在するとし、プロクラム211に
対応するブレークポイント管理テーブル31のエントリ
31+には、タスクT1に関し前述したブレークポイン
ト設定処理によって、命令コード部210のアドレスが
ブレークポイントアドレスとして登録されており、その
エントリ31゜にはタスクT2に関するブレークポイン
トは一つも登録されていないとする。このような状態に
おいて、タスクTl、 タスクT2がそれぞれその命令
コード部210を実行したときの動作は次のようになる
■タスクT1の実行時 中央処理装置5がタスクT1を実行しており、その実行
の制御がブレークポイント管理テーブル31のエントリ
31.に登録されたブレークポイントアドレス−(命令
コード部210のアドレス)に達すると、そのアドレス
の命令コードは内部割込み命令に置換されているので、
内部割込みが発生し、割込み処理モジュール33によっ
て第5図の処理が開始される。
割込み処理モジュール33では、先ず最初の処理500
によって、この割込みがかけられたタスクが予めブレー
クポイントの設定された該当タスクであるか否かが判別
される。この判別は、割込みによって中断されたタスク
のタスク番号(これは例えばタスクコントロールブロッ
ク34の内容から識別される)が、割込みのかかったプ
ログラムに対応するブレークポイント管理テーブルのエ
ントリ中に存在し、且つ、割込みがかかったアドレスと
同一のアドレスがそのタスク番号に対応したブレークポ
イントアドレスとして登録されていれば、その割込みの
かけられたタスクは該当タスクであると判定し、そうで
なければそのブレークポイントの命令コードを共有する
他のタスクであると判定することで行なうことができる
さて、タスクT1には前述したように命令コード部21
0のアドレスをブレークポイントアドレスとするような
ブレークポイントが設定されているので、前記処理50
0の次の判別処理501では該当タスクと判定され、従
来方式で行なわれていたようなブレーク処理すなわタス
クが中断した旨の端末装置4への表示が行なわれること
になる。
■タスクT2の実行時 中央処理装置5がタスクT2を実行しており、その実行
の制御がブレークポイント管理テーブル31のエントリ
31+ に登録されたブレークポイントアドレス(命令
コード部210のアドレス)に達すると、前述と同様に
して内部割込みが発生し、割込み処理モジュール33に
よって第5図の処理が開始される。このとき割込み処理
モジュール33では、先ず最初の処理500によって、
この割込みがかけられたタスクT2が予めブレークポイ
ントの設定された該当タスクであるか否かを判断するが
(500)、今の場合、割込みによって中断されたタス
クT2のタスク番号が、割込みのかかったプログラムに
対応するブレークポイント管理テーブル31のエントリ
31.中に存在しないことから、その割込みのかけられ
たタスクT2は該当タスクでないと判別され(501)
 、処理502〜処理506を実行することになる。
処理502〜処理506は、割込みがかかった時点のブ
レークポイントアドレスにある内部割込み命令をそのブ
レークポイントアドレスと対応してブレークポイント管
理テーブル31のエントリ31.に退避された命令コー
ドで復旧し、再度そのブレークポイントアドレスからタ
スクの実行を再開させ、そのブレークポイントアドレス
の命令コードの実行後に再びその命令コードの退避と内
部割込み命令の挿入を行なう処理である。本実施例では
、その処理は、割込みがかかったアドレスである今回の
ブレークポイントアドレスに対応してエントリ31、に
退避しである命令コードをそのブレークポイントアドレ
スに挿入された内部割込み命令に書換えることによって
命令コード部210を復旧する処理502と、中央処理
装置5のプログラムカウンタをそのブレークポイントア
ドレスに戻してシングルステップを実行させる処理50
3と、中央処理装置5の実行状態をシングルステップ実
行状態に移行させる処理504と、シングルステップ実
行の際発生するシングルステップ割込みを捕捉した割込
み処理ルーチンにおいてブレークポイントアドレスに再
び内部割込み命令を挿入する処理505と、シングルス
テップ実行状態を解除し割込み処理ルーチンから復帰さ
せてタスクの実行をm続させる処理506とで構成され
ている。
以上のような処理により、命令コード部を共有するタス
クT1.T2のうちデバッ゛グしたいタスクT1がその
命令コード部を実行した時点で中断表示を出力装置であ
る端末装置4に出力することができ、従って、従来の如
く中断表示毎に中断したタスクがデバッグ対象タスクで
あるか否かを確認する必要がな(なる。なお、本発明は
命令コード部を他のタスクと共有しないタスクに対して
も適用し得ることは勿論のことである。
〔発明の効果〕
以上説明したように、本発明のプログラムデバッグサポ
ート方式によれば、ブレークポイント設定コマンドが与
えられたとき、ブレークポイント設定手段によってその
中のブレークポイントアドレスに対応するプログラムの
命令コマンドが内部割込み命令に置換されるので、目的
とするタスクのみならずその命令コードを共有する他の
タスクの実行制御がそのブレークポイントアドレスに達
したときでも内部割込みが発生する。しかし、ブレーク
ポイントアドレスと対にしてそのブレークポイントでブ
レークしたいタスクの識別情報がブレークポイント設定
手段によってそのブレークポイント管理領域に設定され
ており、判別手段はそのような設定情報に基づいて、上
記内部割込みがかかったときに中断されたタスクが目的
とするタスクであるか否かを判別し、目的とするタスク
でないときは、ブレーク処理手段によって、割込みがか
かった時点のブレークポイントアドレスの内容がブレー
クポイント管理領域に退避された命令コードで復旧され
て再度そのブレークポイントアドレスからタスクの実行
が再開させられ、且つ、次にそのブレークポイントアド
レスを実行するタスクを中断させる為に再び命令コード
の退避と内部割込み命令の挿入とが行なわれるので、出
力装置には中断表示は為されない、他方、目的とするタ
スクであると判別されると、そのタスクの実行が中断さ
れた旨の表示が出力装置に行なわれる。
このように、他のタスクと共有する命令コード部をブレ
ークポイントに設定しても、予め指定したタスクの実行
の中断時にのみその旨が操作者に通知されるので、従来
のようにブレークポイントで実行の中断表示が為される
度に、中断したタスクが目的のタスクか否かを操作者が
判断する必要がなくなり、デバッグ作業の能率を向上す
ることができる。このため、従来のデバッグサポート方
式に比べてソフトウェアの生産性を大幅に向上すること
ができる効果がある。
【図面の簡単な説明】
第1図は本発明のプログラムデバッグサポート方式を実
施する計算機システムの一実施例のブロック図、 第2図はブレークポイント管理テーブルの内容説明図、 第3図はブレークポイント設定処理の一例を示す流れ図
、 第4図はブレークポイント解除処理の一例を示す流れ図
および、 第5図はブレークポイントアドレスに挿入された内部割
込み命令による割込み時に行なわれる処理例の流れ図で
ある。 図において、1・・・主記憶装置、2・・・一般プログ
ラム占有メモリ空間、3・・・オペレーティング・シス
テム占有メモリ空間、4・・・端末装置、5・・・中央
処理装置、21.〜217・・・プログラム、210・
・・命令コード部、31・・・ブレークポイント管理テ
ーブル、31、〜31.l・・・ブレークポイント管理
テーブル31の各エントリ、32・・・ブレークポイン
ト管理テーブル31を管理するモジュール、33・・・
割込み処理モジュール、34・・・タスクコントロール
ブロック。

Claims (1)

  1. 【特許請求の範囲】 複数のタスクを並行して処理する計算機システムにおい
    て、 ブレークポイントアドレス設定エリアと該エリアにそれ
    ぞれ対応する命令コード退避エリア及びタスク識別情報
    設定エリアとを含み、各プログラムに対応して設けられ
    たブレークポイント管理領域と、 タスク識別情報とブレークポイントアドレスとを含むブ
    レークポイント設定コマンドの入力に応答して、該コマ
    ンド中のブレークポイントアドレスを含むプログラムに
    対応した前記ブレークポイント管理領域におけるブレー
    クポイントアドレス設定エリアとタスク識別情報設定エ
    リアとに前記入力されたブレークポイントアドレスとタ
    スク識別情報とを設定し、且つ、該ブレークポイントア
    ドレスが指示するプログラムの命令コードを前記命令コ
    ード退避エリアに退避すると共に該命令コードの元の位
    置に内部割込み命令を挿入するブレークポイント設定手
    段と、 前記挿入された内部割込み命令による内部割込みがあっ
    たとき、該割込みによって中断されたタスクについて前
    記ブレークポイント管理領域にブレークポイントアドレ
    スが設定されており且つそのブレークポイントアドレス
    と前記割込みがかかったアドレスとが一致するという条
    件の成否を判別する判別手段と、 該判別手段によって前記条件が成立したと判別されたと
    きはタスクの実行が中断された旨を出力装置に表示し、
    前記条件が成立しないと判別されたときは、前記割込み
    がかかったブレークポイントアドレスにある内部割込み
    命令を該ブレークポイントアドレスと対応して前記ブレ
    ークポイント管理領域に退避された命令コードで置換し
    、再度該ブレークポイントアドレスからタスクの実行を
    再開させ、該ブレークポイントアドレスの命令コントロ
    ール実行後に再び該命令コードの退避と内部割込み命令
    の挿入とを行なうブレーク処理手段とを具備したことを
    特徴とするプログラムデバッグサポート方式。
JP61153445A 1986-06-30 1986-06-30 プログラムデバツグサポ−ト方式 Pending JPS638946A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61153445A JPS638946A (ja) 1986-06-30 1986-06-30 プログラムデバツグサポ−ト方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61153445A JPS638946A (ja) 1986-06-30 1986-06-30 プログラムデバツグサポ−ト方式

Publications (1)

Publication Number Publication Date
JPS638946A true JPS638946A (ja) 1988-01-14

Family

ID=15562702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61153445A Pending JPS638946A (ja) 1986-06-30 1986-06-30 プログラムデバツグサポ−ト方式

Country Status (1)

Country Link
JP (1) JPS638946A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03188537A (ja) * 1989-12-18 1991-08-16 Fujitsu Ltd 命令が共用される文の中断通知装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03188537A (ja) * 1989-12-18 1991-08-16 Fujitsu Ltd 命令が共用される文の中断通知装置

Similar Documents

Publication Publication Date Title
JPS638946A (ja) プログラムデバツグサポ−ト方式
JPH0581070A (ja) プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法
JP3339708B2 (ja) イベント記録方式
JP2653412B2 (ja) ブレークポイント設定方法
JPH03113648A (ja) プログラムデバツグ方式
JPS638947A (ja) プログラムデバツグサポ−ト方式
JP2800577B2 (ja) デバッグ装置
JPH02118733A (ja) タスクの実行制御方式
JP2653411B2 (ja) ブレークポイント設定方法
JPS61180344A (ja) 高級言語のステツプ実行システム
JPH03105503A (ja) プログラマブルコントローラ
JPH0465729A (ja) シンボリック・デバッガ
JPH01147640A (ja) マルチプログラミング・デバッグ装置
JPS6376053A (ja) マルチコンピユ−タ装置
JP2695497B2 (ja) 命令が共用される文の中断通知装置
JP3075359B2 (ja) プログラムデバッグ開始処理方式
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム
JPH06214828A (ja) 対話型デバッグ制御装置
JP2001325122A (ja) デバッグ方式及びデバッグ方法
JPH0340143A (ja) パイプライン方式計算機におけるデバッグ方式
JPS62290942A (ja) デバツガ起動方式
JPH0395638A (ja) デバッグ装置
JPS61194531A (ja) 命令実行制御装置
JPH01154252A (ja) 並列プロセッサのプログラムデバッグ支援装置
JPH05204710A (ja) イベントトレース装置