JPH11272501A - デバッガの処理方法およびリアルタイムosの処理方法 - Google Patents

デバッガの処理方法およびリアルタイムosの処理方法

Info

Publication number
JPH11272501A
JPH11272501A JP10070203A JP7020398A JPH11272501A JP H11272501 A JPH11272501 A JP H11272501A JP 10070203 A JP10070203 A JP 10070203A JP 7020398 A JP7020398 A JP 7020398A JP H11272501 A JPH11272501 A JP H11272501A
Authority
JP
Japan
Prior art keywords
task
time
execution
real
processing method
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
JP10070203A
Other languages
English (en)
Inventor
Shoji Nagata
昭二 永田
Motohide Nishihata
素秀 西畑
Shintaro Tsubata
真太郎 津幡
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 JP10070203A priority Critical patent/JPH11272501A/ja
Publication of JPH11272501A publication Critical patent/JPH11272501A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 マルチタスクシステムにおいて、タスク切替
え時間の増大を伴わず、タスクブレークを確実に機能さ
せる。 【解決手段】 モニタプログラム101が、デバック対
象タスクのブレーク時に、実行タスクIDをリアルタイ
ムOS102へのシステムコールで取得し、ユーザによ
り指定されたデバッグ対象タスクIDと比較し、等しく
なければ実行再開し、等しければデバッガ専用のタスク
停止のシステムコールをリアルタイムOS102へ発行
し、そのタスクを停止させる。これによって、リアルタ
イムOS102が実行タスクIDを特定領域に格納する
処理が不要となり、タスク切り替え時間を削減でき、ま
た、いったんタスク停止したタスクが、後続のユーザタ
スクによって再び起床されてしまう問題を回避できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機上で動作さ
せるアプリケーションソフトウェアの効率の良いデバッ
グを支援するためのデバッガの処理方法、および計算機
上で動作させるアプリケーションソフトウェアをタスク
を実行単位とした並行動作(マルチタスク)として制御
するリアルタイムOS(Real Time Operating System)
の処理方法に関するものである。
【0002】
【従来の技術】計算機アプリケーションソフトウェアの
デバッガ装置は、少なくとも、被デバッグプログラムの
ロード、メモリやCPUレジスタの読み書き、プログラ
ム実行、および停止といったシステムデバッグのため必
要な機能を備える装置である。一方、従来のデバッガ装
置としてのタスクレベルのデバッガ装置(以後、タスク
レベルデバッグ装置と称す。また、区別のためシステム
デバッグのためのデバッグ装置はシステムデバッグ装置
と称す)は、少なくとも、タスク単位の実行および停止
といったタスクデバッグのため必要な機能を備える装置
である。
【0003】システムデバッグ装置とタスクレベルデバ
ッグ装置のプログラム実行・停止の機能には、つぎのよ
うな相違点がある。すなわち、タスクレベルデバッガ装
置は、実行・停止の状態を切り替えるために、リアルタ
イムOSが管理するラン(RUN)状態やレディ(RE
ADY)状態やサスペンド(SUSPEND)状態等に
遷移させることで、被デバッグタスクを制御する。
【0004】サスペンド状態となったタスクは停止状態
となるが、システムレベルでは割り込み可能な状態であ
って、かつより高位の優先度のタスクは実行可能である
ため、システム全体としては停止しない。一方、システ
ムデバッグ装置におけるプログラム停止は、割り込み禁
止状態でモニタプログラムがでループし、デバッガに制
御を委ねる状態となって、システム全体が停止する。
【0005】従来のリアルタイムOSの構成およびその
制御方法は、例えば、μITRON3.0標準ハンドブ
ック(パーソナルメディア発行)に記載されている。従
来のタスクレベルデバッグ装置のモニタプログラムの処
理方法は、例えば、特開平3−113648号公報に記
載されているように、ブレーク時の処理として、ブレー
ク発生以前の実行タスクID(Identification)の領域
を読み出すことで実行タスクIDを取得し、この実行タ
スクIDとユーザにより指定され記憶するデバッグ対象
タスクIDとを比較し、実行タスクIDとデバッグ対象
タスクIDとが一致しなければ、再びブレークしたアド
レスよりタスクの実行を再開し、一致すればデバッガに
制御を移し、システム全体を停止するか、または実行中
のタスクをサスペンド状態に遷移させ停止させる処理方
法が採られていた。
【0006】図4は上述した処理方法において、被デバ
ッグタスク403とモニタプログラム401の処理内容
を示すフローチャートである。ここで、モニタプログラ
ム401の処理はNMI(Non Maskable Interrupt)で
起動する場合のNMIハンドラとして動作する処理を表
す。また、モニタプログラム401にはこの他に、図示
せぬ初期化ルーチンや他の割込みハンドラ等の既知の処
理を含むことがある。
【0007】まず、被デバッグタスク403がブレーク
を発生する、つまりイリーガル命令等、ブレークを誘因
するブレーク命令を実行すると(ステップT1)、NM
Iハンドラに制御が移り、レジスタ退避等の前処理(ス
テップT2)の後、実行タスクIDの取得を行う(ステ
ップT3)。なお、実行タスクIDは、リアルタイムO
Sによって、タスク切り替えの度に特定の領域に格納さ
れ、実行タスクIDの取得は、その領域のデータを読み
出すことで実現される。
【0008】つぎに、実行タスクIDがデバッグ対象タ
スクIDに等しいか否かの判定を行い(ステップT
4)、等しければデバッガへ制御を移してシステム全体
を停止させるか、もしくは実行中のタスクをサスペンド
状態に遷移させ停止させ(図示せず)、等しくなけれ
ば、再び割り込まれたタスクのアドレスより実行を再開
する。なお、割り込み前に走っていたタスクは、割り込
み要因の発生によって、上記のように割り込まれたタス
クと呼ばれる。
【0009】
【発明が解決しようとする課題】しかしながら、上記し
た従来のタスクレベルデバッガ装置には、つぎの2つの
問題がある。まず、第1の問題は、モニタプログラム4
01でブレーク発生以前の実行タスクIDを取得できる
ようにするため、リアルタイムOSはタスク切り替えの
度に実行タスクIDを特定の領域に格納しなければなら
ず、タスク切り替え時間が増大してしまうという問題で
ある。
【0010】また、第2の問題として、モニタプログラ
ム401の処理によって、ブレーク発生以前の実行タス
クIDとデバッグ対象タスクIDとが一致した際に、タ
スクをサスペンド状態に遷移させ停止させる場合では、
後続の実行タスクが発行するシステムコールの処理によ
っては(例えば停止状態のタスクを再び起床させるシス
テムコールの発行処理を行った場合等)、タスクの停止
状態が維持されない場合があり、ユーザが意図した通り
にデバッグ操作を継続できなくなる問題がある。
【0011】したがって、本発明の目的は、リアルタイ
ムOSにおけるタスク切り替え時間を減少させることが
できるデバッガの処理方法を提供することである。ま
た、本発明の他の目的は、タスク切り替え時間を減少さ
せることができるリアルタイムOSの処理方法を提供す
ることである。また、本発明のさらに他の目的は、後続
の実行タスクが発行するシステムコールの処理にかかわ
らず確実にタスクを停止状態にすることができ、ユーザ
が意図したとおりにデバッグを継続させることができる
リアルタイムOSの処理方法を提供することである。
【0012】
【課題を解決するための手段】請求項1記載のデバッガ
の処理方法は、タスクレベルのデバッグの支援を行う方
法であり、ブレーク時の処理として、ブレーク発生以前
の実行タスクIDをシステムコールで取得する第1のス
テップと、ユーザにより指定され記憶する1つのデバッ
グ対象タスクIDと実行タスクIDとの比較を行う第2
のステップと、デバッグ対象タスクIDと実行タスクI
Dとが等しくなければ再びブレークしたアドレスよりタ
スクの実行を再開し、等しければタスクの実行を停止さ
せる第3のステップとを含むことを特徴とする。
【0013】この方法によれば、システムコールに応答
するリアルタイムOSにおいて、タスク切り替え時に実
行タスクIDを記憶する処理を省略できるため、リアル
タイムOSのタスク切り替え時間を減少させることがで
き、システム負荷を軽減することができる。請求項2記
載のデバッガの処理方法は、請求項1記載のデバッガの
処理方法において、タスクの実行停止をシステムコール
により実行することを特徴とする。
【0014】この方法によれば、通常のタスクの停止と
ブレーク処理によるタスクの停止状態とを異ならせるこ
とが可能であり、ブレーク処理により停止するタスク
は、後続の実行タスクが発行するシステムコールの処理
にかかわらず確実に停止状態にすることが可能になる。
請求項3記載のリアルタイムOSの処理方法は、請求項
1記載のデバッガの処理方法を実現するための方法であ
り、現在実行中のタスクの実行タスクIDを通知するシ
ステムコール処理を実行することを特徴とする。
【0015】この方法によれば、タスク切り替え時に実
行タスクIDを記憶する処理を省略できるため、タスク
切り替え時間を減少させることができ、システム負荷を
軽減することができる。請求項4記載のリアルタイムO
Sの処理方法は、請求項1記載のデバッガの処理方法を
実現するための方法であり、リアルタイムOSが管理す
るタスク状態として、通常のラン状態、レディ状態、ウ
ェイト状態およびサスペンド状態等の各状態に加えて、
デバッガ指示により遷移する停止状態であるデバッグサ
スペンド(DEBUG SUSPEND)状態を追加
し、タスクをデバッグサスペンド状態へ遷移させるシス
テムコール処理とタスクをデバッグサスペンド状態より
元の状態へ復帰させるシステムコール処理とを実行可能
なことを特徴とする。
【0016】この方法によれば、ブレーク処理によるタ
スクを停止するときは、タスクを通常のサスペンド状態
とは別のデバッグサスペンド状態とすることができるの
で、ブレーク処理により停止するタスクは、後続の実行
タスクが発行するシステムコールの処理にかかわらず確
実に停止状態にすることが可能となる。
【0017】
【発明の実施の形態】以下、本発明の形態について、図
面を参照して説明する。図1は本発明の実施の形態に係
るデバッガ装置を含むデバッガシステムの全体構成を示
す概略図である。図1において、10はターゲットシス
テムであり、101はモニタプログラム、102はリア
ルタイムOS、103はマルチタスクシステムにおける
1つ以上のタスクを示す。20はターゲットシステム1
0と通信手段202により接続されるホストコンピュー
タであって、デバッガ201が利用者に対しターゲット
システム10上のタスク103に関するデバッグ機能を
提供する。30はユーザによって指定され記憶したデバ
ッグ対象タスクIDであり、特定の領域に格納されてい
る。
【0018】図2は、リアルタイムOSが管理するタス
ク状態遷移の流れを示す概略図であり、矢印は状態間の
遷移の方向を表し、割り込みやユーザタスクからのシス
テムコールを契機として遷移する。同図において、40
はレディ状態、50はラン状態、60はウェイト状態、
70はサスペンド状態、80はデバッグサスペンド状態
である。従来例と異なるのは、タスクレベルデバッガの
ためのNMIハンドラからのシステムコール発行により
遷移するデバッグサスペンド状態80を有することであ
る。
【0019】なお、デバッグサスペンド状態80へ遷移
するシステムコールとデバッグサスペンド状態から元の
状態に復帰するシステムコールは例えば、サスペンド状
態との間で遷移するためのシステムコールとは名前やそ
のエントリが区別されるため、ユーザがその混用を容易
に避けることができる。したがって、ブレーク処理によ
り停止するタスクは、後続の実行タスクが発行するシス
テムコールの処理にかかわらず確実に停止状態にするこ
とが可能となる。
【0020】以下、モニタプログラム101とリアルタ
イムOS102による、その制御のための動作について
説明する。図3は被デバッグタスク103と、モニタプ
ログラム101と、リアルタイムOS102の処理内容
を示すフローチャートである。ここで、モニタプログラ
ム101の処理はNMIで起動する場合のNMIハンド
ラとして動作する処理を表す。また、モニタプログラム
101にはこの他に、図示せぬ初期化ルーチンや他の割
込みハンドラ等の既知の処理を含むことがあり、リアル
タイムOS102についても同様に、図示せぬタスクス
ケジューラやキュー操作等の処理が含まれる。
【0021】まず、被デバッグタスク103がブレーク
を発生する、つまりイリーガル命令等、ブレークを誘因
するブレーク命令を実行すると(ステップS1)、NM
Iハンドラに制御が移り、レジスタ退避等の前処理(ス
テップS2)の後、リアルタイムOSへの第1のシステ
ムコールを発行することにより実行タスクIDの取得を
行う(ステップS3)。このとき、リアルタイムOS1
02では、第1のシステムコールを受けて、実行タスク
ID取得システムコール処理を実行することになる。こ
の実行タスクID取得システムコール処理では、リター
ンパラメータに実行タスクIDを設定し(ステップS3
1)、その後モニタプログラム101に復帰し、これに
よってモニタプログラム101における実行タスクID
の取得が行われる。なお、実行タスクIDは、リアルタ
イムOSによって、第1のシステムコールを受けたとき
にリターンパラメータに設定するだけであり、従来例の
ように、タスク切り替えの度に特定の領域に格納してお
くということはない。
【0022】つぎに、実行タスクIDがデバッグ対象タ
スクIDに等しいか否かの判定を行い(ステップS
4)、等しければ、続いてタスクをデバッグサスペンド
状態へ遷移させる第2のシステムコールの発行を行う
(ステップS5)ことによりタスクを停止させる。この
とき、リアルタイムOS102では、第2のシステムコ
ールを受けて、タスク停止(デバッグサスペンド)シス
テムコール処理を実行する。このタスク停止システムコ
ール処理では、実行タスクのTCB(Task Control blo
ck:タスク実行表)をランキューから外し、デバッグサ
スペンドキューにつなぎ(ステップS51)、ついでタ
スクの再スケジュールを行い(ステップS52)、その
後モニタプログラム101に復帰し、これによってモニ
タプログラム101におけるタスクの停止が行われる。
このタスクの停止処理によって、後続の実行タスクが発
行するシステムコールの処理にかかわらず確実に停止状
態になる。
【0023】その後、第3のシステムコールの発行を行
うことで、タスクをデバッグサスペンド状態から元の状
態に復帰させる。一方、実行タスクIDがデバッグ対象
タスクIDとが等しくなければ、再び割り込まれたタス
クのアドレスより実行を再開する。以上のように、この
実施の形態によれば、モニタプログラム101におい
て、デバッグ対象タスクのブレーク時に、実行タスクI
DをリアルタイムOS102へのシステムコールで取得
し、ユーザにより指定されたデバッグ対象タスクIDと
比較し、等しくなければ実行再開し、等しければデバッ
ガ専用のタスク停止のシステムコールをリアルタイムO
S102へ発行し、そのタスクを停止させるので、リア
ルタイムOS102が実行タスクIDを特定領域に格納
する処理が不要となり、タスク切替え時間を削減でき、
また、いったんタスク停止したタスクが、後続のユーザ
タスクによって再び起床されてしまう問題を回避でき
る。したがって、マルチタスクシステムにおいて、タス
ク切替え時間の増大を伴わず、タスクブレークを確実に
機能させることが可能となる。これらによって、ユーザ
は、少ないシステム負荷で効率の良いタスクレベルのデ
バッグを行うことができるようになり、その効果は大き
い。
【0024】
【発明の効果】請求項1記載のデバッガの処理方法によ
れば、システムコールに応答するリアルタイムOSにお
いて、タスク切り替え時に実行タスクIDを記憶する処
理を省略できるため、リアルタイムOSのタスク切り替
え時間を減少させることができ、システム負荷を軽減す
ることができる。
【0025】請求項2記載のデバッガの処理方法によれ
ば、通常のタスクの停止とブレーク処理によるタスクの
停止状態とを異ならせることが可能であり、ブレーク処
理により停止するタスクは、後続の実行タスクが発行す
るシステムコールの処理にかかわらず確実に停止状態に
することが可能になる。請求項3記載のリアルタイムO
Sの処理方法によれば、タスク切り替え時に実行タスク
IDを記憶する処理を省略できるため、タスク切り替え
時間を減少させることができ、システム負荷を軽減する
ことができる。
【0026】請求項4記載のリアルタイムOSの処理方
法によれば、ブレーク処理によるタスクを停止するとき
は、タスクを通常のサスペンド状態とは別のデバッグサ
スペンド状態とすることができるので、ブレーク処理に
より停止するタスクは、後続の実行タスクが発行するシ
ステムコールの処理にかかわらず確実に停止状態にする
ことが可能になり、効率の良いタスクレベルのデバッグ
を行うことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るデバッガ装置を含む
デバッガシステムの全体構成を示す概略図である。
【図2】本発明の実施の形態に係るタスク状態遷移の流
れを示す概略図である。
【図3】本発明の実施の形態に係る被デバッグタスクと
モニタプログラムおよびリアルタイムOSの動作を示す
フローチャートである。
【図4】従来例に係る被デバッグタスクとモニタプログ
ラムの動作を示すフローチャートである。
【符号の説明】
10 ターゲットシステム 101 モニタプログラム 102 リアルタイムOS 103 被デバッグタスク 20 ホストコンピュータ 201 デバッガ 202 通信手段 30 デバッグ対象タスクID 40 レディ状態 50 ラン状態 60 ウェイト状態 70 サスペンド状態 80 デバッグサスペンド状態 401 モニタプログラム 403 被デバッグタスク

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 タスクレベルのデバッグの支援を行うデ
    バッガの処理方法であって、 ブレーク時の処理として、ブレーク発生以前の実行タス
    クIDをシステムコールで取得する第1のステップと、
    ユーザにより指定され記憶する1つのデバッグ対象タス
    クIDと前記実行タスクIDとの比較を行う第2のステ
    ップと、前記デバッグ対象タスクIDと前記実行タスク
    IDとが等しくなければ再びブレークしたアドレスより
    タスクの実行を再開し、等しければ前記タスクの実行を
    停止させる第3のステップとを含むことを特徴とするデ
    バッガの処理方法。
  2. 【請求項2】 タスクの実行停止をシステムコールによ
    り実行することを特徴とする請求項1記載のデバッガの
    処理方法。
  3. 【請求項3】 請求項1記載のデバッガの処理方法を実
    現するためのリアルタイムOSの処理方法であって、 現在実行中のタスクの実行タスクIDを通知するシステ
    ムコール処理を実行することを特徴とするリアルタイム
    OSの処理方法。
  4. 【請求項4】 請求項1記載のデバッガの処理方法を実
    現するためのリアルタイムOSの処理方法であって、 リアルタイムOSが管理するタスク状態として、通常の
    ラン状態、レディ状態、ウェイト状態およびサスペンド
    状態等の各状態に加えて、デバッガ指示により遷移する
    停止状態であるデバッグサスペンド状態を追加し、 タスクを前記デバッグサスペンド状態へ遷移させるシス
    テムコール処理と前記タスクを前記デバッグサスペンド
    状態より元の状態へ復帰させるシステムコール処理とを
    実行可能なことを特徴とするリアルタイムOSの処理方
    法。
