JP2000172532A - マルチタスクデバッグ装置及びマルチタスクデバッグ方法 - Google Patents

マルチタスクデバッグ装置及びマルチタスクデバッグ方法

Info

Publication number
JP2000172532A
JP2000172532A JP10348933A JP34893398A JP2000172532A JP 2000172532 A JP2000172532 A JP 2000172532A JP 10348933 A JP10348933 A JP 10348933A JP 34893398 A JP34893398 A JP 34893398A JP 2000172532 A JP2000172532 A JP 2000172532A
Authority
JP
Japan
Prior art keywords
breakpoint
task
setting
invalidation
breakpoints
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10348933A
Other languages
English (en)
Inventor
Hiroaki Takada
広章 高田
Akira Yokozawa
彰 横澤
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP10348933A priority Critical patent/JP2000172532A/ja
Publication of JP2000172532A publication Critical patent/JP2000172532A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】マルチタスク環境下でのデバッグの際に、デバ
ッグ対象でないタスクに属するブレークポイントの発生
を抑制し、併せてタスク切り替え時のブレークポイント
の設定・解除に関連するオーバーヘッドを軽減してデバ
ッグ効率を向上させることにある。 【解決手段】 ブレークポイント設定部110と、ブレ
ークポイント解除部120と、プログラム実行中に検出
されたブレークポイントの情報に従って、前記プログラ
ムの実行を停止、または実行中のタスクに不要なブレー
クポイントの状態の無効化を行うブレークポイント検出
部130と、実行されるタスクの切り替えの際に、状態
が無効であるブレークポイントについての有効化を行う
ブレークポイント切替部140とを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクデバ
ッグ装置及びマルチタスクデバッグ方法に関し、とく
に、マルチタスク環境下でのソフトウエアのデバッグの
際に、デバッグ対象でないタスクに属するブレークポイ
ントの発生を抑制し、併せてタスク切り替え時のブレー
クポイントの設定・解除に関連するオーバーヘッドを軽
減してデバッグ効率を向上させるための技術に関する。
【0002】
【従来の技術】近年、マイクロコンピュータ等において
も、処理効率向上のため、マルチタスクOS(Oper
ating System)による処理が実現されてい
る。ここで、タスクとは、一般にOS内の制御プログラ
ムにより処理される1つの実行単位をいい、従って、マ
ルチタスク環境とは、複数のアプリケーションを並行し
て稼働させるために、かかるタスクを複数並行して処理
可能な環境であり、一般に、CPUを時分割で複数タス
クに割り当て占有させることにより実現される。
【0003】ここで、かかるマルチタスク環境で稼働す
るアプリケーションソフトウエアが、所定の動作仕様、
機能仕様を満たすまで、その動作を検証、確認を繰り返
し行う必要があるが、かかる稼働確認および仕様を満た
さない場合の、不具合の分析、修正を行うためのツール
が、デバッガである。すなわち、デバッガとは、デバッ
グ対象となるプログラムをコンピュータ上にロードし、
実行および停止、変数お内容参照、変更などの基本的操
作を行うプログラムである。
【0004】デバッガは、一般に、以下の手順で用いら
れる。すなわち、デバッガを起動させた後に、その下
で、ターゲットとなるプログラムを実行させる。その際
には、プログラム中の特定のアドレスにブレークポイン
トと呼ばれる停止点を予め設定しておく。かかるブレー
クポイントにさしかかった場合には、プログラムの実行
が停止し、ユーザーに制御が戻るので、その停止点にお
けるメモリ上の所定の変数の値の確認を行ったり、レジ
スタの内容の確認等が行え、動作確認および不具合の解
析やこれに基づくプログラムコードの修正が可能となる
のである。かかるブレークポイント機能は、従って、デ
バッガにおけるもっとも基本的な機能である。そして、
ブレークポイントの設定及び解除は、デバッグ作業には
不可避であるが、同時にオーバーヘッドの高い処理でも
ある。
【0005】ここで、マルチタスク環境のデバッグとし
ては、各タスクごとに独立して稼働確認を行うことが必
要となる。従って、デバッガに求められる要件は以下の
2点である。
【0006】まず、第一に、複数タスクが同時に実行さ
れることから、デバッグも各タスク毎に独立して行える
ことが必要となる。すなわち、タスクごとに独立したブ
レークポイントが設定できることが求められるのであ
る。
【0007】また、第二には、特に複数タスクから共通
に呼び出されるモジュールで問題となるのであるが、か
かる共通モジュールの実行中においても、特定のタスク
から呼び出された場合にのみ、実行が停止できることが
求められるのである。かかる共通モジュールは、特にメ
モリ資源が制限されるマイクロコンピュータにおいて
は、資源効率を上げるために必然的に多用せざるを得な
いものである。このため、ある共通モジュール中のブレ
ークポイントが、各々複数のタスクに属していることが
多いのである。
【0008】上述したデバッガの要件、すなわちタスク
毎のブレークポイント機能を実現すべく、従来において
は、次のような方法が用いられていた。
【0009】即ち、まず第一には、設定されたすべての
ブレークポイントにさしかかったら、いったん実際にブ
レークをかけ、ブレークが発生した時点で、ブレークが
発生したタスクが、デバッグ対象のタスクであるか否か
を判断し、該当しない場合には、実行を再開するという
方法である。また、第二には、予めブレーク命令による
書き換え及び元命令の退避は行わず、あるタスクから別
のタスクへの切り替え処理の際に、次に実行されるタス
クに属するブレークポイントをすべて再設定し、ブレー
クが発生した場合には、常に停止するという方法であ
る。
【0010】まず、第一の方式について、図32から図
34を用いて以下に説明する。図32において、第一の
方式のマルチタスクデバッグ装置は、ブレークポイント
設定部710と、ブレークポイント検出部720と、ブ
レークポイント設定表730とから構成される。ブレー
クポイント設定表730は、ブレークポイントおよび対
応するタスク識別子との対応関係を示すテーブルであ
る。
【0011】以下に、その動作を説明する。まず、予め
任意のブレークポイントを設定する際の動作につき、図
33に基づき説明する。まず、デバッガに対し、ブレー
クポイント設定要求コマンドが入力される(S710)
と、ブレークポイント設定部710は、コマンドにより
指定されたブレークポイントについて、タスク識別子と
アドレスとの対に翻訳を行う(S711)。そして、当
該ブレークポイントが、ブレークポイント設定表730
に登録済みか否かを判定し、未登録であれば、エントリ
ーの追加を行う(S712、S713)。次に、与えら
れたアドレスにある対応命令コードを、ブレークポイン
ト設定テーブルの対応するエントリーに保存し(S71
4)、該当アドレスをブレーク用の命令により書き換え
る(S715)。
【0012】次に、プログラム実行中の動作につき、図
34に基づき説明する。デバッガの制御下で実行させた
デバッグ対象プログラムが、ブレーク命令まで達する
と、ブレークポイント検出部720のモジュールに制御
が移る。かかるブレークポイント検出部720は、例え
ばOSの機能呼び出しなどを用いることにより現在実行
中のタスクのタスク識別子を獲得する(S720)。次
に、ヒットしたブレーク命令のアドレスをキーとして、
ブレークポイント設定表730を検索し、当該ブレーク
ポイントが属するブレークポイント番号、およびこれに
属するタスク識別子を取得する(S721)。尚、1の
ブレークポイントに対応するタスクは1とは限らないの
で、この場合に取得されるタスク識別子は複数の場合も
ある。
【0013】次に、ブレークポイント検出部720で
は、得られたすべてのブレークポイント番号について、
当該ブレークポイントに属するタスク識別子と、現在実
行中のタスク識別子との比較を行い(S723)、一致
した場合には、実行中のタスクを停止して(S72
5)、OSのタスク切替処理部へ分岐する(S72
6)。一方、一致しなかった場合には、同じアドレスに
属する他のブレークポイントについての比較を順に行
い、すべて一致しなかった場合には、ブレーク命令の次
の命令から元のタスクの実行を再開するのである(S7
24)。尚、以下のフローチャート中において、二重の
横線で囲まれたボックスは、OSによる処理、又はOS
への制御の遷移を示す。
【0014】このように、第一の方式では、ブレークポ
イントに達した場合には、当該ブレークポイントがデバ
ッグ対象のタスクに属するか否かに拘わらず、常にいっ
たんブレークポイント検出部720に制御が渡り、停止
するか否かの判断が行われていたのである。
【0015】次に、第二の方式について、図35から図
38を用いて以下に説明する。図35において、マルチ
タスクデバッグ装置は、ブレークポイント設定部810
と、ブレークポイント処理部820と、ブレークポイン
ト切替部830と、ブレークポイント設定表840とか
ら構成される。ブレークポイント設定表840は、第一
の方式と同様、ブレークポイントおよび対応するタスク
識別子との対応関係を有するテーブルである。
【0016】以下に、その動作を説明する。まず、予め
任意のブレークポイントを設定する際の動作につき、図
36に基づき説明する。まず、デバッガに対し、ブレー
クポイント設定要求コマンドが入力されると(S81
0)、ブレークポイント設定部810は、コマンドによ
り指定されたブレークポイントについて、タスク識別子
とアドレスとの対に翻訳を行い(S811)、ブレーク
ポイント設定表840に登録済みか否かを判定し、未登
録であれば、エントリーの追加を行う(S812、S8
13)。尚、この際には、該当アドレスへのブレーク命
令の書き込みおよび元命令の退避は行わない。
【0017】次に、プログラム実行中の動作につき、図
37に基づき説明する。まず、プログラム実行中におい
て、ブレーク命令に達した場合には、ブレークポイント
処理部820に制御が渡る。ブレークポイント処理部8
20は、現在実行中のタスクの停止処理を行い(S82
0)、OSのタスク切替処理部に分岐する(S82
1)。
【0018】次に、タスク切替処理部における処理内容
を、図38に基づき説明する。
【0019】デバッグ実行中に、タスクの切り替えが生
じると、タスク切替処理部に制御が渡る。かかるタスク
切替処理部は、通常OSの一部として動作するモジュー
ルであり、実行すべきタスクが切り替わる際に、起動さ
れる。ブレークポイントの切替に関する処理(S83
1、S833)は、かかるタスク切替処理部から呼び出
される形式で、ブレークポイント切替部830により行
われる。タスク切替処理部は、まず、現在実行中のタス
クのコンテキストの退避を行う(S830)。次に、取
得したタスク識別子をキーとして、ブレークポイント設
定表840から、現在実行中のタスク、すなわち切り替
え前のタスクに属する全ブレークポイント情報が検索さ
れる。そして、現在のタスクに属するすべてのブレーク
ポイントについて、ブレークポイントの解除、すなわ
ち、ブレークポイント設定表に保存してある元命令のコ
ードで該当アドレスを書き換えて元命令の復旧を行う
(S831)。
【0020】次に、実行すべきタスクが選択され(S8
32)、タスクの切り替え処理を行う。その後、これか
ら実行するタスク、すなわち切り替え後のタスクのタス
ク識別子をキーとして、ブレークポイント設定表840
から、切り替え後のタスクに属するブレークポイント情
報の検索を行う。そして、次のタスクに属する全ブレー
クポイントについて、ブレークポイントの再設定、すな
わち、そのアドレスの元命令コードの、ブレークポイン
ト設定テーブル上の該当ブレークポイントのエントリー
への退避、及び当該アドレスへのブレーク命令の書き込
みを行う(S833)。その後、次のタスクについての
コンテキストの復旧が行われる(S834)。
【0021】このように、第二の方式では、ブレークポ
イントに達した場合には、タスク切り替えの際に、切り
替え前のタスクに属する全ブレークポイントの解除処
理、および切り替え後のタスクに属する全ブレークポイ
ントの設定処理を行っていたのである。
【0022】以上のように、前述した従来のマルチタス
クデバッグ方式には、以下の問題点があった。
【0023】すなわち、第一の方式においては、すべて
のブレークポイントについて、すなわち不要なブレーク
ポイントについても、必ずブレークポイント処理が発生
するため、デバッグ対象としていないタスクについて
も、常にブレークポイント検出部720に制御が渡り、
その後、実行が再開されるという処理がなされていた。
このため、ブレーク処理における処理のオーバーヘッド
が生じており、デバッグ処理を非効率なものとしていた
のである。従って、特に、複数のタスクがコードを共有
する共通モジュールのデバッグにおいては、対象外のタ
スクからブレークポイントのかけられたコードを実行し
ようとする場合が頻発し、デバッグ効率を大幅に低下さ
せていた。このように、デバッグ対象のタスクの実行性
能が低下することは措くとしても、共通モジュールを用
いる、デバッグ対象外のタスクの実行性能もが低下する
ことにより、特に、実時間性の高い処理のタスク(プロ
グラム)の場合には、正常稼働を妨げ、想定しえない不
具合を引き起こし、デバッグ効率の低下を更に助長して
いた。
【0024】また、第二の方式においては、第一の方式
のような、全ブレークポイントについてのブレークポイ
ント処理のオーバーヘッドはある程度克服されているも
のの、デバッグ実行中のタスクの切換が生じた際に、常
に、切り替え前のタスクに属する全ブレークポイントを
解除し、切り替え後のタスクに属する全ブレークポイン
トを設定し直すという、タスク切り替え時におけるオー
バーヘッドが新たに加わった。かかるオーバーヘッド
は、切り替えの前後のタスクに属するブレークポイント
数に比例して増大し、デバッグ効率を低下させていた。
【0025】
【発明が解決しようとする課題】以上のように、本発明
は、従来技術における、マルチタスク環境下におけるプ
ログラムのデバッグの実行中に、不要なブレークポイン
トが発生し、また、タスク切り替え時においてもブレー
クポイント処理(設定、解除)のオーバーヘッドが高
く、デバッグが非効率的であったという問題点を解決す
るためになされたものである。
【0026】そして、その目的とするところは、デバッ
グ対象のタスクに属するブレークポイントについてのみ
ブレークを発生させ、また、不要なブレークポイントに
ついては無効化を行ってタスク切り替え時に有効化する
ことにより、不要なブレークの発生を抑制するととも
に、タスク切り替え時のブレークポイント切り替えに関
連するオーバーヘッドを軽減し、各タスクごとのデバッ
グ効率を向上させることを可能とするマルチタスクデバ
ッグ装置および方法を提供することにある。
【0027】また、他の目的は、無効化するブレークポ
イント数の上限制御を行うことにより、タスク切り替え
時のブレークポイント処理を所定時間内に行い、他のタ
スクの不測の誤動作を防止して、さらに、タスク切り替
えに係るデバッグ効率の向上を図ることにある。
【0028】また、他の目的は、無効化の上限を越えた
場合に有効化するブレークポイントの選択を、最先に無
効化された順番に従って行うことにより、局所性の高い
タスク(非定常的なタスク、頻繁に呼び出されるタス
ク)が存在する場合における、不要なブレークポイント
の有効化の抑制を図ることにある。
【0029】また、他の目的は、無効化の上限を越えた
場合に有効化するブレークポイントの選択を、各ブレー
クポイント毎の無効化の頻度に従って行うことにより、
不要なブレークポイントの検出に起因するオーバーヘッ
ドを軽減し、ブレークポイントの有効化の最適化を図る
ことにある。
【0030】また、他の目的は、無効化するブレークポ
イント数の上限制御を個別タスク毎に独立した情報に基
づいて行うことにより、他のタスクの影響を排除し、ブ
レークポイント処理効率の更なる向上を図ることにあ
る。
【0031】更に、他の目的は、デバッグ対象のタスク
に属するブレークポイントについてのみブレークを発生
させ、また、不要なブレークポイントについては無効化
を行ってタスク切り替え時に有効化することにより、不
要なブレークの発生を抑制するとともに、タスク切り替
え時のブレークポイント切り替えに関連するオーバーヘ
ッドを軽減し、各タスクごとのデバッグ効率を向上させ
ることを可能とするマルチタスクデバッグプログラムを
格納したコンピュータ読み取り可能な記録媒体を提供す
ることにある。
【0032】
【課題を解決するための手段】要するに、本発明方法
(請求項1)は、複数のタスクが実行される環境で、任
意アドレスへのタスク毎のブレークポイント設定が可能
なマルチタスクデバッグ装置であって、入力された任意
のアドレスとタスクとの対応に従い、該アドレスへのブ
レークポイントの設定と、各ブレークポイント毎の状態
及び各タスク毎の該タスクに属するブレークポイントを
含むブレークポイント情報の登録とを行うブレークポイ
ント設定部と、設定された前記ブレークポイントの解除
および前記ブレークポイント情報の削除を行うブレーク
ポイント解除部と、プログラム実行中に検出されたブレ
ークポイントに従って、前記プログラムの実行を停止す
るブレークポイント検出部と、実行されるタスクの切り
替えの際に、所定のブレークポイントの再設定を行うブ
レークポイント切替部とを少なくとも具備し、前記ブレ
ークポイントの検出の際には、前記各タスク毎に登録さ
れたブレークポイントに基づいて、現在実行中のタスク
に不要なブレークポイントの無効化を行い、前記ブレー
クポイントの切り替えの際には、前記ブレークポイント
情報に基づいて、前記状態が無効であるブレークポイン
トについての有効化を行うことを特徴とするものであ
る。
【0033】上記構成によれば、各タスクに属するブレ
ークポイント情報及び各ブレークポイント毎の状態の情
報を用いて、デバッグ対象のタスクに属するブレークポ
イントでのみブレークを発生させ、また、不要なブレー
クポイントについては状態の無効化を行ってタスク切り
替え時に有効化することが可能となる。つまり、不要な
ブレークの発生を抑制するとともに、タスク切り替え時
のブレークポイント切り替えに関連するオーバーヘッド
を軽減することが可能となるのである。
【0034】また、請求項2の発明においては、複数の
タスクが実行される環境で、任意アドレスへのタスク毎
のブレークポイント設定が可能なマルチタスクデバッグ
装置であって、前記ブレークポイント毎に、少なくと
も、該ブレークポイントが設定されたアドレスと、前記
ブレークポイントについての有効または無効のいずれか
の値を示す状態フラグとを記録する全ブレークポイント
設定表と、各タスク毎に、該タスクに属するブレークポ
イントを記録する個別タスクブレークポイント設定表
と、入力された任意のアドレスとタスクとの対応に従
い、該アドレスへのブレークポイントの設定と、前記全
ブレークポイント設定表への設定するブレークポイント
についての前記状態フラグの有効を示す値によるセット
と、前記個別ブレークポイント設定表への前記設定する
ブレークポイントの登録とを少なくとも行うブレークポ
イント設定部と、前記設定されたブレークポイントの解
除及び前記個別タスクブレークポイント設定表及び前記
全ブレークポイント設定表からの前記設定されたブレー
クポイントのエントリーの削除を行うブレークポイント
解除部と、プログラム実行中にブレークポイントを検出
した際に、現在実行中のタスクに対応する前記個別タス
クブレークポイント設定表に、前記ブレークポイントが
検出されたアドレスに設定されたブレークポイントが存
在する場合には、前記プログラムの実行を停止し、前記
ブレークポイントが存在しなかった場合には、前記ブレ
ークポイントの無効化を行うブレークポイント検出部
と、前記タスク切り替えの際に、前記状態フラグが無効
を示す値であるブレークポイントについての有効化を行
うブレークポイント切替部とを少なくとも具備すること
を特徴とするものである。
【0035】上記構成によれば、個別ブレークポイント
設定表の各タスク毎のブレークポイント情報及び全ブレ
ークポイント設定表の各ブレークポイント毎の状態フラ
グを用いることにより、請求項1の発明と同様、デバッ
グ対象のタスクに属するブレークポイントでのみブレー
クを発生させ、また、不要なブレークポイントについて
は状態の無効化を行ってタスク切り替え時に有効化する
ことが可能となる。
【0036】また、請求項3の発明においては、複数の
タスクが実行される環境で、任意アドレスへのタスク毎
のブレークポイント設定が可能なマルチタスクデバッグ
装置であって、入力された任意のアドレスとタスクとの
対応に従い、該アドレスへのブレークポイントの設定
と、各ブレークポイント毎の状態及び各タスク毎の該タ
スクに属するブレークポイントを含むブレークポイント
情報の登録とを行うブレークポイント設定部と、設定さ
れた前記ブレークポイントの解除および前記ブレークポ
イント情報の削除を行うブレークポイント解除部と、プ
ログラム実行中に検出されたブレークポイントが、現在
実行中のタスクに属するブレークポイントである場合に
は、前記プログラムの実行を停止し、現在実行中のタス
クに属するブレークポイントでない場合には、該ブレー
クポイントの前記状態の無効化を行うブレークポイント
検出部と、実行されるタスクの切り替えの際に、前記ブ
レークポイント情報に基づいて、前記状態が無効である
ブレークポイントについての有効化を行うブレークポイ
ント切替部と、今まで無効化されたブレークポイントの
総数を示す無効化カウントとを少なくとも具備し、前記
無効化を行う際には、前記無効化カウントが、予め設定
されたしきい値を越えるまで、ブレークポイントの無効
化を行い、前記無効化カウントが前記しきい値を越えた
場合には、無効化されたブレークポイントを選択的に有
効化することを特徴とするものである。
【0037】上記構成によれば、無効化するブレークポ
イントの数の上限制御を行って、タスク切り替え時に有
効化するブレークポイントの数を制限することが可能と
なる。つまり、タスク切り替え処理時間を予測すること
が可能となるのである。
【0038】また、請求項4の発明においては、上記マ
ルチタスクデバッグ装置は、さらに、前記ブレークポイ
ント毎に、少なくとも、該ブレークポイントが設定され
たアドレスを記録する全ブレークポイント設定表と、各
タスク毎に、該タスクに属するブレークポイントを記録
する個別タスクブレークポイント設定表と、現在無効化
されたブレークポイントを、先に無効化されたブレーク
ポイントに順次追加することにより作成される無効化ブ
レークポイントリストとを有し、前記ブレークポイント
の無効化の際に行われる前記有効化は、前記無効化ブレ
ークポイントリストの先頭のブレークポイントを選択し
た対象について行われるため、最先に無効化された順番
に従って有効化が行われる。このため、処理に局所性が
ある場合の、不要なブレークポイントの有効化の抑制が
図られることとなる。
【0039】また、請求項5の発明においては、上記マ
ルチタスクデバッグ装置は、更に、前記ブレークポイン
ト毎に、少なくとも、該ブレークポイントが設定された
アドレス、前記ブレークポイントについての有効または
無効のいずれかの値を示す状態フラグ、及び前記ブレー
クポイントの無効化履歴のカウントを記録する全ブレー
クポイント設定表と、各タスク毎に、該タスクに属する
ブレークポイントを記録する個別タスクブレークポイン
ト設定表とを有し、前記ブレークポイントの無効化の際
に行われる前記有効化は、前記状態フラグが無効を示す
ブレークポイント中から前記無効化履歴のカウントの少
ないブレークポイントを選択した対象について行われる
ため、無効化された頻度の高いブレークポイントほど、
有効化される確率が下がることとなる。このため、不要
なブレークポイントの有効化の抑制が図られることとな
る。
【0040】また、請求項6の発明においては、前記無
効化カウント、および前記無効化ブレークポイントリス
トは、それぞれ各タスク毎に設けられるため、他のタス
クの影響を排除し、ブレークポイント処理効率の向上が
更に図られることとなる。
【0041】また、本発明方法(請求項7)は、複数の
タスクが実行される環境で、任意アドレスへのタスク毎
のブレークポイント設定が可能なマルチタスクデバッグ
方法であって、入力された任意のアドレスとタスクとの
対応に従い、該アドレスへのブレークポイントの設定
と、各ブレークポイント毎の状態及び各タスク毎の該タ
スクに属するブレークポイントを含むブレークポイント
情報の登録とを行うブレークポイント設定ステップと、
設定された前記ブレークポイントの解除および前記ブレ
ークポイント情報の削除を行うブレークポイント解除ス
テップと、プログラム実行中に検出されたブレークポイ
ントに従って、前記プログラムの実行を停止するブレー
クポイント検出ステップと、実行されるタスクの切り替
えの際に、所定のブレークポイントの再設定を行うブレ
ークポイント切替ステップとを含み、 前記ブレークポ
イントの検出の際には、前記各タスク毎に登録されたブ
レークポイントに基づいて、現在実行中のタスクに不要
なブレークポイントの無効化を行い、前記タスクの切り
替えの際には、前記ブレークポイント情報に基づいて、
前記状態が無効であるブレークポイントについての有効
化を行うことを特徴とするものである。
【0042】上記構成によれば、各タスクに属するブレ
ークポイント情報及び各ブレークポイント毎の状態の情
報を用いて、デバッグ対象のタスクに属するブレークポ
イントでのみブレークを発生させ、また、不要なブレー
クポイントについては状態の無効化を行ってタスク切り
替え時に有効化することが可能となる。つまり、不要な
ブレークの発生を抑制するとともに、タスク切り替え時
のブレークポイント切り替えに関連するオーバーヘッド
を軽減することが可能となるのである。
【0043】更に、本発明の記録媒体(請求項11)
は、複数のタスクが実行される環境で、任意アドレスへ
のタスク毎のブレークポイント設定が可能なマルチタス
クデバッグプログラムを格納したコンピュータ読み取り
可能な記録媒体であって、入力された任意のアドレスと
タスクとの対応に従い、該アドレスへのブレークポイン
トの設定と、各ブレークポイント毎の状態及び各タスク
毎の該タスクに属するブレークポイントを含むブレーク
ポイント情報の登録とを行うブレークポイント設定ステ
ップと、設定された前記ブレークポイントの解除および
前記ブレークポイント情報の削除を行うブレークポイン
ト解除ステップと、プログラム実行中に検出されたブレ
ークポイントに従って、前記プログラムの実行を停止す
るブレークポイント検出ステップと、実行されるタスク
の切り替えの際に、所定のブレークポイントの再設定を
行うブレークポイント切替ステップとを含み、前記ブレ
ークポイントの検出の際には、前記各タスク毎に登録さ
れたブレークポイントに基づいて、現在実行中のタスク
に不要なブレークポイントの無効化を行い、前記タスク
の切り替えの際には、前記ブレークポイント情報に基づ
いて、前記状態が無効であるブレークポイントについて
の有効化を行うことを特徴とするものである。
【0044】かかる記録媒体によれば、各タスクに属す
るブレークポイント情報及び各ブレークポイント毎の状
態の情報を用いて、デバッグ対象のタスクに属するブレ
ークポイントでのみブレークを発生させ、また、不要な
ブレークポイントについては状態の無効化を行ってタス
ク切り替え時に有効化することが可能となる。つまり、
不要なブレークの発生を抑制するとともに、タスク切り
替え時のブレークポイント切り替えに関連するオーバー
ヘッドを軽減することが可能となるのである。
【0045】
【発明の実施の形態】第1の実施形態 以下、本発明の第1の実施形態について、図面を参照し
ながら詳細に説明する。
【0046】第1の実施形態は、かつその状態が無効化
されていないブレークポイントについてのみ、ブレーク
処理を行うものである。
【0047】図1は、第1の実施形態にかかるマルチタ
スクデバッグ装置の機能構成を示す図である。図1に示
す如く、第1の実施形態に係るマルチタスクデバッグ装
置100は、ブレークポイント設定部110、ブレーク
ポイント解除部120、ブレークポイント検出部13
0、ブレークポイント切替部140、及びブレークポイ
ント無効化手段150、ブレークポイント有効化手段1
60の6つのソフトウエアモジュールと、全ブレークポ
イント設定表170、個別タスクブレークポイント設定
表180の2種類のテーブルによって構成されている。
【0048】ここで、全ブレークポイント設定表170
は、ブレークポイント番号をインデックスとするエント
リーを有し、各エントリーは、ブレークポイントが設定
されたアドレス、ブレークポイントが設定されたアドレ
ス上の元命令、各ブレークポイントについての’有効’
又は’無効’のいずれかの値を示す状態フラグのフィー
ルドを持つ。尚、ここでブレークポイント番号は、ブレ
ークポイントが設定されたアドレスと一対一に対応する
ものとするが、タスクとアドレスの組に対して一義的に
付与される方式としてもよい。
【0049】また、タスク毎に構成される個別タスクブ
レークポイント設定表180は、各タスクに属するブレ
ークポイント番号のフィールドからなるエントリーを持
つ。
【0050】ブレークポイント設定部110は、デバッ
グ対象とするタスク及びブレークを起こして実行を停止
させたいアドレスを指定して、ブレークポイントの設定
を行う。具体的には、該当アドレスにブレーク命令を書
き込むとともに、全ブレークポイント設定表170及び
個別タスクブレークポイント設定表180へのエントリ
ーの追加と、ブレークポイントを設定したアドレス上の
元命令の退避を行う。
【0051】ブレークポイント解除部120は、デバッ
グが終了したブレークポイントについて、その設定の解
除を行う。具体的には、ブレークポイント設定アドレス
上に元命令を復旧するとともに、個別タスクブレークポ
イント設定表180及び、必要に応じて全ブレークポイ
ント設定表170のエントリーの削除を行う。
【0052】ブレークポイント検出部130は、デバッ
グ対象のプログラム(タスク)を実行中に、ブレーク命
令にさしかかった場合に、制御が渡され、当該ブレーク
ポイントが現在実行中のタスクに属していた場合(個別
タスクブレークポイント設定表180に存在していた場
合)には、現在のタスクの所望するデバッグ箇所である
として、タスクの実行停止を行う。一方、当該ブレーク
ポイントが現在実行中のタスクに関連しなかった場合に
は、当該ブレークポイントの無効化処理を行う。
【0053】ブレークポイント切替部140は、通常、
OS(Operationg System)のスケジ
ューラ等に実装されるタスク切替処理部によりタスクの
切り替えが生じた場合に、かかるOSのタスク切替処理
部から制御が渡り、タスク切り替えに伴って、’無効’
の状態がセットされている全ブレークポイントの有効化
処理を行う。図8に、かかるOSのタスク切替部とブレ
ークポイント切替部140との関係を示す。図8にある
ように、OSにより、現在実行中のタスクのコンテキス
トの退避が行われた後(S190)、ブレークポイント
切替部140が呼び出される。そして、再び制御がOS
に戻され、次に実行されるタスクの選択(S191)、
及び次のタスクについてのコンテキストの復旧(S19
2)が行われるのである。
【0054】ブレークポイント無効化手段150及びブ
レークポイント有効化手段160は、本実施形態におい
ては、汎用モジュールとして別個に構成されているが、
メモリの容量や処理効率等の状況に応じて110から1
40の他の機能構成の一部としてもよい。
【0055】ブレークポイント無効化手段150は、ブ
レークポイントの状態の無効化、すなわち、所定のブレ
ークポイントの状態フラグの’無効’へのセット、及び
当該ブレークポイントの設定アドレスへの元命令の復旧
を行う。
【0056】また、ブレークポイント有効化手段160
は、逆に、所定のブレークポイントの状態フラグの’有
効’へのセット、及び当該ブレークポイントの設定アド
レスへのブレーク用命令の書き込みを行う。
【0057】ここで、本実施形態は、ハードウエア的に
は、ホスト(通常のコンピュータシステム)とターゲッ
ト(マイコン組み込み機器)とを何らかの通信手段によ
り接続した、いわゆるクロス開発環境において稼働す
る。本実施形態を実現するためのマルチタスクデバッグ
の機能は、かかるハードウエア構成上、ターゲット側に
実装してもよく、また、必要に応じて機能の一部または
全部をホスト側に実装してもよい。
【0058】また、ターゲット側に必要なハードウエア
要件は、少なくとも、MPU(Micro Proce
ssor)、プログラム及びデータを格納するメモリ、
およびホストと接続するための通信手段、その他、機器
に組み込まれるアプリケーション毎に必要とされる各ハ
ードウエアである。
【0059】第1の実施形態に係るマルチタスクデバッ
グ装置は、上記のように構成されており、以下、本実施
形態に係るマルチタスクデバッグ方法を用いて、マルチ
タスク環境下におけるプログラムのデバッグを行う手順
につき、図2から図7に示すフローチャートに基づき、
説明する。尚、以下の処理に関する制御は、前述のハー
ドウエア上で稼働するソフトウエアにより行われる。
【0060】まず、デバッグ中のブレーク機能の用いら
れ方につき、以下に概説する。プログラムのデバッグ中
においては、まず、対象となるタスクについて、実行を
停止してその時点のメモリ、レジスタの内容等の確認を
行いたいポイントとなるアドレスに、ブレークポイント
を設定し、デバッグ対象となるプログラムを実行させ
て、所望するアドレスでブレークを発生させる。そし
て、その時点でタスクの実行を停止し、必要となる内容
確認、問題分析を行う。そして、必要となるデバッグ
が、対象タスクについて終了した場合には、ブレークポ
イントの解除を行う。
【0061】以下、かかる手順に沿って、各構成の処理
内容を説明する。
【0062】まず、ブレークポイント設定時において
は、図2に示すように、ブレークポイント設定部110
により、以下の処理が行われる。
【0063】最初に、設定対象となるブレークポイント
の指定を、タスク識別子とアドレスの対の形でコマンド
として受けとる(S110)。この際のコマンドシンタ
ックスは、例えば、以下の形式で与えられる。 taskbreak <task>[<address>]
【0064】かかるコマンド入力がされた場合、まず与
えられたコマンドラインの解析を行い(S111)、次
に、コマンド中で指定されたアドレスが、すでに全ブレ
ークポイント設定表170に登録されているかどうか判
定する(S112)。ここで、登録済みであった場合
は、S115以下の個別タスクブレークポイント設定表
180の処理に進む。一方、未登録であった場合は、全
ブレークポイント設定表170に、指定アドレスに対す
るブレークポイントのエントリーを追加する(S11
3)。
【0065】次に、全ブレークポイント設定表170の
追加したエントリー中に、ブレークポイントを設定する
アドレス上にある元命令を退避する(S114)。
【0066】次に、指定されたタスクの個別タスクブレ
ークポイント設定表180に対して、付与されたブレー
クポイント番号のエントリーを追加する(S115)。
そして、全ブレークポイント設定表170の、該当ブレ
ークポイント番号のエントリー上の状態フラグを、初期
値である’有効’にセットする(S116)。
【0067】最後に、ブレークポイントを設定するアド
レス上に、ブレーク用命令を書き込む(S117)。以
上でブレークポイント設定の処理が完了する。
【0068】次に、デバッグ対象のプログラムの実行を
行うのであるが、プログラムの実行中に、ブレーク用命
令のステートメントまで処理が実行されると、ブレーク
ポイント検出部130に制御が移る。
【0069】図4に、ブレークポイント検出部130の
処理フローを示す。まず、ブレークポイント検出部13
0は、例えばOSの機能呼び出しなどにより、現在実行
中のタスクのタスク識別子を取得する(S130)。次
に、全ブレークポイント設定表170を、アドレスをキ
ーに検索を行い、当該アドレスに属するブレークポイン
ト番号を取得する(S131)。
【0070】そして、現在実行中のタスクの個別タスク
ブレークポイント設定表180に、当該ブレークポイン
ト番号が存在するかのチェックを行い(S132)、存
在した場合は、現在実行中のタスクの実行を停止し(S
133)、必要なプログラム修正などを行う。この際
に、タスクの実行が停止したことにより、当該タスクが
アクティブでなくなるため、他のタスクに実行の制御を
移すべく、OSのタスク切替処理部に分岐する(S13
4)。一方、個別タスクブレークポイント設定表180
に、当該ブレークポイント番号が存在しなかった場合に
は、当該ブレークポイントについて、ブレークポイント
無効化手段150を呼び出し、その状態の無効化を行っ
た後(S135)、元の処理に戻り、プログラムの実行
を継続する(S136)。
【0071】ブレークポイント無効化手段150中で
は、無効化処理として、図6に示すように、全ブレーク
ポイント設定表170の、当該ブレークポイントのエン
トリーの状態フラグをまず’無効’の値にセットし(S
150)、ブレークポイントのアドレスに、全ブレーク
ポイント設定表中の当該ブレークポイントのエントリー
に退避されている元命令の復旧を行う(S151)。
【0072】次に、タスク切り替え時の処理内容につ
き、以下に説明する。タスク切り替えの所定の条件が満
たされると、まず、次に実行すべきタスクを選択するO
Sのタスク切替処理部に制御が移る。
【0073】タスク切替処理部では、図8に示すよう
に、現在実行中のタスクのコンテキストを退避した後、
ブレークポイント切替部140を呼び出す。
【0074】図5に、ブレークポイント切替部140の
処理フローを示す。ブレークポイント切替部140で
は、まず、全ブレークポイント設定表170の状態フラ
グが’無効’にセットされているブレークポイントのサ
ーチを行い(S140)、かかる’無効’がセットされ
ている各ブレークポイントについて、ブレークポイント
有効化手段160を呼び出し(S141)、有効化処理
を繰り返し行う。
【0075】ブレークポイント有効化手段160では、
図7に示すように、全ブレークポイント設定表170
の、当該ブレークポイントのエントリーの状態フラグを
まず’有効’の値にセットし(S160)、ブレークポ
イントのアドレスに、ブレーク用命令の書き込みを行
(ってブレークポイントの再設定を行う)(S16
1)。
【0076】次に、デバッガ下でプログラムを実行する
ことによる必要なデバッグ作業が終了した時点で、ブレ
ークポイント解除を行う。かかる解除時においては、図
3に示すように、ブレークポイント解除部120によ
り、以下の処理が行われる。
【0077】まず、解除対象となるブレークポイントの
指定を、タスク識別子、アドレス、ブレークポイント番
号をパラメータとして、コマンドとして受けとる(S1
20)。この際のコマンドシンタックスは、例えば、以
下の形式で与えられる。
【0078】cleartaskbreak <task>[<address>l<b
reakpoint>] かかるコマンド入力がされた場合、まず与えられたコマ
ンドラインの解析を行い(S121)、次に、コマンド
中で指定されたブレークポイントが、同じくコマンド中
で指定されたタスクについて設定済みか否かの判断を行
う(S122)。ここで、設定されていなかった場合に
は、コマンドエラーを返して終了する(S123)。一
方、設定済みであった場合は、S124以下のブレーク
ポイント解除の処理に進む。
【0079】まず、指定されたタスクについての個別タ
スクブレークポイント設定表180から、指定ブレーク
ポイントについてのエントリーを削除する(S12
4)。
【0080】次に、その他のタスクにつき、各々、指定
ブレークポイントがそのタスクに設定されているかの判
断を行い(S125)、設定されていた場合には、さら
に、全ブレークポイント設定表170中の指定ブレーク
ポイントの状態フラグのチェックを行う(S126)。
そして、状態フラグが’有効’の値であった場合には、
ブレークポイントのアドレスに、元命令の復旧を行うと
ともに(S127)、全ブレークポイント設定表170
から指定ブレークポイントについてのエントリーを削除
する(S128)。一方、’無効’であった場合には、
指定ブレークポイントの削除のみを行う(S128)。
【0081】尚、本実施形態においては、ブレーク機能
の実現方法として、ソフトウエアブレーク方式、すなわ
ち、命令コードがRAM(Random Access
Memory)中にあり、デバッグ対象となる命令
を、ブレーク用の命令に書き換えることによりブレーク
ポイントの設定を行う方式について説明した。しかしな
がら、本実施形態を用いたブレーク機能の実装方法は、
これに限定されるものではなく、例えば、レジスタにア
ドレスを書き込むことでブレークを実現するハードウエ
アブレーク方式や、ICE(In Circuit E
mulator)を用いた方式によっても、実現するこ
とができる。もっとも、ソフトウエアブレーク方式は、
これらと比較してより多くのブレークポイント設定が可
能であり、従って、これにともなうオーバーヘッドも大
きく、本実施形態がもたらす以下の効果をより享受でき
る方式であるといえる。
【0082】本実施形態によれば、以下のような効果が
得られる。即ち、プログラム実行中においては、現在デ
バッグ対象としている実行中のタスクに属さないブレー
クポイントについては、ブレークポイントを無効化する
ため、実行中にブレークが発生する可能性がない。した
がって、不必要なブレークの発生が抑制され、プログラ
ム実行中のブレークの発生に伴うオーバーヘッドが減少
した。
【0083】また、タスク切り替え時においても、予め
無効化されたブレークポイントのみについて、有効化を
行うため、従来より、タスク切り替え時のブレークポイ
ント切り替えに関連するオーバーヘッドが軽減された。
【0084】第2の実施形態 以下、本発明の第2の実施形態について、第1の実施形
態と異なる点についてのみ、図面を参照しながら詳細に
説明する。
【0085】第2の実施形態は、第1の実施形態に対し
て、タスク切り替え時に、その前後のタスクの組み合わ
せに依存して、ブレークポイントの無効化及び有効化に
要する処理時間が不確定であるという点を改善すべく、
無効化されるブレークポイントの数に上限を設けて制御
するものである。
【0086】図9は、第2の実施形態にかかるマルチタ
スクデバッグ装置の機能構成を示す図である。図9に示
す如く、第2の実施形態に係るマルチタスクデバッグ装
置200は、ブレークポイント設定部210、ブレーク
ポイント解除部220、ブレークポイント検出部23
0、ブレークポイント切替部240、及びブレークポイ
ント無効化手段250、ブレークポイント有効化手段2
60の6つのソフトウエアモジュールと、全ブレークポ
イント設定表270、個別タスクブレークポイント設定
表280の2種類のテーブルと、無効化ブレークポイン
トリスト290、及び無効化カウント292のデータ構
造とによって構成されている。
【0087】ここで、全ブレークポイント設定表270
は、ブレークポイント番号をインデックスとするエント
リーを有し、各エントリは、ブレークポイントが設定さ
れたアドレス、ブレークポイントが設定されたアドレス
上の元命令の各フィールドを持つが、第1の実施形態と
異なり、状態フラグのフィールドは持たない。
【0088】また、タスク毎に構成される個別タスクブ
レークポイント設定表280は、第1の実施形態と同様
である。
【0089】無効化ブレークポイントリスト290は、
無効化されている各ブレークポイント番号と、次のエン
トリー及び前のエントリーへの双方向のポインタを有す
るエントリーのリスト構造により管理される。ここで、
必ずしも、双方向のポインタを有する必要はなく、一方
向で足りるが、双方向のポインタを有する構造とすれ
ば、リスト上のサーチが効率化され、処理時間が一定に
できるというメリットが得られる。
【0090】無効化カウント292は、現在無効化され
ているブレークポイントの数を示し、無効化されるブレ
ークポイント数の上限を制御するために用いられる変数
であり、予め設定された無効化の上限値に達するまで、
インクリメントされる。尚、かかる無効化カウント29
2と比較される上限値は、タスク切替時のオーバーヘッ
ドとのトレードオフを構成しており、デバッグ対象とな
るプログラムの処理内容により適宜決定される値であ
る。
【0091】第2の実施形態に係るマルチタスクデバッ
グ装置は、上記のように構成されており、以下、本実施
形態に係るマルチタスクデバッグ方法を用いて、マルチ
タスク環境下におけるプログラムのデバッグを行う手順
につき、第1の実施形態と異なる点についてのみ、図1
0から図15に示すフローチャートに基づき、説明す
る。
【0092】第1の実施形態において述べたデバッグの
手順に沿って、第2の実施形態における各構成の処理内
容を説明する。
【0093】まず、ブレークポイント設定時において
は、図10に示すように、ブレークポイント設定部21
0により、第1の実施形態と同様に、デバッグ対象とす
るタスク及びブレークを起こして実行を停止させたいア
ドレスを指定して、ブレークポイントの設定を行うが、
本実施形態の場合には全ブレークポイント設定表270
に状態フラグを有さないので、かかる状態フラグの初期
設定については行わない。
【0094】次に、デバッグ対象のプログラムの実行中
に、ブレーク用命令のステートメントまで処理が実行さ
れた場合の、ブレークポイント検出部230の処理フロ
ーは、図12に示すように、第1の実施形態と同様であ
る。
【0095】S235より、呼び出されるブレークポイ
ント無効化手段250の処理内容を以下に説明する。
【0096】ブレークポイント無効化手段250中で
は、無効化処理として、図14に示すように、無効化ブ
レークポイントリストの末尾に無効化対象となる当該ブ
レークポイント番号のエントリーを追加し(S25
4)、ブレークポイントのアドレスに、全ブレークポイ
ント設定表270中の当該ブレークポイントのエントリ
ーに退避されている元命令の復旧を行う(S255)。
【0097】しかしながら、これに先だって、無効化す
るブレークポイント数の上限の制御を行うのである。す
なわち、無効化処理の最初に、現在の無効化カウント2
92の示す値と、予め設定された上限値との比較を行い
(S250)、未だ上限値に達しない場合は、無効化カ
ウント292をインクリメントし(S251)、S25
4、S255の無効化処理を行う。一方、無効化ブレー
クポイントの上限値に達した場合には、無効化ブレーク
ポイントリストの先頭にあるブレークポイントを選択し
(S252)、当該ブレークポイントを有効に戻す処理
をブレークポイント有効化手段260を呼び出すことに
より行う(S253)。
【0098】ブレークポイント有効化手段260では、
図15に示すように、無効化ブレークポイントリスト2
90から当該ブレークポイント番号のエントリーの削除
を行い(S260)、ブレークポイントのアドレスに、
ブレーク用命令の書き込みを行う(S261)。
【0099】次に、タスク切り替え時の処理内容につ
き、以下に説明する。タスク切り替えの所定の条件が満
たされると、まず、次に実行すべきタスクを選択するO
Sのタスク切替え処理部に制御が移り、ついで、第1の
実施形態と同様に、現在実行中のタスクのコンテキスト
を退避した後、ブレークポイント切替部240が呼び出
される。
【0100】図13に、ブレークポイント切替部240
の処理フローを示す。ブレークポイント切替部240で
は、まず、無効化ブレークポイントリスト290のサー
チを行い(S240)、かかる無効化ブレークポイント
リスト290上の各ブレークポイントについて、ブレー
クポイント有効化手段260を呼び出し(S241)、
有効化処理を行うとともに、無効化カウント292のデ
ィクリメントを行う(S242)。ブレークポイント有
効化手段260の処理内容については前述した。
【0101】次に、デバッガ下でプログラムを実行する
ことによる必要なデバッグ作業が終了した時点で、ブレ
ークポイント解除を行う。かかる解除時においては、図
11に示すように、第1の実施形態とほぼ同様、ブレー
クポイント解除部220により、ブレークポイントの解
除の処理が行われる。
【0102】ただし、本実施形態においては、解除を指
定されたブレークポイントがその他のタスクに設定され
ていた場合に、当該ブレークポイントが無効化されたも
のであるか否かの判断は、無効化ブレークポイントリス
ト上のエントリーの有無により判断される(S22
6)。また、当該ブレークポイントが無効化されている
と判断された場合には、無効化ブレークポイントリスト
から当該ブレークポイントのエントリーを削除し、ポイ
ンタの付け替えを行う(S229)処理が追加される。
【0103】本実施形態によれば、第1の実施形態に付
加して、さらに以下のような効果が得られる。即ち、無
効化されるブレークポイントの数が、所定の上限値まで
に制限されているため、タスク切り替え時に、無効化さ
れた中から有効化されるブレークポイントの数も、最
大、所定の上限値までに押さえられることとなる。
【0104】従って、タスク切り替え時の有効化処理を
所望する時間内に行うことができ、タスク切り替え時の
ブレークポイントの切り替えに伴う処理時間の不確実性
を回避することができる。
【0105】尚、有効化の対象となるブレークポイント
は、無効化ブレークポイントリスト290の先頭のエン
トリーのものが、常に選択されるため、FIFO(Fi
rst In First Out)方式により、最先
に無効化されたブレークポイントから順次選択されるこ
ととなる。かかる選択基準は、第3の実施形態において
後述する各ブレークポイントについての無効化履歴のカ
ウントを用いる方式と比較して、特に、ループ等、処理
に局所性があるプログラムの場合に、有効である。
【0106】第3の実施形態 以下、本発明の第3の実施形態について、第2の実施形
態との比較において、異なる点についてのみ、図面を参
照しながら詳細に説明する。
【0107】第3の実施形態は、第2の実施形態におけ
る有効化対象ブレークポイントの選択を、各々のブレー
クポイントの無効化の頻度に従って選択する方式とした
ものである。このため、第2の実施形態における無効化
ブレークポイントリストに代替して、全ブレークポイン
ト設定表に、各々のブレークポイントについての、’無
効’または’有効’を示す状態フラグと、無効化履歴の
カウントとを持つ構成となっている。即ち、第2の実施
形態とは、アプリケーションの処理内容に応じて、選択
的に採用されるものである。
【0108】図16は、第3の実施形態にかかるマルチ
タスクデバッグ装置の機能構成を示す図である。図16
に示す如く、第3の実施形態に係るマルチタスクデバッ
グ装置300は、ブレークポイント設定部310、ブレ
ークポイント解除部320、ブレークポイント検出部3
30、ブレークポイント切替部340、及びブレークポ
イント無効化手段350、ブレークポイント有効化手段
360の6つのソフトウエアモジュールと、全ブレーク
ポイント設定表370、個別タスクブレークポイント設
定表380の2種類のテーブルと、無効化カウント39
2のデータ構造とによって構成されている。
【0109】ここで、全ブレークポイント設定表370
は、第2の実施形態のフィールドに付加して、さらに、
各ブレークポイントの’無効’または’有効’の値を示
す状態フラグ、及び、無効化履歴のカウントの各フィー
ルドを持つ。
【0110】また、タスク毎に構成される個別タスクブ
レークポイント設定表380および無効化カウント39
2とは、第2の実施形態の場合と同様である。又、前述
したように、無効化ブレークポイントリストは有さな
い。
【0111】第3の実施形態に係るマルチタスクデバッ
グ装置は、上記のように構成されており、以下、本実施
形態に係るマルチタスクデバッグ方法を用いて、マルチ
タスク環境下におけるプログラムのデバッグを行う手順
につき、第2の実施形態と異なる点のみを、図17から
図22に示すフローチャートに基づき、説明する。
【0112】まず、ブレークポイント設定時において
は、図17に示すように、ブレークポイント設定部31
0により、第2の実施形態と同様に、ブレークポイント
の設定を行うが、本実施形態の場合には、各ブレークポ
イントが無効化されているか否かは、全ブレークポイン
ト設定表270の状態フラグにより示されるため、かか
る状態フラグを、初期状態である’有効’にセットする
(S316)。
【0113】次に、デバッグ対象のプログラムの実行中
に、ブレーク用命令のステートメントまで処理が実行さ
れた場合の、ブレークポイント検出部330の処理フロ
ーは、図19に示すように、第1および第2の実施形態
と同様である。
【0114】S335より、呼び出されるブレークポイ
ント無効化手段350の処理内容を以下に説明する。
【0115】ブレークポイント無効化手段350中で
は、無効化処理として、図21に示すように、まず、第
2の実施形態と同様に、現在の無効化カウントが、予め
設定された上限値に達しているか否かが判断されるが
(S350)、ここで、無効化ブレークポイント数の上
限に達した場合には、全ブレークポイント設定表370
中の、状態フラグが’無効’を示すブレークポイントの
うち、無効化履歴のカウントが最小値であるブレークポ
イントが選択される(S352)。即ち、最も無効化さ
れた頻度の少ないブレークポイントがS353における
有効化の対象となるのである。すなわち、有効化対象と
して選択されたブレークポイントについて、ブレークポ
イント有効化手段360は、図22に示すように、全ブ
レークポイント設定表370中の該当ブレークポイント
番号の状態フラグを’有効’にセットし(S360)、
ブレークポイントのアドレスに、ブレーク用命令の書き
込みを行う(S361)。
【0116】また、無効化対象とされたブレークポイン
トについての、これに続く無効化処理では、全ブレーク
ポイント設定表中の該当ブレークポイント番号の状態フ
ラグを’無効’にセットして(S354)、ブレークポ
イントのアドレスに元命令の復旧を行う(S355)。
【0117】次に、タスク切り替え時の処理内容につい
ては、無効化されているブレークポイントの検索方法以
外は、第2の実施形態と同様である。即ち、図20に示
すように、ブレークポイント切替部340が、全ブレー
クポイント設定表の状態フラグにより、’無効’状態の
ブレークポイントのサーチを行い(S340)、かかる
無効化された各ブレークポイントについて、ブレークポ
イント有効化手段360を呼び出し(S341)、有効
化処理を行うとともに、無効化カウント392のディク
リメントを行う(S342)。
【0118】次に、デバッガ下でプログラムを実行する
ことによる必要なデバッグ作業が終了した時点で、ブレ
ークポイント解除を行う。かかる解除時においては、図
18に示すように、第1の実施形態の場合と同様に、ブ
レークポイント解除部320により、ブレークポイント
の解除の処理が行われる。
【0119】本実施形態によれば、第2の実施形態と同
様、以下のような効果が得られる。すなわち、タスク切
り替え時に、無効化された中から有効化されるブレーク
ポイントの数が、最大、所定の上限値までに押さえられ
ることとなる。従って、タスク切り替え時の有効化処理
を所定の時間内に行うことができ、タスク切り替え時の
ブレークポイントの切り替えに伴う処理時間の不確実性
を回避することができる。
【0120】さらに、第2の実施形態との比較において
は、以下の関係となる。即ち、無効化されるブレークポ
イントの数が、所定の上限値までに達した場合の、有効
化対象とする無効化ブレークポイントの選択を、各ブレ
ークポイント毎の無効化履歴のカウントにより、過去に
無効化された回数の最も少ないものから行うこととな
る。従って、第2の実施形態におけるLRU的な選択で
はなく、その頻度に応じた選択が可能となる。尚、第2
の実施形態と第3の実施形態とは、アプリケーションの
処理タイプに応じて、選択的に採用される関係にある。
【0121】第4の実施形態 以下、本発明の第4の実施形態について、第2および第
3の実施形態との比較において、異なる点についての
み、図面を参照しながら詳細に説明する。
【0122】第4の実施形態は、第2の実施形態におけ
る、タスク切り替え時におけるブレークポイントの有効
化を、現在無効とされているすべてのブレークポイント
について行うのではなく、次に実行されるタスクに属す
るブレークポイントについてのみ行うことによって、タ
スク切り替え時のオーバーヘッドをさらに軽減するもの
である。
【0123】図23は、第4の実施形態にかかるマルチ
タスクデバッグ装置の機能構成を示す図である。図23
に示す如く、第4の実施形態に係るマルチタスクデバッ
グ装置400は、第2の実施形態と同様、ブレークポイ
ント設定部410、ブレークポイント解除部420、ブ
レークポイント検出部430、ブレークポイント切替部
440、及びブレークポイント無効化手段450、ブレ
ークポイント有効化手段460の6つのソフトウエアモ
ジュールと、全ブレークポイント設定表470、個別タ
スクブレークポイント設定表480の2種類のテーブル
と、無効化ブレークポイントリスト490、無効化カウ
ント492のデータ構造とによって構成されている。
尚、各テーブルやデータ構造のエントリーも、第2の実
施形態と同様である。
【0124】第4の実施形態に係るマルチタスクデバッ
グ装置は、上記のように構成されており、以下、本実施
形態に係るマルチタスクデバッグ方法を用いて、マルチ
タスク環境下におけるプログラムのデバッグを行う手順
につき、第2の実施形態と異なる点のみを、図24と図
25に示すフローチャートに基づき、説明する。
【0125】まず、ブレークポイント設定時、解除時、
及びブレークポイント検出時における処理内容は、第2
の実施形態と同様である。また、ブレークポイント無効
化手段450およびブレークポイント有効化手段460
における処理内容も、同様である。
【0126】次に、タスク切り替え時の処理内容につい
ては、OSのタスク切替部によるタスク切り替えの処理
中にブレークポイント切替部440が呼び出されるので
あるが、この際に、図24に示すように、次タスクの選
択が行われた後に、ブレークポイント切替部440が呼
び出されるというシーケンスになる点が、第2の実施形
態と異なる点となる。
【0127】また、ブレークポイント切り替え時におい
ては、図25に示すように、無効化ブレークポイントリ
スト490から、無効化されているブレークポイントの
サーチを行った後(S440)、さらに、次に選択され
実行されるタスクの個別ブレークポイント設定表480
中に登録されているブレークポイントについてのみ、S
442以下の有効化処理を行うのである(S441)。
【0128】尚、本実施形態においては、第2の実施形
態に対するバリエーションとして説明を行ったが、有効
化対象ブレークポイントの選択を、無効化履歴により行
う第3の実施形態に対しても、上述した変更を加えるこ
とで、対応可能である。
【0129】本実施形態によれば、第2の実施形態また
は第3の実施形態に対してさらに以下のような効果が得
られる。すなわち、タスク切り替え時に、無効化された
全ブレークポイントの中から、次のタスクに属するブレ
ークポイントのみを対象として有効化を行うため、タス
ク切り替え時における処理オーバーヘッドをさらに軽減
することが可能となる。
【0130】第5の実施形態 以下、本発明の第5の実施形態について、第4の実施形
態との比較において、異なる点についてのみ、図面を参
照しながら詳細に説明する。
【0131】第5の実施形態は、第4の実施形態におい
て無効化ブレークポイントの上限の制御に用いられる、
無効化ブレークポイントリスト、及び無効化カウント
を、個別のタスク毎に別個に管理を行うものである。
【0132】図26は、第5の実施形態にかかるマルチ
タスクデバッグ装置の機能構成を示す図である。図26
に示す如く、第5の実施形態に係るマルチタスクデバッ
グ装置500は、ブレークポイント設定部510、ブレ
ークポイント解除部520、ブレークポイント検出部5
30、ブレークポイント切替部540、及びブレークポ
イント無効化手段550の5つのソフトウエアモジュー
ルと、全ブレークポイント設定表570、個別タスクブ
レークポイント設定表580の2種類のテーブルと、個
別タスク無効化ブレークポイントリスト590、個別タ
スク無効化カウント592のデータ構造とによって構成
されている。
【0133】全ブレークポイント設定表570には、各
ブレークポイントごとの’無効’、’有効’の状態を管
理するため、状態フラグのフィールドを有している。
尚、かかるブレークポイントの状態を知るのに、個別タ
スク毎のすべての無効化ブレークポイントリストを探索
することも可能であるが、本実施形態においては、より
効率よく探索を行うために、1の全ブレークポイント設
定表570に状態を示すフラグのフィールドを設けて対
応している。
【0134】また、個別タスク無効化ブレークポイント
リスト590および個別タスク無効化カウント592
は、各タスクごとに別個に設けられており、各エントリ
ーの内容は、前述の状態フラグ以外は第2の実施形態と
同様である。
【0135】プログラムデバッグ中におけるブレークポ
イント機能の設定、解除、および無効化、有効化のため
のアクセスは、上述した各個別タスクごとの個別タスク
無効化ブレークポイントリスト590、個別タスク無効
化カウント592に対して行われる。また、各ブレーク
ポイントについての’無効’または’有効’の状態を一
意的にサーチするために、全ブレークポイント設定表5
70の状態フラグが用いられる。
【0136】本実施形態に係るマルチタスクデバッグ装
置は、上記のように構成されており、以下、その処理内
容につき説明する。
【0137】まず、ブレークポイント設定時およびブレ
ークポイント検出時の処理内容は、第4の実施形態の場
合と同様である。尚、ブレークポイント検出時におい
て、呼び出されるブレークポイント無効化手段550中
においては、図31に示すように、第4の実施形態と比
較して、全ブレークポイント設定表570中の状態フラ
グを併有したことにより、状態フラグの更新処理(S5
55、S558)が追加されている。また、図31で
は、無効化処理の一部として、ブレークポイントの有効
化処理(S554、S555)を記述しているが、かか
るモジュール構成は任意であり、前述の実施形態と同様
に、有効化手段として別構成としても構わない。
【0138】次に、タスク切り替えの際には、第4の実
施形態と同様、図24に示すように、次のタスクの選択
がタスク切替処理部により行われた後、ブレークポイン
ト切替部540に制御が渡る。
【0139】ブレークポイント切替部540において
は、まず、タスク切り替えの直前のタスクについての個
別タスク無効化ブレークポイントリスト590中のブレ
ークポイントのうち、次のタスクについての個別タスク
ブレークポイント設定表580に登録済みであるものを
サーチする(S540)。そして、これらの次のタスク
に属するブレークポイントについてのみ、該当アドレス
にブレーク用命令を書き込み(S541)、全ブレーク
ポイント設定表570中の状態フラグを’有効’にセッ
トする(S542)ことにより、有効化を繰り返し行
う。
【0140】序で、タスク切り替えの次に実行するタス
クについての個別タスクブレークポイントリスト590
中のブレークポイントのうち、全ブレークポイント設定
表570中の状態フラグが’有効’にセットされている
ものについて、元命令を該当アドレスに復旧し(S54
3、S544)、状態フラグを’無効’にセットする
(S545)ことにより、無効化を繰り返し行う。尚、
第4の実施形態と比較して、ブレークポイント切替部5
40における処理は、やや重たくなるが、元々タスク毎
に無効化されているブレークポイント数は上限管理がな
されているため、処理時間も一定時間内に抑制されるこ
ととなる。
【0141】また、ブレークポイント解除時において
は、指定されたタスクのブレークポイントを解除したこ
とにより、当該アドレスについてのブレークポイント
が、その他のどのタスクについても存在しなくなった場
合に、図28に示す処理を行う。すなわち、指定された
ブレークポイントが、その他のタスクについての個別タ
スクブレークポイントリストにあれば、当該ブレークポ
イントのエントリーの削除を行う(S526、S52
7)。そして更に、全ブレークポイント設定表570中
の当該ブレークポイントの状態フラグのチェックを行い
(S528)、’有効’であった場合には、元命令を復
旧した後(S529)、全ブレークポイント設定表57
0から当該ブレークポイントのエントリーの削除を行う
(S560)。一方、’無効’であった場合には、S5
60の処理のみを行う。
【0142】本実施形態によれば、第4の実施形態に対
してさらに以下のような効果が得られる。すなわち、ブ
レークポイントの状態管理のために用いられる無効化ブ
レークポイントリスト、および無効化カウントを、全体
で一つではなく、各個別タスクごとに設けるため、これ
らへのアクセスについての、他のタスクの影響を排除す
ることができる。
【0143】また、個別タスクごとに無効化ブレークポ
イントリストおよび無効化カウントを別個に設けること
は、それだけ多くのメモリを使用することとなるが、メ
モリに余裕があるハードウエア構成の場合には、上述し
た構成をとることによって、それだけ他のタスクの影響
を排除し、処理効率を上げることができる。このこと
は、特に、タスク間の切り替えが頻繁に起こる処理や、
タスク中にループを含んでいる処理などのタイプのアプ
リケーションの場合には、効果の高い構成であるといえ
る。
【0144】
【発明の効果】以上説明したように、本発明によれば、
以下に記載されるような効果を奏する。
【0145】すなわち、各タスク毎に属するブレークポ
イント情報及び各ブレークポイント毎の状態の情報を用
いて、デバッグ対象のタスクに属するブレークポイント
についてのみブレークを発生させ、また、不要なブレー
クポイントについては無効化を行ってタスク切り替え時
に有効化する機能を提供するので、不要なブレークの発
生を抑制するとともに、タスク切り替え時のブレークポ
イント切り替えに関連するオーバーヘッドを軽減するこ
とが可能となる。また、かかるオーバーヘッドの軽減に
より、共通モジュールを外から使用する、デバッグ対象
外のタスクの正常稼働をも保持することが可能となる。
従って、マルチタスク環境下での各タスクごとのデバッ
グ効率を向上することができるという効果が得られる。
【0146】また、無効化するブレークポイント数の上
限制御を行って、タスク切り替え時に有効化するブレー
クポイントの数を制限する機能を提供することとなる。
すなわち、タスク切り替え処理部で有効化されるブレー
クポイントの数は、無効化ブレークポイントの上限であ
る。従って、その処理に要する時間の上限を決めること
ができる。これにより、タスク切り替え処理時間の不確
定性を回避することが可能である。とりわけ、リアルタ
イムOSの応用プログラムにおいては、外部からのイベ
ントに対して、そのイベントに対応するタスクが起動さ
れる応答時間が予め予測できることが重要であり、デバ
ッグ作業中であっても、タスク切り替え処理時間の上限
を決めることで他のタスクの不測の誤動作を防止するこ
との意義は大きいものといえる。
【0147】また、無効化の上限を越えた場合に有効化
するブレークポイントの選択を、最先に無効化された順
番に従って行うので、局所性の高いタスクが存在する場
合に、そのタスクが処理を開始した直後に不要なブレー
クポイントがすぐに有効化されてしまうという不都合を
回避し、不要なブレークポイントの有効化の抑制を図る
ことが可能になるという効果が得られる。
【0148】また、無効化の上限を越えた場合に有効化
するブレークポイントの選択を無効化された頻度に従っ
て行うので、無効化される頻度の高いブレークポイント
程、有効化の確率が下がることとなる。従って、不要な
ブレークポイントの検出に起因するオーバーヘッドの軽
減を図ることが可能になるという効果が得られる。
【0149】また、無効化するブレークポイント数の上
限制御を個別タスク毎に独立した情報に基づいて行うの
で、他のタスクの影響を排除し、ブレークポイント処理
効率の更なる向上を図ることが可能になるという効果が
得られる。
【0150】このように、本発明を用いれば、マルチタ
スク環境下におけるデバッグ効率を向上させることによ
って、かかるプログラムを内蔵するコンピュータ、また
はこれを含むIC製品等のプロトタイプから製品化まで
のターンアラウンドタイムを短縮し、ひいては、製品コ
ストの削減という効果を奏することができるのであり、
産業上その効果のきわめて大きい発明である。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るマルチタスクデ
バッグ装置の機能構成を示すブロック図である。
【図2】本発明の第1の実施形態に係るマルチタスクデ
バッグ方法のブレークポイント設定のアルゴリズムを示
すフローチャートである。
【図3】本発明の第1の実施形態に係るマルチタスクデ
バッグ方法のブレークポイント解除のアルゴリズムを示
すフローチャートである。
【図4】本発明の第1の実施形態に係るマルチタスクデ
バッグ方法のブレークポイント検出時のアルゴリズムを
示すフローチャートである。
【図5】本発明の第1の実施形態に係るマルチタスクデ
バッグ方法のブレークポイント切り替えのアルゴリズム
を示すフローチャートである。
【図6】本発明の第1の実施形態に係るマルチタスクデ
バッグ方法のブレークポイント無効化のアルゴリズムを
示すフローチャートである。
【図7】本発明の第1の実施形態に係るマルチタスクデ
バッグ方法のブレークポイント有効化のアルゴリズムを
示すフローチャートである。
【図8】OSのタスク切替処理部とブレークポイント切
替部との関係を示す図である。
【図9】本発明の第2の実施形態に係るマルチタスクデ
バッグ装置の機能構成を示すブロック図である。
【図10】本発明の第2の実施形態に係るマルチタスク
デバッグ方法のブレークポイント設定のアルゴリズムを
示すフローチャートである。
【図11】本発明の第2の実施形態に係るマルチタスク
デバッグ方法のブレークポイント解除のアルゴリズムを
示すフローチャートである。
【図12】本発明の第2の実施形態に係るマルチタスク
デバッグ方法のブレークポイント検出時のアルゴリズム
を示すフローチャートである。
【図13】本発明の第2の実施形態に係るマルチタスク
デバッグ方法のブレークポイント切り替えのアルゴリズ
ムを示すフローチャートである。
【図14】本発明の第2の実施形態に係るマルチタスク
デバッグ方法のブレークポイント無効化のアルゴリズム
を示すフローチャートである。
【図15】本発明の第2の実施形態に係るマルチタスク
デバッグ方法のブレークポイント有効化のアルゴリズム
を示すフローチャートである。
【図16】本発明の第3の実施形態に係るマルチタスク
デバッグ装置の機能構成を示すブロック図である。
【図17】本発明の第3の実施形態に係るマルチタスク
デバッグ方法のブレークポイント設定のアルゴリズムを
示すフローチャートである。
【図18】本発明の第3の実施形態に係るマルチタスク
デバッグ方法のブレークポイント解除のアルゴリズムを
示すフローチャートである。
【図19】本発明の第3の実施形態に係るマルチタスク
デバッグ方法のブレークポイント検出時のアルゴリズム
を示すフローチャートである。
【図20】本発明の第3の実施形態に係るマルチタスク
デバッグ方法のブレークポイント切り替えのアルゴリズ
ムを示すフローチャートである。
【図21】本発明の第3の実施形態に係るマルチタスク
デバッグ方法のブレークポイント無効化のアルゴリズム
を示すフローチャートである。
【図22】本発明の第3の実施形態に係るマルチタスク
デバッグ方法のブレークポイント有効化のアルゴリズム
を示すフローチャートである。
【図23】本発明の第4の実施形態に係るマルチタスク
デバッグ装置の機能構成を示すブロック図である。
【図24】本発明の第4の実施形態の場合におけるOS
のタスク切替処理部とブレークポイント切替部との関係
を示す図である。
【図25】本発明の第4の実施形態に係るマルチタスク
デバッグ方法のブレークポイント切り替えのアルゴリズ
ムを示すフローチャートである。
【図26】本発明の第5の実施形態に係るマルチタスク
デバッグ装置の機能構成を示すブロック図である。
【図27】本発明の第5の実施形態に係るマルチタスク
デバッグ方法のブレークポイント設定のアルゴリズムを
示すフローチャートである。
【図28】本発明の第5の実施形態に係るマルチタスク
デバッグ方法のブレークポイント解除のアルゴリズムを
示すフローチャートである。
【図29】本発明の第5の実施形態に係るマルチタスク
デバッグ方法のブレークポイント検出時のアルゴリズム
を示すフローチャートである。
【図30】本発明の第5の実施形態に係るマルチタスク
デバッグ方法のブレークポイント切り替えのアルゴリズ
ムを示すフローチャートである。
【図31】本発明の第5の実施形態に係るマルチタスク
デバッグ方法のブレークポイント無効化のアルゴリズム
を示すフローチャートである。
【図32】従来の第1の方法におけるマルチタスクデバ
ッグ装置の機能構成を示すブロック図である。
【図33】従来の第1の方法におけるブレークポイント
設定のアルゴリズムを示すフローチャートである。
【図34】従来の第1の方法におけるブレークポイント
解除のアルゴリズムを示すフローチャートである。
【図35】従来の第2の方法におけるマルチタスクデバ
ッグ装置の機能構成を示すブロック図である。
【図36】従来の第2の方法におけるブレークポイント
設定のアルゴリズムを示すフローチャートである。
【図37】従来の第2の方法におけるブレークポイント
検出時のアルゴリズムを示すフローチャートである。
【図38】従来の第2の方法におけるタスク切り替え時
のアルゴリズムを示すフローチャートである。
【符号の説明】
100、200、300、400、500、700、8
00 マルチタスクデバッグ装置 110、210、310、410、510、710、8
10 ブレークポイント設定部 120、220、320、420、520 ブレークポ
イント解除部 130、230、330、430、530、720 ブ
レークポイント検出部 140、240、340、440、540 ブレークポ
イント切替部 150、250、350、450、550 ブレークポ
イント無効化手段 160、260、360、460 ブレークポイント有
効化手段 170、270、370、470、570 全ブレーク
ポイント設定表 180、280、380、480、580 個別タスク
ブレークポイント設定表 290、490、590 無効化ブレークポイントリス
ト 292、392、492、592 無効化カウント 730、840 ブレークポイント設定表 820 ブレークポイント処理部 830 タスク切替処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 横澤 彰 神奈川県川崎市幸区堀川町580番1号 株 式会社東芝半導体システム技術センター内 Fターム(参考) 5B042 GA23 LA05 LA23 MC23 5B098 BA05 BB03 GA04 JJ06

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数のタスクが実行される環境で、任意
    アドレスへのタスク毎のブレークポイント設定が可能な
    マルチタスクデバッグ装置であって、 入力された任意のアドレスとタスクとの対応に従い、該
    アドレスへのブレークポイントの設定と、各ブレークポ
    イント毎の状態及び各タスク毎の該タスクに属するブレ
    ークポイントを含むブレークポイント情報の登録とを行
    うブレークポイント設定部と、 設定された前記ブレークポイントの解除および前記ブレ
    ークポイント情報の削除を行うブレークポイント解除部
    と、 プログラム実行中に検出されたブレークポイントに従っ
    て、前記プログラムの実行を停止するブレークポイント
    検出部と、 実行されるタスクの切り替えの際に、所定のブレークポ
    イントの再設定を行うブレークポイント切替部とを少な
    くとも具備し、 前記ブレークポイントの検出の際には、前記各タスク毎
    に登録されたブレークポイントに基づいて、現在実行中
    のタスクに不要なブレークポイントの無効化を 行い、前記ブレークポイントの切り替えの際には、前記
    ブレークポイント情報に基づいて、前記状態が無効であ
    るブレークポイントについての有効化を行うことを特徴
    とするマルチタスクデバッグ装置。
  2. 【請求項2】 複数のタスクが実行される環境で、任意
    アドレスへのタスク毎のブレークポイント設定が可能な
    マルチタスクデバッグ装置であって、 前記ブレークポイント毎に、少なくとも、該ブレークポ
    イントが設定されたアドレスと、前記ブレークポイント
    についての有効または無効のいずれかの値を示す状態フ
    ラグとを記録する全ブレークポイント設定表と、 各タスク毎に、該タスクに属するブレークポイントを記
    録する個別タスクブレークポイント設定表と、 入力された任意のアドレスとタスクとの対応に従い、該
    アドレスへのブレークポイントの設定と、前記全ブレー
    クポイント設定表への設定するブレークポイントについ
    ての前記状態フラグの有効を示す値によるセットと、前
    記個別ブレークポイント設定表への前記設定するブレー
    クポイントの登録とを少なくとも行うブレークポイント
    設定部と、 前記設定されたブレークポイントの解除及び前記個別タ
    スクブレークポイント設定表及び前記全ブレークポイン
    ト設定表からの前記設定されたブレークポイントのエン
    トリーの削除を行うブレークポイント解除部と、 プログラム実行中にブレークポイントを検出した際に、
    現在実行中のタスクに対応する前記個別タスクブレーク
    ポイント設定表に、前記ブレークポイントが検出された
    アドレスに設定されたブレークポイントが存在する場合
    には、前記プログラムの実行を停止し、前記ブレークポ
    イントが存在しなかった場合には、前記ブレークポイン
    トの無効化を行うブレークポイント検出部と、 前記タスク切り替えの際に、前記状態フラグが無効を示
    す値であるブレークポイントについての有効化を行うブ
    レークポイント切替部とを少なくとも具備することを特
    徴とするマルチタスクデバッグ装置。
  3. 【請求項3】 複数のタスクが実行される環境で、任意
    アドレスへのタスク毎のブレークポイント設定が可能な
    マルチタスクデバッグ装置であって、 入力された任意のアドレスとタスクとの対応に従い、該
    アドレスへのブレークポイントの設定と、各ブレークポ
    イント毎の状態及び各タスク毎の該タスクに属するブレ
    ークポイントを含むブレークポイント情報の登録とを行
    うブレークポイント設定部と、 設定された前記ブレークポイントの解除および前記ブレ
    ークポイント情報の削除を行うブレークポイント解除部
    と、 プログラム実行中に検出されたブレークポイントが、現
    在実行中のタスクに属するブレークポイントである場合
    には、前記プログラムの実行を停止し、現在実行中のタ
    スクに属するブレークポイントでない場合には、該ブレ
    ークポイントの前記状態の無効化を行うブレークポイン
    ト検出部と、 実行されるタスクの切り替えの際に、前記ブレークポイ
    ント情報に基づいて、前記状態が無効であるブレークポ
    イントについての有効化を行うブレークポイント切替部
    と、 今まで無効化されたブレークポイントの総数を示す無効
    化カウントとを少なくとも具備し、 前記無効化を行う際には、前記無効化カウントが、予め
    設定されたしきい値を越えるまで、ブレークポイントの
    無効化を行い、 前記無効化カウントが前記しきい値を越えた場合には、
    無効化されたブレークポイントを選択的に有効化するこ
    とを特徴とするマルチタスクデバッグ装置。
  4. 【請求項4】 上記マルチタスクデバッグ装置は、さら
    に、 前記ブレークポイント毎に、少なくとも、該ブレークポ
    イントが設定されたアドレスを記録する全ブレークポイ
    ント設定表と、 各タスク毎に、該タスクに属するブレークポイントを記
    録する個別タスクブレークポイント設定表と、 現在無効化されたブレークポイントを、先に無効化され
    たブレークポイントに順次追加することにより作成され
    る無効化ブレークポイントリストとを有し、 前記ブレークポイントの無効化の際に行われる前記有効
    化は、前記無効化ブレークポイントリストの先頭のブレ
    ークポイントを選択した対象について行われることを特
    徴とする請求項3記載のマルチタスクデバッグ装置。
  5. 【請求項5】 上記マルチタスクデバッグ装置は、更
    に、 前記ブレークポイント毎に、少なくとも、該ブレークポ
    イントが設定されたアドレス、前記ブレークポイントに
    ついての有効または無効のいずれかの値を示す状態フラ
    グ、及び前記ブレークポイントの無効化履歴のカウント
    を記録する全ブレークポイント設定表と、 各タスク毎に、該タスクに属するブレークポイントを記
    録する個別タスクブレークポイント設定表とを有し、 前記ブレークポイントの無効化の際に行われる前記有効
    化は、前記状態フラグが無効を示すブレークポイント中
    から前記無効化履歴のカウントの少ないブレークポイン
    トを選択した対象について行われることを特徴とする請
    求項3記載のマルチタスクデバッグ装置。
  6. 【請求項6】 前記無効化カウント、および前記無効化
    ブレークポイントリストは、それぞれ各タスク毎に設け
    られることを特徴とする請求項4記載のマルチタスクデ
    バッグ装置。
  7. 【請求項7】 複数のタスクが実行される環境で、任意
    アドレスへのタスク毎のブレークポイント設定が可能な
    マルチタスクデバッグ方法であって、 入力された任意のアドレスとタスクとの対応に従い、該
    アドレスへのブレークポイントの設定と、各ブレークポ
    イント毎の状態及び各タスク毎の該タスクに属するブレ
    ークポイントを含むブレークポイント情報の登録とを行
    うブレークポイント設定ステップと、 設定された前記ブレークポイントの解除および前記ブレ
    ークポイント情報の削除を行うブレークポイント解除ス
    テップと、 プログラム実行中に検出されたブレークポイントに従っ
    て、前記プログラムの実行を停止するブレークポイント
    検出ステップと、 実行されるタスクの切り替えの際に、所定のブレークポ
    イントの再設定を行うブレークポイント切替ステップと
    を含み、 前記ブレークポイントの検出の際には、前記各タスク毎
    に登録されたブレークポイントに基づいて、現在実行中
    のタスクに不要なブレークポイントの無効化を行い、 前記タスクの切り替えの際には、前記ブレークポイント
    情報に基づいて、前記状態が無効であるブレークポイン
    トについての有効化を行うことを特徴とするマルチタス
    クデバッグ方法。
  8. 【請求項8】 複数のタスクが実行される環境で、任意
    アドレスへのタスク毎のブレークポイント設定が可能な
    マルチタスクデバッグ方法であって、 入力された任意のアドレスとタスクとの対応に従い、該
    アドレスへのブレークポイントの設定と、各ブレークポ
    イント毎の状態及び各タスク毎の該タスクに属するブレ
    ークポイントを含むブレークポイント情報の登録とを行
    うブレークポイント設定ステップと、 設定された前記ブレークポイントの解除および前記ブレ
    ークポイント情報の削除を行うブレークポイント解除ス
    テップと、 プログラム実行中に検出されたブレークポイントが、現
    在実行中のタスクに属するブレークポイントである場合
    には、前記プログラムの実行を停止し、現在実行中のタ
    スクに属するブレークポイントでない場合には、該ブレ
    ークポイントの前記状態の無効化を行うブレークポイン
    ト検出ステップと、 実行されるタスクの切り替えの際に、前記ブレークポイ
    ント情報に基づいて、前記状態が無効であるブレークポ
    イントについての有効化を行うブレークポイント切替ス
    テップとを含み、 前記無効化を行う際には、今まで無効化されたブレーク
    ポイントの総数を示す無効化カウントが、予め設定され
    たしきい値を越えるまで、ブレークポイントの無効化を
    行い、 前記無効化カウントが前記しきい値を越えた場合には、
    無効化されたブレークポイントを選択的に有効化するこ
    とを特徴とするマルチタスクデバッグ方法。
  9. 【請求項9】 前記ブレークポイントの無効化の際に行
    われる前記有効化は、さらに、 最も最先に無効化されたブレークポイントを選択した対
    象について行われることを特徴とする請求項8記載のマ
    ルチタスクデバッグ方法。
  10. 【請求項10】 前記ブレークポイントの無効化の際に
    行われる前記有効化は、さらに、 各ブレークポイント毎に記録される無効化の頻度に従っ
    て、最も該頻度の少ないブレークポイントを選択した対
    象について行われることを特徴とする請求項8記載のマ
    ルチタスクデバッグ方法。
  11. 【請求項11】 複数のタスクが実行される環境で、任
    意アドレスへのタスク毎のブレークポイント設定が可能
    なマルチタスクデバッグプログラムを格納したコンピュ
    ータ読み取り可能な記録媒体であって、 入力された任意のアドレスとタスクとの対応に従い、該
    アドレスへのブレークポイントの設定と、各ブレークポ
    イント毎の状態及び各タスク毎の該タスクに属するブレ
    ークポイントを含むブレークポイント情報の登録とを行
    うブレークポイント設定ステップと、 設定された前記ブレークポイントの解除および前記ブレ
    ークポイント情報の削除を行うブレークポイント解除ス
    テップと、 プログラム実行中に検出されたブレークポイントに従っ
    て、前記プログラムの実行を停止するブレークポイント
    検出ステップと、 実行されるタスクの切り替えの際に、所定のブレークポ
    イントの再設定を行うブレークポイント切替ステップと
    を含み、 前記ブレークポイントの検出の際には、前記各タスク毎
    に登録されたブレークポイントに基づいて、現在実行中
    のタスクに不要なブレークポイントの無効化を行い、 前記タスクの切り替えの際には、前記ブレークポイント
    情報に基づいて、前記状態が無効であるブレークポイン
    トについての有効化を行うことを特徴とするマルチタス
    クデバッグプログラムを格納したコンピュータ読み取り
    可能な記録媒体。
  12. 【請求項12】 複数のタスクが実行される環境で、任
    意アドレスへのタスク毎のブレークポイント設定が可能
    なマルチタスクデバッグプログラムを格納したコンピュ
    ータ読み取り可能な記録媒体であって、 入力された任意のアドレスとタスクとの対応に従い、該
    アドレスへのブレークポイントの設定と、各ブレークポ
    イント毎の状態及び各タスク毎の該タスクに属するブレ
    ークポイントを含むブレークポイント情報の登録とを行
    うブレークポイント設定ステップと、 設定された前記ブレークポイントの解除および前記ブレ
    ークポイント情報の削除を行うブレークポイント解除ス
    テップと、 プログラム実行中に検出されたブレークポイントが、現
    在実行中のタスクに属するブレークポイントである場合
    には、前記プログラムの実行を停止し、現在実行中のタ
    スクに属するブレークポイントでない場合には、該ブレ
    ークポイントの前記状態の無効化を行うブレークポイン
    ト検出ステップと、 実行されるタスクの切り替えの際に、前記ブレークポイ
    ント情報に基づいて、前記状態が無効であるブレークポ
    イントについての有効化を行うブレークポイント切替ス
    テップと を含み、 前記無効化を行う際には、今まで無効化されたブレーク
    ポイントの総数を示す無効化カウントが、予め設定され
    たしきい値を越えるまで、ブレークポイントの無効化を
    行い、 前記無効化カウントが前記しきい値を越えた場合には、
    無効化されたブレークポイントを選択的に有効化するこ
    とを特徴とするマルチタスクデバッグプログラムを格納
    したコンピュータ読み取り可能な記録媒体。
