JP2677249B2 - Program debugging method and debugger for multiprocessor system - Google Patents
Program debugging method and debugger for multiprocessor systemInfo
- Publication number
- JP2677249B2 JP2677249B2 JP7128955A JP12895595A JP2677249B2 JP 2677249 B2 JP2677249 B2 JP 2677249B2 JP 7128955 A JP7128955 A JP 7128955A JP 12895595 A JP12895595 A JP 12895595A JP 2677249 B2 JP2677249 B2 JP 2677249B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- slave
- master
- breakpoint
- information
- 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.)
- Expired - Lifetime
Links
Landscapes
- Debugging And Monitoring (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、マルチプロセッサシス
テムのプログラムデバッグ技術に関し、特に特定のCP
Uでのブレークポイントによるデバッグを可能とするプ
ログラムデバッグ技術に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a program debugging technique for a multiprocessor system, and more particularly to a specific CP
The present invention relates to a program debugging technique that enables debugging with a breakpoint at U.
【0002】[0002]
【従来の技術】プロセッサシステムのOS(オペレーテ
ィングシステム)をデバッグ対象とするデバッガをカー
ネルデバッガという。一般に、ハードウェアブレークポ
イント機構を持たないプロセッサシステムにおいては、
カーネルデバッガが直接にOSのテキスト上にブレーク
命令を書き込むことで、ブレークポイントによるデバッ
グを実現している。このような方式は一般にソフトウェ
アブレークポイント制御方式と呼ばれており、シングル
プロセッサシステムのみならず、例えば特願平5−14
5646号に見られるように、マルチプロセッサシステ
ムのデバッグでも利用されている。2. Description of the Related Art A debugger for debugging an OS (operating system) of a processor system is called a kernel debugger. Generally, in a processor system that does not have a hardware breakpoint mechanism,
The kernel debugger directly writes the break instruction on the text of the OS to realize the debugging by the breakpoint. Such a method is generally called a software breakpoint control method, and it is not limited to a single processor system, but is disclosed in, for example, Japanese Patent Application No. 5-14.
It is also used in debugging multiprocessor systems, as seen in 5646.
【0003】[0003]
【発明が解決しようとする課題】しかしながら、ソフト
ウェアブレークポイント制御方式をマルチプロセッサシ
ステムに適用した場合、テキスト上に書き込まれたブレ
ーク命令は、そのブレーク命令を含むロジックを実行し
得る全てのCPUで実行される可能性があるため、最初
にそのブレーク命令を実行したCPUにおいてブレーク
が発生する。このため、オペレータが望む或る特定のC
PUがそのブレーク命令を実行した時点を捕らえてデバ
ッグを進めることが困難になる。However, when the software breakpoint control method is applied to the multiprocessor system, the break instruction written on the text is executed by all CPUs capable of executing the logic including the break instruction. Therefore, a break occurs in the CPU that first executed the break instruction. For this reason, the specific C desired by the operator
It becomes difficult to proceed with debugging by catching the time when the PU executes the break instruction.
【0004】本発明はこのような事情に鑑みて提案され
たものであり、その目的は、マルチプロセッサシステム
において、オペレータが望む或る特定のCPUがブレー
クポイントに到達した時点を捕らえてデバッグを進める
ことができるようにすることにある。The present invention has been proposed in view of such circumstances, and an object thereof is to advance debugging in a multiprocessor system by catching a time point when a particular CPU desired by an operator reaches a breakpoint. Is to be able to.
【0005】[0005]
【課題を解決するための手段】本発明は上記の目的を達
成するために、第1の発明にあっては、以下のような手
順を踏むことを特徴とする。 (A)ブレークポイント管理テーブルに、ブレークポイ
ントアドレスに対応してCPU指定情報を設定するステ
ップ。 (B)ブレークポイント例外の発生時に、最先に例外を
発生した唯一のCPUをマスタCPUとして、残りの全
てのCPUをスレーブCPUとして、全CPUをデバッ
ガ制御下に移行せしめるステップ。 (C)マスタCPUとなったCPUにおいて、自CPU
が前記ブレークポイント管理テーブル中の前記発生した
ブレークポイント例外のアドレスに対応するCPU指定
情報中に含まれるCPUであるか否かを判別するステッ
プ。 (D)該当するCPUであると判断した場合に、前記マ
スタCPUとなったCPUにおいて、オペレータからの
デバッグコマンドを解析実行する段階へ進むステップ。 (E)該当するCPUでないと判断した場合に、今回の
ブレークポイント例外を無効なものとして、全CPUを
デバッガ制御下から元の状態に復帰させるステップ。In order to achieve the above object, the present invention is characterized in that in the first invention, the following steps are taken. (A) A step of setting CPU designation information corresponding to a breakpoint address in the breakpoint management table. (B) A step of shifting all CPUs under the control of a debugger when a break point exception occurs, with the only CPU that first generated the exception as a master CPU and all the remaining CPUs as slave CPUs. (C) In the CPU that has become the master CPU, its own CPU
Is a CPU included in the CPU designation information corresponding to the address of the generated breakpoint exception in the breakpoint management table. (D) A step of advancing to a stage of analyzing and executing a debug command from an operator in the CPU that has become the master CPU when it is determined that the CPU is the corresponding CPU. (E) A step of returning all the CPUs from the debugger control to the original state by determining that the breakpoint exception this time is invalid when it is determined that the CPU is not the corresponding CPU.
【0006】また、本発明の第2の発明にあっては、上
記(E)の手順に代えて以下の手順を実行する構成を採
用する。 (E−1)該当するCPUでないと判断した場合に、前
記マスタCPUとなったCPUにおいて、前記ブレーク
ポイント管理テーブル中の前記発生したブレークポイン
ト例外のアドレスでブレークポイント例外を起こしたス
レーブCPUであって、且つそのブレークポイントアド
レスに対応するCPU指定情報中にそのCPUの情報が
含まれているスレーブCPUが存在するか否かを判別す
るステップ。 (E−2)該当するスレーブCPUが存在したと判断し
た場合に、該存在したスレーブCPUをマスタCPUに
変更すると共に前記マスタCPUとなったCPUをスレ
ーブCPUに変更し、該新たにマスタCPUとなったC
PUにおいて、オペレータからのデバッグコマンドを解
析実行する段階へ進むステップ。 (E−3)該当するスレーブCPUが存在しないと判断
した場合に全CPUをデバッガ制御下から元の状態に復
帰させるステップ。Further, in the second aspect of the present invention, a configuration for executing the following procedure is adopted in place of the procedure (E). (E-1) If it is determined that the CPU is not the corresponding CPU, the CPU that has become the master CPU is the slave CPU that has caused the breakpoint exception at the address of the generated breakpoint exception in the breakpoint management table. And a step of determining whether or not there is a slave CPU whose CPU designation information is included in the CPU designation information corresponding to the breakpoint address. (E-2) When it is determined that the corresponding slave CPU exists, the existing slave CPU is changed to the master CPU, the CPU that has become the master CPU is changed to the slave CPU, and the new master CPU is added. Became C
In the PU, the step of proceeding to the stage of analyzing and executing the debug command from the operator. (E-3) A step of returning all CPUs from the debugger control to the original state when it is determined that the corresponding slave CPU does not exist.
【0007】そして、このようなプログラムデバッグ方
法に適用するデバッガとしては、ブレークポイント例外
発生時にコールされ、コール元のCPUに関するレジス
タ情報等のセーブ処理を行う共通入口処理部と、該共通
入口処理部からコールされ、マスタCPU情報に既にC
PU情報が設定されている場合にはスレーブCPUと判
断し、設定されていない場合には自CPU情報を設定し
てマスタCPUと判断するマスタ/スレーブCPU判別
部と、該マスタ/スレーブCPU判別部でマスタCPU
と判断された場合にコールされ、マスタCPUとなった
CPUで実行されるマスタCPU制御部と、前記マスタ
/スレーブCPU判別部でスレーブCPUと判断された
場合にコールされ、スレーブCPUとなったCPUで実
行されるスレーブCPU制御部と、デバッガ制御下から
元の状態へ復帰する共通出口処理部とを備え、更に、前
記マスタCPU制御部内に、自身以外のCPUを全てス
レーブCPUとしてデバッガ制御下に移行せしめるデバ
ッガシステム同期部と、ブレークポイントアドレスに対
応してブレークポイント管理テーブルに設定されたCP
U指定情報に基づいて、ブレークポイント例外がオペレ
ータから指定されたCPUで発生しているか否かを判断
し、発生していない場合には全CPUをデバッガ制御下
から元の状態に復帰せしめ、発生しているがその発生C
PUがスレーブCPUであった場合にはそのスレーブC
PUを新たなマスタCPUに変更するCPU別ブレーク
ポイント制御部と、ブレークポイント例外がオペレータ
から指定されたCPUで発生していた場合に限って、オ
ペレータからのデバッグコマンドを解析して実行するコ
マンド解析/実行部とを備えている。As a debugger applied to such a program debugging method, a common entrance processing section which is called when a breakpoint exception occurs and performs a save processing of register information or the like regarding the calling CPU, and the common entrance processing section Is called from the master CPU information already C
A master / slave CPU determination unit that determines a slave CPU when PU information is set, and determines a master CPU by setting own CPU information when not set, and the master / slave CPU determination unit And master CPU
If the CPU is determined to be the master CPU, the master CPU is executed by the CPU that has become the master CPU, and if the master / slave CPU determination unit determines that the CPU is a slave CPU, the CPU is the slave CPU. In the master CPU control section, all CPUs other than itself are slave CPUs under the debugger control. Debugger system synchronization part to shift and CP set in the breakpoint management table corresponding to the breakpoint address
Based on the U specification information, it is determined whether a breakpoint exception has occurred in the CPU specified by the operator, and if it has not occurred, all CPUs are returned to their original state from under debugger control, and an exception occurs. Although it is occurring C
If PU is a slave CPU, its slave C
Breakpoint control unit for each CPU that changes PU to a new master CPU, and command analysis that analyzes and executes debug commands from the operator only when a breakpoint exception occurs in the CPU specified by the operator / Execution unit.
【0008】[0008]
【作用】例えば複数のCPUのうち特定のCPU(αと
する)がブレークポイントアドレス(βとする)に到達
した時点を捕らえてデバッグしたい場合、そのブレーク
ポイントアドレスβに対応してCPUαの情報をブレー
クポイント管理テーブルに設定しておく。マルチプロセ
ッサシステムの動作中に、何れかのCPUでブレークポ
イント例外が発生すると、最先に例外を発生した唯一の
CPUをマスタCPUとして、残りの全てのCPUをス
レーブCPUとして、全CPUをデバッガ制御下に移行
せしめる。次に、マスタCPUとなったCPUにおい
て、自CPUがブレークポイント管理テーブル中の前記
発生したブレークポイント例外のアドレスに対応するC
PU指定情報中に含まれるCPUであるか否かを判別す
る。そして、そのようなCPUであると判断した場合、
つまりCPUαがブレークポイントアドレスβでブレー
クポイント例外を起こした場合は、そのCPUαにおい
て、オペレータからのデバッグコマンドを解析実行する
段階へ進む。しかし、該当するCPUでない、つまり最
先にブレークポイント例外を起こしたCPUがCPUα
でない場合、今回のブレークポイント例外を無効なもの
として、全CPUをデバッガ制御下から元の状態に復帰
させる。以上の動作により、オペレータが望む或る特定
のCPUαがブレークポイントアドレスβに到達した時
点を捕らえてデバッグを進めることができる。For example, when it is desired to catch and debug the time when a specific CPU (denoted by α) of a plurality of CPUs reaches the breakpoint address (denoted by β), the information of the CPU α corresponding to the breakpoint address β is stored. Set it in the breakpoint management table. When a breakpoint exception occurs in any of the CPUs during the operation of the multiprocessor system, the only CPU that generated the exception first is the master CPU, all the remaining CPUs are slave CPUs, and all the CPUs are controlled by the debugger. Move down. Next, in the CPU that has become the master CPU, its own CPU C corresponding to the address of the generated breakpoint exception in the breakpoint management table.
It is determined whether or not the CPU is included in the PU designation information. Then, when it is determined that such a CPU,
That is, when the CPU α causes a breakpoint exception at the breakpoint address β, the CPU α proceeds to the stage of analyzing and executing the debug command from the operator. However, the CPU that is not the corresponding CPU, that is, the CPU that caused the breakpoint exception first is CPU α.
If not, the breakpoint exception this time is invalidated, and all CPUs are returned to the original state from under the debugger control. By the above operation, the debugging can be advanced by catching the time when the specific CPU α desired by the operator reaches the breakpoint address β.
【0009】なお、マルチプロセッサシステムにおいて
は複数のCPUが同時並行的に処理を実行しているた
め、複数のCPUでほぼ同時にブレークポイント例外が
発生することがある。このような場合、オペレータが望
んだCPUαが最先に例外を起こしたCPUとなってマ
スタCPUとなる場合には問題はないが、他のCPUが
マスタCPUとなり、オペレータが望むCPUαがスレ
ーブCPUとなった場合、前述した構成では、特定のC
PUαがブレークポイントアドレスβに到達しているの
にかかわらず、その機会を逃してしまうことになる。そ
こで、第2の発明にあっては、マスタCPUとなったC
PUが該当するCPUαでなかった場合、そのマスタC
PUにおいて、ブレークポイント管理テーブル中の前記
発生したブレークポイント例外のアドレスでブレークポ
イント例外を起こしたスレーブCPUであって、且つそ
のブレークポイントアドレスに対応するCPU指定情報
中にそのCPUの情報が含まれているスレーブCPUが
存在するか否かを判別する。そして、該当するスレーブ
CPUが存在しないと判断した場合には全CPUをデバ
ッガ制御下から元の状態に復帰させるが、該当するスレ
ーブCPUが存在したと判断した場合には、そのスレー
ブCPU、つまりCPUαをマスタCPUに変更すると
共に前記マスタCPUとなっていた自CPUをスレーブ
CPUに変更し、新たにマスタCPUとなったCPUα
において、オペレータからのデバッグコマンドを解析実
行する段階へ進むようにしている。In a multiprocessor system, a plurality of CPUs execute processing in parallel, so that a breakpoint exception may occur at a plurality of CPUs almost at the same time. In such a case, there is no problem if the CPU α desired by the operator becomes the CPU that caused the exception first and becomes the master CPU, but another CPU becomes the master CPU and the CPU α desired by the operator becomes the slave CPU. In the above-mentioned configuration, the specific C
Even though PUα has reached the breakpoint address β, it misses that opportunity. Therefore, in the second invention, C which is the master CPU
If PU is not the corresponding CPU α, its master C
In the PU, a slave CPU that has caused a breakpoint exception at the address of the generated breakpoint exception in the breakpoint management table, and the CPU designation information corresponding to the breakpoint address includes the CPU information. It is determined whether or not there is a slave CPU that is present. When it is determined that the corresponding slave CPU does not exist, all CPUs are returned to the original state from under the control of the debugger, but when it is determined that the corresponding slave CPU exists, the slave CPU, that is, CPU α Is changed to a master CPU, and the CPU that has been the master CPU is changed to a slave CPU, and the new CPU becomes a CPU α.
In the above, the process proceeds to the stage of analyzing and executing the debug command from the operator.
【0010】[0010]
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, embodiments of the present invention will be described in detail with reference to the drawings.
【0011】図1を参照すると、本発明の一実施例を適
用したマルチプロセッサシステムは、複数個のCPU1
〜5と、これらのCPU1〜5で共有される共有メモリ
6と、磁気ディスク装置などの如き二次記憶装置7と、
コンソール8と、これらを相互に接続するシステムバス
9とで構成されている。なお、CPU1〜5は同一タイ
プのプロセッサであり、例えばミップス社製のR300
0,R4000といったCPUが使用される。また、図
1において、100はデバッグ対象となるOS(オペレ
ーティング・システム)、200はデバッガ(カーネル
デバッガ)である。Referring to FIG. 1, a multiprocessor system to which an embodiment of the present invention is applied includes a plurality of CPUs 1.
5 to 5, a shared memory 6 shared by these CPUs 1 to 5, a secondary storage device 7 such as a magnetic disk device,
It is composed of a console 8 and a system bus 9 which connects these to each other. The CPUs 1 to 5 are processors of the same type, for example, R300 manufactured by MIPS.
A CPU such as 0 or R4000 is used. Further, in FIG. 1, 100 is an OS (operating system) to be debugged, and 200 is a debugger (kernel debugger).
【0012】図2はデバッガ200の要部構成図であ
る。デバッガ200は、マルチプロセッサシステム運用
中にブレークポイント例外が発生した場合にその例外処
理からコールされる共通入口処理部10と、マスタCP
U情報15に最先に自CPU情報を設定し得たか否かに
よってマスタCPUとスレーブCPUとを切り分けるマ
スタ/スレーブCPU判別部11と、マスタCPUとな
ったCPUで実行されるマスタCPU制御部12と、ス
レーブCPUとなったCPUで実行されるスレーブCP
U制御部13と、デバッガ200をコールした時点の状
態に復帰する共通出口処理部14と、ブレークポイント
に関する種々の情報が設定されているブレークポイント
管理テーブル16と、マスタCPUとなったCPUとス
レーブCPUとなったCPUとの間で参照更新されるス
レーブコマンドフラグ17及びスレーブコマンド情報構
造体18とを含んでいる。FIG. 2 is a block diagram of the main part of the debugger 200. The debugger 200 includes a common entrance processing unit 10 that is called from exception processing when a breakpoint exception occurs during operation of a multiprocessor system, and a master CP.
A master / slave CPU discriminating unit 11 that separates a master CPU and a slave CPU depending on whether or not the CPU information can be set first in the U information 15, and a master CPU control unit 12 that is executed by the CPU that has become the master CPU. And the slave CP executed by the CPU that has become the slave CPU
The U control unit 13, the common exit processing unit 14 that returns to the state at the time of calling the debugger 200, the breakpoint management table 16 in which various pieces of information regarding breakpoints are set, the CPU that has become the master CPU, and the slave It includes a slave command flag 17 and a slave command information structure 18 that are referenced and updated with the CPU that has become the CPU.
【0013】また、マスタCPU制御部12は、デバッ
ガシステム同期部121とCPU別ブレークポイント制
御部122とコマンド解析/実行部123とを含み、ス
レーブCPU制御部13は、コマンド要請待機部131
とコマンド要請処理部132とを含んでいる。The master CPU control unit 12 includes a debugger system synchronization unit 121, a CPU-specific break point control unit 122, and a command analysis / execution unit 123. The slave CPU control unit 13 includes a command request standby unit 131.
And a command request processing unit 132.
【0014】図3はブレークポイント管理テーブル16
の1エントリの内容例を示す。同図において、161は
オペレータが指定したブレークポイントアドレスであ
り、公知のようにこのブレークポイントアドレス161
に対応するOS100の命令はブレークポイント例外を
起こすブレーク命令に置換されている。また、162は
ブレーク命令と置換された元の命令を示し、163がブ
レークポイントアドレス161に対応するCPU情報フ
ィールドであって、ここにオペレータがブレークを望む
CPUを特定する情報(例えばCPU番号)が設定され
る。FIG. 3 shows a breakpoint management table 16
An example of the contents of one entry is shown. In the figure, 161 is a breakpoint address designated by the operator, and this breakpoint address 161 is publicly known.
The instruction of OS100 corresponding to is replaced with a break instruction that causes a breakpoint exception. Also, 162 indicates the original instruction replaced with the break instruction, and 163 is a CPU information field corresponding to the breakpoint address 161, in which information (for example, CPU number) for specifying the CPU the operator desires to break is provided. Is set.
【0015】図4はマスタCPU制御部12のCPU別
ブレークポイント制御部122の処理例を示すフローチ
ャート、図5はマスタCPUとスレーブCPUとの間の
コマンド授受のフローチャート、図6はスレーブコマン
ド情報構造体18の構成例を、それぞれ示す。以下、各
図を参照して本実施例の動作を説明する。FIG. 4 is a flow chart showing an example of processing of the CPU-specific break point control unit 122 of the master CPU control unit 12, FIG. 5 is a flow chart of command exchange between the master CPU and slave CPUs, and FIG. 6 is a slave command information structure. A configuration example of the body 18 is shown respectively. Hereinafter, the operation of this embodiment will be described with reference to the drawings.
【0016】オペレータは、デバッガ200にてブレー
クポイントをOS100に設定する際、そのブレークポ
イントをどのCPUで有効とするかを併せて指定する。
有効とするCPUは1つのCPUにしても良く、複数の
CPUにしても良い。デバッガ200は、オペレータに
よるコンソール8からのブレークポイント設定要求時、
ブレークポイントの設定を要求されたOS100中のア
ドレスの箇所をブレーク命令に置換し、ブレークポイン
ト管理テーブル16に、図3に示すように、そのブレー
クポイントアドレス161と、元の命令162とを設定
し、更に、オペレータから指定された、そのブレークポ
イントを有効とするCPUの情報をCPU情報フィール
ド163に設定する。When setting a breakpoint in the OS 100 by the debugger 200, the operator also specifies which CPU the breakpoint is valid for.
The effective CPU may be one CPU or plural CPUs. When the operator requests a breakpoint setting from the console 8 by the debugger 200,
The location of the address in the OS 100 which is requested to set a breakpoint is replaced with a break instruction, and the breakpoint address 161 and the original instruction 162 are set in the breakpoint management table 16 as shown in FIG. Further, the CPU information field 163 is set with the information of the CPU specified by the operator and in which the breakpoint is valid.
【0017】マルチプロセッサシステムの動作中に、何
れかのCPUでブレークポイント例外が発生すると、そ
の発生元のCPUでは例外処理からデバッガ200の共
通入口処理部10がコールされる。When a breakpoint exception occurs in any of the CPUs during the operation of the multiprocessor system, the common entrance processing unit 10 of the debugger 200 is called from the exception processing in the CPU that generated the breakpoint exception.
【0018】共通入口処理部10では、後に当該ブレー
クポイント例外の発生時点に復帰できるように、当該C
PUのレジスタ情報等をセーブし、マスタ/スレーブC
PU判別部11をコールする。In the common entrance processing section 10, the C point is set so that it can be returned to the time when the breakpoint exception occurs later.
Saves PU register information, etc., master / slave C
The PU discriminating unit 11 is called.
【0019】マスタ/スレーブCPU判別部11は、マ
スタCPU情報15を参照し、そこに何も設定されてい
ない場合には、自CPUがマスタCPUになり得るの
で、自CPU情報をマスタCPU情報15に設定して、
マスタCPU制御部12のデバッガシステム同期部12
1をコールする。他方、マスタCPU情報15に既に他
のCPU情報が設定されていた場合はスレーブCPUと
なり、スレーブCPU制御部13のコマンド要請待機部
131をコールする。なお、マスタCPU情報15を参
照する際にはロック機能によってマスタCPU情報15
のロックを試み、ロックできたときに初めて参照し、ロ
ックできないときは例えば一定時間経過後に再試行す
る。また、何も設定されていない場合は、自CPU情報
を設定した後、ロックを解除する。The master / slave CPU discriminating unit 11 refers to the master CPU information 15, and if nothing is set therein, the own CPU can become the master CPU. Set to
Debugger system synchronization unit 12 of master CPU control unit 12
Call 1. On the other hand, when other CPU information has already been set in the master CPU information 15, it becomes a slave CPU and calls the command request standby unit 131 of the slave CPU control unit 13. Note that when referring to the master CPU information 15, the master CPU information 15 is locked by the lock function.
When the lock cannot be locked, it is referred to for the first time. If nothing is set, the lock is released after setting the own CPU information.
【0020】従って、ブレークポイント例外が唯一のC
PUでのみ発生した場合は、そのCPUがマスタCPU
となる。他方、ブレークポイント例外がほぼ同時期に複
数のCPUで発生した場合は、最初にマスタCPU情報
15に自CPU情報を書き込めたCPUがマスタCPU
となり、ブレークポイント例外を発生した残りのCPU
はスレーブCPUとなる。Therefore, the breakpoint exception is the only C
If it occurs only in PU, the CPU is the master CPU
Becomes On the other hand, if the breakpoint exceptions occur in a plurality of CPUs at substantially the same time, the CPU that first wrote its own CPU information in the master CPU information 15 is the master CPU.
And the remaining CPU that generated the breakpoint exception
Is a slave CPU.
【0021】次に、マスタCPUとなってデバッガシス
テム同期部121をコールしたCPUにおいては、自C
PU以外の全てのCPUをスレーブCPUとしてデバッ
ガ制御下に移行させるために、他のCPUに対しプロセ
ッサ間通信によりデバッガ200の制御下に入るように
要求する。この要求を受け付けた他のCPUは、デバッ
ガ200の共通入口処理部10をコールして自CPUの
レジスタ情報等のセーブを行った後、マスタ/スレーブ
CPU判別部11をコールし、その時点ではマスタCP
U情報15に既に他のCPU情報が設定されているので
スレーブCPUとなって、コマンド要請待機部131を
コールする。なお、ブレークポイント例外が発生したが
マスタCPUとなり得なかったCPUは既にスレーブC
PUになっているので、デバッガシステム同期部121
によるデバッガ制御下への移行要求は無視される。Next, in the CPU which has become the master CPU and called the debugger system synchronization section 121, the C
In order to shift all the CPUs other than the PUs under the control of the debugger as slave CPUs, the other CPUs are requested to enter the control of the debugger 200 through interprocessor communication. The other CPU that has received this request calls the common entrance processing unit 10 of the debugger 200 to save the register information of its own CPU and the like, and then calls the master / slave CPU determination unit 11, at which point the master CP
Since other CPU information has already been set in the U information 15, it becomes a slave CPU and calls the command request standby unit 131. Note that the CPU that cannot become the master CPU when a breakpoint exception has occurred is already the slave C.
Since it is a PU, the debugger system synchronization unit 121
The request to move to the debugger control by is ignored.
【0022】以上の処理によって、ブレークポイント例
外の発生時に、最先に例外を発生した唯一のCPUのみ
がマスタCPUとして、残りの全てのCPUがスレーブ
CPUとなって、全CPUがデバッガ制御下に移行した
ことになる。Through the above processing, when a breakpoint exception occurs, only the first CPU that has generated the exception becomes the master CPU, all the remaining CPUs become slave CPUs, and all the CPUs are under the control of the debugger. It has been moved.
【0023】さて、マスタCPU側によるデバッガシス
テム同期部121の処理が終了すると、CPU別ブレー
クポイント制御部122がコールされ、図4に示す処理
がマスタCPU側において実行される。When the processing of the debugger system synchronization section 121 on the master CPU side is completed, the CPU-specific break point control section 122 is called and the processing shown in FIG. 4 is executed on the master CPU side.
【0024】先ず、自CPU(マスタCPU)の今回の
ブレークポイント例外の発生アドレスが図3のブレーク
ポイント管理テーブル16に設定されたブレークポイン
トアドレス161であり、且つ、そのブレークポイント
アドレスに対応するCPU情報フィールド163に自C
PUの情報が含まれているかを、自CPUのレジスタ退
避情報等に基づいて調べる(S1)。そして、その判断
結果がYESの場合、つまり、自CPUがブレークポイ
ント管理テーブル16に設定されたブレークポイントア
ドレスで例外を起こし、且つ自CPUがオペレータから
指定されたCPUであった場合、コマンド解析/実行部
123をコールする(S2)。これにより、オペレータ
からのデバッグコマンドを解析,実行する段階へと進
む。以下、オペレータによるデバッグ時の動作を説明す
る。First, the address of the current breakpoint exception of the own CPU (master CPU) is the breakpoint address 161 set in the breakpoint management table 16 of FIG. 3, and the CPU corresponding to the breakpoint address. C in the information field 163
Whether or not PU information is included is checked based on the register save information of its own CPU (S1). If the result of the determination is YES, that is, if the own CPU has caused an exception at the breakpoint address set in the breakpoint management table 16 and the own CPU is the CPU designated by the operator, command analysis / The execution unit 123 is called (S2). As a result, the process proceeds to the stage where the debug command from the operator is analyzed and executed. The operation during debugging by the operator will be described below.
【0025】コマンド解析/実行部123では、コンソ
ール8から投入されたオペレータからのデバッグコマン
ドを解析し、目的の動作を実行する。これにより、マス
タCPUとなったCPU上で各種のデバッグコマンドを
実行でき、各CPUのレジスタ退避情報や共有メモリ6
の内容等を調査することができる。また、本実施例で
は、デバッグ実行単位を一時的にスレーブCPUに移す
ことが可能である。これは以下のようにして行われる。The command analysis / execution unit 123 analyzes the debug command input from the operator from the console 8 and executes the intended operation. As a result, various debug commands can be executed on the CPU that has become the master CPU, register save information for each CPU, and shared memory 6
The contents of can be investigated. Further, in this embodiment, the debug execution unit can be temporarily transferred to the slave CPU. This is performed as follows.
【0026】実行単位を一時的に或るスレーブCPUに
移してそのスレーブCPUでデバッグコマンドを実行さ
せるような指示がオペレータから入力された場合、マス
タCPUは、図5の処理を開始して、先ずスレーブコマ
ンド情報構造体18に必要な情報(スレーブCPUに実
行させるコマンド,伝達する情報等)をそのコマンドフ
ィールド,情報フィールドに設定し(S11)、スレー
ブコマンドフラグ17におけるそのスレーブCPUに対
応するフラグを1にセットし(S12)、そのフラグが
0に変更されるのを待つ(S13)。各スレーブCPU
は、コマンド要請待機部131において、図5に示すよ
うに、スレーブコマンドフラグ17中の自CPUに対応
するフラグが1になるのを監視しており(S21)、フ
ラグが1になると、コマンド要請処理部132をコール
して、このコマンド要請処理部132において、スレー
ブコマンド情報構造体18に設定されたコマンド,情報
に従った処理を実行し、その実行終了時に、戻り値があ
ったらスレーブコマンド情報構造体18の戻り値フィー
ルドに設定する(S22)。そして、スレーブCPUに
よるコマンド終了通知として、スレーブコマンドフラグ
17中の自CPUに対応するフラグを0に設定し(S2
3)、再びコマンド要請待機部131に戻る。マスタC
PU側のコマンド解析/実行部123では、このフラグ
が0に設定されたのを検出すると、スレーブコマンド情
報構造体18から戻り値を取得する(S14)。これに
より、再び、次のデバッグコマンドの実行が可能とな
る。When the operator inputs an instruction to temporarily move the execution unit to a certain slave CPU and execute the debug command in the slave CPU, the master CPU starts the processing of FIG. Information necessary for the slave command information structure 18 (commands to be executed by the slave CPU, information to be transmitted, etc.) is set in the command field and information field (S11), and the flag corresponding to the slave CPU in the slave command flag 17 is set. It is set to 1 (S12) and waits for the flag to be changed to 0 (S13). Each slave CPU
5, the command request standby unit 131 monitors that the flag corresponding to its own CPU in the slave command flag 17 becomes 1 as shown in FIG. 5 (S21). When the flag becomes 1, the command request is sent. The processing unit 132 is called, and in this command request processing unit 132, the process according to the command and information set in the slave command information structure 18 is executed, and at the end of the execution, if there is a return value, the slave command information The return value field of the structure 18 is set (S22). Then, as a command end notification by the slave CPU, the flag corresponding to the self CPU in the slave command flag 17 is set to 0 (S2
3) Then, the process returns to the command request waiting unit 131 again. Master C
When the PU side command analysis / execution unit 123 detects that this flag is set to 0, the return value is acquired from the slave command information structure 18 (S14). As a result, the next debug command can be executed again.
【0027】以上のような動作は、デバッガから復帰す
べきコマンドがオペレータより投入されるまで続けら
れ、デバッガから復帰すべきコマンドが投入されると、
コマンド解析/実行部123は、スレーブコマンドフラ
グ17とスレーブコマンド情報構造体18とを用いて全
スレーブCPUに対してデバッガからの復帰コマンドを
伝達し、マスタCPU自身も共通出口処理部14をコー
ルしてデバッガ制御下から例外発生時点に復帰する。デ
バッガからの復帰コマンドを受けた各スレーブCPU
は、それぞれ共通出口処理部14をコールして、元の状
態に復帰する。The above operation is continued until the operator issues a command to be restored, and when the debugger issues a command to be restored,
The command analysis / execution unit 123 transmits a return command from the debugger to all slave CPUs using the slave command flag 17 and the slave command information structure 18, and the master CPU itself also calls the common exit processing unit 14. To return to the point at which the exception occurred from under debugger control. Each slave CPU that received a return command from the debugger
Respectively call the common exit processing unit 14 to return to the original state.
【0028】他方、図4の処理S1の判断結果がNOの
場合、つまりマスタCPUとなったCPUがオペレータ
の指定したCPUでなかった場合は、ブレークポイント
管理テーブル16に設定されたブレークポイントアドレ
ス161の箇所でブレークポイント例外を起こしたスレ
ーブCPUであって、且つ、ブレークポイント管理テー
ブル16のCPU情報フィールド163にそのCPU情
報が含まれているスレーブCPUが存在するか否かを、
各スレーブCPUのレジスタ退避情報等に基づいて調べ
る(S3)。そして、そのようなスレーブCPUが存在
しない場合は、今回のブレークポイント例外は無効なも
のとして、全CPUをデバッガ200の制御下から元の
状態に復帰させる(S5)。これは、マスタCPUがス
レーブコマンドフラグ17とスレーブコマンド情報構造
体18を用いて全スレーブCPUにデバッガからの復帰
コマンドを伝達して共通出口処理部14をコールさせ、
自らも共通出口処理部14をコールすることで実現され
る。On the other hand, if the determination result of the process S1 in FIG. 4 is NO, that is, if the CPU that became the master CPU is not the CPU designated by the operator, the breakpoint address 161 set in the breakpoint management table 16 is set. Whether there is a slave CPU that has caused a breakpoint exception at the point of, and whose CPU information is included in the CPU information field 163 of the breakpoint management table 16
A check is performed based on the register save information of each slave CPU (S3). If such a slave CPU does not exist, the breakpoint exception at this time is regarded as invalid, and all CPUs are returned to the original state from under the control of the debugger 200 (S5). This is because the master CPU uses the slave command flag 17 and the slave command information structure 18 to transmit a return command from the debugger to all the slave CPUs to call the common exit processing unit 14,
It is realized by calling the common exit processing unit 14 itself.
【0029】また、図4の処理S3の判断の結果、該当
するスレーブCPUが存在した場合には、現在のマスタ
CPUにおいて、スレーブコマンドフラグ17とスレー
ブコマンド情報構造体18とを用いて、該当するスレー
ブCPUに対してマスタCPU変更のコマンドを伝達
し、自らはスレーブCPUとなってスレーブCPUによ
るコマンド要請待機部131をコールする。一方、マス
タCPU変更のコマンドを受けたスレーブCPUは、マ
スタCPU情報15を変更して自らがマスタCPUとな
り、コマンド解析/実行部123をコールして、オペレ
ータによるデバッグ動作を可能にする。If there is a corresponding slave CPU as a result of the determination in the process S3 of FIG. 4, the current master CPU uses the slave command flag 17 and the slave command information structure 18 to find the corresponding slave CPU. The master CPU change command is transmitted to the slave CPU, and the slave CPU itself becomes the slave CPU and calls the command request standby unit 131 by the slave CPU. On the other hand, the slave CPU, which has received the command for changing the master CPU, changes the master CPU information 15 to become the master CPU, calls the command analysis / execution unit 123, and enables the debugging operation by the operator.
【0030】以上本発明の実施例について説明したが、
本発明は以上の実施例にのみ限定されずその他各種の付
加変更が可能である。例えば、図4のステップS1にお
いてNOと判断された場合に直ちに全CPUをデバッガ
制御下から元の状態に復帰させるようにしても良い。The embodiments of the present invention have been described above.
The present invention is not limited to the above embodiments, and various other additions and changes are possible. For example, if it is determined NO in step S1 of FIG. 4, all CPUs may be immediately returned from the debugger control to the original state.
【0031】[0031]
【発明の効果】以上説明したように、本発明によれば、
特定のCPUのみでのブレークポイントによるデバッグ
が可能になる。このことにより、個々のCPU毎に着目
したデバッグが可能となり、マルチプロセッサシステム
の動作や状態を詳細に知ることができる。As described above, according to the present invention,
It becomes possible to debug with a breakpoint only on a specific CPU. As a result, it becomes possible to perform debugging focusing on each individual CPU, and the operation and state of the multiprocessor system can be known in detail.
【0032】また、請求項2記載の構成によれば、ユー
ザが望むCPUとそれ以外のCPUとがほぼ同時期にブ
レークポイント例外を起こした場合であっても、ユーザ
が望むCPUをマスタCPUとしてデバッグを進めるこ
とが可能となる。According to the second aspect of the present invention, even if the CPU desired by the user and the other CPUs cause the breakpoint exception at approximately the same time, the CPU desired by the user is set as the master CPU. It is possible to proceed with debugging.
【図1】本発明の一実施例を適用したマルチプロセッサ
システムの構成例を示すブロック図である。FIG. 1 is a block diagram showing a configuration example of a multiprocessor system to which an embodiment of the present invention is applied.
【図2】デバッガの要部構成図である。FIG. 2 is a configuration diagram of a main part of a debugger.
【図3】ブレークポイント管理テーブルの1エントリの
内容例を示す図である。FIG. 3 is a diagram showing an example of contents of one entry of a breakpoint management table.
【図4】マスタCPU制御部のCPU別ブレークポイン
ト制御部の処理例を示すフローチャートである。FIG. 4 is a flowchart illustrating a processing example of a CPU-specific break point control unit of a master CPU control unit.
【図5】マスタCPUとスレーブCPUとの間のコマン
ド授受のフローチャートである。FIG. 5 is a flowchart of command exchange between a master CPU and a slave CPU.
【図6】スレーブコマンド情報構造体18の構成例を示
す図である。FIG. 6 is a diagram showing a configuration example of a slave command information structure 18.
1〜5…CPU 6…共有メモリ 7…二次記憶装置 8…コンソール 9…システムバス 10…共通入口処理部 11…マスタ/スレーブCPU判別部 12…マスタCPU制御部 13…スレーブCPU制御部 14…共通出口処理部 15…マスタCPU情報 16…ブレークポイント管理テーブル 17…スレーブコマンドフラグ 18…スレーブコマンド情報構造体 100…オペレーティング・システム(OS) 121…デバッガシステム同期部 122…CPU別ブレークポイント制御部 123…コマンド解析/実行部 131…コマンド要請待機部 132…コマンド要請処理部 161…ブレークポイントアドレス 162…元の命令 163…CPU情報フィールド 1 to 5 ... CPU 6 ... Shared memory 7 ... Secondary storage device 8 ... Console 9 ... System bus 10 ... Common entrance processing unit 11 ... Master / slave CPU discrimination unit 12 ... Master CPU control unit 13 ... Slave CPU control unit 14 ... Common exit processing unit 15 ... Master CPU information 16 ... Breakpoint management table 17 ... Slave command flag 18 ... Slave command information structure 100 ... Operating system (OS) 121 ... Debugger system synchronization unit 122 ... Breakpoint control unit for each CPU 123 Command analysis / execution unit 131 Command request waiting unit 132 Command request processing unit 161 Break point address 162 Original instruction 163 CPU information field
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−153442(JP,A) 特開 平3−15949(JP,A) 特開 平6−332747(JP,A) 特開 平6−75820(JP,A) 特開 平4−314141(JP,A) 特開 平4−248635(JP,A) 特開 平2−64826(JP,A) 特開 平5−20120(JP,A) 特開 平5−313946(JP,A) 特表 平5−508046(JP,A) ─────────────────────────────────────────────────── ─── Continuation of the front page (56) Reference JP-A-2-153442 (JP, A) JP-A-3-15949 (JP, A) JP-A-6-332747 (JP, A) JP-A-6- 75820 (JP, A) JP 4-314141 (JP, A) JP 4-248635 (JP, A) JP 2-64826 (JP, A) JP 5-20120 (JP, A) Japanese Patent Laid-Open No. 5-313946 (JP, A) Special Table 5-508046 (JP, A)
Claims (5)
合マルチプロセッサシステムのプログラムデバッグ方法
において、 (A)ブレークポイント管理テーブルに、ブレークポイ
ントアドレスに対応してCPU指定情報を設定するステ
ップ。 (B)ブレークポイント例外の発生時に、最先に例外を
発生した唯一のCPUをマスタCPUとして、残りの全
てのCPUをスレーブCPUとして、全CPUをデバッ
ガ制御下に移行せしめるステップ。 (C)マスタCPUとなったCPUにおいて、自CPU
が前記ブレークポイント管理テーブル中の前記発生した
ブレークポイント例外のアドレスに対応するCPU指定
情報中に含まれるCPUであるか否かを判別するステッ
プ。 (D)該当するCPUであると判断した場合に、前記マ
スタCPUとなったCPUにおいて、オペレータからの
デバッグコマンドを解析実行する段階へ進むステップ。 (E)該当するCPUでないと判断した場合に、今回の
ブレークポイント例外を無効なものとして、全CPUを
デバッガ制御下から元の状態に復帰させるステップ。 を含むことを特徴とするマルチプロセッサシステムのプ
ログラムデバッグ方法。1. A program debugging method for a tightly coupled multiprocessor system in which a plurality of CPUs share a memory, and (A) a step of setting CPU designation information corresponding to a breakpoint address in a breakpoint management table. (B) A step of shifting all CPUs under the control of a debugger when a break point exception occurs, with the only CPU that first generated the exception as a master CPU and all the remaining CPUs as slave CPUs. (C) In the CPU that has become the master CPU, its own CPU
Is a CPU included in the CPU designation information corresponding to the address of the generated breakpoint exception in the breakpoint management table. (D) A step of advancing to a stage of analyzing and executing a debug command from an operator in the CPU that has become the master CPU when it is determined that the CPU is the corresponding CPU. (E) A step of returning all the CPUs from the debugger control to the original state by determining that the breakpoint exception this time is invalid when it is determined that the CPU is not the corresponding CPU. A program debugging method for a multiprocessor system, comprising:
て、 (E−1)該当するCPUでないと判断した場合に、前
記マスタCPUとなったCPUにおいて、前記ブレーク
ポイント管理テーブル中の前記発生したブレークポイン
ト例外のアドレスでブレークポイント例外を起こしたス
レーブCPUであって、且つそのブレークポイントアド
レスに対応するCPU指定情報中にそのCPUの情報が
含まれているスレーブCPUが存在するか否かを判別す
るステップ。 (E−2)該当するスレーブCPUが存在したと判断し
た場合に、該存在したスレーブCPUをマスタCPUに
変更すると共に前記マスタCPUとなっていた自CPU
をスレーブCPUに変更し、該新たにマスタCPUとな
ったCPUにおいて、オペレータからのデバッグコマン
ドを解析実行する段階へ進むステップ。 (E−3)該当するスレーブCPUが存在しないと判断
した場合に全CPUをデバッガ制御下から元の状態に復
帰させるステップ。 を実行することを特徴とするマルチプロセッサシステム
のプログラムデバッグ方法。2. In place of the step (E) of claim 1, (E-1) when it is determined that the CPU is not the corresponding CPU, the CPU which has become the master CPU stores in the breakpoint management table. Whether or not there is a slave CPU that has caused a breakpoint exception at the address of the breakpoint exception that has occurred and in which CPU information is included in the CPU designation information corresponding to that breakpoint address. Step to determine if. (E-2) When it is determined that the corresponding slave CPU exists, the existing slave CPU is changed to the master CPU and the own CPU that has been the master CPU
Is changed to a slave CPU and the CPU, which has become the new master CPU, proceeds to the step of analyzing and executing a debug command from the operator. (E-3) A step of returning all CPUs from the debugger control to the original state when it is determined that the corresponding slave CPU does not exist. A program debugging method for a multiprocessor system characterized by executing a program.
いるか否かを判断し、設定されていなければ自CPU情
報を設定して自CPUをマスタCPUとし、既にCPU
情報が設定されていれば自CPUをスレーブCPUとす
るステップ。 (B−2)マスタCPUとなったCPUがプロセッサ間
通信により他のCPUに対してデバッガ制御下への移行
を要請するステップ。 で実現することを特徴とする請求項1または2記載のマ
ルチプロセッサシステムのプログラムデバッグ方法。3. In the step (B), (B-1) it is judged whether or not the CPU information is set in the master CPU information, and if not set, the own CPU information is set and the own CPU is set. Master CPU, already CPU
If the information is set, the step of making the own CPU a slave CPU. (B-2) A step in which the CPU that has become the master CPU requests another CPU to shift to the debugger-controlled state through inter-processor communication. 3. The program debugging method for a multiprocessor system according to claim 1, wherein the program debugging method is realized by.
合マルチプロセッサシステムのプログラムデバッグ方法
において、 CPUに関するレジスタ情報等のセーブ処理を行う共通
入口処理部,マスタCPU情報に既にCPU情報が設定
されている場合にはスレーブCPUと判断し設定されて
いない場合には自CPU情報を設定してマスタCPUと
判断する処理を行うマスタ/スレーブCPU判別部,マ
スタCPUとなったCPUが実行するマスタCPU制御
部,スレーブCPUとなったCPUが実行するスレーブ
CPU制御部,およびデバッガ制御下から元の状態へ復
帰する処理を行う共通出口処理部を備え、更に前記マス
タCPU制御部内に、自身以外のCPUを全てスレーブ
CPUとしてデバッガ制御下に移行せしめるためのデバ
ッガシステム同期部と、ブレークポイントアドレスに対
応してブレークポイント管理テーブルに設定されたCP
U指定情報に基づいて、発生したブレークポイント例外
がオペレータから指定されたCPUで発生しているか否
かを判断するためのCPU別ブレークポイント制御部
と、オペレータからのデバッグコマンドを解析して実行
するコマンド解析/実行部とを有するカーネルデバッガ
を使用し、 ブレークポイント例外を起こしたCPUにおいて、前記
共通入口処理部を実行してレジスタ情報等をセーブした
後、前記マスタ/スレーブCPU判別部を実行してその
判別結果により前記マスタCPU制御部か、前記スレー
ブCPU制御部を実行し、前記マスタCPU制御部を実
行したマスタCPUにおいて、前記デバッガシステム同
期部の実行により他のCPUを全てスレーブCPUとし
てデバッグ制御下に移行せしめた後、前記CPU別ブレ
ークポイント制御部の実行により、発生したブレークポ
イント例外が前記ブレークポイント管理テーブルで指定
されたCPUで発生しているか否かを判断し、指定され
たCPUで発生している場合に限り前記コマンド解析/
実行部を実行するようにしたことを特徴とするマルチプ
ロセッサシステムのプログラムデバッグ方法。4. In a program debugging method of a tightly coupled multiprocessor system in which a plurality of CPUs share a memory, a common entrance processing unit for performing save processing of register information about the CPU, and CPU information is already set in the master CPU information. If it is, the master / slave CPU determination unit that determines the slave CPU if it is not set and determines the master CPU by setting its own CPU information, the master CPU executed by the CPU that has become the master CPU A control unit, a slave CPU control unit executed by the CPU that has become a slave CPU, and a common exit processing unit that performs processing for returning to the original state from under debugger control, and a CPU other than itself in the master CPU control unit. As a slave CPU to move under debugger control. And Temu synchronization unit, which is set in the break point management table in correspondence with breakpoint address CP
Based on the U designation information, the CPU-specific breakpoint control unit for determining whether or not the occurred breakpoint exception has occurred in the CPU designated by the operator, and the debug command from the operator is analyzed and executed. Using a kernel debugger having a command analysis / execution unit, in the CPU that has caused the breakpoint exception, execute the common entry processing unit to save register information and the like, and then execute the master / slave CPU determination unit. According to the determination result, the master CPU control unit or the slave CPU control unit is executed, and in the master CPU executing the master CPU control unit, the debugger system synchronization unit is executed to debug all other CPUs as slave CPUs. After shifting to control, the CPU-specific break point By executing the command control unit, it is determined whether or not the generated breakpoint exception has occurred in the CPU designated in the breakpoint management table, and the command analysis /
A program debugging method for a multiprocessor system, characterized in that an execution unit is executed.
合マルチプロセッサシステムのデバッガにおいて、 ブレークポイント例外発生時にコールされ、コール元の
CPUに関するレジスタ情報等のセーブ処理を行う共通
入口処理部と、 該共通入口処理部からコールされ、マスタCPU情報に
既にCPU情報が設定されている場合にはスレーブCP
Uと判断し、設定されていない場合には自CPU情報を
設定してマスタCPUと判断するマスタ/スレーブCP
U判別部と、 該マスタ/スレーブCPU判別部でマスタCPUと判断
された場合にコールされ、マスタCPUとなったCPU
で実行されるマスタCPU制御部と、 前記マスタ/スレーブCPU判別部でスレーブCPUと
判断された場合にコールされ、スレーブCPUとなった
CPUで実行されるスレーブCPU制御部と、 デバッガ制御下から元の状態へ復帰する共通出口処理部
とを備え、更に、 前記マスタCPU制御部内に、 自身以外のCPUを全てスレーブCPUとしてデバッガ
制御下に移行せしめるデバッガシステム同期部と、 ブレークポイントアドレスに対応してブレークポイント
管理テーブルに設定されたCPU指定情報に基づいて、
ブレークポイント例外がオペレータから指定されたCP
Uで発生しているか否かを判断し、発生していない場合
には全CPUをデバッガ制御下から元の状態に復帰せし
め、発生しているがその発生CPUがスレーブCPUで
あった場合にはそのスレーブCPUを新たなマスタCP
Uに変更するCPU別ブレークポイント制御部と、 ブレークポイント例外がオペレータから指定されたCP
Uで発生していた場合に限って、オペレータからのデバ
ッグコマンドを解析して実行するコマンド解析/実行部
とを備えることを特徴とするマルチプロセッサシステム
のデバッガ。5. In a debugger of a tightly coupled multiprocessor system in which a memory is shared among a plurality of CPUs, a common entrance processing unit that is called when a breakpoint exception occurs and saves register information and the like regarding the calling CPU, When the common entrance processing unit calls and the CPU information is already set in the master CPU information, the slave CP
Master / slave CP that judges U, and if not set, sets own CPU information and judges as master CPU
The CPU that is called when the U discriminating unit and the master / slave CPU discriminating unit have determined that the master CPU is the master CPU.
And a slave CPU control unit that is called when the master / slave CPU determination unit determines that the CPU is a slave CPU and that is executed by the CPU that has become the slave CPU. A common exit processing unit for returning to the state of the above, further, in the master CPU control unit, a debugger system synchronization unit that shifts all CPUs other than itself to slave CPUs under debugger control, and a breakpoint address Based on the CPU designation information set in the breakpoint management table,
CP with breakpoint exception specified by operator
It is judged whether or not it is occurring in U, and if it is not occurring, all CPUs are returned to the original state from under the control of the debugger. If it is occurring, but the originating CPU is a slave CPU, The slave CPU is the new master CP
Breakpoint control unit for each CPU to change to U and CP for which a breakpoint exception is specified by the operator
A debugger for a multiprocessor system, comprising: a command analysis / execution unit that analyzes and executes a debug command from an operator only when it occurs in U.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7128955A JP2677249B2 (en) | 1995-04-28 | 1995-04-28 | Program debugging method and debugger for multiprocessor system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7128955A JP2677249B2 (en) | 1995-04-28 | 1995-04-28 | Program debugging method and debugger for multiprocessor system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08305607A JPH08305607A (en) | 1996-11-22 |
| JP2677249B2 true JP2677249B2 (en) | 1997-11-17 |
Family
ID=14997552
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7128955A Expired - Lifetime JP2677249B2 (en) | 1995-04-28 | 1995-04-28 | Program debugging method and debugger for multiprocessor system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2677249B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007141200A (en) * | 2005-10-21 | 2007-06-07 | Renesas Technology Corp | Data processor |
| JP4222370B2 (en) | 2006-01-11 | 2009-02-12 | セイコーエプソン株式会社 | Program for causing a computer to execute a debugging support apparatus and a debugging processing method |
| JP5843801B2 (en) | 2013-03-19 | 2016-01-13 | 株式会社東芝 | Information processing apparatus and debugging method |
-
1995
- 1995-04-28 JP JP7128955A patent/JP2677249B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH08305607A (en) | 1996-11-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6988264B2 (en) | Debugging multiple threads or processes | |
| US5621885A (en) | System and method for providing a fault tolerant computer program runtime support environment | |
| US5748959A (en) | Method of conducting asynchronous distributed collective operations | |
| JPH05197568A (en) | Computer system and method of event management | |
| JPH02208740A (en) | Virtual computer control system | |
| JP2003131900A (en) | Server system operation management method | |
| US5544307A (en) | Microcomputer development support system operable with only background monitor and without cache replacement | |
| JP2677249B2 (en) | Program debugging method and debugger for multiprocessor system | |
| JP3503504B2 (en) | Debug processing system, computer and debug processing method | |
| JPH0922369A (en) | Malfunction detection method in multitasking kernel | |
| JP2022107229A (en) | Information processing apparatus, control method, and control program | |
| JP2550708B2 (en) | Debug method | |
| JP3096760B2 (en) | Common data reference setting device and reference setting method | |
| JP2954006B2 (en) | Emulation device and emulation method | |
| JP2591818B2 (en) | Auxiliary function selection control method | |
| JP3120841B2 (en) | In-circuit emulator | |
| KR940007827B1 (en) | Method of matching between user program and real time os | |
| JP3159155B2 (en) | Method and apparatus for debugging program | |
| JP2653411B2 (en) | How to set breakpoints | |
| JPH07234850A (en) | Multiprocessor apparatus and method | |
| JPH0830485A (en) | Debugging device | |
| JPS62290942A (en) | Debugger starting system | |
| JP2825589B2 (en) | Bus control method | |
| JP3075359B2 (en) | Program debugging start processing method | |
| CN106537342A (en) | Dynamic saving of registers in transactions |