JPH10161905A - デバッグシステムおよびその方法 - Google Patents
デバッグシステムおよびその方法Info
- Publication number
- JPH10161905A JPH10161905A JP8323821A JP32382196A JPH10161905A JP H10161905 A JPH10161905 A JP H10161905A JP 8323821 A JP8323821 A JP 8323821A JP 32382196 A JP32382196 A JP 32382196A JP H10161905 A JPH10161905 A JP H10161905A
- Authority
- JP
- Japan
- Prior art keywords
- task
- break
- state
- execution
- operating system
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
ッグシステムで1ラインステップテストにおいて、タス
クが休止状態へ遷移した場合でも実行完了検出ができる
デバッグシステムにある。 【解決手段】デバッグシステム1は、ユーザインタフェ
ース手段とデバッガ制御手段の制御装置13と、タスク
をエミレートして実行させる実行装置14と、タスクお
よび管理情報ならびにオペレーティングシステムを格納
する記憶装置15と、もつ。実行装置14は、タスクと
オペレーティングシステムを実行するプログラム実行手
段143と、アドレスブレーク検知手段141と、状態
遷移ブレーク検知手段142と、ブレーク制御手段14
4と、をもつ。状態遷移ブレーク検知手段142は、休
止状態データ書き込み検出手段1423と、タスクスケ
ジューリング完了検出手段1424と、ブレーク発生手
段1425と、をもつ。
Description
ログラム開発に利用されるデバッグシステムに関し、特
にマルチタスクプログラムのタスクを1ラインステップ
でテストを実行するとき、該タスクが休止状態に遷移し
たことを検出して、ブレークさせる機能を有するデバッ
グシステムとそれの方法に関する。
ップで命令を実行させる1ラインステップテストは、、
該ラインに対応する命令列の最後尾の命令アドレスを検
出して、該命令列の最後でブレークすることだけで実施
されていた。マルチタスクオペレーティングシステム環
境下で動作するマルチタスクプログラムのタスクを1ラ
インずつテスト実行する場合、その1ラインステップ実
行中にオペレーティングシステムがシステムコールされ
て、該タスクが休止状態に遷移されてしまうと、該タス
クの実行終了が検出できなくなることがある。ここで、
タスクの1ラインステップテスト完了前に予測しないオ
ペレーティングシステム処理が介在する理由と、タスク
の状態遷移と、該タスクの休止状態遷移により1ライン
ステップ完了が検出できない理由と、について説明す
る。
まま実行できる命令列から1命令だけ実行することでは
なく、プログラムの1ラインに対応する命令列の実行
と、それがサブルーチンを呼び出す命令を含む場合、そ
のサブルーチン内の命令列もすべて実行することを意味
する。また制御系システムの開発に用いられているC言
語などの高級言語が1ラインステップテストの対象とな
る場合、高級言語レベルから見た1命令を実行すること
を意味する。さらに、該命令が高級言語におけるサブル
ーチンを呼び出している場合、そのサブルーチン内の命
令列をもすべて実行することを意味する。
境下で動作するタスクでは、他のタスクとの同期制御や
排他制御などのために、オペレーティングシステムをシ
ステムコールによって呼び出すが、それも1ラインステ
ップテストの対象となる。さらに、そのシステムコール
によりタスク切り替えが発生した場合、再び元のタスク
に切り替わるまでが1ラインステップテストの対象とな
る。その切り替わるまでの間、別のタスクによるさまざ
まなシステムコールが発行される可能性がある。このた
め、1ラインステップテスト中に予測しなかったシステ
ムコールも発行されてしまうことになる。
テムにおいてタスクが取り得る状態および状態遷移につ
いて、図5を参照して説明する。タスクの取り得る状態
は次に挙げる4つの状態に分類することができる。
し、オペレーティングシステムは常に一つのタスクしか
実行状態501に存在させない。
っているが、該タスクよりも優先順位が高い(同じ場合
もあり)タスクが実行中であるため、実行状態501に
なることができないでいる状態を指す。即ち、CPU利
用権が与えらるといつでも実行を開始できる。
め、実行開始することができない状態を指す。例えば、
入出力動作の完了やタスク間の同期確立を待っている状
態である。
を指す。タスクが新しく生成されると、最初この休止状
態504になる。実行終了後この休止状態504になる
と、実行状態501の情報はすべて無効になる。
について説明する。
1に移行させるべきタスクを呼び出し、実行状態501
にすることをいう。実行状態501に遷移するタスク
は、実行可能状態502のタスクの中で最高の優先順位
にある。通常、この処理をスケジューリング(またはデ
ィスパッチ)と呼び、この処理部をスケジューラ(また
はディスバッチャ)と呼ぶ。
タスクが実行状態501に遷移すると、実行状態501
にあったタスクは、一度中断されて実行可能状態502
に戻る。実行可能状態502に移ったタスクは、再度ス
ケジューラにより選び出されるまで実行状態501に移
ることができない。
1から待ち状態503に移行する。
解除される事象の発生によって、待ち状態503のタス
クが実行可能状態502に遷移することをいう。
4に強制的にすることをいう。
ルが発行され、実行中のタスクにタスク切り替えが発生
した場合、状態遷移が行われる。対象タスクがさまざま
な状態を経て、再び実行状態501となり、1ライン区
間の命令実行が完了したことで、1ラインステップ完了
となるが、完了以前に終了または強制終了という休止状
態504への状態遷移が発生すると、その1ラインステ
ップが完了するまでの命令列が実行できないことにな
る。1ラインステップ中に、休止状態504への状態遷
移が発生すると、該タスクは実行完了アドレスまで到達
できない。
プテストにおける第1の問題点は、1ラインステップテ
ストの対象タスク自身を終了させるシステムコール発行
処理を含むプログラムの1ラインを1ラインステップテ
ストした場合、1ラインステップの完了が、デバッガで
検出できないことである。その理由は、対象タスク自体
が終了してしまうため、1ラインステップの完了を示す
アドレスに到達できないので該タスクのブレークが実行
されないためである。
スト中に、タスク切り替えが発生し、切り替わったタス
クの処理によって、1ラインステップテスト中のタスク
が強制終了させられてしまうと、該タスクは休止状態に
なるので1ラインステップの完了がデバッガから検出で
きないことである。その理由は、第1の問題点と同様
に、1ラインステップテストの対象タスクが終了して休
止状態となるため、実行完了を示すアドレスに到達する
まで、ブレークが実行できないためである。
ム開発に利用されるデバッグシステムの1ラインステッ
プテストにおいて、1ラインステップテスト中にタスク
によるシステムコール発行で、該タスクが休止状態に遷
移されて、1ラインに対応する命令列を完了できなくな
る場合、状態遷移の時点で1ラインステップテストを完
了させるデバッグシステムおよびそれの方法を提供する
ことにある。
ける、マルチタスクプログラムの1ラインステップテス
トを実施する手段ならびにユーザインタフェース手段を
有する制御装置と、テスト対象のマルチタスクプログラ
ム自体およびそれの各タスクの動作状態を管理する管理
情報ならびに前記マルチタスクプログラムの各タスクの
動作を管理するオペレーティングシステムを格納する記
憶装置と、前記記憶装置から前記オペレーティングシス
テムならびに前記マルチタスクプログラムの1ラインに
対応する命令列を1命令毎ロードして実行するエミュレ
ータを作動させる実行装置と、を備えるデバッグシステ
ムにおいて、前記制御装置は、前記ユーザインタフェー
ス手段からテバッグコマンドを受けて、前記実行装置お
よび前記記憶装置に対してマルチタスクプログラムの1
ラインステップテストを実施させるデバッグコマンド制
御手段と、デバッグコマンドによって、前記マルチタス
クプログラムの1ラインに対応する命令列の最後尾命令
のアドレスでブレークさせるアドレスブレーク条件を前
記実行制御装置に設定するアドレスブレーク設定手段
と、前記オペレーティングシステムが、マルチタスクプ
ログラムのテスト対象のタスクを休止状態遷移させたと
き、スケジュールしたタスクにブレークを発生させる状
態遷移ブレーク条件を前記実行装置に設定する状態遷移
ブレーク設定手段と、デバックコマンドによって、前記
実行装置にマルチタスクプログラムの1ラインステップ
テストを開始させる実行開始手段と、前記実行装置から
アドレスブレークおよび状態遷移ブレークの結果をユー
ザインタフェース手段に出力させる実行完了要因解析手
段と、を具備し、前記実行装置は、前記アドレスブレー
ク条件を保持し、前記テスト対象タスクの1ラインステ
ップテストで前記アドレスブレーク条件を検出して、前
記タスクをブレークさせるアドレスブレーク検知手段
と、テスト対象タスクのシステムコールによって呼び出
されたオペレーティングシステムが前記管理情報に状態
遷移データの書込みによって、前記タスクの状態遷移ブ
レーク条件を検出する状態遷移ブレーク検知手段と、デ
バックコマンドによって、前記記憶装置からマルチタス
クプログラムおよびオペレーティングシステムを1命令
毎ロードして実行をエミュレートするプログラム実行手
段と、前記アドレスブレーク条件を検出して、マルチタ
スクプログラムの1ラインステップテストをブレークさ
せる、あるいは状態遷移ブレーク条件を検出してスケジ
ュールしたタスクにブレークを発生させるブレーク制御
手段と、を具備して、なることを特徴とする。
前記オペレーティングシステムがタスクの動作状態を休
止状態に遷移させる際の状態データ書き込みを検出して
検出フラグをON状態にする休止状態データ書き込み検
出手段と、前記オペレーティングシステムが、前記タス
クを休止状態に遷移させた後、スケジュールするタスク
のタスクスケジューリング処理完了を検出するタスクス
ケジューリング完了検出手段と、前記検出フラグのON
状態と前記タスクスケジューリング処理完了を検出し
て、スケジュールしたタスクにブレークを発生させるブ
レーク発生手段と、を具備することを特徴とする。
クプログラムのタスクから発行されたシステムコールの
処理で該タスクを休止状態へ遷移させる時に、対応する
タスク管理情報内のタスク状態に対し、休止状態データ
の書き込みを行う。該タスクをエミレーションで実行さ
せる実行装置の状態遷移ブレーク検知手段が、この書き
込み動作を検出することで、該タスクの休止状態遷移を
検出する。また、該タスクの休止状態遷移による次ぎに
スケジュールされるタスクのブレークは、前記休止状態
の書き込み検出後、オペレーティングシステムが行うシ
ステムコール本体処理の後のタスクスケジューリング処
理の最後の命令実行を検出して発生させる。これによっ
て、システムコール処理途中のブレークを防ぐことがで
きる。
照して説明する。この発明の一実施例の構成を示す図1
を参照すると、デバッグシステム1は、ユーザインタフ
ェース手段に用いるキーボードやマウス等の入力装置1
1およびディスプレイ等の出力装置12と、プログラム
制御によってデバッガを作動させる制御装置13と、制
御装置13のブレークアドレス条件や状態遷移ブレーク
条件の設定に基づいてデバッグ対象となるプログラムを
1命令ずつエミュレートして実行する実行装置14と、
デバッグ対象プログラムやそれの実行により更新される
管理および状態情報を記憶する記憶装置15と、を備え
る。
チタスクプログラムを記憶するタスク記憶部151と、
オペレーティングシステムを記憶するオペレーティング
システム記憶部153と、オペレーティングシステムが
自身の状態や個々のタスクの管理情報を格納するシステ
ムおよびタスク管理情報記憶部152と、を有する。シ
ステムおよびタスク管理情報記憶部152の構成を示す
図2を参照すると、オペレーティングシステムの状態を
管理するシステム管理情報1521と、タスクそれぞれ
に対応したタスク管理情報15221乃至1522nを
含むタスク管理情報記憶部1522と、を有する。シス
テム管理情報1521は、現に実行状態となっているタ
スクを記憶するための実行状態タスク15211を含
む。タスク管理情報記憶部1522のタスク管理情報1
5221乃至1522nは、対応するタスクの状態をそ
れぞれ記憶するタスク状態152211乃至1522n
1を含む。
段131と、アドレスブレーク設定手段132と、状態
遷移ブレーク設定手段133と、実行開始設定手段13
4と、実行完了要因解析手段135と、を含む。デバッ
ガコマンド制御手段131は、入力装置11から入力さ
れたデバッグコマンドに対応して、アドレスブレーク設
定手段132,状態遷移ブレーク設定手段133,実行
開始設定手段134を制御して、マルチタスクプログラ
ムのブレークアドレス条件ならびに状態遷移ブレーク条
件を設定して1ラインステップテストを開始し、実行完
了要因解析手段135からの1ラインステップ完了通知
に対応して、1ラインステップテスト結果を出力装置に
出力する。アドレスブレーク設定手段132は、デバッ
ガ制御手段131からの指示に基づき、実行対象となる
1ラインに対応する命令列をタスク記憶部151の情報
から調べ、該命令列を実行したとき、該最後尾の命令ア
ドレスで、ブレークが発生するようアドレスブレーク条
件を実行装置14に設定する。状態遷移ブレーク設定手
段133は、デバッガ制御手段131からの指示に基づ
き、システムおよびタスク管理情報記憶部152から1
ラインステップテスト対象のタスクを調べ、該タスクが
休止状態に遷移したとき、オペレーティングシステムの
タスクスケジューリング処理完了で、スケジュールした
タスクにブレークを発生させるよう状態遷移ブレーク条
件を設定する。実行開始設定手段134は、デバッガ制
御手段131からの指示に基づき、実行装置14に実行
開始を指示するものである。実行完了要因解析手段13
5は、実行装置14から1ラインステップテスト結果を
取得し、1ラインステップの完了と、該完了がアドレス
ブレーク条件によるブレークか、または状態遷移ブレー
ク条件によるブレークか、を解析してデバッガ制御手段
131へ通知する。
するアドレスブレーク検知手段141と、状態遷移ブレ
ークを検知する状態遷移ブレーク検知手段142と、マ
ルチタスクプログラムならびにオペレーティングシステ
ムをエミュレートするプログラム実行手段143と、ブ
レーク制御を行うブレーク制御手段144と、を含む。
プログラム実行手段143は、タスク記憶部151から
マルチタスクプログラムのテスト対象タスクの1ライン
に対応する命令列を1命令ずつ読み出してエミュレート
する。該タスクがオペレーティングシステムの処理を呼
び出すシステムコールを発行した場合、オペレーティン
グシステム記憶部153からオペレーティングシステム
の命令列を1命令ずつ読み出して実行する。アドレスブ
レーク検知手段141および状態遷移ブレーク検知手段
142は、このプログラム実行手段143による1命令
実行ごとにアドレスブレーク条件であるか否かを調べ、
アドレスブレーク条件である時にブレーク制御手段14
4に通知する。ブレーク制御手段144は、アドレスブ
レーク検知手段141からアドレスブレーク条件検知の
通知を受けると、プログラム実行手段143に対し1ラ
インステップテスト停止の指令を送り、また実行完了要
因解析手段135に対してアドレスブレーク条件の検知
を通知する。
ーク発生手段142の構成を示す図2を参照する。説明
の便宜ため、プログラム実行手段143がタスクのシス
テムコールによって呼ばれたシステムコール処理143
0のシステムコール本体処理1431およびタスクスケ
ジューリング処理1432と、該タスクのタスク管理情
報記憶部1522のタスク管理情報15221も併記し
た。
ムコール処理1430は、システムコール本体処理14
31とタスクスケジューリング処理1432を含む。シ
ステムコール本体処理1431は、システムコールごと
に対応する処理を行い、該処理結果としてタスク状態遷
移が発生する場合、該タスクのタスク管理情報1522
1のタスク状態152211に遷移状態を示すデータの
書き込みを行う。タスクスケジューリング処理1432
は、システムコール本体処理1431の結果を踏まえ、
次に実行状態501とするタスクを決定し、そのタスク
を実行状態501に遷移させる。従ってタスクスケジュ
ーリング処理1432は、タスクの状態遷移が発生する
すべてのシステムコールのシステムコール本体処理14
31の後に行われる共通の処理である。
テムコール本体処理1431により対象タスクのタスク
管理情報記憶部15221内にあるタスク状態1522
11への休止状態データの書き込みが行われたことを検
出する休止状態データ書き込み検出手段1423と、シ
ステムコール処理1430で行われるタスクスケジュー
リング処理1432の最後の命令の実行が行われたこと
を検出するスケジューリング処理完了検出手段1424
と、休止状態データ書き込みを検出した後、タスクスケ
ジューリング処理完了を検出したとき、スケジュールし
たタスクの状態遷移ブレークをブレーク制御手段144
に通知するブレーク発生手段1425と、を含む。
する。この実施例の動作を示す図3を参照すると、入力
装置11から1ラインステップテスト要求が入力される
と、デバッガコマンド制御手段131からの指示に基づ
き、アドレスブレーク設定手段132は1ラインに対応
する命令列の最後尾命令のアドレスをタスク記憶部15
1の情報から調べ、該命令のアドレスでブレークが発生
するようアドレスブレーク条件を設定する(ステップ4
01)。状態遷移ブレーク設定手段133は、システム
およびタスク管理情報記憶部152から1ラインステッ
プテストの対象タスクを調べ、該タスクが休止状態遷移
したとき、スケジュールしたタクスにブレークを発生さ
せる状態遷移ブレーク条件を設定する(ステップ40
2)。実行開始設定手段134から1ラインステップテ
スト要求が発せられると、プログラム実行手段143
は、タスク記憶部151の対象タスクあるいはオペレー
ティングシステムの命令列を1命令ずつ読み出して実行
する(ステップ403)。該命令列の実行によって、ア
ドレスブレーク条件の成立が検知されると(ステップ4
04のYES)、アドレスブレーク検知手段141が、
ブレークの発生をブレーク制御手段144に通知し、通
知を受けたブレーク制御手段144は、該通知を実行完
了要因解析手段135に伝える。デバッガ制御手段13
1は、出力装置12に1ラインステップテストがアドレ
スブレーク、即ち1ラインに対応する命令列の実行が完
了したことを表示する(ステップ407)。
は、プログラム実行手段143により機械語命令を1命
令実行するごとに行われ(ステップ403)、アドレス
ブレーク条件が成立していないとき(ステップ404の
NO)、初めに対象タスクのタスク管理情報記憶部15
22内にあるタスク管理情報15221のタスク状態1
52211の検出フラグを調べ、検出フラグがON状態
でない場合(ステップ451のNO)、休止状態データ
の書き込みが行われたか否かを調べる。休止状態データ
の書き込みがされた場合(ステップ454のYES)、
検出フラグをON状態にする(ステップ455)。書き
込みが行われない場合(ステップ454のNO)と休止
状態データの書き込みされた場合(ステップ454のY
ES)と共に、状態遷移ブレークは未発生として処理を
終えて、次の1命令の実行に戻る(ステップ403)。
検出フラグが既にON状態であった場合(ステップ45
1のYES)、タスクスケジューリング処理1432の
最後の命令の実行が行われて、完了したか否かをを調べ
る(ステップ452)。完了していない場合(ステップ
452のNO)、状態遷移ブレーク未発生として処理を
終えて、1命令実行に戻る(ステップ403)。完了し
ている場合(ステップ452のYES)、状態遷移ブレ
ーク条件を発生し(ステップ453)、タスクにブレー
クを発生させて実行完了をブレーク制御手段144に通
知する。
る。図6(a),図6(b),図6(c)は、1ライン
ステップテストがアドレスブレーク条件により完了する
例である。2つのタスクである図6(a)のTaskA
61と図6(b)のTaskB62が存在し、Task
A61が実行状態501、TaskB62が実行可能状
態502にある時に、TaskA61の1ラインステッ
プテストで、ライン番号356から1ラインステップテ
ストする場合を考える。図6(a)および図6(b)で
「wai−sem(seml);」611は、オペレー
ティングシステムに対し資源を要求するシステムコー
ル、「sig−sem(seml);」621は、オペ
レーティングシステムに対し資源を返却するシステムコ
ール、「(sem1)」は、前記2システムコールが対
象とする資源を示す。TaskA61は、「wai−s
em(seml);」611の発行により待ち状態50
3に遷移し、TaskB62の「sig−sem(se
ml);」621の発行により再び実行状態501に戻
るものとする。
ム1により1ラインステップテストが行われた場合の動
作を、図6(c)を使って説明する。図6(c)は、T
askA61とTaskB62とオペレーティングシス
テムと間の処理の移り変わりを示す。時刻T0におい
て、1ラインステップテストのデバッグコマンドを入力
装置11から入力すると、デバッガコマンド制御手段1
31の指示により、アドレスブレーク制御手段132
は、現在の実行中のライン番号356に対応する命令列
のアドレス範囲をタスク記憶部151のタスク情報から
調べ、その最後尾命令アドレスをアドレスブレーク条件
に設定する。また、状態遷移ブレーク設定手段133
は、システム管理情報記憶部152の実行状態タスク1
531から1ラインステップテストの対象タスクがTa
skA61であることを調べ、TaskA61を休止状
態504へ遷移によって、ブレークが発生するようにT
askB62の状態遷移ブレーク条件を設定する。その
後、実行開始設定手段134により1ラインステップテ
ストが開始され、ライン番号356に相当する機械語命
令を1命令ずつ実行すると、「wai−sem(sem
l);」611のシステムコール発行により、図6
(c)の時刻T1でオペレーティングシステム処理14
3に移る。オペレーティングシステム処理143では、
TaskA61を状態遷移させるが、休止状態504で
はなく待ち状態503に遷移のため、状態遷移ブレーク
発生手段142はブレークを発生しない。その後、Ta
skA61の待ち状態503の遷移のためTaskB6
2が実行状態501へ遷移され、図6(c)の時刻T2
からTaskB62がライン番号499から実行する。
TaskB62がライン番号501の「sig−sem
(seml);」621の発行により図6(c)の時刻
T3にオペレーティングシステムのシステムコール処理
1430に移ると、オペレーティングシステムは、資源
が返却されたことからTaskA61を実行状態501
に状態遷移させる。図6(c)の時刻T4でTaskA
61に処理が移ると、ライン番号356に相当する残り
の命令列を1命令ずつ実行し、その最後尾の命令を実行
し終わった所で、アドレスブレーク条件が成立する。ア
ドレスブレーク検知手段141は、図6(c)の時刻T
5でアドレスブレーク条件を検知する。該アドレスブレ
ーク条件検知は、ブレーク制御手段144に通知され、
実行完了要因解析手段135、デバッガコマンド制御手
段131を通じて、アドレスブレーク条件により1ライ
ンステップテストの完了が出力装置12に表示される。
ラインステップテストが状態遷移ブレーク条件により完
了する例である。図7(a),図7(b)に示すような
2タスクのTaskA71とTaskB72が存在し、
TaskA71が実行状態501、TaskB72が実
行可能状態502にあるとして、TaskA71のデバ
ッグのため、ライン番号356から1ラインステップテ
ストする場合であって、図7(b)で「ter−tsk
(TaskA);」721は、TaskA71を強制終
了させるシステムコールである。TaskA71は、ラ
イン番号356の「wai−sem(seml);」7
11の発行により待ち状態503に遷移されて、Tas
kB72のライン番号701の「ter−tsk(Ta
skA);」721の発行で強制終了させられて、休止
状態504に遷移する。このような状況下で、デバッグ
システム1により1ラインステップテストが行われた場
合の動作を、図7(c)で説明する。図7(c)の時刻
T0から時刻T2に至るまでの過程は図6(c)の場合
とまったく同様である。図7(c)の時刻T2からTa
skB72のライン番号699の命令に対応する命令列
が実行され、TaskB72のライン番号701の「t
er−tsk(TaskA);」721の発行により図
7(c)の時刻T3でオペレーティングシステムのシス
テムコール処理1430に移ると、オペレーティングシ
ステムは、TaskA71を休止状態504に遷移させ
る。この状態遷移でTaskA71のタスク状態154
11に対する休止状態データの書き込みと、システムコ
ール処理1430で行われるタスクスケジューリング処
理1432の最後尾の命令の実行により状態遷移ブレー
ク条件が検知される。状態遷移ブレーク発生手段142
は、図7(c)の時刻T4でTaskB72に状態遷移
ブレークを発生する。状態遷移ブレーク発生は、アドレ
スブレーク発生の場合と同様、ブレーク制御手段144
に通知され、状態遷移ブレークによりTaskA71が
休止状態503になったことを実行完了要因解析手段1
35によって、出力装置12に表示出力される。
効果は、1ラインステップテスト時に、タスクが休止状
態に遷移するシステムコールを発行する命令であるか否
かを注意にする必要がなくなり、デバッグ作業時の負担
を軽減できることである。その理由は、1ラインステッ
プテストに対応する命令列のアドレス範囲だけでなく、
タスクが休止状態に状態遷移することも検知して、オペ
レーティングシステムがタスクにブレークを発生させる
からである。
テップテスト中にタスク切り替えが発生し得る場合で
も、切り替えられたタスクからのシステムコール発行に
より、タスクが休止状態に遷移させられる可能性がある
か否かを注意にする必要がなくなり、デバッグ作業時の
負担を軽減できることである。その理由は、タスクの休
止状態への遷移を検知することが、オペレーティングシ
ステムが対象タスクのタスク管理情報に休止状態データ
書き込み動作によって、状態遷移ブレーク条件を検知す
るため、タスク自身による終了の場合も、対象タスク以
外のタスクによる強制終了の場合と同様に休止状態遷移
を検知し、ブレークを発生できるからである。
構成を示す図である。
す図である。
構成を示す図である。
(b)はTaskBのコード,分図(c)は動作のタイ
ムチャートを示し、1ラインステップテストがアドレス
ブレークにより完了する動作を例示する図である。
(b)はTaskBのコード,分図(c)は動作のタイ
ムチャートを示し、1ラインステップテストが状態遷移
ブレークにより完了する動作を例示する図である。
Claims (4)
- 【請求項1】 マルチタスクプログラムの1ラインステ
ップテストを実施する手段ならびにユーザインタフェー
ス手段を有する制御装置と、 テスト対象のマルチタスクプログラム自体およびそれの
各タスクの動作状態を管理する管理情報ならびに前記マ
ルチタスクプログラムの各タスクの動作を管理するオペ
レーティングシステムを格納する記憶装置と、 前記記憶装置から前記オペレーティングシステムならび
に前記マルチタスクプログラムの1ラインに対応する命
令列を1命令毎ロードして実行するエミュレータを作動
させる実行装置と、 を備えるデバッグシステムにおいて、 前記制御装置は、 前記ユーザインタフェース手段からテバッグコマンドを
受けて、前記実行装置および前記記憶装置に対してマル
チタスクプログラムの1ラインステップテストを実施さ
せるデバッグコマンド制御手段と、 デバッグコマンドによって、前記マルチタスクプログラ
ムの1ラインに対応する命令列の最後尾命令のアドレス
でブレークさせるアドレスブレーク条件を前記実行制御
装置に設定するアドレスブレーク設定手段と、 前記オペレーティングシステムが、マルチタスクプログ
ラムのテスト対象のタスクを休止状態遷移させたとき、
スケジュールしたタスクにブレークを発生させる状態遷
移ブレーク条件を前記実行装置に設定する状態遷移ブレ
ーク設定手段と、 デバックコマンドによって、前記実行装置にマルチタス
クプログラムの1ラインステップテストを開始させる実
行開始手段と、 前記実行装置からアドレスブレークおよび状態遷移ブレ
ークの結果をユーザインタフェース手段に出力させる実
行完了要因解析手段と、 を具備し、 前記実行装置は、 前記アドレスブレーク条件を保持し、前記テスト対象タ
スクの1ラインステップテストで前記アドレスブレーク
条件を検出して、前記タスクをブレークさせるアドレス
ブレーク検知手段と、 テスト対象タスクのシステムコールによって呼び出され
たオペレーティングシステムが前記管理情報に状態遷移
データの書込みによって、前記タスクの状態遷移ブレー
ク条件を検出する状態遷移ブレーク検知手段と、 デバックコマンドによって、前記記憶装置からマルチタ
スクプログラムおよびオペレーティングシステムを1命
令毎ロードして実行をエミュレートするプログラム実行
手段と、 前記アドレスブレーク条件を検出して、マルチタスクプ
ログラムの1ラインステップテストをブレークさせる、
あるいは状態遷移ブレーク条件を検出してスケジュール
したタスクにブレークを発生させるブレーク制御手段
と、 を具備して、 なることを特徴とするデバックシステム。 - 【請求項2】 前記状態遷移ブレーク検知手段は、 前記オペレーティングシステムがタスクの動作状態を休
止状態に遷移させる際の状態データ書き込みを検出して
検出フラグをON状態にする休止状態データ書き込み検
出手段と、 前記オペレーティングシステムが、前記タスクを休止状
態に遷移させた後、スケジュールするタスクのタスクス
ケジューリング処理完了を検出するタスクスケジューリ
ング完了検出手段と、 前記検出フラグのON状態と前記タスクスケジューリン
グ処理完了を検出して、スケジュールしたタスクにブレ
ークを発生させるブレーク発生手段と、 を具備することを特徴とする請求項1記載のデバッグシ
ステム。 - 【請求項3】 マルチタスクプログラムの1ラインステ
ップテストを実施する手段ならびにユーザインタフェー
ス手段とを有する制御装置と、 テスト対象のマルチタスクプログラム自体およびそれの
各タスクの動作状態を管理するタスク管理情報ならびに
前記マルチタスクプログラムの1ラインステップテスト
を管理するオペレーティングシステムを格納する記憶装
置と、 前記記憶装置から前記オペレーティングシステムならび
に前記マルチタスクプログラムの1ラインに対応する命
令列を1命令毎ロードして実行するエミュレータを作動
させる実行装置と、 を備えるデバッグシステムのデバッグ方法において、 1ラインステップテスト要求によって、前記記憶装置の
マルチタスクプログラムに対して、1ラインに対応する
命令列の最後尾でブレークするアドレスブレーク条件を
設定するステップと、 前記オペレーティングシステムがテスト対象タスクの休
止状態遷移後のタスクスケジューリング処理完了で、ス
ケジュールしたタスクにブレークを発生させる状態遷移
ブレーク条件を設定するステップと、 前記マルチタスクプログラムあるいはオペレーティング
システムの命令列を1命令毎順次に実行するステップ
と、 前記1命令実行で前記アドレスブレーク条件が成立する
か否かを判定するステップと、 前記判定でアドレスブレーク条件が成立するとき、前記
1ラインステップテスト完了を制御装置に通知するステ
ップと、 前記判定でアドレスブレーク条件が成立しないとき、前
記状態遷移ブレーク条件が成立するか否かを判定するス
テップと、 前記判定で前記状態遷移ブレーク条件が成立しないと
き、1命令実行ステップに戻るステップと、 前記判定で前記状態遷移ブレーク条件が成立するとき、
前記オペレーティングシステムの命令実行完了を前記制
御装置に通知するステップと、 を含むことを特徴とするデバックシステムのデバック方
法。 - 【請求項4】 前記状態遷移ブレーク条件が成立するか
否かの判定は、 オペレーティングシステムが、タスクを休止状態に遷移
する休止状態データを前記タスク管理情報に登録したこ
とを示す検出フラグON状態をチェックするステップ
と、 前記検出フラグがON状態のとき、前記オペレーテイン
グシステムのタスクスケジューリング処理完了であるか
否かを判定するステップと、 前記検出フラグがON状態で、かつ前記タスクスケジュ
ーリング処理完了であるとき、スケジュールしたタスク
に状態遷移ブレークを発生させるステップと、 前記検出フラグがON状態で、かつタスクスケジューリ
ング処理完了していないとき、1命令毎の実行に戻るス
テップと、 前記検出フラグがON状態でないとき、1命令毎の実行
に戻るステップと、 オペレーティングシステムによるタスクの休止状態デー
タを管理情報に書き込みが行われたとき、前記検出フラ
グをON状態にして1命令毎の実行に戻るステップと、 を含むことを特徴とする請求項3記載のデバッグシステ
ムのデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8323821A JP2912269B2 (ja) | 1996-12-04 | 1996-12-04 | デバッグシステムおよびその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8323821A JP2912269B2 (ja) | 1996-12-04 | 1996-12-04 | デバッグシステムおよびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10161905A true JPH10161905A (ja) | 1998-06-19 |
JP2912269B2 JP2912269B2 (ja) | 1999-06-28 |
Family
ID=18158985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8323821A Expired - Fee Related JP2912269B2 (ja) | 1996-12-04 | 1996-12-04 | デバッグシステムおよびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2912269B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019197545A (ja) * | 2018-05-08 | 2019-11-14 | ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh | オペレーティングシステムでタスクを起動するための方法及び装置 |
-
1996
- 1996-12-04 JP JP8323821A patent/JP2912269B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019197545A (ja) * | 2018-05-08 | 2019-11-14 | ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングRobert Bosch Gmbh | オペレーティングシステムでタスクを起動するための方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2912269B2 (ja) | 1999-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327336B2 (en) | Enhanced thread stepping | |
US8903703B2 (en) | Dynamically adjusting speed versus accuracy of computer platform simulation | |
JP4901075B2 (ja) | コンピュータ読取可能な媒体、方法及びコンピューティングデバイス | |
US6708326B1 (en) | Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence | |
US8793115B2 (en) | Interface converter for unified view of multiple computer system simulations | |
US7415699B2 (en) | Method and apparatus for controlling execution of a child process generated by a modified parent process | |
KR100715704B1 (ko) | 인터럽트 제어 장치 및 방법 | |
US20010034751A1 (en) | Real-time OS simulator | |
US20070168985A1 (en) | Thread debugging device, thread debugging method and information storage medium | |
US20100153786A1 (en) | Processor, multiprocessor, and debugging method | |
JP2004288162A (ja) | 同期タスクを利用したオペレーティングシステムアーキテクチャ | |
US6131109A (en) | Multitask processor, a multitask processing method, a multitask processing display method and a storage medium for processing by correlating task and object | |
JP5542643B2 (ja) | シミュレーション装置及びシミュレーションプログラム | |
JP2912269B2 (ja) | デバッグシステムおよびその方法 | |
JP2009175960A (ja) | 仮想マルチプロセッサシステム | |
JPH11175369A (ja) | プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体 | |
JPH10254738A (ja) | エミュレータ装置及びエミュレーション方法 | |
JP2010039695A (ja) | マルチタスク・オペレーティング・システム及びデバッグ装置 | |
JP2002366378A (ja) | プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体 | |
WO2006093762A1 (en) | Computer platform simulation | |
JPH0588933A (ja) | デバツグ機能を有する並列処理システム | |
Hölscher | Nested Preemption Fixed-Priority Scheduler for EV3OSEK | |
JP2007213396A (ja) | デバッグシステム、オペレーションシステム、デバッグ方法、プログラム | |
JP3449812B2 (ja) | 制御用電子装置 | |
CN118467340A (zh) | Uefi bios的即时调试方法、系统、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990316 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080409 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090409 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100409 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110409 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120409 Year of fee payment: 13 |
|
LAPS | Cancellation because of no payment of annual fees |