JP2004318658A - デバッグ制御装置及びその制御方法 - Google Patents

デバッグ制御装置及びその制御方法 Download PDF

Info

Publication number
JP2004318658A
JP2004318658A JP2003113998A JP2003113998A JP2004318658A JP 2004318658 A JP2004318658 A JP 2004318658A JP 2003113998 A JP2003113998 A JP 2003113998A JP 2003113998 A JP2003113998 A JP 2003113998A JP 2004318658 A JP2004318658 A JP 2004318658A
Authority
JP
Japan
Prior art keywords
thread
execution
processor
application software
threads
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.)
Withdrawn
Application number
JP2003113998A
Other languages
English (en)
Inventor
Shoji Nagata
昭二 永田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003113998A priority Critical patent/JP2004318658A/ja
Publication of JP2004318658A publication Critical patent/JP2004318658A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】マルチスレッド型プロセッサにおける単一のスレッドのみの実行を停止させる。
【解決手段】デバッグ制御装置は、デバッグ対象となるスレッドのスレッドID及び停止アドレスを入力すると共に、CPU15上で処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる特定スレッド停止モード又は全てのスレッドに対する処理を停止させる全スレッド停止モードを示す実行制御モード23を入力し、実行制御命令を出力するデバッガプログラム22と、デバッガプログラム22からの実行制御命令を入力し、実行制御モード23が特定スレッド停止モードである場合には、ブレークポイントに到達時に、所定の1つのスレッドに対する処理を停止させる一方、実行制御モード23が全スレッド停止モードである場合には、ブレークポイント到達時に、全てのスレッドを停止させる処理を行うモニタプログラム12とを有する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、複数個のスレッドを時分割で並行処理するマルチスレッド型プロセッサ上で動作するアプリケーションソフトウェアのデバッグを制御するデバッグ制御装置及びその制御方法に関する。
【0002】
【従来の技術】
まず、前提として、シングルスレッド型プロセッサにおけるデバッグシステムについて説明する。
【0003】
シングルスレッド型プロセッサにおけるデバッグシステムにおいては、アプリケーションソフトウェアの命令列における任意の箇所(ブレークポイント)でアプリケーションソフトウェアの実行を停止させて、停止させた時点におけるレジスタ及びメモリの内容確認並びに実行軌跡の確認等を操作者が行うことにより、プログラム論理及びハードウェア動作の確認並びにデバッグが行われる。
【0004】
ところで、複数のスレッドを時分割並行処理を可能とするマルチスレッド型プロセッサが現在広く知られている。ここで、複数のスレッドには、各々にとって独立したレジスタ資源と実行ユニットとが備えられており、このマルチスレッド型プロセッサにおいては、時間の経過又はイベントの発生を契機としてスレッドを順に切替えることにより、複数のプログラム(スレッド)を同時並行で動作させることが可能である。
【0005】
また、マルチスレッド型プロセッサとマルチプロセッサとが異なる点は、マルチプロセッサでは、任意の時点において、複数のプログラムを複数のプロセッサによって同時に実行する並行処理の機構を有するのに対して、マルチスレッド型プロセッサでは、任意の時点において、1つのプログラム(スレッド)のみが実行されるのであるが、複数のスレッドを切替えながら実行するので、所定の期間で考えると、複数のプログラム(スレッド)が同時並行で動作する。また、マルチスレッド型プロセッサには、複数のレジスタ資源及び実行ユニットが備えられているものの、命令フェッチユニット及び命令デコードユニットについてはそれぞれが1つ備えられているのみなので、マルチスレッド型プロセッサはハードウェア量を小さくできる利点を有している。
【0006】
一方、デバッグシステムの重要な目的と機能は、前述したように、連続して実行されるアプリケーションソフトウェアにおける着目すべき任意の箇所にブレークポイントを設定することを可能にすることである。この点、マルチスレッド型プロセッサにおいては、着目すべき単一のスレッドのみの実行を停止させたい場合と、全てのスレッドの停止、すなわちシステム全体を停止をさせたい場合とが想定される。
【0007】
マルチスレッド型プロセッサにおけるデバッグシステムの実行を制御するために、マルチプロセッサシステムにおけるデバッグシステムの実行制御方式を準用することは技術的に可能である。すなわち、特許第1431273号において、マルチプロセッサシステムにおけるデバッガにより、システム全体を停止するための方式が開示されており、各プロセッサが行う割り込み処理を各スレッドの処理に置き換えることにより、全てのスレッドの停止、すなわちシステム全体の実行を停止させる機能が実現される。
【0008】
【特許文献1】
特許1431273号公報
【0009】
【発明が解決しようとする課題】
しかしながら、従来の方法によると、マルチスレッド型プロセッサにおける単一のスレッドのみに着目して、その1つのスレッドの実行を停止させる機能を実現することができない。
【0010】
前記に鑑み、本発明の目的は、マルチスレッド型プロセッサにおける単一のスレッドのみの実行を停止させることである。また、単一のスレッドのみの実行を停止させるか、又は全てのスレッドの停止、すなわちシステム全体を停止させるかのいずれかを選択することを可能にすることである。
【0011】
【課題を解決するための手段】
前記課題を解決するために、本発明に係るデバッグ制御装置は、複数のスレッドを時分割で並行処理するマルチスレッド型プロセッサ上で動作するアプリケーションソフトウェアのデバッグの制御を司るデバッガプログラムと、デバッガプログラムによるデバッグの制御を実行するための実行制御命令をデバッガプログラムから入力し、アプリケーションソフトウェアのデバッグの制御を中継するモニタプログラムとを備え、デバッガプログラムは、アプリケーションソフトウェアのデバッグ対象となるスレッドのIDを示すスレッドID及びそのスレッドIDについてのブレークポイントとなる停止アドレスを入力すると共に、マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる特定スレッド停止モード又はマルチスレッド型プロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる全スレッド停止モードを示す実行制御モードを入力し、実行制御モードに基づいて、実行制御命令をモニタプログラムに対して出力し、モニタプログラムは、デバッガプログラムからの実行制御命令を入力し、実行制御モードが特定スレッド停止モードである場合には、マルチスレッド型プロセッサによるアプリケーションソフトウェアに対する処理がブレークポイントに到達したことを判断すると、マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる一方、実行制御モードが全スレッド停止モードである場合には、マルチスレッド型プロセッサによる前記アプリケーションソフトウェアに対する処理がブレークポイントに到達したことを判断すると、マルチプロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる処理を行う。
【0012】
本発明に係るデバッグ制御装置によると、マルチスレッド型プロセッサ上で並行処理されている単一のスレッドのみの実行を停止させることできる。このため、例えば、他のスレッドにおいては、実行を停止させることによりシステムの挙動に重大な影響があるようなスレッドに対して、その処理を停止させることなくデバッグを行うことができる。また、単一のスレッドのみを停止させるのではなく、全てのスレッドを停止させることができる。このため、例えば、あるスレッドの停止時点の他のスレッドの状態を確認する必要がある場合等に有効である。さらに、単一のスレッドのみの実行を停止させるか又は全てのスレッドの停止、すなわちシステム全体を停止させるかのいずれかを選択することができる。
【0013】
本発明に係るデバッグ制御装置において、モニタプログラムからの指示に従って動作する割り込みコントローラをさらに備え、モニタプログラムは、実行制御モードが特定スレッド停止モードである場合には、マルチスレッド型プロセッサによるアプリケーションソフトウェアに対する処理がブレークポイントに到達したことを判断すると、マルチスレッド型プロセッサに対して割り込みを発生させるように、割り込みコントローラを設定することにより、ブレークポイントのスレッドのみを停止させると共に、他のスレッドの実行を継続させる処理を行う一方、実行制御モードが全スレッド停止モードである場合には、マルチスレッド型プロセッサによるアプリケーションソフトウェアに対する処理がブレークポイントに到達したことを判断すると、マルチスレッド型プロセッサに供給されるクロックを停止させるように、割り込みコントローラを設定することにより、マルチスレッド型プロセッサ上で並行処理されている全てのスレッドを停止させる処理を行うことが好ましい。
【0014】
このようにすると、特定スレッド停止モードである場合には、ブレークポイント到達時に、マルチスレッド型プロセッサに対して割り込みを発生させる一方、全スレッド停止モードの場合には、ブレークポイント到達時に、マルチスレッドプロセッサに対するクロックの供給を停止させるので、マルチスレッド型プロセッサ上で並行処理されている単一のスレッドのみの実行を停止させることできる一方、全てのスレッドの停止すなわちシステム全体を停止させることができる。
【0015】
本発明に係るデバッグ制御装置において、マルチスレッド型プロセッサ上で現在実行されているスレッドのスレッドIDを識別し、記憶保持するスレッドIDレジスタをさらに備え、デバッガプログラムは、ホストコンピュータに格納されており、モニタプログラムは、実行制御モードが特定スレッド停止モードである場合に、ブレークポイントに到達したことを判断して、マルチスレッド型プロセッサに対して割り込みを発生させた後、マルチスレッド型プロセッサのレジスタ資源を退避して、ブレークポイントに到達した時点のスレッドIDをスレッドIDレジスタから取得した後、当該スレッドID、ブレークポイントの停止アドレス及びアプリケーションソフトウェアに対する実行の停止要因を前記ホストコンピュータに格納されたデバッガプログラムに通知し、ホストコンピュータは、モニタプログラムからデバッガプログラムに通知されたスレッドID、ブレークポイントの停止アドレス及びアプリケーションソフトウェアに対する実行の停止要因に基づいて、メモリの読み出し及び書き込みを行う命令又はアプリケーションソフトウェアの実行の再開を行う命令をモニタプログラムに対して行い、モニタプログラムは、実行の再開を行う命令を受けた場合に、退避させたレジスタ資源の回復を行うことにより、アプリケーションソフトウェアに対する実行を再開することが好ましい。
【0016】
このようにすると、マルチスレッド型プロセッサ上で並行処理されている単一のスレッドのみの実行を停止させることできると共に、その後アプリケーションソフトウェアに対する実行を再開することができる。
【0017】
本発明に係るデバッグ装置において、マルチスレッド型プロセッサ上で現在実行されているスレッドのスレッドIDを識別し、記憶保持するスレッドIDレジスタをさらに備え、デバッガプログラムは、ホストコンピュータに格納されており、モニタプログラムは、実行制御モードが全スレッド停止モードである場合に、ブレークポイントに到達したことを判断して、マルチスレッド型プロセッサに対するクロックの供給を停止させた後、ブレークポイントの停止アドレス、アプリケーションソフトウェアに対する実行の停止要因及び全てのスレッドを停止する旨をホストコンピュータに格納されたデバッガプログラムに通知することが好ましい。
【0018】
このようにすると、全てのスレッドの停止すなわちシステム全体を停止させることができる。
【0019】
本発明に係るデバッグ制御装置において、デバッガプログラムは、実行制御モードが特定スレッド停止モードである場合には、スレッドID、ブレークポイントの停止アドレス及びアプリケーションソフトウェアに対する実行の停止要因の通知を受けた後、これらを表示装置に表示させる一方、実行制御モードが全スレッド停止モードである場合に、アプリケーションソフトウェアに対する実行の停止要因及び全てのスレッドを停止する旨の通知を受けた後、これらを表示装置に表示させることが好ましい。
【0020】
このようにすると、スレッドの処理内容に応じて操作者が停止形態を変更できる利便性がある。
【0021】
本発明に係るデバッグ制御装置の制御方法は、複数のスレッドを時分割で並行処理するマルチスレッド型プロセッサ上で動作するアプリケーションソフトウェアのデバッグの制御を司るデバッガプログラムと、デバッガプログラムによるデバッグの制御を実行するための実行制御命令をデバッガプログラムから入力し、アプリケーションソフトウェアのデバッグの制御を中継するモニタプログラムとを備えるデバッグ制御装置の制御方法であり、アプリケーションソフトウェアのデバッグ対象となるスレッドのIDを示すスレッドID及びそのスレッドIDについてのブレークポイントとなる停止アドレスをデバッガプログラムに入力すると共に、マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる特定スレッド停止モード又はマルチスレッド型プロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる全スレッド停止モードを示す実行制御モードをデバッガプログラムに入力するステップと、デバッガプログラムに入力するステップにおける実行制御モードに基づいて、実行制御命令をモニタプログラムに対して出力するステップと、モニタプログラムに対して出力するステップにおける実行制御命令に基づいて、実行制御モードが特定スレッド停止モードである場合には、マルチスレッド型プロセッサによるアプリケーションソフトウェアに対する処理がブレークポイントに到達したことを判断すると、マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる一方、実行制御モードが全スレッド停止モードである場合には、マルチスレッド型プロセッサによるアプリケーションソフトウェアに対する処理がブレークポイントに到達したことを判断すると、マルチプロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる処理を行うステップとを備える。
【0022】
本発明に係るデバッグ制御装置の制御方法によると、マルチスレッド型プロッサ上で並行処理されている単一のスレッドのみの実行を停止させることできる。このため、例えば、他のスレッドにおいては、実行を停止させることによりシステムの挙動に重大な影響があるようなスレッドに対して、その処理を停止させることなくデバッグを行うことができる。また、単一のスレッドのみを停止させるのではなく、全てのスレッドを停止させることができる。このため、例えば、あるスレッドの停止時点の他のスレッドの状態を確認する必要がある場合等に有効である。さらに、単一のスレッドのみの実行を停止させるか又は全てのスレッドの停止、すなわちシステム全体を停止させるかのいずれかを選択することができる。
【0023】
【発明の実施の形態】
以下、本発明の一実施形態について図1〜図3を参照しながら説明する。
【0024】
まず、本実施形態に係るデバッグ制御装置の構成について図1を参照しながら説明する。
【0025】
図1に示すように、ターゲットシステム10は、アプリケーションソフトウェア11及びモニタプログラム12を格納する主記憶装置13と、スレッドのID識別して記憶保持するスレッドIDレジスタ14と、CPU15(マルチスレッド型プロセッサ)と、スイッチ16を介してCPU15に対してクロック信号を供給するクロック信号発振器17と、割り込みコントローラ18とを有する。主記憶装置13、スレッドIDレジスタ14、CPU15及び割り込みコントローラ18は、バス19に接続されている。また、ホストコンピュータ20にはOS21及びデバッガプログラム22とが格納されており、ホストコンピュータ20は表示装置30に接続されている。さらに、ターゲットシステム10とホストコンピュータ20とは通信路40を介して接続されている。
【0026】
次に、本実施形態に係るデバッグ制御装置の動作について概説する。
【0027】
図1に示すように、まず、表示装置30を介して操作者により入力されるアプリケーションソフトウェア11に対する実行指示に関する入力情報は、ホストコンピュータ20内のOS21を経由して、デバッガプログラム22に記憶される。すなわち、デバッガプログラム22は、入力情報として、アプリケーションソフトウェア11のデバッグ対象となるスレッドID及びそのスレッドIDについてのブレークポイントとなる停止アドレスを入力すると共に、CPU15上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる特定スレッド停止モード又はCPU15上で並行処理されている全てのスレッドに対する処理を停止させる全スレッド停止モードを示す実行制御モード2323を入力する。デバッガプログラム22は、入力された実行制御モード23に応じて、アプリケーションソフトウェア11に対してブレークポイントを設定するための指示をターゲットシステム10内のモニタプログラム12に通知する。
【0028】
次に、モニタプログラム12は割り込みコントローラ18に対して、実行制御モード23に応じた命令を通知する。すなわち、実行制御モード23が特定スレッド停止モードである場合には、CPU15によるアプリケーションソフトウェア11に対する処理がブレークポイントに到達したときに、CPU15に対して割り込みを発生させるように、割り込みコントローラに命令を通知する。一方、実行制御モード23が全スレッド停止モードである場合には、CPU15上によるアプリケーションソフトウェア11に対する処理がブレークポイントに到達したことを判断すると、CPU15に供給されるクロックを停止させるように、割り込みコントローラ18に対して命令を通知する。
【0029】
次に、割り込みコントローラ18は、アプリケーションソフトウェア11に対する処理がブレークポイントに到達したときに、実行制御モード23が特定スレッド停止モードである場合には、CPU15に対して割り込みの発生を設定する一方、実行制御モード23が全スレッド停止モードである場合には、CPU15に対してクロック信号発振器17からのクロック供給の停止を設定する。
【0030】
次に、アプリケーションソフトウェア11の実行が再開されて、ブレークポイントへの到達又は未定義命令の実行により、アプリケーションソフトウェア11の実行が停止すると、CPU15は実行が停止されたスレッドIDをスレッドIDレジスタ14に記憶すると共に、モニタプログラム12はブレークポイントの停止アドレス及び前記アプリケーションソフトウェアに対する実行の停止要因を取得する。次に、デバッガプログラム22は、モニタプログラム12を介して、スレッドIDをスレッドIDレジスタ14から取得し、さらに、ブレークポイントの停止アドレス及びアプリケーションソフトウェア11に対する実行の停止要因をモニタプログラム12から読み出す。そして、デバッガプログラム22は、これらのスレッドID、停止アドレス及び停止要因を表示装置30に表示させる。
【0031】
これにより、特定スレッド停止モードである場合には、CPU15上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる一方、全スレッド停止モードである場合には、CPU15上で並行処理されている全てのスレッドを停止させることができる。
【0032】
次に、上記デバッガプログラム22のモニタプログラム12に対するブレークポイント設定処理について図2を参照しながら説明する。
【0033】
図2に示すように、まず、ステップa1において、デバッガプログラム22は、表示装置30を介してアプリケーションソフトウェアの実行に関する操作者からの前記した入力情報を受けて、実行制御モード23、スレッドID及び停止アドレスを記憶する。
【0034】
次に、ステップa2に進んで、デバッガプログラム22は実行制御モード23を判定し、実行制御モード23が全スレッド停止モードであるときは、ステップa3に進む一方、実行制御モード23が特定スレッド停止モードであるときは、ステップa4に進む。
【0035】
次に、ステップa3において、デバッガプログラム22は、モニタプログラム12を介して、アプリケーションソフトウェア11の停止アドレスに対してブレークポイントを設定する。その後、ステップa5において、デバッガプログラム22は、ブレークポイントに到達した際にはクロック信号発振器17からのクロックの供給を停止させるように割り込みコントローラ18を設定する。
【0036】
一方、ステップa4において、デバッガプログラム22は、モニタプログラム12を介して、アプリケーションソフトウェア11の停止アドレスに対してブレークポイントを設定する。その後、ステップa6において、デバッガプログラム22は、ブレークポイントに到達した際にCPU15に対して割り込みを発生させるように割り込みコントローラ18を設定する。
【0037】
次に、上記モニタプログラム12によるブレークポイントの通知処理について図3を参照しながら説明する。
【0038】
まず、ステップb1において、モニタプログラム12は、アプリケーションソフトウェア11の実行がブレークポイントに到達すると、CPU15に割り込みを発生させて、まず、CPU15のレジスタ資源をメモリに退避させる。次に、ステップb2において、モニタプログラム12は、スレッドIDレジスタ14から現在実行していたスレッドIDを取得する。次に、ステップb3において、モニタプログラム12は、ホストコンピュータ20内のデバッガプログラム22に対して、CPU15によるアプリケーションソフトウェア11の停止要因、停止アドレス及びスレッドIDを通知する。
【0039】
次に、ステップb4において、モニタプログラム12は、デバッガプログラム22から停止要因、停止アドレス及びスレッドIDの通知に基づいたコマンドをホストコンピュータ20から受信する。次に、ステップb5において、モニタプログラム12は受信したコマンドの種別を解析する。そして、ステップb6において、モニタプログラム12によって、解析後のコマンドの種別が判定される。コマンド種別がメモリリード又はメモリライト(以下、メモリR/Wという)を指示するコマンドである場合は、ステップb7において、指定されるアドレスに対してメモリR/Wの動作を行う。一方、コマンド種別が実行の再開を指示するコマンドである場合は、ステップb8において、退避されたレジスタ資源を回復して、アプリケーションソフトウェア11の実行動作に復帰する。
【0040】
ここで、前記一連のモニタプログラム12の実行は、マルチスレッド型プロセッサにおいては、1つのスレッド内の処理として実行されることである。すなわち、マルチスレッド型プロセッサにおいては、モニタプログラム12はスレッド内の処理の延長で割り込み処理として実行されるため、モニタプログラム12の実行途中にスレッドの切替えは矛盾なく行われるので、他のスレッドの実行が停止されることはない。単一のスレッド内においては、デバッガプログラム22からのコマンド待ちをしている間、実質的にアプリケーションソフトウェア11の処理を停止させている。
【0041】
次に、デバッガプログラム22によるブレークポイントの通知処理について図4を参照しながら説明する。
【0042】
図4に示すように、デバッガプログラム22は、ステップc1において、通常のデバッグ処理を行っているが、ターゲットシステム10内のCPU15又はモニタプログラム12からCPU15によるアプリケーションソフトウェア11の停止要因、停止アドレス及びスレッドIDを受信すると(ステップc2)、アプリケーションソフトウェア11の停止要因、停止アドレス及びスレッドIDを表示装置30に表示させる(ステップc3)。
【0043】
最後に、デバッガプログラム22により表示装置30に表示される画面について図5を参照しながら説明する。
【0044】
図5に示すように、表示装置30の画面には、操作者によりアプリケーションプログラム11の現在の実行箇所51及びブレークポイントの設定箇所52をソースコードの位置が表示されており、一般的に「コードウィンドウ」と称されるものである。また、これとは別に「コマンドウィンドウ」等と称されるウィンドウ上で操作者がコマンドを入力することにより、ブレークポイントの設定等をデバッガプログラム22に指示することを可能にする。
【0045】
以上のように本実施形態によると、単一のスレッドに着目してデバッグを行う場合の特定スレッド停止モードである場合には、アプリケーションソフトウェア11におけるスレッド内の任意の箇所にブレークポイントを設定した後、アプリケーションソフトウェア11の実行がブレークポイントで停止したときに、そのスレッドのみの実行を停止させると共に、他のスレッドの実行を継続させることができる。これにより、他のスレッドにおいて、実行停止によりシステムの挙動に重大な影響を与えるスレッドがあるような場合に、そのスレッドの実行を停止をさせることなくデバッグを行うことができる。
【0046】
また、システムの全体に着目してデバッグを行う全スレッド停止モードである場合には、アプリケーションソフトウェア11におけるスレッド内の任意の箇所にブレークポイントを設定した後、アプリケーションソフトウェア11がブレークポイントで停止したときに、そのスレッドのみの実行を停止させるのではなく、全てのスレッドの実行を停止させることができる。これにより、例えば、あるスレッドが停止した時点に他のスレッドの実行状態を確認する必要がある場合等に特に有効である。
【0047】
【発明の効果】
本発明によると、マルチスレッド型プロセッサ上で並行処理されている単一のスレッドのみの実行を停止させることできる。このため、例えば、他のスレッドにおいては、実行を停止させることによりシステムの挙動に重大な影響があるようなスレッドに対して、その処理を停止させることなくデバッグを行うことができる。また、単一のスレッドのみを停止させるのではなく、全てのスレッドを停止させることができる。このため、例えば、あるスレッドの停止時点の他のスレッドの状態を確認する必要がある場合等に有効である。さらに、単一のスレッドのみの実行を停止させるか又は全てのスレッドの停止、すなわちシステム全体を停止させるかのいずれかを選択することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るデバッグ制御装置を示すブロック図である。
【図2】デバッガプログラムによるブレークポイント設定処理を示すフローチャートである。
【図3】モニタプログラムによるブレークポイント通知処理を示すフローチャートである。
【図4】デバッガプログラムによるブレークポイント通知処理を示すフローチャートである。
【図5】表示装置の表示画面を示す図である。
【符号の説明】
10 ターゲットシステム
11 アプリケーションソフトウェア
12 モニタプログラム
13 主記憶装置
14 スレッドIDレジスタ
15 CPU(マルチスレッド型プロセッサ)
16 スイッチ
17 クロック信号発振器
18 割り込みコントローラ
19 バス
20 ホストコンピュータ
21 OS
22 デバッガプログラム
23 実行制御モード
30 表示装置
40 通信路