JP10070203A 1998-03-19 1998-03-19 デバッガの処理方法およびリアルタイムosの処理方法 Pending JPH11272501A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10070203A JPH11272501A (ja) 1998-03-19 1998-03-19 デバッガの処理方法およびリアルタイムosの処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10070203A JPH11272501A (ja) 1998-03-19 1998-03-19 デバッガの処理方法およびリアルタイムosの処理方法

Publications (1)

Publication Number Publication Date
JPH11272501A true JPH11272501A (ja) 1999-10-08

Family

ID=13424739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10070203A Pending JPH11272501A (ja) 1998-03-19 1998-03-19 デバッガの処理方法およびリアルタイムosの処理方法

Country Status (1)

Country Link
JP (1) JPH11272501A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100406953B1 (ko) * 2001-08-16 2003-11-28 엘지전자 주식회사 실시간 운영체제의 런타임 디버깅 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100406953B1 (ko) * 2001-08-16 2003-11-28 엘지전자 주식회사 실시간 운영체제의 런타임 디버깅 방법

Similar Documents

Publication Publication Date Title
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US6282601B1 (en) Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
CN103473135B (zh) 虚拟化环境下自旋锁lhp现象的处理方法
US7971205B2 (en) Handling of user mode thread using no context switch attribute to designate near interrupt disabled priority status
US20040098639A1 (en) Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems
US20220035664A1 (en) Reverse restartable sequences for lock polling scalability
JPS62184544A (ja) 仮想計算機システム
JP5131269B2 (ja) マルチプロセッシングシステム
WO2003083656A2 (en) Method and apparatus for context switching in computer operating systems
JP3598282B2 (ja) コンピュータ、その制御方法及びその制御方法を記録した記録媒体
US7702836B2 (en) Parallel processing device and exclusive control method
JP2643804B2 (ja) デバッグ方式
JPH08272755A (ja) プロセッサ切替え装置
US7562207B2 (en) Deterministic microcontroller with context manager
KR100506254B1 (ko) 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법
JPH0668725B2 (ja) データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法
JP2022107229A (ja) 情報処理装置、制御方法及び制御プログラム
JPS62150416A (ja) 低消費電力状態への移行方式
JP2553526B2 (ja) マルチタスク処理装置
Cherepov et al. Hard Real-time with {RTX} on Windows {NT}
JP3516589B2 (ja) 高速アドレス切り替え装置
JPH05165652A (ja) タスク切替え制御方法
CN121681445A (zh) 处理器与协处理器的同步方法、装置、设备、介质及产品
JP2006228074A (ja) マルチタスクシステムおよびマルチタスク制御方法
US20030225817A1 (en) Concurrent execution of kernel work and non-kernel work in operating systems with single-threaded kernel