JP10348933A 1998-12-08 1998-12-08 マルチタスクデバッグ装置及びマルチタスクデバッグ方法 Pending JP2000172532A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10348933A JP2000172532A (ja) 1998-12-08 1998-12-08 マルチタスクデバッグ装置及びマルチタスクデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10348933A JP2000172532A (ja) 1998-12-08 1998-12-08 マルチタスクデバッグ装置及びマルチタスクデバッグ方法

Publications (1)

Publication Number Publication Date
JP2000172532A true JP2000172532A (ja) 2000-06-23

Family

ID=18400370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10348933A Pending JP2000172532A (ja) 1998-12-08 1998-12-08 マルチタスクデバッグ装置及びマルチタスクデバッグ方法

Country Status (1)

Country Link
JP (1) JP2000172532A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007079969A (ja) * 2005-09-14 2007-03-29 Matsushita Electric Ind Co Ltd デバッグシステム及び方法
US20150040593A1 (en) * 2012-06-06 2015-02-12 Sharp Kabushiki Kaisha Air conditioner
WO2021192485A1 (ja) * 2020-03-27 2021-09-30 パナソニックIpマネジメント株式会社 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007079969A (ja) * 2005-09-14 2007-03-29 Matsushita Electric Ind Co Ltd デバッグシステム及び方法
US7694182B2 (en) 2005-09-14 2010-04-06 Panasonic Corporation Debugging system and method
JP4676289B2 (ja) * 2005-09-14 2011-04-27 パナソニック株式会社 デバッグシステム及び方法
US20150040593A1 (en) * 2012-06-06 2015-02-12 Sharp Kabushiki Kaisha Air conditioner
US10101064B2 (en) * 2012-06-06 2018-10-16 Sharp Kabushiki Kaisha Air conditioner
WO2021192485A1 (ja) * 2020-03-27 2021-09-30 パナソニックIpマネジメント株式会社 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
JP2021157594A (ja) * 2020-03-27 2021-10-07 パナソニックIpマネジメント株式会社 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
JP7316613B2 (ja) 2020-03-27 2023-07-28 パナソニックIpマネジメント株式会社 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
US11947408B2 (en) 2020-03-27 2024-04-02 Panasonic Intellectual Property Management Co., Ltd. Anomaly detection method, anomaly detection recording medium, anomaly detection device, rewriting method, and rewriting device