Claims (6)

  1. 複数のスレッドを時分割で並行処理するマルチスレッド型プロセッサ上で動作するアプリケーションソフトウェアのデバッグの制御を司るデバッガプログラムと、
    前記デバッガプログラムによるデバッグの制御を実行するための実行制御命令を前記デバッガプログラムから入力し、前記アプリケーションソフトウェアのデバッグの制御を中継するモニタプログラムとを備え、
    前記デバッガプログラムは、
    前記アプリケーションソフトウェアのデバッグ対象となるスレッドのIDを示すスレッドID及びそのスレッドIDについてのブレークポイントとなる停止アドレスを入力すると共に、前記マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる特定スレッド停止モード又は前記マルチスレッド型プロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる全スレッド停止モードを示す実行制御モードを入力し、前記実行制御モードに基づいて、前記実行制御命令を前記モニタプログラムに対して出力し、
    前記モニタプログラムは、
    前記デバッガプログラムからの前記実行制御命令を入力し、前記実行制御モードが前記特定スレッド停止モードである場合には、前記マルチスレッド型プロセッサによる前記アプリケーションソフトウェアに対する処理が前記ブレークポイントに到達したことを判断すると、前記マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる一方、前記実行制御モードが前記全スレッド停止モードである場合には、前記マルチスレッド型プロセッサによる前記アプリケーションソフトウェアに対する処理が前記ブレークポイントに到達したことを判断すると、前記マルチプロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる処理を行う
    ことを特徴とするデバッグ制御装置。
  2. 請求項1に記載のデバッグ制御装置において、
    前記モニタプログラムからの指示に従って動作する割り込みコントローラをさらに備え、
    前記モニタプログラムは、
    前記実行制御モードが特定スレッド停止モードである場合には、前記マルチスレッド型プロセッサによる前記アプリケーションソフトウェアに対する処理が前記ブレークポイントに到達したことを判断すると、前記マルチスレッド型プロセッサに対して割り込みを発生させるように、前記割り込みコントローラを設定することにより、前記ブレークポイントのスレッドのみを停止させると共に、他のスレッドの実行を継続させる処理を行う一方、
    前記実行制御モードが全スレッド停止モードである場合には、前記マルチスレッド型プロセッサによる前記アプリケーションソフトウェアに対する処理が前記ブレークポイントに到達したことを判断すると、前記マルチスレッド型プロセッサに供給されるクロックを停止させるように、前記割り込みコントローラを設定することにより、前記マルチスレッド型プロセッサ上で並行処理されている全てのスレッドを停止させる処理を行うことを特徴とするデバッグ制御装置。
  3. 請求項2に記載のデバッグ制御装置において、
    前記マルチスレッド型プロセッサ上で現在実行されているスレッドのスレッドIDを識別し、記憶保持するスレッドIDレジスタをさらに備え、
    前記デバッガプログラムは、ホストコンピュータに格納されており、
    前記モニタプログラムは、
    前記実行制御モードが特定スレッド停止モードである場合に、前記ブレークポイントに到達したことを判断して、前記マルチスレッド型プロセッサに対して割り込みを発生させた後、前記マルチスレッド型プロセッサのレジスタ資源を退避して、前記ブレークポイントに到達した時点のスレッドIDを前記スレッドIDレジスタから取得した後、当該スレッドID、前記ブレークポイントの停止アドレス及び前記アプリケーションソフトウェアに対する実行の停止要因を前記ホストコンピュータに格納された前記デバッガプログラムに通知し、
    前記ホストコンピュータは、
    前記モニタプログラムから前記デバッガプログラムに通知された前記スレッドID、前記ブレークポイントの停止アドレス及び前記アプリケーションソフトウェアに対する実行の停止要因に基づいて、メモリの読み出し及び書き込みを行う命令又は前記アプリケーションソフトウェアの実行の再開を行う命令を前記モニタプログラムに対して行い、
    前記モニタプログラムは、
    前記実行の再開を行う命令を受けた場合に、前記退避させたレジスタ資源の回復を行うことにより、前記アプリケーションソフトウェアに対する実行を再開することを特徴とするデバッグ制御装置。
  4. 請求項2に記載のデバッグ制御装置において、
    前記マルチスレッド型プロセッサ上で現在実行されているスレッドのスレッドIDを識別し、記憶保持するスレッドIDレジスタをさらに備え、
    前記デバッガプログラムは、ホストコンピュータに格納されており、
    前記モニタプログラムは、
    前記実行制御モードが全スレッド停止モードである場合に、前記ブレークポイントに到達したことを判断して、前記マルチスレッド型プロセッサに対するクロックの供給を停止させた後、前記ブレークポイントの停止アドレス、前記アプリケーションソフトウェアに対する実行の停止要因及び全てのスレッドを停止する旨を前記ホストコンピュータに格納された前記デバッガプログラムに通知することを特徴とするデバッグ制御装置。
  5. 請求項3に記載のデバッグ制御装置において、
    前記デバッガプログラムは、
    前記実行制御モードが特定スレッド停止モードである場合には、前記スレッドID、前記ブレークポイントの停止アドレス及び前記アプリケーションソフトウェアに対する実行の停止要因の通知を受けた後、これらを表示装置に表示させる一方、
    前記実行制御モードが全スレッド停止モードである場合に、前記アプリケーションソフトウェアに対する実行の停止要因及び全てのスレッドを停止する旨の通知を受けた後、これらを表示装置に表示させることを特徴とするデバッグ制御装置。
  6. 複数のスレッドを時分割で並行処理するマルチスレッド型プロセッサ上で動作するアプリケーションソフトウェアのデバッグの制御を司るデバッガプログラムと、前記デバッガプログラムによるデバッグの制御を実行するための実行制御命令を前記デバッガプログラムから入力し、前記アプリケーションソフトウェアのデバッグの制御を中継するモニタプログラムとを備えるデバッグ制御装置の制御方法であって、
    前記アプリケーションソフトウェアのデバッグ対象となるスレッドのIDを示すスレッドID及びそのスレッドIDについてのブレークポイントとなる停止アドレスを前記デバッガプログラムに入力すると共に、前記マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる特定スレッド停止モード又は前記マルチスレッド型プロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる全スレッド停止モードを示す実行制御モードを前記デバッガプログラムに入力するステップと、
    前記デバッガプログラムに入力するステップにおける前記実行制御モードに基づいて、前記実行制御命令を前記モニタプログラムに対して出力する第2のステップと、
    前記モニタプログラムに対して出力するステップにおける前記実行制御命令に基づいて、前記実行制御モードが前記特定スレッド停止モードである場合には、前記マルチスレッド型プロセッサによる前記アプリケーションソフトウェアに対する処理が前記ブレークポイントに到達したことを判断すると、前記マルチスレッド型プロセッサ上で並行処理されているスレッドのうちの所定の1つのスレッドに対する処理を停止させる一方、前記実行制御モードが前記全スレッド停止モードである場合には、前記マルチスレッド型プロセッサによる前記アプリケーションソフトウェアに対する処理が前記ブレークポイントに到達したことを判断すると、前記マルチプロセッサ上で並行処理されている全てのスレッドに対する処理を停止させる処理を行うステップとを備えることを特徴とするデバッグ制御装置の制御方法。
