JPH01147640A - マルチプログラミング・デバッグ装置 - Google Patents

マルチプログラミング・デバッグ装置

Info

Publication number
JPH01147640A
JPH01147640A JP62306159A JP30615987A JPH01147640A JP H01147640 A JPH01147640 A JP H01147640A JP 62306159 A JP62306159 A JP 62306159A JP 30615987 A JP30615987 A JP 30615987A JP H01147640 A JPH01147640 A JP H01147640A
Authority
JP
Japan
Prior art keywords
system call
break
cpu
call instruction
instruction
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
JP62306159A
Other languages
English (en)
Inventor
Kaoru Matsuo
松尾 薫
Hajime Sakuma
肇 佐久間
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 JP62306159A priority Critical patent/JPH01147640A/ja
Publication of JPH01147640A publication Critical patent/JPH01147640A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、制御が逐次に流れる通常のプログラムと異な
り、複数のプログラムが同期をとりながら並列に流れる
マルチプログラミング・システムに対するデバッグ機能
に関するものである。
従来の技術 従来の逐次処理プログラムに対するデバッグ機能につい
て、第3図に示す従来のデバッグ装置の第9図から第1
1図に示すフローチャート1〜3を参照しながら説明す
る。
第3図に示すように、−船釣なデバッグ装置は、デバッ
グ機能をつかさどるためのCPU (以下ホス)CPU
という)、メモリ、周辺回路などを具備しており、デバ
ッグの対象となるCPU’(以下、ターゲットCPUと
いう)の動作をモニタしながら、デバッグ機能を実現し
ている。
また、従来のデバッグ装置は、メモリ操作やブレークポ
イントの設定など、ターゲットCPU側のアプリケーシ
ョンプログラムに依存しない汎用性のある機能のみを実
現している。
ここでは、アドレスブレーク機能とレジスタ表示機能に
ついて、その動作説明を行なう。第3図において、デバ
ッグ装置30は、点線で示しである。
図示のデバッグ装置30は、ホス)CPU100と、ホ
ストプログラムが常駐するホストプログラムメモリ10
6と、ブレークポイントを登録しておくブレークメモリ
104と、このブレークメモリに登録されたブレークポ
イントとターゲットCPUl0Iのアドレスとを逐一比
較して一致信号103−1及び選択信号103−2を出
力する比較部103と、該比較部103から出力される
選択信号103−2によってデータバスの切り換えを行
なうゲート113及びゲート116とを備えている。
ブレーク処理プログラム107、データ部108、ステ
ータス部109、’及び動作指定部110は、ターゲッ
トCPUl0IとホストCPU100の双方からアクセ
ス可能なブレーク処理メモリ120を構成し、ブレーク
が発生した時の制御に必要となるメモリである。
ここで、ホストCPU100はアドレスバスとデータバ
スを介してブレークメモリ104とホストプログラムメ
モリ部106とブレーク処理メモリ120とに接続され
、またターゲットCPUl0Iはアドレスバスとデータ
バスを介してユーザプログラムメモリ102と比較部1
03とブレーク処理メモリ120とに接続されでいる。
さらに、比較部103はブレークメモリ104にアドレ
スバスを介して接続される。また比較部103は、一致
信号103−1をターゲットCPU101に出力すると
共に、比較部103とターゲツトCPU102間のデー
タバス上にあるゲ−)113と、ターゲットCPUl0
Iとユーザプログラムメモリ102間のデータバス上に
あるゲート116のそれぞれに対し、選択信号103−
2とその選択信号のインバータで反転された信号を出力
するよう接続されている。
ブレークが発生した時の制御をフローチャート1〜3に
そって説明する。ブレークアドレスはホストCPU10
0により、ブレークメモリ104に既に設定されている
。比較部103はターゲラ)CPU101から出力され
るアドレス情報とブレークメモリ104に登録されてい
るブレークポイントとを逐一比較して、いずれかのブレ
ークポイントと一致した場合、ターゲットCPUl0I
へ一致信号103−1を出力する。
フローチャート2に示すように、ターゲットCPU10
1は比較部103からの一致信号103−1を割り込み
信号として受は付け、ユーザプログラムを中断し、その
時点のアドレスを保持し、割り込み処理プログラムのス
タートアドレスの読み出し動作を行なう。比較部103
はこのタイミングで、選択信号103−2を出力すると
同時に、ブレーク処理フロクラム107へのスタートア
ドレスを出力する。
選択信号103−2が出力されると、ゲート113は比
較部103側のデータバスをターゲラ)CPUIOIへ
接続し、ゲート116はユーザプログラムメモリ102
側と接続していたデータバスを接続不可にする。その結
果、ターゲラ)CPUIOIは、比較部103より出力
されたアドレス情報を割り込みプログラムのスタートア
ドレスとして読み込み、ブレーク処理プログラム107
へ制御を移す。
次に、フローチャート3に従ってブレーク処理プログラ
ム107の動作を説明する。ブレーク処理プログラム1
07はターゲットCPUl0Iのプログラムとして動作
し、データ部108にブレーク時点のレジスタ情報をセ
ーブし、ステータス部109をアドレスブレーク発生の
状態にし、動作指定部110にホス+CPU100から
動作が指定されるのを待つ。
次に、ホストCPU100の動作を、フローチャート1
に従って説明する。まず、ステータス部109がブレー
ク発生中を表わす状態の場合、コマンド受は付は状態と
なる。コマンドがレジスタ表示コマンドであった場合、
データ部108にセーブされたブレークレジスタ情報を
読み出し、ホストCPU100管理の表示装置105に
表示する。他のコマンドが人力されたら、各々のコマン
ドに従った処理をする。コマンドがブレーク再開コマン
ドの場合、ステータス部109をブレーク再開状態にし
、動作指定部110にブレーク再開の動作を指定する。
ブレーク処理プログラム107は、格納されたブレーク
再開コマンドに従い、復帰処理を行なう。ユーザプログ
ラム102はブレークアドレスから実行を再開する。
以上、従来のデバッグ機能におけるブレークポイントの
処理について記述したが、本従来例のようにアドレスを
ブレークポイント情報としたものが一般的であり、ブレ
ーク発生の方法も、上記した従来例が一般的方法となっ
ている。
発明が解決しようとする問題点 まず、第4図、第5図を参照し、本発明に重要なマルチ
プログラミング・システムに関して解説しながら、従来
の技術による問題点を説明していく。第4図および第5
図は、複数のプログラムが同期をとりながら、一つのプ
ログラミングシステムを構築している例である。このよ
うなプログラミングシステムはマルチプログラミング・
システムと呼ばれ、その制御形式は、オペレーテング・
システム(以下、O8と呼ぶ。)の種類によって多少違
いはあるものの、本例は事象駆動方式のO8では一般的
であると考えられる。
マルチプログラミング・システムを構成している個々の
プログラムはタスクと呼ばれ、1タスクがなんらかの事
象の発生を待つ間に発生するCPUの空き時間を利用し
、実行の起動がかかるのを待機している他のタスクの中
から1つタスクを選び出し、実行状態にする。このよう
なタスクを入れ替える処理はディスパッチングと呼ばれ
るが、割り込みやO5に対して発行されるシステムコー
ルと呼ばれる命令群を発行することによって起きる。
従って、こうしたマルチプログラミング・システムにお
いて、デバッグ上で特に重要になってくるのは、いかに
この状態遷移を監視し、追跡していくかという点にある
ことがわかろう。
ここで、第4図、第5図を用いて、従来の技術で問題と
なる点について説明する。
第4図の例1、例2は、共にタスクA1タスクBの2タ
スク構成で、システムコール命令“sys”を用いて制
御を切り換えるマルチプログラミング・システムの制御
の流れ図である。例1のプログラムでは、タスクA上の
アドレス2000番地を実行する迄に、タスクAからタ
スクBへ、またタスクBからタスク八へと、状態遷移が
起こるが、例2のプログラムでは、同アドレスを実行す
る迄に状態遷移は起きない。これは、システムコール命
令゛ を発行した時の、例1、例2のそれぞれのシステ
ムの状態によって、処理の流れが変わってしまうためで
ある。このように、マルチプログラミングでの実行の流
れは画一的ではなく、そのマルチプログラミングの制御
の予測は困難である。従って、従来のアドレスブレーク
機能のみを有するデバッグ装置では、以下のような問題
が起きる。
即ち、例1、例2のプログラムに対しては、それぞれの
プログラムの、タスクA上のアドレス2000番地に、
同様にブレークポイントを設定して、従来のアドレスブ
レークを発生させても、そこから得られる情報だけでは
、マルチプログラムの制御の流れまでは掴み切れないと
いう点である。
また、第5図の状態遷移図は、タスクA1タスクB1タ
スクC1タスクD1タスクEの5タスクで構成され、’
5YSI°、“SYS 2°、“SYS 3″、”5Y
S4”、“SYS 5”の5種類のシステムコール命令
によって制御を切り換えるマルチプログラミング・シス
テムの流れ図である。このように、多彩なシステムコー
ル命令を用い、多数のタスクで構成された複雑な制御の
流れを持つマルチプログラミング・システムに対して、
例えば、タスクA上のアドレス2000番地にブレーク
ポイントを設定し、従来のアドレスブレークを発生ぎせ
ても、その制御の流れを把握することは、ますます困難
になってくる。
このことから、マルチプログラミング・システムに対す
るデバッグに従来のアドレスによるブレーク機能を用い
る場合、そのマルチプログラミング・システムの制御の
流れが充分に予測可能という前提に立たなければならな
いにも拘らず、実際にはマルチプログラミング・システ
ムの制御の流れは複雑で予測が困難であるため、従来の
アドレスによるブレーク機能だけでは、あまり効果的な
デバッグ機能を有しているとは言い難い。
最近では、こうしたマルチプログラミング・システム形
式のものが広く浸透して来つつあるが、従来の技術によ
るデバッグ機能は、通常の逐次処理のプログラムに関し
ては一応の効果を期待できるものの、次々とタスクを切
り換えるマルチプログラミング・システムに関しては、
アドレスによるブレークだけのデバッグ機能だけでは、
その実行状態を掴み切れないという欠点を有していた。
問題点を解決するための手段 本発明によれば、プログラムデバッグを目的とした専用
のCPUを備えたデバッグ装置において、デバッグされ
るCPUのデータバス上の命令を絶えず監視し、該命令
がオペレーティングシステムへの処理要求(以下、シス
テムコールと呼ぶ)と一致した場合、該一致を通知する
手段と、前記システムコールに関する情報を、前記専用
のCPUから操作できる空間に格納するシステムコール
−致処理部を備え、マルチプログラミングシステムにお
いて、前記システムコールの発行を誘因としたプログラ
ムデバッグを行うことを特徴とするマルチプログラミン
グデバッグ装置が提供される。
更に、本発明によれば、プログラムデバッグを目的とし
た専用CPU (以下ホストCPU)と、ユーザが設定
する複数のブレークアドレスを記憶するブレークメモリ
と、該ブレークメモリに記憶されているブレークアドレ
ス及びデバッグの対象となるcpu (以下ターゲット
CPUという)が実行する命令アドレスとを逐一比較し
、一致した場合には一致信号をターゲラ)CPUに対し
て出力する比較部と、ブレーク時における処理プログラ
ム及びデータ部及びステータス部及び動作指定部で構成
され、ホストCPUとターゲットCPUの両方からアク
セス可能なブレーク処理メモリとを少なくとも具備する
デバッグ装置において、ユーザが予めブレークまたはト
レースしたい複数のオペレーティングシステムへの処理
要求(システムコール)を記憶し、且つターゲットCP
Uのデータバス上の命令を逐一モニタし、該命令と前記
記憶されているシステムコール命令とが一致した場合に
おいては、該−数情報のターゲラ)CPUに対する通知
または該−数情報のホス)CPUからアクセス可能な特
定のメモリへの保持を指示し、且つアドレスバス及びデ
ータバスを介シテホストCPUに接続されるとともにタ
ーゲットCPUのデータバスに接続される、システムコ
ール命令デコード部と、前記ターゲラ)CPUのユーザ
プログラム実行中における前記ブレークアドレス直前の
命令が実行された直後の内部レジスタに関する情報だけ
でなく、同時にユーザが予め設定したシステムコール命
令がユーザプログラム実行中に実行されたときのシステ
ムコール命令に関する情報をもユーザに対し通知する手
段とを具備するマルチプログラミング・デバッグ装置が
提供される。
本発明の好ましいの実施例では、前記システムコール命
令デコード部が一致を検出した場合において、前記シス
テムコール命令デコード部は割り込み信号としての一致
信号をターゲラ)CPUに対し出力し、同時にターゲッ
トCPUとユーザプログラムメモリ間のデータバスを非
接続状態にする選択信号を該データバス上のゲートに対
して出力する。また、前記ブレーク処理メモリにおいて
新たにシステムコールブレーク処理プログラムが付加さ
れる。
更に、前記ホストCPUにデータバスを介して接続され
、前記システムコール命令デコード部が一致を検出した
ときにおいては“1”が書き込まれるトレースフラグと
、前記ターゲットCPU及び前記ホス)CPUにそれぞ
れデータバス及びアドレスバスを介して接続され、ター
ゲットCPUのデータバス上の命令を逐−取り込み記憶
する命令バッファと、前記システムコール命令デコード
部が一致を検出した場合においては、前記命令バッファ
に格納された一致したシステムコール命令を読込むトレ
ースメモリとを具備する。
作用 上述した従来のデバッグ装置に於けるアドレス情報によ
るブレーク主体のデバッグ機能に対して、本発明による
マルチプログラミング・デバッグ装置は、システムコー
ル命令を捉で、ディスパッチング直前にブレークをかけ
るシステムコール・ブレーク機能、あるいは次々と発行
されるシステムコール命令の履歴を実時間でトレースす
るンステムコール・トレース機能を可能にしている。か
かる機能によって、従来の技術では捉えることのできな
かった、マルチプログラミングシステムの状態遷移のト
レースを容易に実現できる。
詳述するならば、システムコール命令デコード部は、タ
ーゲットCPUのデータバス上にあるターゲラ)CPU
が次に実行せんとする命令と前記システムコール命令デ
コード部に予めユーザにより登録されているシステムコ
ール命令とを比較し、その結果一致を検出した場合にお
いては、次の2つの動作をする。すなわち、第1は、タ
ーゲットCPUに対して一致信号を出力することにより
該ターゲラ)CPUを割り込み状態にし、同時に選択信
号をターゲットCPUとユーザプログラムメモリ間のデ
ータバス上のゲートに出力して、該データバスを非接続
状態にすることによってアドレスブレークと同様な形で
ターゲットCPUによるユーザプログラムの実行を中断
する。あるいは、第2として、トレースフラグを1″に
し、同時に命令バッファ上の一致したシステムコール命
令をトレースメモリに読み込む。こうして、本発明は、
従来のデバッグ装置におけるアドレス情報によるブレー
ク主体のデバッグ機能の他に、予めシステムコール命令
デコード部に登録されたものと同一なシステムコール命
令を促えて、ディスパッチング直前にブレークをかける
システムコールブレーク機能、あるいは次々と発行され
るシステムコール命令の履歴を実時間でトレースするシ
ステムコールトレース機能を実現する。
実施例 以下、添付図面を参照して本発明によるマルチプログラ
ミング・デバッグ装置の実施例を説明する。
実施例1 本発明のマルチプログラミング・デバッグ装置の実施例
1を、第1図と第8図と、第12図から第14図に示す
フローチャート4〜6を参照しながら説明する。
マルチプログラミングの各タスクの状態遷移は、プログ
ラム中のO8に対して発行されるシステムコール命令を
実行することによって起こる場合が大半である。実施例
1のマルチプログラミング・デバッグ装置は、システム
コール命令を発行した時点で促えてブレークする機能を
備えている。
第1図において、第3図に示す装置の要素と同様な要素
に同一の参照番号を付している。第1図に示す本発明の
実施例1におけるマルチプログラミング・デバッグ装置
10は、第3図に示した従来のデバッグ装置に加えて、
システムコール命令によるブレーク機能を実現するため
、データバス上の命令を常時モニタするシステムコール
命令デコード部115と、ゲート118と、ターゲット
CPU101とホストCP Ulooの双方からアクセ
ス可能なシステムコールブレーク処理プログラム111
とを備えている。
ここで、システムコール命令デコード部115は、アド
レスバス及びデータバスを介してホストCPU 100
に接続され、またデータバスを介してターゲットCPU
l0Iに接続される。ゲート118は、ブレーク処理メ
モリ120を他の回路から分離できるデータバス上に設
けられており、同時にシステムコール命令デコード部1
15より選択信号115−2を入力するようにされてい
る。また、システムコールブレーク処理プログラム11
1はブレーク処理メモリ120内部に配置される。さら
に、第3図との比較により明らかなように、比較部10
3からの一致信号103−1とシステムコール命令デコ
ード部115−1はORゲートを介してターゲットCP
U 101に割り込み信号112として入力される。
第8図は、システムコール命令のオペランド構成の図で
ある。システムコール命令にはタスクを生成する命令、
タスク間の同期をとる命令など数種存在するが、第8図
では、タスクの生成、タスクの起動、メツセージの送信
、メツセージの受信の4つのシステムコール命令を例に
挙げて、その命令コードの構成について説明する。まず
、システムコール命令の全体の構成は、各々の命令を区
別するオペレーションコード(以下、OP:l−)’と
いう)と、それに続くいくつかのオペランドコードから
構成されている。オペランドコードには各システムコー
ル命令のパラメータ情報が格納されている。
次に、例に挙げた4つのシステムコール命令の各機能と
オペランドの説明を行なう。タスク生成システムコール
命令は、タスクを生成する命令であり、OPコード1に
続く第1オペランドにはタスクの識別子(以下、タスク
IDという)が、第2オペランドにはタスクのプログラ
ムコードが置かれたスタートアドレスが、第3オペラン
ドにはタスクの優先順位を表わすタスクプライオリティ
がセットされている。タスク起動システムコール命令は
、生成されたタスクの起動をかける命令であり、OPコ
ード2に続く第1オペランドにはタスクIDがセットさ
れている。メツセージ送信システムコール命令は、タス
クに対してメツセージを送信する命令で、OPコード3
に続く第1オペランドには送信先のタスクIDが、第2
オペランドにはメツセージのスタートアドレスがセット
されており、メツセージを受信するメツセージ受信シス
テムコール命令には、OPコード4に続く第1オペラン
ドに受信したメツセージアドレスを格納する受信先アド
レスがセットされている。
次に、システムコール命令によるブレークが発生した時
について、その処理をフローチャート4〜6に沿って説
明する。ブレークしたいシステムコール命令は、すでに
ホストCPU100によってシステムコール命令デコー
ド部115に登録されているものとする。まず、システ
ムコール命令デコード部115は、ターゲットCPUl
0Iがユーザプログラム102から読み出すプログラム
命令を判読し、この中からシステムコール命令を読み取
ると、既に登録されているシステムコール命令の種類と
逐一比較する。その結果、いずれかの登録システムコー
ル命令と一致した場合、一致信号115−1を出力する
ターゲットCPUl0Iはフローチャート−5が示すよ
うに、システムコール命令デコード部115からの一致
信号115−1を割り込み信号112として受は付け、
ユーザ・プログラム102を中断して、その時点のアド
レスを保持し、割り込み処理プログラムのスタートアド
レスの読み出し動作を行なう。システムコール命令デコ
ード部115はこのタイミングで、選択信号115−2
を出力すると同時に、システムコールブレーク処理プロ
グラム111へのスタートアドレス情報を出力する。こ
の際の、システムコールブレーク処理プログラム111
のスタートアドレスは、各゛種システムコール命令のデ
コード結果に応じた処理のスタートアドレスとなってい
る。選択信号115−2が出力されると、ゲート118
は、ユーザプログラム102側と接続されていたデータ
バスを接続不可にする。その結果、ターゲットCPUl
0Iはシステムコール命令デコード部115から出力さ
れたアドレス情報を割り込み処理プログラムのスタート
アドレス情報として読み込み、システムコールブレーク
処理プログラム111へ制御を移す。
フローチャート6は、ターゲットCP 0101のプロ
グラムとして動作するシステムコールブレーク処理プロ
グラム111の処理を示している。システムコールブレ
ーク処理プログラム111は、システムコール命令OP
コードに続く各オペランド部から、システムコール・パ
ラメータ情報を得て、これをデータ部108ヘセーブし
、ステータス部109をシステムコールブレーク状態に
し、動作指定部110にホスト100から動作が指定さ
れるのを待つ。
次に、ホストC:PU100の動作を、フローチャート
4に従って説明する。まず、ステータス部109がシス
テムコール命令によるブレーク発生中を表わす状態の場
合、コマンド受は付は状態となる。
このシステムブレーク時に、パラメータ表示コマンドが
入力された場合、データ部108にセーブされたパラメ
ータ情報を読み出し、ホス)CPU 100管理の表示
装置105に表示する。また、従来例同様にレジスタ表
示コマンドやその他のコマンドが入力されたら、各々の
コマンドに従った処理をする。コマンドがブレーク再開
コマンドの場合、ステータス部109をシステムコール
ブレーク再開状態にし、動作指定部110にブレーク再
開の動作指定を行なう。システムコールブレーク処理プ
ログラム111は、指定されたブレーク再開指示に従い
、復帰処理を行なう。ユーザプログラム102はブレー
クアドレスから実行を再開する。
以上、実施例1のデバッグ機能におけるシステムコール
ブレークの処理について記述したが、従来のアドレスを
ブレークポイント情報としたブレーク機能に対して、実
施例1におけるシステムコールブレーク機能は、システ
ムコール命令がユーザプログラム102の実行中に発行
された時点で実行を中断し、システムコールブレーク中
断中もアドレス・ブレーク同様、中断中のレジスタ表示
コマンドやその他のデバッグ用コマンドの人力を可能に
し、ブレーク再開コマンドによって、システムコールブ
レーク中のユーザプログラムを再実行させることを可能
にするものである。
実施例2 実施例2のマルチプログラミング・デバッグ装置は、タ
スク間の状態遷移を監視する機能を、システムコール命
令の履歴を実時間でトレースすることで実現する。
以下、実施例2を第2図と第8図と、第15図に示すフ
ローチャート7を参照しながら説明する。
なお、第2図において、第3図に示す装置の要素と同様
な要素に同一の参照番号を付している。
第2図に示すように、本発明の実施例2におけるマルチ
プログラミング・デバッグ装置20は、システムコール
・トレース機能を実現するために、第3図に示した従来
のデバッグ装置に加えて、データバス上の命令を常時モ
ニタするシステムコール命令デコード部115と、トレ
ースフラグ115−3と、命令バッファ119と、トレ
ースメモリ 117を有する。
ここで、システムコール命令デコード部115は、アド
レスバス及びデータバスを介してホストCPU 100
に接続され、またデータバスを介してターゲットCPU
l0Iに接続される。トレースフラグ115−3 は、
システムコール命令デコード部115と接続された形で
配置され、命令バッファ119は、データバスを介して
ホストCPU100に接続されると共に、データバスを
介してターゲットCPU101に接続される。また、ト
レースメモリ117は、データバス及びアドレスバスを
介してホストCPU 100に接続される。
まず、システムコール命令のトレース処理について、そ
の全体の処理の流れを説明する。トレースしたいシステ
ムコール命令は、すでにホストCPU100によってシ
ステムコール命令デコード部115に登録されているも
のとする。また、システムコール命令に付随するパラメ
ータは第8図に示した通り、システムコール命令のOP
コードに続く各オペランド部に格納されているものとす
る。
システムコール命令デコード部115は、ターゲラ)C
PUIOIがユーザ・プログラム102から読み出すプ
ログラム命令を判読し、この中からシステムコール命令
を読み取ると、既に登録されているシステムコール命令
の種類と逐一比較する。その結果、いずれかの登録シス
テムコール命令と一致シタ場合、トレースフラグ115
−3をシステムコール命令一致状態にする。命令バッフ
ァ119は、システムコール命令デコード部115と同
様、データバス上の命令を常に1命令分だけバッファリ
ングしている。ホストCPU100は、フローチャート
7に示す通り、常時該トレースフラグ115−3を監視
し、システムコール命令一致状態になると、命令バッフ
ァ119に格納されているシステムコール命令をトレー
スメモリ117にセーブする。セーブした後、トレース
フラグ115−3をリセットする。
以上の処理は、トレースフラグ115−3がシステムコ
ール命令一致状態になる度に発生し、ホストCPU10
0よりシステムコール命令デコード部115に対し、シ
ステムコール命令のトレースを解除する指定があるまで
続く。この間にトレースメモリ117がメモリオーバー
フローすると、古い情報から順にメモリから消されてい
く。
次に、上記処理で蓄積されるシステムコール命令のトレ
ース情報の表示及びシステムコール命令トレース処理の
解除方法について、前記ホス)CPU100の処理を説
明する。ユーザプログラム102の実行中にアドレスブ
レークが発生すると、従来例同様、ブレーク処理プログ
ラム107によってステータス部109はアドレスブレ
ーク発生中を表わす状態になり、ユーザプログラム10
2の処理を中断し、ホストCPIJ100の処理に切り
換わる。この時、ホストCPU100が、トレース表示
コマンドの入力を受は付けると、現アドレスブレーク時
点迄にトレースメモリ117に蓄積され残されている最
新のシステムコール命令トレース情報が表示装置105
に表示される。
以上のように、実施例2のデバッグ装置は、既に登録し
ておかれたシステムコール命令がユーザプログラムに発
生する度に、実時間でシステムコール命令の情報のトレ
ースを行ない、これを従来のアドレスブレークが発生し
た時点で表示することを可能にするものである。
発明の詳細 な説明したように本発明は、マルチプログラミング・デ
バッグ装置において、実施例1では希望するシステムコ
ール命令発生時点でのブレークを、実施例2ではシステ
ムコール命令の履歴トレースを実現することを可能にす
る。
以下、第4図、第5図のマルチプログラミング・システ
ム、及び第6図、第7図の表示例を参照しながら、その
発明の効果について説明する。
まず、第6図、第7図の簡単な説明を行なう。
第6図、第7図の表示の中で“〉°はコマンドの入力を
促進する記号を、またこの記号の後に記された文字はコ
マンドを意味する。表示例でのコマンドの種類としては
、ブレーク再開コマンドの“GOo、パラメータ表示コ
マンドの“PRDSY”、トレースメモリ表示コマンド
の“TRDSY’があるが、この他に従来のデバッグ用
コマンドを用いることも可能である。パラメータ表示コ
マンドは、システムコールブレーク発生時の各パラメー
タ情報を表示するコマンドで、第6図の表示例で登場す
る“PR1=lFAO”以下は、その表示の1例である
。トレースメモリ表示コマンドは、現在までにトレース
メモリに蓄えられたシステムコール命令情報を表示する
コマンドで、その表示例は第7図に示されている通りで
ある。
次に、実施例1における発明の効果について説明する。
第6図の表示例1と表示例2は、それぞれ、第4図の例
1、例2のマルチプログラミングクシステムに対して、
システムコールブレーク処理を実行した場合の表示例で
ある。第4図の例1および例2のそれぞれのマルチプロ
グラミング・システムに対して、同様に、システムコー
ル命令“sys” をシステムコールブレークに登録し
、プログラムの実行を開始すると、第6図の表示例1、
表示例2が示す通り、例1のマルチプログラミング・シ
ステムでは、システムコールブレークがタスクA1タス
クB1タスクAの順に発生し、例2のマルチプログラミ
ング・システムでは、システムコールブレークがタスク
A1タスクA1タスクBの順に発生する。これによって
、実施例1では、それぞれのシステムの状態によって異
なってくる2つのマルチプログラミング・システムの状
態遷移の相違が歴然としてくる。また、システムコール
ブレーク時点で、パラメータ表示コマンドを用いてブレ
ーク原因となったシステムコール命令パラメータ情報を
表示したり、レジスタ表示コマンドやその他の従来のデ
バッグ用コマンドなどを用いれば、システムコールブレ
ーク時点のレジスタ情報など、さらに詳細なプログラム
状態遷移の状況を知る手掛りとなる。
第7図の表示例は、第5図のマルチプログラミング・シ
ステムに対して、従来のアドレスブレーク処理と、シス
テムコール・トレース処理を合わせて実行した場合の表
示例である。最初に、第5図のマルチプログラミング・
システムに対して、予めアドレスブレークポイントにタ
スクA上の2000番地を、システムコール・トレース
用に、システムコール命令の“SYS 1’ 、 “S
YS 2”、’5Y33′、“5YS4’ 、“5YS
5°を登録しておき、プログラムの処理を開始すると、
まず、第7図の表示例が示す通り、アドレスブレークが
2000番地で起きる。次に、この時点で、トレースメ
モリ表示コマンドを人力すると、ブレークポイント20
00番地実行までに発行され、トレースメモリに蓄えら
れたシステムコール命令の情報が、その発行の順に表示
される。このように、実施例2では、プログラムの実行
をそのまま継続しながら、状態遷移の原因となるシステ
ムコール命令の情報を、登録しておいたシステムコール
命令の発生した順に出力し、より複雑なマルチプログラ
ミング・システムにおける状態遷移の追跡を実行と並行
して行なうことを可能にする。
これら2つの実施例は、以上のような技術をユーザに提
供し、マルチプログラミングのデバッグ効率を著しく向
上させるという効果を有する。
【図面の簡単な説明】
第1図は、本発明によるマルチプログラミング・デバッ
グ装置の実施例1の全体構成図、第2図は、本発明によ
るマルチプログラミング・デバッグ装置の実施例2の全
体構成図、第3図は、従来のマルチプログラミング・デ
バッグ装置の全体構成図、 第4図および第5図は、マルチプログラミングクシステ
ムの状態遷移図、 第6図は、システムコールブレーク処理表示例を示す図
、 第7図は、システムコール・トレース処理表示例を示す
図、 第8図は、システムコール命令のオペランド構成例を示
す図、 第9図は、従来のマルチプログラミング・デバッグ装置
におけるホス)CPUの処理を示すフローチャート、 第10図は、従来のマルチプログラミング・デバッグ装
置におけるターゲラ)CPUの処理を示すフローチャー
ト、 第11図は、従来のマルチプログラミング・デバッグ装
置におけるブレーク処理プログラムの処理を示すフロー
チャート、 第12図は、本発明の実施例1によるマルチプログラミ
ング・デバッグ装置におけるホス)CPUの処理を示す
フローチャート、 第13図は、本発明の実施例1によるマルチプログラミ
ング・デバッグ装置におけるターゲットCPUの処理を
示すフローチャート、 第14図は、本発明の実施例1によるマルチプログラミ
ング・デバッグ装置におけるブレーク処理プログラムの
処理を示すフローチャート、第15図は、本発明の実施
例2によるマルチプログラミング・デバッグ装置におけ
るホス)CPUの処理を示すフローチャートである。 〔主な参照番号〕 100・・ホストCPU 101・ ・ターゲットCPU 102・・ユーザプログラムメモリ 103・・比較部  103−1・・比較部の一致信号
103−2・・比較部の選択信号 104・・ブレークメモ!J   105・・表示装置
106・・ホストプログラムメモリ 107・・ブレーク処理プログラム 108・・データ部  109・・ステータス部110
・・動作指定部 111・・システムコールブレーク処理プログラム11
2・・割り込み信号  113・・ゲート115・・シ
ステムコール命令デコード部115−1・・システムコ
ール命令デコード部の一致信号115−2・・システム
コール命令デコード部の選択信号115−3・・トレー
スフラグ  116・・ゲート117・・トレースメモ
リ    118・・ゲート119・・命令バッファ 120・・ブレーク処理メモリ 特許出頭人 日本電気株式会社

