JPH09259002A - デバッグ支援装置 - Google Patents
デバッグ支援装置Info
- Publication number
- JPH09259002A JPH09259002A JP8066412A JP6641296A JPH09259002A JP H09259002 A JPH09259002 A JP H09259002A JP 8066412 A JP8066412 A JP 8066412A JP 6641296 A JP6641296 A JP 6641296A JP H09259002 A JPH09259002 A JP H09259002A
- Authority
- JP
- Japan
- Prior art keywords
- task
- breakpoint
- break
- instruction
- execution
- 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
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 複数の利用者が個別に任意のタスク群をデバ
ッグできるようにする。 【解決手段】 デバッガコマンドは複数の利用者により
個別に起動され、デバッグ対象のタスク群やブレークポ
イントの指定、ブレークポイントで停止したタスクの情
報の提供を行う。デバッガタスクは指定されたブレーク
ポイント毎に、デバッガコマンドとデバッグ対象のタス
ク群を特定する情報をテーブルに格納し、タスクにブレ
ークポイントを設定する。ブレークポイントでタスクが
停止すると、OSは停止したタスクと共にデバッグ対象
となっている全タスクの実行を抑止する。ブレーク報告
タスクは、停止したタスクのブレークポイントを指定し
たデバッガコマンドに停止を通知する。また、OSは停
止したタスクと共にデバッグ対象となっているタスクが
無い場合には、停止したタスクの実行を再開する。
ッグできるようにする。 【解決手段】 デバッガコマンドは複数の利用者により
個別に起動され、デバッグ対象のタスク群やブレークポ
イントの指定、ブレークポイントで停止したタスクの情
報の提供を行う。デバッガタスクは指定されたブレーク
ポイント毎に、デバッガコマンドとデバッグ対象のタス
ク群を特定する情報をテーブルに格納し、タスクにブレ
ークポイントを設定する。ブレークポイントでタスクが
停止すると、OSは停止したタスクと共にデバッグ対象
となっている全タスクの実行を抑止する。ブレーク報告
タスクは、停止したタスクのブレークポイントを指定し
たデバッガコマンドに停止を通知する。また、OSは停
止したタスクと共にデバッグ対象となっているタスクが
無い場合には、停止したタスクの実行を再開する。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクのO
S(Operating system)の管理下で並行に実行される複
数タスクのデバッグを支援するデバッグ支援装置に関す
るものである。
S(Operating system)の管理下で並行に実行される複
数タスクのデバッグを支援するデバッグ支援装置に関す
るものである。
【0002】
【従来の技術】計算機で実行されるタスク(プログラ
ム)のデバッグでは、利用者は、タスク内にブレークポ
イントを設定し、タスクの実行がブレークポイントで停
止した時にそのタスクの動作を反映する変数やテーブル
の値を調べることで、タスクが期待通りの動作を行って
いるかを検証する。一方、マルチタスクのOSを備えた
計算機では、複数のタスクの各々を並行して実行するこ
とが可能となる。ただし、このOSの管理下で、変数や
テーブルを共有する、並行して実行する必用のある複数
のタスクのデバッグを行う場合、あるタスクがブレーク
ポイントで動作を停止した後に、他のタスクが動作して
共有の変数やテーブルの設定値を変更してしまい、これ
によりタスクの検証ができなくなることがある。
ム)のデバッグでは、利用者は、タスク内にブレークポ
イントを設定し、タスクの実行がブレークポイントで停
止した時にそのタスクの動作を反映する変数やテーブル
の値を調べることで、タスクが期待通りの動作を行って
いるかを検証する。一方、マルチタスクのOSを備えた
計算機では、複数のタスクの各々を並行して実行するこ
とが可能となる。ただし、このOSの管理下で、変数や
テーブルを共有する、並行して実行する必用のある複数
のタスクのデバッグを行う場合、あるタスクがブレーク
ポイントで動作を停止した後に、他のタスクが動作して
共有の変数やテーブルの設定値を変更してしまい、これ
によりタスクの検証ができなくなることがある。
【0003】特開平4−314141号公報記載のデバ
ッグ方式では、複数のタスクをグループ化し、あるタス
クの動作がブレークポイントで停止した場合に、停止し
たタスクと同じグループに属する全てのタスクの実行を
抑止することで、上記の問題を解消している。また、特
開平7−160530号公報記載の方式では、システム
内のあるタスクの動作がブレークポイントで停止した場
合には、システム内の全てのタスクの動作を停止させ
る。
ッグ方式では、複数のタスクをグループ化し、あるタス
クの動作がブレークポイントで停止した場合に、停止し
たタスクと同じグループに属する全てのタスクの実行を
抑止することで、上記の問題を解消している。また、特
開平7−160530号公報記載の方式では、システム
内のあるタスクの動作がブレークポイントで停止した場
合には、システム内の全てのタスクの動作を停止させ
る。
【0004】
【発明が解決しようとする課題】しかしながら、上記従
来の技術は1人の利用者を対象としており、1つのシス
テムにおいて複数の利用者が個別にタスクのデバッグを
行うことは考慮していない。このため、複数の利用者が
並行して利用できるシステムに適用した場合にも、特開
平7−160530号公報記載の技術ではシステム内の
全てのタスクが同一のデバッグ対象とみなされるため、
ある利用者が設定したブレークポイントでタスクが停止
すると、他の利用者のタスクの実行も停止してしまう。
このため、各利用者が個別にデバッグを行うことはでき
ない。
来の技術は1人の利用者を対象としており、1つのシス
テムにおいて複数の利用者が個別にタスクのデバッグを
行うことは考慮していない。このため、複数の利用者が
並行して利用できるシステムに適用した場合にも、特開
平7−160530号公報記載の技術ではシステム内の
全てのタスクが同一のデバッグ対象とみなされるため、
ある利用者が設定したブレークポイントでタスクが停止
すると、他の利用者のタスクの実行も停止してしまう。
このため、各利用者が個別にデバッグを行うことはでき
ない。
【0005】特開平4−314141号公報記載の技術
では、タスクのグループの指定を各利用から任意に受け
付けることや、タスクにブレークポイントを設定した利
用者にそのタスクの実行停止を通知することはできな
い。すなわち、この技術でも、各利用者が個別にデバッ
グを行うことはできない。また、複数のグループのタス
クから共通に呼び出される共有サブルーチンに、ある利
用者がブレイクポイントを設定した場合には、その利用
者以外の利用者のタスクに呼び出された上記共有サブル
ーチンの処理においても、タスクの実行が停止してしま
う。
では、タスクのグループの指定を各利用から任意に受け
付けることや、タスクにブレークポイントを設定した利
用者にそのタスクの実行停止を通知することはできな
い。すなわち、この技術でも、各利用者が個別にデバッ
グを行うことはできない。また、複数のグループのタス
クから共通に呼び出される共有サブルーチンに、ある利
用者がブレイクポイントを設定した場合には、その利用
者以外の利用者のタスクに呼び出された上記共有サブル
ーチンの処理においても、タスクの実行が停止してしま
う。
【0006】そこで、本発明は、マルチタスクのOSの
管理下で、複数の利用者の各々が個別に任意のタスク群
のデバッグを行うことを可能とするデバッグ支援装置を
提供することを目的とする。
管理下で、複数の利用者の各々が個別に任意のタスク群
のデバッグを行うことを可能とするデバッグ支援装置を
提供することを目的とする。
【0007】
【課題を解決するための手段】本発明は、プロセッサ
と、複数のタスクを並行して実行するように前記プロセ
ッサを制御するマルチタスクのOSを備え、前記タスク
の実行を、当該タスクに割り当てた識別情報により管理
するデバッグ支援装置であって、複数の利用者の各々か
ら、デバッグ対象の複数のタスクの各々に割り当てられ
た識別情報と、前記デバッグ対象のタスクの内の少なく
とも1つのタスクにおけるブレークポイントの位置情報
とを受け付けるユーザインタフェース手段と、当該受け
付けたブレークポイントの位置情報に応じて、前記デバ
ッグ対象のタスクにブレークポイントを指定する命令を
設定する手段と、当該ブレークポイントを指定する命令
が実行された場合に、当該命令が設定された実行中のタ
スクの識別情報を検出し、検出した識別情報のタスク
と、当該識別情報に一致する識別情報と一緒に受け付け
た識別情報のタスクの実行を停止する手段を備えること
を特徴とする。
と、複数のタスクを並行して実行するように前記プロセ
ッサを制御するマルチタスクのOSを備え、前記タスク
の実行を、当該タスクに割り当てた識別情報により管理
するデバッグ支援装置であって、複数の利用者の各々か
ら、デバッグ対象の複数のタスクの各々に割り当てられ
た識別情報と、前記デバッグ対象のタスクの内の少なく
とも1つのタスクにおけるブレークポイントの位置情報
とを受け付けるユーザインタフェース手段と、当該受け
付けたブレークポイントの位置情報に応じて、前記デバ
ッグ対象のタスクにブレークポイントを指定する命令を
設定する手段と、当該ブレークポイントを指定する命令
が実行された場合に、当該命令が設定された実行中のタ
スクの識別情報を検出し、検出した識別情報のタスク
と、当該識別情報に一致する識別情報と一緒に受け付け
た識別情報のタスクの実行を停止する手段を備えること
を特徴とする。
【0008】この発明のデバッグ支援装置では、ブレー
クポイントを指定する命令が実行された場合に、その命
令が設定されたタスクと、そのタスク一緒に利用者が識
別情報でデバッグ対象に指定したタスクの実行が停止さ
れる。すなわち、他の利用者が指定したタスクがこの時
に停止されることはなく、各利用者は個別に任意のタス
ク群のデバッグを行うことができる。
クポイントを指定する命令が実行された場合に、その命
令が設定されたタスクと、そのタスク一緒に利用者が識
別情報でデバッグ対象に指定したタスクの実行が停止さ
れる。すなわち、他の利用者が指定したタスクがこの時
に停止されることはなく、各利用者は個別に任意のタス
ク群のデバッグを行うことができる。
【0009】また、本発明は、上記のデバッグ支援装置
であって、前記ブレークポイントを指定する命令は、前
記複数のタスクより共通に呼び出されるサブルーチンに
も設定され、前記ユーザインタフェース手段は、当該サ
ブルーチンにおけるブレークポイントの位置情報も入力
し、前記ブレークポイントを指定する命令が実行された
場合に、当該実行された命令の位置情報と、実行中のタ
スクの識別情報を検出し、当該検出したタスクの識別情
報が、前記検出した位置情報に一致する位置情報と一緒
に受け付けた識別情報に含まれない場合には、前記命令
の実行に応じてなされるタスクの実行停止を解除する手
段を備えることを特徴とする。
であって、前記ブレークポイントを指定する命令は、前
記複数のタスクより共通に呼び出されるサブルーチンに
も設定され、前記ユーザインタフェース手段は、当該サ
ブルーチンにおけるブレークポイントの位置情報も入力
し、前記ブレークポイントを指定する命令が実行された
場合に、当該実行された命令の位置情報と、実行中のタ
スクの識別情報を検出し、当該検出したタスクの識別情
報が、前記検出した位置情報に一致する位置情報と一緒
に受け付けた識別情報に含まれない場合には、前記命令
の実行に応じてなされるタスクの実行停止を解除する手
段を備えることを特徴とする。
【0010】この発明のデバッグ支援装置では、上記の
サブルーチンに設定されたブレークポイントを指定する
命令が実行された場合、その命令の位置情報に一致する
位置情報が、そのサブルーチンを呼び出したタスクの識
別情報と一緒に利用者から指定されていない場合には、
タスクの実行は停止されない。すなわち、上記のサブル
ーチンに設定された命令は、その設定を指定した利用者
のデバッグ対象のタスクから呼び出された場合にのみ有
効となり、他の利用者のデバッグ対象のタスクの実行を
停止させることはない。
サブルーチンに設定されたブレークポイントを指定する
命令が実行された場合、その命令の位置情報に一致する
位置情報が、そのサブルーチンを呼び出したタスクの識
別情報と一緒に利用者から指定されていない場合には、
タスクの実行は停止されない。すなわち、上記のサブル
ーチンに設定された命令は、その設定を指定した利用者
のデバッグ対象のタスクから呼び出された場合にのみ有
効となり、他の利用者のデバッグ対象のタスクの実行を
停止させることはない。
【0011】また、本発明は、上記のデバッグ支援装置
を、前記複数の利用者の各々が入力を行う複数の計算機
を含む、ネットワークにより接続された複数の計算機に
より構成することで、遠離地の利用者のデバッグを可能
とする。
を、前記複数の利用者の各々が入力を行う複数の計算機
を含む、ネットワークにより接続された複数の計算機に
より構成することで、遠離地の利用者のデバッグを可能
とする。
【0012】さらに、本発明は、上記のデバッグ支援装
置で、前記ブレークポイントを指定する命令が実行され
た場合に、当該ブレークポイントを指定した利用者に、
タスクの実行停止を通知することを可能にする。
置で、前記ブレークポイントを指定する命令が実行され
た場合に、当該ブレークポイントを指定した利用者に、
タスクの実行停止を通知することを可能にする。
【0013】
【発明の実施の形態】以下で、本発明の実施形態を、図
面を用いて詳細に説明する。
面を用いて詳細に説明する。
【0014】図1に、本発明の実施形態に係る計算機10
1のソフトウェア構成を示す。
1のソフトウェア構成を示す。
【0015】計算機101は、マルチタスクのOS104を備
え、OS104の管理により複数のタスクを並行して実行
することができる。また、ネットワークにより複数の端
末に接続され、OS104により複数タスクの実行を端末
別に管理することもできる。さらに、計算機101はデバ
ッグに係わるソフトウェアとして、ブレークポイントに
関する情報を格納するブレーク情報管理テーブル106
と、利用者との間のインタフェースとして機能するデバ
ッガコマンド102と、ブレークポイントの設定やブレー
ク情報管理テーブル106の設定を行うデバッガタスク103
と、ブレークポイントで停止したタスクに関する情報を
格納するブレーク報告テーブルA107とブレーク報告テ
ーブルB108と、デバッグ対象のタスクの実行がブレー
クポイントで停止したことをデバッガコマンド102に報
告するブレーク報告タスク105と、OS104の管理により
並行して実行されるユーザタスク109〜111と、ユーザタ
スク109〜111の内の複数のタスクから呼び出され特定の
処理を行うサブルーチン(共有サブルーチン)112とを
有する。なお、図1におけるユーザタスクと共有サブル
ーチンは、それぞれ任意の数設けることができる。ま
た、ここでは、利用者が直接起動するプログラムをコマ
ンドとし、コマンドやOS104によって起動されるプロ
グラムをタスクとして両者を区別している。
え、OS104の管理により複数のタスクを並行して実行
することができる。また、ネットワークにより複数の端
末に接続され、OS104により複数タスクの実行を端末
別に管理することもできる。さらに、計算機101はデバ
ッグに係わるソフトウェアとして、ブレークポイントに
関する情報を格納するブレーク情報管理テーブル106
と、利用者との間のインタフェースとして機能するデバ
ッガコマンド102と、ブレークポイントの設定やブレー
ク情報管理テーブル106の設定を行うデバッガタスク103
と、ブレークポイントで停止したタスクに関する情報を
格納するブレーク報告テーブルA107とブレーク報告テ
ーブルB108と、デバッグ対象のタスクの実行がブレー
クポイントで停止したことをデバッガコマンド102に報
告するブレーク報告タスク105と、OS104の管理により
並行して実行されるユーザタスク109〜111と、ユーザタ
スク109〜111の内の複数のタスクから呼び出され特定の
処理を行うサブルーチン(共有サブルーチン)112とを
有する。なお、図1におけるユーザタスクと共有サブル
ーチンは、それぞれ任意の数設けることができる。ま
た、ここでは、利用者が直接起動するプログラムをコマ
ンドとし、コマンドやOS104によって起動されるプロ
グラムをタスクとして両者を区別している。
【0016】<デバッガコマンドの処理>図2は、デバ
ッガコマンド102の処理を示す流れ図である。
ッガコマンド102の処理を示す流れ図である。
【0017】デバッガコマンド102は、OS104の管理下
で、複数の利用者により個別に起動され、利用者毎に各
種デバッグ処理を実施する。デバッガコマンド102は起
動後、まず、ブレーク報告タスク105の報告に対応する
ための処理を設定し(201)、デバッグ処理種別の入力待
ち状態となる(202)。利用者からデバッグ処理種別の入
力があると、その入力値に応じて、ブレークポイント設
定要求処理(203)、ブレークポイント設定取り消し処理
(204)、ブレーク解除(タスクの再実行)要求処理(20
5)、レジスタ内容読み書き処理(206)および、タスクの
起動処理(207)の内のいずれかの処理を行う。そして、
処理の終了後に、再びデバッグ処理種別の入力待ち状態
となる(201)。
で、複数の利用者により個別に起動され、利用者毎に各
種デバッグ処理を実施する。デバッガコマンド102は起
動後、まず、ブレーク報告タスク105の報告に対応する
ための処理を設定し(201)、デバッグ処理種別の入力待
ち状態となる(202)。利用者からデバッグ処理種別の入
力があると、その入力値に応じて、ブレークポイント設
定要求処理(203)、ブレークポイント設定取り消し処理
(204)、ブレーク解除(タスクの再実行)要求処理(20
5)、レジスタ内容読み書き処理(206)および、タスクの
起動処理(207)の内のいずれかの処理を行う。そして、
処理の終了後に、再びデバッグ処理種別の入力待ち状態
となる(201)。
【0018】ブレークポイント設定要求処理203では、
ブレークポイントの設定に必要となる情報を利用者から
受け取り、受け取った情報の設定をデバッガタスク103
に要求する。利用者より受け取る情報は、利用者がブレ
ークポイントをタスクと共有サブルーチンのいずれに設
定するかにより異なる。すなわち、タスクに設定する場
合は、そのタスクに割り当てられたID(識別名称)
と、そのタスクの実行モジュールの先頭位置に対するブ
レークポイントの相対アドレスを受け付ける。共有サブ
ルーチンに設定する場合には、その共有サブルーチンに
割り当てられたIDと、その共有サブルーチンにおける
ブレークポイントの相対アドレスと、その共有サブルー
チンを呼び出すタスクのIDを受け取る。
ブレークポイントの設定に必要となる情報を利用者から
受け取り、受け取った情報の設定をデバッガタスク103
に要求する。利用者より受け取る情報は、利用者がブレ
ークポイントをタスクと共有サブルーチンのいずれに設
定するかにより異なる。すなわち、タスクに設定する場
合は、そのタスクに割り当てられたID(識別名称)
と、そのタスクの実行モジュールの先頭位置に対するブ
レークポイントの相対アドレスを受け付ける。共有サブ
ルーチンに設定する場合には、その共有サブルーチンに
割り当てられたIDと、その共有サブルーチンにおける
ブレークポイントの相対アドレスと、その共有サブルー
チンを呼び出すタスクのIDを受け取る。
【0019】ブレークポイント設定取り消し処理204で
は、ブレークポイント設定要求処理203でブレークポイ
ントを設定されたタスク(または、共有サブルーチン)
のIDと、ブレークポイントの相対アドレスを利用者か
ら受け取り、当該ブレークポイントの設定の取り消しを
デバッガタスク103に要求する。ブレーク解除要求処理2
05では、ブレークポイントで停止しているタスクのID
を利用者から受け取り、当該タスクの実行再開をデバッ
ガタスク103に要求する。レジスタ内容読み書き処理206
では、ブレークポイントで停止しているタスクのID
と、レジスタ(変数)の名称を利用者から受け取り、当
該レジスタに対する読み出しや、書き込みをデバッガタ
スク103に要求する。タスクの起動処理207では、利用者
から起動対象のタスクのIDを受け取り、当該タスクの
起動をデバッガタスク103に要求する。
は、ブレークポイント設定要求処理203でブレークポイ
ントを設定されたタスク(または、共有サブルーチン)
のIDと、ブレークポイントの相対アドレスを利用者か
ら受け取り、当該ブレークポイントの設定の取り消しを
デバッガタスク103に要求する。ブレーク解除要求処理2
05では、ブレークポイントで停止しているタスクのID
を利用者から受け取り、当該タスクの実行再開をデバッ
ガタスク103に要求する。レジスタ内容読み書き処理206
では、ブレークポイントで停止しているタスクのID
と、レジスタ(変数)の名称を利用者から受け取り、当
該レジスタに対する読み出しや、書き込みをデバッガタ
スク103に要求する。タスクの起動処理207では、利用者
から起動対象のタスクのIDを受け取り、当該タスクの
起動をデバッガタスク103に要求する。
【0020】なお、ブレークポイントの位置情報を、計
算機101が直接実行できる実行モジュールにおける相対
アドレスに制限すると、高級言語やアセンブラ言語で記
述されるプログラムをデバッグする利用者は、コンパイ
ル後の実行モジュールにおけるブレークポイントのアド
レスを求めなければならず、不便である。このため、デ
バッガコマンド102に、高級言語などのプログラムの任
意の命令行を実行可能モジュールにおけるアドレスに変
換する機能を備えてもよい。
算機101が直接実行できる実行モジュールにおける相対
アドレスに制限すると、高級言語やアセンブラ言語で記
述されるプログラムをデバッグする利用者は、コンパイ
ル後の実行モジュールにおけるブレークポイントのアド
レスを求めなければならず、不便である。このため、デ
バッガコマンド102に、高級言語などのプログラムの任
意の命令行を実行可能モジュールにおけるアドレスに変
換する機能を備えてもよい。
【0021】<ブレークポイントの設定処理>図3は、
図2におけるブレークポイント設定要求処理203の流れ
図である。
図2におけるブレークポイント設定要求処理203の流れ
図である。
【0022】この処理では、まず、入力待ち状態となっ
て、利用者から、ブレークポイントの設定対象のタスク
(共有サブルーチンを含む)のIDと、ブレークポイン
トの相対アドレスを受け取る(301)。さらに、ブレーク
ポイントを設定するタスクと並行して実行する必要のあ
るタスクのIDを受け取る(302)。以上により得たID
がデバッグ対象のタスクのIDとなる。次に、プロセス
の切替え制御のためにOS104により実行対象の各プロ
セスに割り当てられたID(プロセスID)の内、実行
中の本デバッガコマンド102に割り当てられたプロセス
IDを取り込む(303)。そして、処理301で得たタスクの
IDと相対アドレスに基づいて、ブレークポイントの絶
対アドレスを計算し(304)、計算した絶対アドレス、デ
バッグ対象のタスクのID、および本デバッガコマンド
102のプロセスIDを、ブレーク情報としてデバッガタ
スク103に送信して、デバッグ処理を要求する (305)。
て、利用者から、ブレークポイントの設定対象のタスク
(共有サブルーチンを含む)のIDと、ブレークポイン
トの相対アドレスを受け取る(301)。さらに、ブレーク
ポイントを設定するタスクと並行して実行する必要のあ
るタスクのIDを受け取る(302)。以上により得たID
がデバッグ対象のタスクのIDとなる。次に、プロセス
の切替え制御のためにOS104により実行対象の各プロ
セスに割り当てられたID(プロセスID)の内、実行
中の本デバッガコマンド102に割り当てられたプロセス
IDを取り込む(303)。そして、処理301で得たタスクの
IDと相対アドレスに基づいて、ブレークポイントの絶
対アドレスを計算し(304)、計算した絶対アドレス、デ
バッグ対象のタスクのID、および本デバッガコマンド
102のプロセスIDを、ブレーク情報としてデバッガタ
スク103に送信して、デバッグ処理を要求する (305)。
【0023】ここで、デバッガコマンド102とデバッガ
タスク103間のデータ転送は、IPC(Inter Process C
ommunication:プロセス間通信)により行われる。IP
Cを用いることで、デバッガタスク103は、任意のタイ
ミングで複数起動されるデバッガコマンド102に対応で
きる。また、ネットワークにより接続された他の端末に
おいてデバッガコマンドが起動される場合には、そのデ
バッガコマンドからの処理要求を、ネットワークを介し
て受け取り処理することができる。
タスク103間のデータ転送は、IPC(Inter Process C
ommunication:プロセス間通信)により行われる。IP
Cを用いることで、デバッガタスク103は、任意のタイ
ミングで複数起動されるデバッガコマンド102に対応で
きる。また、ネットワークにより接続された他の端末に
おいてデバッガコマンドが起動される場合には、そのデ
バッガコマンドからの処理要求を、ネットワークを介し
て受け取り処理することができる。
【0024】図4は、デバッガタスク103の処理の流れ
図である。
図である。
【0025】デバッガタスク103は、デバッガコマンド1
02からのデバッグ処理の要求に常時対応できるように、
OS104の立ち上げ時に起動されて、ブレーク情報の受
信待ち状態となる(401)。デバッガコマンド102からブレ
ーク情報を受信すると、受信した情報に含まれるIDと
絶対アドレスにより定まるタスク上の1命令を、OS10
4にブレークの発生を認識させるトラップ命令に書き換
える(402)。次に、OS104にシステムコールを送ること
で、トラップ命令の書き換えが行われた位置にあった書
き換え前の命令と、上記受信した情報内の絶対アドレ
ス、プロセスID、およびデバッグ対象のタスクのID
を、ブレーク情報管理テーブル106に設定させる(403)。
そして、再びデバッガコマンド102からのブレーク情報
受信待ち状態となり(401)、他の利用者によって起動さ
れるデバッガコマンド102からの設定要求を受け付け
る。
02からのデバッグ処理の要求に常時対応できるように、
OS104の立ち上げ時に起動されて、ブレーク情報の受
信待ち状態となる(401)。デバッガコマンド102からブレ
ーク情報を受信すると、受信した情報に含まれるIDと
絶対アドレスにより定まるタスク上の1命令を、OS10
4にブレークの発生を認識させるトラップ命令に書き換
える(402)。次に、OS104にシステムコールを送ること
で、トラップ命令の書き換えが行われた位置にあった書
き換え前の命令と、上記受信した情報内の絶対アドレ
ス、プロセスID、およびデバッグ対象のタスクのID
を、ブレーク情報管理テーブル106に設定させる(403)。
そして、再びデバッガコマンド102からのブレーク情報
受信待ち状態となり(401)、他の利用者によって起動さ
れるデバッガコマンド102からの設定要求を受け付け
る。
【0026】図5に、ブレーク情報管理テーブル108の
構成を示す。ブレーク情報管理テーブル106は、上記絶
対アドレスの格納エリア501と、上記プロセスIDの格
納エリア502と、上記書き換え前の命令の格納エリア503
と、上記デバッグ対象のタスクのIDの格納エリア5041
〜504nとを有し、ブレークポイントの設定毎に、以上の
絶対アドレス、書き換え前の命令、デバッグ対象のタス
クのIDを、組で格納する。
構成を示す。ブレーク情報管理テーブル106は、上記絶
対アドレスの格納エリア501と、上記プロセスIDの格
納エリア502と、上記書き換え前の命令の格納エリア503
と、上記デバッグ対象のタスクのIDの格納エリア5041
〜504nとを有し、ブレークポイントの設定毎に、以上の
絶対アドレス、書き換え前の命令、デバッグ対象のタス
クのIDを、組で格納する。
【0027】図6は、デバッガタスク103の処理403(図
4)によりOS104がブレーク情報管理テーブル108に対
して行う処理の流れ図である。OS104はデバッガタス
ク103からのシステムコールに応じて、まず、ブレーク
情報管理テーブル106内の空きエリアを検索する(601)。
そして、検索により得た空きの格納エリア501、502、50
3、5041〜504nにそれぞれ、指定された絶対アドレス、
プロセスID、書き換え前の命令、およびデバッグ対象
のタスクのIDを設定する(602〜605)。
4)によりOS104がブレーク情報管理テーブル108に対
して行う処理の流れ図である。OS104はデバッガタス
ク103からのシステムコールに応じて、まず、ブレーク
情報管理テーブル106内の空きエリアを検索する(601)。
そして、検索により得た空きの格納エリア501、502、50
3、5041〜504nにそれぞれ、指定された絶対アドレス、
プロセスID、書き換え前の命令、およびデバッグ対象
のタスクのIDを設定する(602〜605)。
【0028】<ブレーク発生時の報告処理>図7は、ブ
レークポイントとして設定されたトラップ命令の実行に
より割り込みが生じたときのOS104の処理の流れ図で
ある。
レークポイントとして設定されたトラップ命令の実行に
より割り込みが生じたときのOS104の処理の流れ図で
ある。
【0029】OS104は、トラップ命令による割り込み
を受けると、当該トラップ命令のアドレス(絶対アドレ
ス)と、当該トラップ命令実行時に実行中であったタス
クのIDを検出し(701)、検出したアドレスと組でブレ
ーク情報管理テーブル106に格納されているタスクのI
Dに、検出したIDと一致するものがあるか調べる(70
2)。そして、一致するIDが存在しない場合には、デバ
ッグ対象のタスクの動作によって生じた割り込み(ブレ
ーク)ではないと判断して、停止しているタスクの実行
を再開する(704)。この処理は、ブレークポイントの設
定された共有サブルーチンが、デバッグ対象でないタス
クから呼び出された場合に、ブレークポイントでそのタ
スクの実行が停止することを防ぐために行う。
を受けると、当該トラップ命令のアドレス(絶対アドレ
ス)と、当該トラップ命令実行時に実行中であったタス
クのIDを検出し(701)、検出したアドレスと組でブレ
ーク情報管理テーブル106に格納されているタスクのI
Dに、検出したIDと一致するものがあるか調べる(70
2)。そして、一致するIDが存在しない場合には、デバ
ッグ対象のタスクの動作によって生じた割り込み(ブレ
ーク)ではないと判断して、停止しているタスクの実行
を再開する(704)。この処理は、ブレークポイントの設
定された共有サブルーチンが、デバッグ対象でないタス
クから呼び出された場合に、ブレークポイントでそのタ
スクの実行が停止することを防ぐために行う。
【0030】一致するIDが存在する場合は、デバッグ
対象のタスクにおいて生じたブレークと判断して、一致
するIDと組でエリア5041〜504nに格納されている全て
のIDのタスクの実行を抑止する(703)。次に、一致し
たタスクのIDと、それと組で格納されている絶対アド
レスとプロセスIDを、ブレーク報告テーブル1107に
格納し(705)、ブレーク報告タスク105の待ち状態を解除
する(706)。
対象のタスクにおいて生じたブレークと判断して、一致
するIDと組でエリア5041〜504nに格納されている全て
のIDのタスクの実行を抑止する(703)。次に、一致し
たタスクのIDと、それと組で格納されている絶対アド
レスとプロセスIDを、ブレーク報告テーブル1107に
格納し(705)、ブレーク報告タスク105の待ち状態を解除
する(706)。
【0031】ブレーク報告テーブル1107の構成を図8
に示す。ブレーク報告テーブル1107は、OS104とブレ
ーク報告タスク105間のデータ受け渡し用のテーブルで
あり、上記絶対アドレスの格納エリア801と、上記プロ
セスIDの格納エリア802と、上記タスクIDの格納エ
リア803とで構成される。
に示す。ブレーク報告テーブル1107は、OS104とブレ
ーク報告タスク105間のデータ受け渡し用のテーブルで
あり、上記絶対アドレスの格納エリア801と、上記プロ
セスIDの格納エリア802と、上記タスクIDの格納エ
リア803とで構成される。
【0032】図9は、ブレーク報告タスク105の処理の
流れ図である。
流れ図である。
【0033】ブレーク報告タスク105は、デバッグ対象
のタスクの実行がブレークポイントにおいて停止した場
合に、当該ブレークポイントを設定したデバッガコマン
ド102にその停止を報告するものである。
のタスクの実行がブレークポイントにおいて停止した場
合に、当該ブレークポイントを設定したデバッガコマン
ド102にその停止を報告するものである。
【0034】ブレーク報告タスク105は、ブレークの発
生に常時対応できるように、OS104の立ち上げ時に起
動されて、OS104からの通知待ち状態となる(901)。O
S104からのブレーク発生の通知により待ち状態が解除
されると、ブレーク報告テーブル1107に格納されてい
る絶対アドレスとタスクのIDを読み出して、ブレーク
報告テーブル2108に格納する(902)。ブレーク報告テー
ブル2108は、ブレーク報告タスク105とデバッガコマン
ド102間のデータ受け渡しに用いられるもので、図10
に示す構成を有する。次に、ブレーク報告テーブル110
7に格納されているプロセスIDにより1つのデバッガ
コマンド102を特定し、特定したデバッガコマンド102に
ブレークの発生を通知する(903)。そして、再びイベン
ト待ち状態となる(901)。
生に常時対応できるように、OS104の立ち上げ時に起
動されて、OS104からの通知待ち状態となる(901)。O
S104からのブレーク発生の通知により待ち状態が解除
されると、ブレーク報告テーブル1107に格納されてい
る絶対アドレスとタスクのIDを読み出して、ブレーク
報告テーブル2108に格納する(902)。ブレーク報告テー
ブル2108は、ブレーク報告タスク105とデバッガコマン
ド102間のデータ受け渡しに用いられるもので、図10
に示す構成を有する。次に、ブレーク報告テーブル110
7に格納されているプロセスIDにより1つのデバッガ
コマンド102を特定し、特定したデバッガコマンド102に
ブレークの発生を通知する(903)。そして、再びイベン
ト待ち状態となる(901)。
【0035】図11は、ブレーク発生の通知を受けた時
のデバッガコマンド102の処理の流れ図である。デバッ
ガコマンド102は、ブレーク発生の通知を受けると、ブ
レーク報告テーブル2108内のエリア1001,1002に格納
されているブレークポイントの絶対アドレスとタスクの
IDを読み出し(1101)、読み出した情報をブレークポイ
ント到達メッセージとして、本デバッガコマンド102を
起動した端末に表示させる(1102)。これにより、利用者
は自分の指定したブレークポイントにおいてブレークが
生じた旨を知ることができる。なお、この処理は、図2
の処理201で設定され、デバッグ処理種別の入力待ち状
態(202)において実施される。
のデバッガコマンド102の処理の流れ図である。デバッ
ガコマンド102は、ブレーク発生の通知を受けると、ブ
レーク報告テーブル2108内のエリア1001,1002に格納
されているブレークポイントの絶対アドレスとタスクの
IDを読み出し(1101)、読み出した情報をブレークポイ
ント到達メッセージとして、本デバッガコマンド102を
起動した端末に表示させる(1102)。これにより、利用者
は自分の指定したブレークポイントにおいてブレークが
生じた旨を知ることができる。なお、この処理は、図2
の処理201で設定され、デバッグ処理種別の入力待ち状
態(202)において実施される。
【0036】<動作例>次に、利用者1と利用者2の2
人が個別にデバッグを行う場合の計算機101の動作例
を、図12を用いて説明する。なお、以下では利用者1
に係わるものには符号の末尾に(1)を付し、利用者2に
係わるものには(2)を付す。
人が個別にデバッグを行う場合の計算機101の動作例
を、図12を用いて説明する。なお、以下では利用者1
に係わるものには符号の末尾に(1)を付し、利用者2に
係わるものには(2)を付す。
【0037】図12において、利用者1は、デバッガコ
マンド102(1)を起動してブレークポイント設定要求処理
を指定する。このときデバッガコマンド102(1)にはプロ
セスID=P1が割り当てられる。そして、利用者1は
ブレークポイント設定要求処理において、ブレークポイ
ントの設定対象のタスクにID=T3のタスクC12013
を指定し、タスクC12013におけるブレークポイント120
3の相対アドレスを指定する。さらに、タスクC12013と
並行して動作させる必要のある、ID=T1,T2のタ
スクA12011とタスクB12012を指定する。これにより、
利用者1のデバッグ対象のタスク1201は、タスクA1201
1、タスクB12012、およびタスクC12013となる。次
に、デバッガコマンド102(1)は、自らのプロセスID=
P1を得た後、計算によりブレークポイントの絶対アド
レス=AD1を求め、求めた絶対アドレス=AD1と、
デバッグ対象のタスクID=T1,T2,T3と、自プ
ロセスID=P1をブレーク情報としてデバッガタスク
103に送信する。
マンド102(1)を起動してブレークポイント設定要求処理
を指定する。このときデバッガコマンド102(1)にはプロ
セスID=P1が割り当てられる。そして、利用者1は
ブレークポイント設定要求処理において、ブレークポイ
ントの設定対象のタスクにID=T3のタスクC12013
を指定し、タスクC12013におけるブレークポイント120
3の相対アドレスを指定する。さらに、タスクC12013と
並行して動作させる必要のある、ID=T1,T2のタ
スクA12011とタスクB12012を指定する。これにより、
利用者1のデバッグ対象のタスク1201は、タスクA1201
1、タスクB12012、およびタスクC12013となる。次
に、デバッガコマンド102(1)は、自らのプロセスID=
P1を得た後、計算によりブレークポイントの絶対アド
レス=AD1を求め、求めた絶対アドレス=AD1と、
デバッグ対象のタスクID=T1,T2,T3と、自プ
ロセスID=P1をブレーク情報としてデバッガタスク
103に送信する。
【0038】ブレーク情報待ち状態となっていたデバッ
ガタスク103は、デバッガコマンド102(1)からのブレー
ク情報を受信すると、絶対アドレス=AD1の命令をト
ラップ命令に書き換える。次に、ブレーク情報管理テー
ブル106への設定を指示するシステムコールをOS104へ
送り、設定情報として絶対アドレス=AD1、自プロセ
スID=P1、書き換え前の命令([add rD,rA,
rB]とする)、デバッグ対象のタスクのID=T1,
T2,T3を指定する。
ガタスク103は、デバッガコマンド102(1)からのブレー
ク情報を受信すると、絶対アドレス=AD1の命令をト
ラップ命令に書き換える。次に、ブレーク情報管理テー
ブル106への設定を指示するシステムコールをOS104へ
送り、設定情報として絶対アドレス=AD1、自プロセ
スID=P1、書き換え前の命令([add rD,rA,
rB]とする)、デバッグ対象のタスクのID=T1,
T2,T3を指定する。
【0039】OS104は、上記システムコールを受ける
と、ブレーク情報管理テーブル106の空きエリアを検索
し、ブレークポイントの絶対アドレスの格納エリア501
(1)にAD1を設定し、デバッガコマンドのプロセスI
Dの格納エリア502(1)にP1を設定し、トラップ命令書
き換え前の命令の格納エリア503(1)に命令[add r
D,rA,rB]を設定し、デバッグ対象のタスクIDの
格納エリア5041(1),5042(1),5043(1)にそれぞれT
1,T2,T3を設定する。
と、ブレーク情報管理テーブル106の空きエリアを検索
し、ブレークポイントの絶対アドレスの格納エリア501
(1)にAD1を設定し、デバッガコマンドのプロセスI
Dの格納エリア502(1)にP1を設定し、トラップ命令書
き換え前の命令の格納エリア503(1)に命令[add r
D,rA,rB]を設定し、デバッグ対象のタスクIDの
格納エリア5041(1),5042(1),5043(1)にそれぞれT
1,T2,T3を設定する。
【0040】一方、利用者2はデバッガコマンド102(2)
を起動し(プロセスID=P2とする)、ブレークポイ
ント1204の設定対象として共有サブルーチン1205のID
=T6と、共有サブルーチン1205における相対アドレス
を指定し、さらに、共有サブルーチン1205を呼び出すタ
スクE12022と、タスクE12022と共に動作するタスクD
12021の各ID=T4,T5を指定する。この後、利用
者1で説明したのと同じ手順で処理が行われて、ブレー
ク情報管理テーブル106の格納エリア501(2)に絶対アド
レス=AD2、格納エリア502(2)にプロセスID=P
2、格納エリア503(2)に命令[Iha rD,d(rA)]、
そして、格納エリア5041(2),5042(2)にはT4,T5が
それぞれ設定される。
を起動し(プロセスID=P2とする)、ブレークポイ
ント1204の設定対象として共有サブルーチン1205のID
=T6と、共有サブルーチン1205における相対アドレス
を指定し、さらに、共有サブルーチン1205を呼び出すタ
スクE12022と、タスクE12022と共に動作するタスクD
12021の各ID=T4,T5を指定する。この後、利用
者1で説明したのと同じ手順で処理が行われて、ブレー
ク情報管理テーブル106の格納エリア501(2)に絶対アド
レス=AD2、格納エリア502(2)にプロセスID=P
2、格納エリア503(2)に命令[Iha rD,d(rA)]、
そして、格納エリア5041(2),5042(2)にはT4,T5が
それぞれ設定される。
【0041】<タスクにおけるブレークの発生>デバッ
ガコマンド102(1)が設定したデバッグ対象のタスク群12
01は、タスクA12011、タスクB12012、およびタスクC
12013で構成される。マルチタスクのOS104は、タスク
群1201のタスクA12011が起動されると、タスクA1201
1、タスクB12012、タスクC12013の順にプロセッサの
処理を順次割り当て、タスクC12013の実行終了後にタ
スクB12012に処理を移し、タスクB12012の実行終了後
にはタスクA12011に処理を移して、タスク群1201の実
行を終了する。
ガコマンド102(1)が設定したデバッグ対象のタスク群12
01は、タスクA12011、タスクB12012、およびタスクC
12013で構成される。マルチタスクのOS104は、タスク
群1201のタスクA12011が起動されると、タスクA1201
1、タスクB12012、タスクC12013の順にプロセッサの
処理を順次割り当て、タスクC12013の実行終了後にタ
スクB12012に処理を移し、タスクB12012の実行終了後
にはタスクA12011に処理を移して、タスク群1201の実
行を終了する。
【0042】タスクC12013の実行中、利用者1が設定
したブレークポイント1203のトラップ命令が実行される
と、OS04に割り込みが生じる。この割り込みを受けた
OS04は、実行中のタスクのID=T3を検出し、ブレ
ーク情報管理テーブル106の絶対アドレス=AD1に対
応する格納エリアを調べことで、ID=T3と組で格納
されているID=T1,T2を検出して、検出したID
のタスクA12011、タスクB12012、タスクC12013の実
行を抑止する。そして、ブレーク報告テーブル1107の
格納エリア801に絶対アドレス=AD1、格納エリア802
にプロセスID=P1、格納エリア803にブレークの生
じたタスクのID=T3をそれぞれ設定した後、ブレー
ク報告タスク105の待ち状態を解除する。
したブレークポイント1203のトラップ命令が実行される
と、OS04に割り込みが生じる。この割り込みを受けた
OS04は、実行中のタスクのID=T3を検出し、ブレ
ーク情報管理テーブル106の絶対アドレス=AD1に対
応する格納エリアを調べことで、ID=T3と組で格納
されているID=T1,T2を検出して、検出したID
のタスクA12011、タスクB12012、タスクC12013の実
行を抑止する。そして、ブレーク報告テーブル1107の
格納エリア801に絶対アドレス=AD1、格納エリア802
にプロセスID=P1、格納エリア803にブレークの生
じたタスクのID=T3をそれぞれ設定した後、ブレー
ク報告タスク105の待ち状態を解除する。
【0043】OS104から待ち状態を解除されたブレー
ク報告タスク105は、ブレーク報告テーブル1107から絶
対アドレス=AD1と、実行タスクID=T3を読み出
して、ブレーク報告テーブル2108に格納する。そし
て、ブレーク報告テーブル1107からプロセスID=P
1を読み出して、P1により特定されるデバッガコマン
ド102(1)にブレークの発生を報告する。
ク報告タスク105は、ブレーク報告テーブル1107から絶
対アドレス=AD1と、実行タスクID=T3を読み出
して、ブレーク報告テーブル2108に格納する。そし
て、ブレーク報告テーブル1107からプロセスID=P
1を読み出して、P1により特定されるデバッガコマン
ド102(1)にブレークの発生を報告する。
【0044】報告を受けたデバッガコマンド102(1)は、
ブレーク報告テーブル2108に格納された絶対アドレス
=AD1,タスクID=T3を読み出し、読み出した結
果をブレークポイント到達メッセージとして端末に表示
する。利用者1はこれにより、自分が設定したブレーク
ポイント1203にてブレークが発生した旨を知る。
ブレーク報告テーブル2108に格納された絶対アドレス
=AD1,タスクID=T3を読み出し、読み出した結
果をブレークポイント到達メッセージとして端末に表示
する。利用者1はこれにより、自分が設定したブレーク
ポイント1203にてブレークが発生した旨を知る。
【0045】<共有サブルーチンにおけるブレークの発
生>一方、デバッガコマンド102(2)が設定したデバッグ
対象のタスク群1202は、タスクD12021と、タスクE120
22で構成される。OS104は、タスクD12021が起動され
ると、その実行途中でタスクE12022に処理を移す。実
行の途中で、タスクE12022は共有サブルーチンF1205
を呼び出す。タスクE12022実行終了後、タスクD12021
に処理が移り、タスク群1202の実行が終了する。
生>一方、デバッガコマンド102(2)が設定したデバッグ
対象のタスク群1202は、タスクD12021と、タスクE120
22で構成される。OS104は、タスクD12021が起動され
ると、その実行途中でタスクE12022に処理を移す。実
行の途中で、タスクE12022は共有サブルーチンF1205
を呼び出す。タスクE12022実行終了後、タスクD12021
に処理が移り、タスク群1202の実行が終了する。
【0046】共有サブルーチンF1205の実行中、利用者
2が設定したブレークポイント1204のトラップ命令が実
行されると、OS04に割り込みが生じる。割り込みを受
けたOS04は、実行中のタスクのID=T4を検出し、
ブレークの生じた絶対アドレス=AD2に対応するブレ
ーク情報管理テーブル106の格納エリアを調べること
で、ID=T4と組で格納されているID=T5を検出
し、検出したIDのタスクD12021とタスクE12022の実
行を抑止する。そして、ブレーク報告テーブル1107
に、絶対アドレス=AD2、プロセスID=P2、ブレ
ークの生じたタスクのID=T5を格納した後、ブレー
ク報告タスク105の待ち状態を解除する。
2が設定したブレークポイント1204のトラップ命令が実
行されると、OS04に割り込みが生じる。割り込みを受
けたOS04は、実行中のタスクのID=T4を検出し、
ブレークの生じた絶対アドレス=AD2に対応するブレ
ーク情報管理テーブル106の格納エリアを調べること
で、ID=T4と組で格納されているID=T5を検出
し、検出したIDのタスクD12021とタスクE12022の実
行を抑止する。そして、ブレーク報告テーブル1107
に、絶対アドレス=AD2、プロセスID=P2、ブレ
ークの生じたタスクのID=T5を格納した後、ブレー
ク報告タスク105の待ち状態を解除する。
【0047】共有サブルーチンF1205がタスクE12022
以外のタスク(例えば、タスクA12011)から呼び出さ
れた状態で、絶対アドレス=AD2でブレークが発生し
た場合、検出されるID(=T1)に一致するIDは、
絶対アドレス=AD2に対応するブレーク情報管理テー
ブル106の格納エリアには存在しない。このため、OS0
4は、ブレーク発生時に実行していたタスク(タスクA1
2011)について設定されたブレークポイントではないと
判断して、ブレークポイント1204の書き換え前の命令
[Iha rD,d(rA)]を実行した後、トラップ命令
の次から共有サブルーチン1205の実行を再開する。
以外のタスク(例えば、タスクA12011)から呼び出さ
れた状態で、絶対アドレス=AD2でブレークが発生し
た場合、検出されるID(=T1)に一致するIDは、
絶対アドレス=AD2に対応するブレーク情報管理テー
ブル106の格納エリアには存在しない。このため、OS0
4は、ブレーク発生時に実行していたタスク(タスクA1
2011)について設定されたブレークポイントではないと
判断して、ブレークポイント1204の書き換え前の命令
[Iha rD,d(rA)]を実行した後、トラップ命令
の次から共有サブルーチン1205の実行を再開する。
【0048】OS104からブレーク発生通知を受けたブ
レーク報告タスク105は、前述と同様の処理を行い、プ
ロセスID=P2のデバッガコマンド102(2)に対しブレ
ークの発生を報告する。そして、デバッガコマンド102
(2)により、ブレークポイント到達メッセージが端末に
表示され、利用者2はこれにより、自分が設定したブレ
ークポイントにてブレークが発生した旨を知る。
レーク報告タスク105は、前述と同様の処理を行い、プ
ロセスID=P2のデバッガコマンド102(2)に対しブレ
ークの発生を報告する。そして、デバッガコマンド102
(2)により、ブレークポイント到達メッセージが端末に
表示され、利用者2はこれにより、自分が設定したブレ
ークポイントにてブレークが発生した旨を知る。
【0049】以上で説明したように、本実施形態の計算
機101では、複数の利用者の各々が任意のタスク群を指
定し、指定したタスク群のデバッグを個別に行うことが
できる。このため、ある利用者が設定したブレークポイ
ントが、他の利用者のデバッグに影響することはない。
機101では、複数の利用者の各々が任意のタスク群を指
定し、指定したタスク群のデバッグを個別に行うことが
できる。このため、ある利用者が設定したブレークポイ
ントが、他の利用者のデバッグに影響することはない。
【0050】さらに、ネットワークで接続された他の端
末からのデバッグ指示や、当該他の端末で起動されるデ
バッガコマンドからの指示にも対応できる。
末からのデバッグ指示や、当該他の端末で起動されるデ
バッガコマンドからの指示にも対応できる。
【0051】
【発明の効果】本発明によれば、マルチタスクのOSの
管理下で、複数の利用者が個別に任意のタスク群のデバ
ッグを行うことを可能とするデバッグ支援装置を提供す
ることができる。
管理下で、複数の利用者が個別に任意のタスク群のデバ
ッグを行うことを可能とするデバッグ支援装置を提供す
ることができる。
【図1】 本発明の実施形態に係る計算機のソフトウェ
ア構成。
ア構成。
【図2】 デバッガコマンドの処理の流れ図。
【図3】 図2のブレークポイント設定要求処理の流れ
図。
図。
【図4】 デバッガタスクの処理の流れ図。
【図5】 ブレーク情報格納テーブルの構成図。
【図6】 ブレーク情報管理テーブル設定時のOSの処
理の流れ図。
理の流れ図。
【図7】 ブレーク割り込み受信時のOSの処理の流れ
図。
図。
【図8】 ブレーク報告テーブル1の構成図。
【図9】 ブレーク報告タスクの処理の流れ図。
【図10】 ブレーク報告テーブル2の構成図。
【図11】 ブレーク発生通知受信時のデバッガコマン
ドの処理の流れ図。
ドの処理の流れ図。
【図12】 デバッグ時の計算機の動作を説明するため
の図。
の図。
【図13】 図12におけるブレーク情報格納テーブル
の設定値を示す図。
の設定値を示す図。
101・・・計算機、102・・・デバッガコマンド、103・・・デバッ
ガタスク、104・・・OS、105・・・ブレーク報告タスク、106・
・・ブレーク情報管理テーブル、107・・・ブレーク報告テー
ブル1、108・・・ブレーク報告テーブル2、109,110,111・
・・ユーザタスク、112・・・共有サブルーチン。
ガタスク、104・・・OS、105・・・ブレーク報告タスク、106・
・・ブレーク情報管理テーブル、107・・・ブレーク報告テー
ブル1、108・・・ブレーク報告テーブル2、109,110,111・
・・ユーザタスク、112・・・共有サブルーチン。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中橋 晃文 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 (72)発明者 鈴木 弘 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 (72)発明者 小林 淳一 茨城県日立市大みか町五丁目2番1号 日 立プロセスコンピュータエンジニアリング 株式会社内 (72)発明者 桑原 啓二 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 笹木 亘 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 西山 修治 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 益子 直也 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内
Claims (4)
- 【請求項1】プロセッサと、複数のタスクを並行して実
行するように前記プロセッサを制御するマルチタスクの
OSを備え、前記タスクの実行を、当該タスクに割り当
てた識別情報により管理するデバッグ支援装置であっ
て、 複数の利用者の各々から、デバッグ対象の複数のタスク
の各々に割り当てられた識別情報と、前記デバッグ対象
のタスクの内の少なくとも1つのタスクにおけるブレー
クポイントの位置情報とを受け付けるユーザインタフェ
ース手段と、 当該受け付けたブレークポイントの位置情報に応じて、
前記デバッグ対象のタスクにブレークポイントを指定す
る命令を設定する手段と、 当該ブレークポイントを指定する命令が実行された場合
に、当該命令が設定された実行中のタスクの識別情報を
検出し、検出した識別情報のタスクと、当該識別情報に
一致する識別情報と一緒に受け付けた識別情報のタスク
の実行を停止する手段を備えることを特徴とするデバッ
グ支援装置。 - 【請求項2】請求項1記載のデバッグ支援装置であっ
て、 前記ブレークポイントを指定する命令は、前記複数のタ
スクより共通に呼び出されるサブルーチンにも設定さ
れ、 前記ユーザインタフェース手段は、当該サブルーチンに
おけるブレークポイントの位置情報も入力し、 前記ブレークポイントを指定する命令が実行された場合
に、当該実行された命令の位置情報と、実行中のタスク
の識別情報を検出し、当該検出したタスクの識別情報
が、前記検出した位置情報に一致する位置情報と一緒に
受け付けた識別情報に含まれない場合には、前記命令の
実行に応じてなされるタスクの実行停止を解除する手段
を備えることを特徴とするデバッグ支援装置。 - 【請求項3】請求項1または2記載のデバッグ支援装置
は、 前記複数の利用者の各々が入力を行う複数の計算機を含
む、ネットワークにより接続された複数の計算機により
構成されることを特徴とするデバッグ支援装置。 - 【請求項4】請求項1、2または3記載のデバッグ支援
装置であって、 前記ユーザインタフェース手段は、前記複数の利用者の
各々に対して個別に設けられると共に、利用者にタスク
の実行停止を通知する手段を備え、 前記ブレークポイントを指定する命令が実行された場合
に、当該ブレークポイントの位置情報を受け付けたユー
ザインタフェース手段を特定し、特定したユーザインタ
フェース手段に、利用者への実行停止の通知を行わせる
手段を備えることを特徴とするデバッグ支援装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8066412A JPH09259002A (ja) | 1996-03-22 | 1996-03-22 | デバッグ支援装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8066412A JPH09259002A (ja) | 1996-03-22 | 1996-03-22 | デバッグ支援装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09259002A true JPH09259002A (ja) | 1997-10-03 |
Family
ID=13315066
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8066412A Pending JPH09259002A (ja) | 1996-03-22 | 1996-03-22 | デバッグ支援装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09259002A (ja) |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001051871A (ja) * | 1999-08-09 | 2001-02-23 | Ricoh Co Ltd | リモートデバッグ装置 |
| JP2001134466A (ja) * | 1999-11-08 | 2001-05-18 | Fujitsu Ltd | デバッグ装置及び方法並びにプログラム記録媒体 |
| JP2003162426A (ja) * | 2001-11-28 | 2003-06-06 | Hitachi Ltd | 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法 |
| JP2005078309A (ja) * | 2003-08-29 | 2005-03-24 | Nec Corp | データ処理システム |
| JP2005250821A (ja) * | 2004-03-04 | 2005-09-15 | Renesas Technology Corp | エミュレータ及びマイクロプロセッサ |
| WO2006070510A1 (ja) * | 2004-12-28 | 2006-07-06 | Sony Computer Entertainment Inc. | プログラムデバッグ装置、プログラムデバッグ方法及び情報記憶媒体 |
| JP2006268298A (ja) * | 2005-03-23 | 2006-10-05 | Nec Corp | デバッグ方法及びデバッグ装置 |
| JP2007179567A (ja) * | 2007-02-26 | 2007-07-12 | Nec Corp | データ処理システム |
| WO2009113273A1 (ja) * | 2008-03-14 | 2009-09-17 | パナソニック株式会社 | プログラム実行装置およびその制御方法 |
| JP2012079130A (ja) * | 2010-10-01 | 2012-04-19 | Fujitsu Ltd | デバッグ支援プログラム、デバッグ支援装置、及びデバッグ支援方法 |
| JP2016528650A (ja) * | 2013-08-22 | 2016-09-15 | オラクル・インターナショナル・コーポレイション | クラウドベースのターゲットデバッグ |
-
1996
- 1996-03-22 JP JP8066412A patent/JPH09259002A/ja active Pending
Cited By (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001051871A (ja) * | 1999-08-09 | 2001-02-23 | Ricoh Co Ltd | リモートデバッグ装置 |
| JP2001134466A (ja) * | 1999-11-08 | 2001-05-18 | Fujitsu Ltd | デバッグ装置及び方法並びにプログラム記録媒体 |
| JP2003162426A (ja) * | 2001-11-28 | 2003-06-06 | Hitachi Ltd | 複数cpuの協調デバッグ回路を備えるコンピュータシステム及びデバッグ方法 |
| US7647485B2 (en) | 2003-08-29 | 2010-01-12 | Nec Corporation | Data processing system for debugging utilizing halts in a parallel device |
| JP2005078309A (ja) * | 2003-08-29 | 2005-03-24 | Nec Corp | データ処理システム |
| JP2005250821A (ja) * | 2004-03-04 | 2005-09-15 | Renesas Technology Corp | エミュレータ及びマイクロプロセッサ |
| WO2006070510A1 (ja) * | 2004-12-28 | 2006-07-06 | Sony Computer Entertainment Inc. | プログラムデバッグ装置、プログラムデバッグ方法及び情報記憶媒体 |
| JP2006185360A (ja) * | 2004-12-28 | 2006-07-13 | Sony Computer Entertainment Inc | プログラムデバッグ装置、プログラムデバッグ方法及びプログラム |
| JP2006268298A (ja) * | 2005-03-23 | 2006-10-05 | Nec Corp | デバッグ方法及びデバッグ装置 |
| JP2007179567A (ja) * | 2007-02-26 | 2007-07-12 | Nec Corp | データ処理システム |
| WO2009113273A1 (ja) * | 2008-03-14 | 2009-09-17 | パナソニック株式会社 | プログラム実行装置およびその制御方法 |
| JP5269067B2 (ja) * | 2008-03-14 | 2013-08-21 | パナソニック株式会社 | プログラム実行装置およびその制御方法 |
| US8701089B2 (en) | 2008-03-14 | 2014-04-15 | Panasonic Corporation | Program execution device and method for controlling the same |
| JP2012079130A (ja) * | 2010-10-01 | 2012-04-19 | Fujitsu Ltd | デバッグ支援プログラム、デバッグ支援装置、及びデバッグ支援方法 |
| JP2016528650A (ja) * | 2013-08-22 | 2016-09-15 | オラクル・インターナショナル・コーポレイション | クラウドベースのターゲットデバッグ |
| JP2020024717A (ja) * | 2013-08-22 | 2020-02-13 | オラクル・インターナショナル・コーポレイション | クラウドベースのターゲットデバッグ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5764985A (en) | Notification mechanism for coordinating software extensions | |
| JPH09259002A (ja) | デバッグ支援装置 | |
| KR100346667B1 (ko) | 작업 종료를 통지하기 위한 방법 및 장치 | |
| JP2677249B2 (ja) | マルチプロセッサシステムのプログラムデバッグ方法およびデバッガ | |
| JPH0588933A (ja) | デバツグ機能を有する並列処理システム | |
| JP3096760B2 (ja) | 共通データ参照設定装置及び参照設定方法 | |
| JPH07306800A (ja) | デバッグ方式 | |
| JP2000181748A (ja) | マルチメモリ空間プログラムのデバッグシステムおよびそのデバッグ方法 | |
| JP3075359B2 (ja) | プログラムデバッグ開始処理方式 | |
| JPH04213126A (ja) | ソフトウェアテスト方式 | |
| JPS63177231A (ja) | 並列プログラムデバグ方式 | |
| JP3449812B2 (ja) | 制御用電子装置 | |
| CN117707931A (zh) | 跨内核态和用户态的操作系统源代码调试方法及装置 | |
| JP2583169B2 (ja) | 通信処理装置の運用プログラム切替方法 | |
| JPH04296943A (ja) | 関数型言語のデバッグ方式 | |
| JPH02139630A (ja) | オンラインタスク入替え装置 | |
| JPH07182261A (ja) | 情報処理装置 | |
| JP2904243B2 (ja) | ネットワーク管理システムにおける排他制御方式 | |
| JPH06175879A (ja) | 疑似障害設定方式 | |
| JPH0816431A (ja) | 利用者プログラムのデバッグ処理システム | |
| JPH06161817A (ja) | スレッドオンラインデバッグ装置 | |
| JPH11272516A (ja) | ダンプ出力制御方式 | |
| JPH0589049A (ja) | コマンド実行装置 | |
| JP2006139346A (ja) | デバッグ制御方法 | |
| JPS638947A (ja) | プログラムデバツグサポ−ト方式 |