JP2003113998A 2003-04-18 2003-04-18 デバッグ制御装置及びその制御方法 Withdrawn JP2004318658A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003113998A JP2004318658A (ja) 2003-04-18 2003-04-18 デバッグ制御装置及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003113998A JP2004318658A (ja) 2003-04-18 2003-04-18 デバッグ制御装置及びその制御方法

Publications (1)

Publication Number Publication Date
JP2004318658A true JP2004318658A (ja) 2004-11-11

Family

ID=33473723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003113998A Withdrawn JP2004318658A (ja) 2003-04-18 2003-04-18 デバッグ制御装置及びその制御方法

Country Status (1)

Country Link
JP (1) JP2004318658A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1855205A1 (en) * 2006-01-11 2007-11-14 Seiko Epson Corporation Debug supporting device, and program for causing computer to execute debug processing method
JP2009193109A (ja) * 2008-02-12 2009-08-27 Advantest Corp デバッグ中にツールを使用可能な試験システム及び方法
JP2013254508A (ja) * 2006-11-15 2013-12-19 Qualcomm Inc エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1855205A1 (en) * 2006-01-11 2007-11-14 Seiko Epson Corporation Debug supporting device, and program for causing computer to execute debug processing method
EP1855205A4 (en) * 2006-01-11 2010-04-28 Seiko Epson Corp DEVICE FOR IMPLEMENTING DEBINING, AND SOFTWARE TO ENABLE THE COMPUTER TO EXECUTE THE DEBINING PROCESSING METHOD
US7992042B2 (en) 2006-01-11 2011-08-02 Seiko Epson Corporation Debug support device, and program for directing computer to perform debugging method
JP2013254508A (ja) * 2006-11-15 2013-12-19 Qualcomm Inc エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル
JP2009193109A (ja) * 2008-02-12 2009-08-27 Advantest Corp デバッグ中にツールを使用可能な試験システム及び方法