Claims (1)

    【特許請求の範囲】
  1. (1)プログラムデバッグを目的とした専用のCPUを
    備えたデバッグ装置において、デバッグされるCPUの
    データバス上の命令を絶えず監視し、該命令がオペレー
    ティングシステムへの処理要求(以下、システムコール
    と呼ぶ)と一致した場合、該一致を通知する手段と、前
    記システムコールに関する情報を、前記専用のCPUか
    ら操作できる空間に格納するシステムコール一致処理部
    を備え、マルチプログラミングシステムにおいて、前記
    システムコールの発行を誘因としたプログラムデバッグ
    を行うことを特徴とするマルチプログラミングデバッグ
    装置。
JP62306159A 1987-12-03 1987-12-03 マルチプログラミング・デバッグ装置 Pending JPH01147640A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62306159A JPH01147640A (ja) 1987-12-03 1987-12-03 マルチプログラミング・デバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62306159A JPH01147640A (ja) 1987-12-03 1987-12-03 マルチプログラミング・デバッグ装置

Publications (1)

Publication Number Publication Date
JPH01147640A true JPH01147640A (ja) 1989-06-09

Family

ID=17953756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62306159A Pending JPH01147640A (ja) 1987-12-03 1987-12-03 マルチプログラミング・デバッグ装置