Similar Documents

Publication Publication Date Title
US9892803B2 (en) Cache management request fusing
US7716673B2 (en) Tasks distribution in a multi-processor including a translation lookaside buffer shared between processors
US7047401B2 (en) Handling interrupts during multiple access program instructions
US8671246B2 (en) Information processing system and information processing method
KR102527423B1 (ko) 트랜잭션 실행에 응답하여 트레이스 데이터를 생성하는 장치 및 방법
US20070050586A1 (en) Memory access control apparatus
US9575816B2 (en) Deadlock/livelock resolution using service processor
EP2851804B1 (en) Arithmetic processing device, information processing device, control method for information processing device, and control program for information processing device
JP2013520753A (ja) ハードウエアトランザクショナルメモリにおける自動サスペンド及び再開
US8762599B2 (en) Delegating a poll operation to another device
US20090240889A1 (en) Method, system, and computer program product for cross-invalidation handling in a multi-level private cache
WO2007096998A1 (ja) キャッシュメモリ装置およびキャッシュメモリ制御方法
JP2000172532A (ja) マルチタスクデバッグ装置及びマルチタスクデバッグ方法
EP3513297B1 (en) An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry
US20080301324A1 (en) Processor device and instruction processing method
JPWO2003040948A1 (ja) コンピュータ及び制御方法
EP1622025B1 (en) Cache hit/miss under miss optimization
US6842819B2 (en) Automatic corner case search in multi-agent bus interface verification
USH2202H1 (en) Method and apparatus to dynamically hook runtime processes without interrupting the flow of execution
CN114265637A (zh) 档案管理系统配置方法、系统、电子设备以及存储介质
US7934067B2 (en) Data update history storage apparatus and data update history storage method
US6397304B1 (en) Method and apparatus for improving system performance in multiprocessor systems
JP2003196140A (ja) 排他制御装置及び排他制御方法
JP3494072B2 (ja) キャッシュメモリ及びその障害検出方法
JP5577518B2 (ja) メモリ管理方法、計算機及びメモリ管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090407