Similar Documents

Publication Publication Date Title
US10698690B2 (en) Synchronisation of execution threads on a multi-threaded processor
US8001549B2 (en) Multithreaded computer system and multithread execution control method
US7992042B2 (en) Debug support device, and program for directing computer to perform debugging method
EP2159687B1 (en) Arithmetic unit
JP3571976B2 (ja) デバッグ装置及び方法並びにプログラム記録媒体
JPH01173247A (ja) スレーブ制御装置
JP2522158B2 (ja) マルチプロセッサシステムのプログラムデバッグ方法
JP2004318658A (ja) デバッグ制御装置及びその制御方法
US20100107169A1 (en) Periodical task execution apparatus, periodical task execution method, and storage medium
US7716529B2 (en) System LSI
JP2010015364A (ja) マルチプロセッサシステム及び情報処理装置
JPH09274567A (ja) プログラムの実行制御方法及びそのためのプロセッサ
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム
JPH01147640A (ja) マルチプログラミング・デバッグ装置
JPH08161195A (ja) アドレストレース格納装置及びアドレストレース生成方法
JPH01147639A (ja) マルチプログラミング・デバッグ装置
JP5621232B2 (ja) アウトオブオーダー実行プロセッサ
JP3029355B2 (ja) 命令のシングルステップ実行方式
JP2006139496A (ja) 演算処理装置
JPH08106406A (ja) マルチタスクプログラムの暴走検出装置
JP2000122882A (ja) マルチスレッドプロセッサおよびデバッグ装置
JPH11272501A (ja) デバッガの処理方法およびリアルタイムosの処理方法
JPH0336633A (ja) 仮想計算機の割り込み直接実行方式
JPH08179958A (ja) 制御用電子装置
WO1993025967A1 (en) System for aiding debugging of integrated circuit microprocessor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060412

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080630