Country Status (1)

Country Link
JP (1) JPH01147640A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204737A (ja) * 1990-01-08 1991-09-06 Nec Corp 信号処理プロセッサのデバッグ回路
JP2008269597A (ja) * 2008-04-09 2008-11-06 Net Kuriasu Systems Kk タスク処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204737A (ja) * 1990-01-08 1991-09-06 Nec Corp 信号処理プロセッサのデバッグ回路
JP2008269597A (ja) * 2008-04-09 2008-11-06 Net Kuriasu Systems Kk タスク処理装置

Similar Documents

Publication Publication Date Title
US20070266387A1 (en) Multithreaded computer system and multithread execution control method
JPS62159268A (ja) マルチプロセツサシステム
CN112363972B (zh) 支持多cpu间通信的电子设备及方法
EP0239078B1 (en) Register saving/restoring system
JP3970609B2 (ja) プロセッサシステム
JPH01147640A (ja) マルチプログラミング・デバッグ装置
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JPH0192843A (ja) データ処理装置
JPH01147639A (ja) マルチプログラミング・デバッグ装置
JPH0675819A (ja) マイクロプロセッサ
JPH0922369A (ja) マルチタスキング方式のカーネルにおける不正動作検出方法
JPH09282196A (ja) 複合論理プロセッサシステムのプログラム走行制御方式
JP2004318658A (ja) デバッグ制御装置及びその制御方法
JPS638947A (ja) プログラムデバツグサポ−ト方式
JPS59123933A (ja) アドレス比較方式
JP2001229038A (ja) マルチオペレーテング計算機システム
JPS58182766A (ja) プログラムトレ−ス装置
JP2000122882A (ja) マルチスレッドプロセッサおよびデバッグ装置
JPS638946A (ja) プログラムデバツグサポ−ト方式
JPS63155330A (ja) マイクロプログラム制御装置
JPS63167940A (ja) マルチプログラミング指向cpu
JPS6352240A (ja) デ−タ処理装置
JPS6136850A (ja) 入出力割込通知方式
JPH0325674A (ja) 情報処理装置
JPH0283743A (ja) 情報処理装置