JP2912269B2 - デバッグシステムおよびその方法 - Google Patents

デバッグシステムおよびその方法

Info

Publication number
JP2912269B2
JP2912269B2 JP8323821A JP32382196A JP2912269B2 JP 2912269 B2 JP2912269 B2 JP 2912269B2 JP 8323821 A JP8323821 A JP 8323821A JP 32382196 A JP32382196 A JP 32382196A JP 2912269 B2 JP2912269 B2 JP 2912269B2
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.)
Expired - Fee Related
Application number
JP8323821A
Other languages
English (en)
Other versions
JPH10161905A (ja
Inventor
雅之 湯井
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.)
YONEZAWA NIPPON DENKI KK
Original Assignee
YONEZAWA NIPPON DENKI KK
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 YONEZAWA NIPPON DENKI KK filed Critical YONEZAWA NIPPON DENKI KK
Priority to JP8323821A priority Critical patent/JP2912269B2/ja
Publication of JPH10161905A publication Critical patent/JPH10161905A/ja
Application granted granted Critical
Publication of JP2912269B2 publication Critical patent/JP2912269B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、マルチタスクプ
ログラム開発に利用されるデバッグシステムに関し、特
にマルチタスクプログラムのタスクを1ラインステップ
でテストを実行するとき、該タスクが休止状態に遷移し
たことを検出して、ブレークさせる機能を有するデバッ
グシステムとそれの方法に関する。
【0002】
【従来の技術】従来、プログラムを1ラインスずつステ
ップで命令を実行させる1ラインステップテストは、、
該ラインに対応する命令列の最後尾の命令アドレスを検
出して、該命令列の最後でブレークすることだけで実施
されていた。マルチタスクオペレーティングシステム環
境下で動作するマルチタスクプログラムのタスクを1ラ
インずつテスト実行する場合、その1ラインステップ実
行中にオペレーティングシステムがシステムコールされ
て、該タスクが休止状態に遷移されてしまうと、該タス
クの実行終了が検出できなくなることがある。ここで、
タスクの1ラインステップテスト完了前に予測しないオ
ペレーティングシステム処理が介在する理由と、タスク
の状態遷移と、該タスクの休止状態遷移により1ライン
ステップ完了が検出できない理由と、について説明す
る。
【0003】1ラインステップテストは、CPUがその
まま実行できる命令列から1命令だけ実行することでは
なく、プログラムの1ラインに対応する命令列の実行
と、それがサブルーチンを呼び出す命令を含む場合、そ
のサブルーチン内の命令列もすべて実行することを意味
する。また制御系システムの開発に用いられているC言
語などの高級言語が1ラインステップテストの対象とな
る場合、高級言語レベルから見た1命令を実行すること
を意味する。さらに、該命令が高級言語におけるサブル
ーチンを呼び出している場合、そのサブルーチン内の命
令列をもすべて実行することを意味する。
【0004】マルチタスクオペレーティングシステム環
境下で動作するタスクでは、他のタスクとの同期制御や
排他制御などのために、オペレーティングシステムをシ
ステムコールによって呼び出すが、それも1ラインステ
ップテストの対象となる。さらに、そのシステムコール
によりタスク切り替えが発生した場合、再び元のタスク
に切り替わるまでが1ラインステップテストの対象とな
る。その切り替わるまでの間、別のタスクによるさまざ
まなシステムコールが発行される可能性がある。このた
め、1ラインステップテスト中に予測しなかったシステ
ムコールも発行されてしまうことになる。
【0005】次に、マルチタスクオペレーティングシス
テムにおいてタスクが取り得る状態および状態遷移につ
いて、図5を参照して説明する。タスクの取り得る状態
は次に挙げる4つの状態に分類することができる。
【0006】(1)実行(RUN)状態501 タスクがCPU利用権を与えられて、実行中の状態を指
し、オペレーティングシステムは常に一つのタスクしか
実行状態501に存在させない。
【0007】(2)実行可能(READY)状態502 タスクが実行状態501に遷移するための要素が全て揃
っているが、該タスクよりも優先順位が高い(同じ場合
もあり)タスクが実行中であるため、実行状態501に
なることができないでいる状態を指す。即ち、CPU利
用権が与えらるといつでも実行を開始できる。
【0008】(3)待ち(WAIT)状態503 タスクが実行を開始することができる条件が揃わないた
め、実行開始することができない状態を指す。例えば、
入出力動作の完了やタスク間の同期確立を待っている状
態である。
【0009】(4)休止(DORMANT)状態504 タスクが起動されていない状態か、または終了後の状態
を指す。タスクが新しく生成されると、最初この休止状
態504になる。実行終了後この休止状態504になる
と、実行状態501の情報はすべて無効になる。
【0010】次にタスクがこれらの状態を遷移する契機
について説明する。
【0011】(1)起動 休止状態504のタスクを実行可能状態502にする。
【0012】(2)終了 実行状態501のタスクを休止状態504にする。
【0013】(3)ディスパッチ 実行可能状態502のタスクの中で、次に実行状態50
1に移行させるべきタスクを呼び出し、実行状態501
にすることをいう。実行状態501に遷移するタスク
は、実行可能状態502のタスクの中で最高の優先順位
にある。通常、この処理をスケジューリング(またはデ
ィスパッチ)と呼び、この処理部をスケジューラ(また
はディスバッチャ)と呼ぶ。
【0014】(4)プリエンプト 現在実行状態501にあるタスクよりも優先順位の高い
タスクが実行状態501に遷移すると、実行状態501
にあったタスクは、一度中断されて実行可能状態502
に戻る。実行可能状態502に移ったタスクは、再度ス
ケジューラにより選び出されるまで実行状態501に移
ることができない。
【0015】(5)待ち条件 事象発生待ちの必要が生じると、タスクは実行状態50
1から待ち状態503に移行する。
【0016】(6)待ち解除 オペレーティングシステムに待ちを引き起こした要因が
解除される事象の発生によって、待ち状態503のタス
クが実行可能状態502に遷移することをいう。
【0017】(7)強制終了 実行状態501以外の状態にあるタスクを休止状態50
4に強制的にすることをいう。
【0018】1ラインステップテスト中にシステムコー
ルが発行され、実行中のタスクにタスク切り替えが発生
した場合、状態遷移が行われる。対象タスクがさまざま
な状態を経て、再び実行状態501となり、1ライン区
間の命令実行が完了したことで、1ラインステップ完了
となるが、完了以前に終了または強制終了という休止状
態504への状態遷移が発生すると、その1ラインステ
ップが完了するまでの命令列が実行できないことにな
る。1ラインステップ中に、休止状態504への状態遷
移が発生すると、該タスクは実行完了アドレスまで到達
できない。
【0019】
【発明が解決しようとする課題】従来の1ラインステッ
プテストにおける第1の問題点は、1ラインステップテ
ストの対象タスク自身を終了させるシステムコール発行
処理を含むプログラムの1ラインを1ラインステップテ
ストした場合、1ラインステップの完了が、デバッガで
検出できないことである。その理由は、対象タスク自体
が終了してしまうため、1ラインステップの完了を示す
アドレスに到達できないので該タスクのブレークが実行
されないためである。
【0020】更に第2の問題点は、1ラインステップテ
スト中に、タスク切り替えが発生し、切り替わったタス
クの処理によって、1ラインステップテスト中のタスク
が強制終了させられてしまうと、該タスクは休止状態に
なるので1ラインステップの完了がデバッガから検出で
きないことである。その理由は、第1の問題点と同様
に、1ラインステップテストの対象タスクが終了して休
止状態となるため、実行完了を示すアドレスに到達する
まで、ブレークが実行できないためである。
【0021】この発明の目的は、マルチタスクプログラ
ム開発に利用されるデバッグシステムの1ラインステッ
プテストにおいて、1ラインステップテスト中にタスク
によるシステムコール発行で、該タスクが休止状態に遷
移されて、1ラインに対応する命令列を完了できなくな
る場合、状態遷移の時点で1ラインステップテストを完
了させるデバッグシステムおよびそれの方法を提供する
ことにある。
【0022】
【課題を解決するための手段】そのため、この発明にお
ける、マルチタスクプログラムの1ラインステップテス
トを実施する手段ならびにユーザインタフェース手段を
有する制御装置と、テスト対象のマルチタスクプログラ
ム自体およびそれの各タスクの動作状態を管理する管理
情報ならびに前記マルチタスクプログラムの各タスクの
動作を管理するオペレーティングシステムを格納する記
憶装置と、前記記憶装置から前記オペレーティングシス
テムならびに前記マルチタスクプログラムの1ラインに
対応する命令列を1命令毎ロードして実行するエミュレ
ータを作動させる実行装置と、を備えるデバッグシステ
ムにおいて、前記制御装置は、前記ユーザインタフェー
ス手段からテバッグコマンドを受けて、前記実行装置お
よび前記記憶装置に対してマルチタスクプログラムの1
ラインステップテストを実施させるデバッグコマンド制
御手段と、デバッグコマンドによって、前記マルチタス
クプログラムの1ラインに対応する命令列の最後尾命令
のアドレスでブレークさせるアドレスブレーク条件を前
記実行制御装置に設定するアドレスブレーク設定手段
と、前記オペレーティングシステムが、マルチタスクプ
ログラムのテスト対象のタスクを休止状態遷移させたと
き、スケジュールしたタスクにブレークを発生させる状
態遷移ブレーク条件を前記実行装置に設定する状態遷移
ブレーク設定手段と、デバックコマンドによって、前記
実行装置にマルチタスクプログラムの1ラインステップ
テストを開始させる実行開始手段と、前記実行装置から
アドレスブレークおよび状態遷移ブレークの結果をユー
ザインタフェース手段に出力させる実行完了要因解析手
段と、を具備し、前記実行装置は、前記アドレスブレー
ク条件を保持し、前記テスト対象タスクの1ラインステ
ップテストで前記アドレスブレーク条件を検出して、前
記タスクをブレークさせるアドレスブレーク検知手段
と、テスト対象タスクのシステムコールによって呼び出
されたオペレーティングシステムが前記管理情報に状態
遷移データの書込みによって、前記タスクの状態遷移ブ
レーク条件を検出する状態遷移ブレーク検知手段と、デ
バックコマンドによって、前記記憶装置からマルチタス
クプログラムおよびオペレーティングシステムを1命令
毎ロードして実行をエミュレートするプログラム実行手
段と、前記アドレスブレーク条件を検出して、マルチタ
スクプログラムの1ラインステップテストをブレークさ
せる、あるいは状態遷移ブレーク条件を検出してスケジ
ュールしたタスクにブレークを発生させるブレーク制御
手段と、を具備して、なることを特徴とする。
【0023】更に、前記状態遷移ブレーク検知手段は、
前記オペレーティングシステムがタスクの動作状態を休
止状態に遷移させる際の状態データ書き込みを検出して
検出フラグをON状態にする休止状態データ書き込み検
出手段と、前記オペレーティングシステムが、前記タス
クを休止状態に遷移させた後、スケジュールするタスク
のタスクスケジューリング処理完了を検出するタスクス
ケジューリング完了検出手段と、前記検出フラグのON
状態と前記タスクスケジューリング処理完了を検出し
て、スケジュールしたタスクにブレークを発生させるブ
レーク発生手段と、を具備することを特徴とする。
【0024】オペレーティングシステムが、マルチタス
クプログラムのタスクから発行されたシステムコールの
処理で該タスクを休止状態へ遷移させる時に、対応する
タスク管理情報内のタスク状態に対し、休止状態データ
の書き込みを行う。該タスクをエミレーションで実行さ
せる実行装置の状態遷移ブレーク検知手段が、この書き
込み動作を検出することで、該タスクの休止状態遷移を
検出する。また、該タスクの休止状態遷移による次ぎに
スケジュールされるタスクのブレークは、前記休止状態
の書き込み検出後、オペレーティングシステムが行うシ
ステムコール本体処理の後のタスクスケジューリング処
理の最後の命令実行を検出して発生させる。これによっ
て、システムコール処理途中のブレークを防ぐことがで
きる。
【0025】
【発明の実施の形態】次に、この発明について図面を参
照して説明する。この発明の一実施例の構成を示す図1
を参照すると、デバッグシステム1は、ユーザインタフ
ェース手段に用いるキーボードやマウス等の入力装置1
1およびディスプレイ等の出力装置12と、プログラム
制御によってデバッガを作動させる制御装置13と、制
御装置13のブレークアドレス条件や状態遷移ブレーク
条件の設定に基づいてデバッグ対象となるプログラムを
1命令ずつエミュレートして実行する実行装置14と、
デバッグ対象プログラムやそれの実行により更新される
管理および状態情報を記憶する記憶装置15と、を備え
る。
【0026】記憶装置15は、デバッグ対象であるマル
チタスクプログラムを記憶するタスク記憶部151と、
オペレーティングシステムを記憶するオペレーティング
システム記憶部153と、オペレーティングシステムが
自身の状態や個々のタスクの管理情報を格納するシステ
ムおよびタスク管理情報記憶部152と、を有する。シ
ステムおよびタスク管理情報記憶部152の構成を示す
図2を参照すると、オペレーティングシステムの状態を
管理するシステム管理情報1521と、タスクそれぞれ
に対応したタスク管理情報15221乃至1522nを
含むタスク管理情報記憶部1522と、を有する。シス
テム管理情報1521は、現に実行状態となっているタ
スクを記憶するための実行状態タスク15211を含
む。タスク管理情報記憶部1522のタスク管理情報1
5221乃至1522nは、対応するタスクの状態をそ
れぞれ記憶するタスク状態152211乃至1522n
1を含む。
【0027】制御装置13は、デバッガコマンド制御手
段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へ通知する。
【0028】実行装置14は、アドレスブレークを検知
するアドレスブレーク検知手段141と、状態遷移ブレ
ークを検知する状態遷移ブレーク検知手段142と、マ
ルチタスクプログラムならびにオペレーティングシステ
ムをエミュレートするプログラム実行手段143と、ブ
レーク制御を行うブレーク制御手段144と、を含む。
プログラム実行手段143は、タスク記憶部151から
マルチタスクプログラムのテスト対象タスクの1ライン
に対応する命令列を1命令ずつ読み出してエミュレート
する。該タスクがオペレーティングシステムの処理を呼
び出すシステムコールを発行した場合、オペレーティン
グシステム記憶部153からオペレーティングシステム
の命令列を1命令ずつ読み出して実行する。アドレスブ
レーク検知手段141および状態遷移ブレーク検知手段
142は、このプログラム実行手段143による1命令
実行ごとにアドレスブレーク条件であるか否かを調べ、
アドレスブレーク条件である時にブレーク制御手段14
4に通知する。ブレーク制御手段144は、アドレスブ
レーク検知手段141からアドレスブレーク条件検知の
通知を受けると、プログラム実行手段143に対し1ラ
インステップテスト停止の指令を送り、また実行完了要
因解析手段135に対してアドレスブレーク条件の検知
を通知する。
【0029】デバッグシステム1における状態遷移ブレ
ーク発生手段142の構成を示す図2を参照する。説明
の便宜ため、プログラム実行手段143がタスクのシス
テムコールによって呼ばれたシステムコール処理143
0のシステムコール本体処理1431およびタスクスケ
ジューリング処理1432と、該タスクのタスク管理情
報記憶部1522のタスク管理情報15221も併記し
た。
【0030】オペレーティングシステムにおけるシステ
ムコール処理1430は、システムコール本体処理14
31とタスクスケジューリング処理1432を含む。シ
ステムコール本体処理1431は、システムコールごと
に対応する処理を行い、該処理結果としてタスク状態遷
移が発生する場合、該タスクのタスク管理情報1522
1のタスク状態152211に遷移状態を示すデータの
書き込みを行う。タスクスケジューリング処理1432
は、システムコール本体処理1431の結果を踏まえ、
次に実行状態501とするタスクを決定し、そのタスク
を実行状態501に遷移させる。従ってタスクスケジュ
ーリング処理1432は、タスクの状態遷移が発生する
すべてのシステムコールのシステムコール本体処理14
31の後に行われる共通の処理である。
【0031】状態遷移ブレーク検知手段142は、シス
テムコール本体処理1431により対象タスクのタスク
管理情報記憶部15221内にあるタスク状態1522
11への休止状態データの書き込みが行われたことを検
出する休止状態データ書き込み検出手段1423と、シ
ステムコール処理1430で行われるタスクスケジュー
リング処理1432の最後の命令の実行が行われたこと
を検出するスケジューリング処理完了検出手段1424
と、休止状態データ書き込みを検出した後、タスクスケ
ジューリング処理完了を検出したとき、スケジュールし
たタスクの状態遷移ブレークをブレーク制御手段144
に通知するブレーク発生手段1425と、を含む。
【0032】次に、この実施の形態の動作について説明
する。この実施例の動作を示す図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)。
【0033】状態遷移ブレーク発生手段142の動作
は、プログラム実行手段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に通
知する。
【0034】次に、この実施の動作を具体例で説明す
る。図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に戻
るものとする。
【0035】このような状況下で、このデバッグシステ
ム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に表示される。
【0036】図7(a),図7(b),図7(c)は1
ラインステップテストが状態遷移ブレーク条件により完
了する例である。図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に表示出力される。
【0037】
【発明の効果】以上の説明によれば、この発明の第1の
効果は、1ラインステップテスト時に、タスクが休止状
態に遷移するシステムコールを発行する命令であるか否
かを注意にする必要がなくなり、デバッグ作業時の負担
を軽減できることである。その理由は、1ラインステッ
プテストに対応する命令列のアドレス範囲だけでなく、
タスクが休止状態に状態遷移することも検知して、オペ
レーティングシステムがタスクにブレークを発生させる
からである。
【0038】更にこの発明の第2の効果は、1ラインス
テップテスト中にタスク切り替えが発生し得る場合で
も、切り替えられたタスクからのシステムコール発行に
より、タスクが休止状態に遷移させられる可能性がある
か否かを注意にする必要がなくなり、デバッグ作業時の
負担を軽減できることである。その理由は、タスクの休
止状態への遷移を検知することが、オペレーティングシ
ステムが対象タスクのタスク管理情報に休止状態データ
書き込み動作によって、状態遷移ブレーク条件を検知す
るため、タスク自身による終了の場合も、対象タスク以
外のタスクによる強制終了の場合と同様に休止状態遷移
を検知し、ブレークを発生できるからである。
【図面の簡単な説明】
【図1】この発明によるデバッグシステムの一実施例の
構成を示す図である。
【図2】図1中の状態遷移ブレーク検知手段の構成を示
す図である。
【図3】図1の実施例の動作を示す流れ図である。
【図4】図1のシステムおよびタスク管理情報記憶部の
構成を示す図である。
【図5】タスクの動作状態の遷移を示す図である。
【図6】分図(a)は、TaskAのコード,分図
(b)はTaskBのコード,分図(c)は動作のタイ
ムチャートを示し、1ラインステップテストがアドレス
ブレークにより完了する動作を例示する図である。
【図7】分図(a)は、TaskAのコード,分図
(b)はTaskBのコード,分図(c)は動作のタイ
ムチャートを示し、1ラインステップテストが状態遷移
ブレークにより完了する動作を例示する図である。
【符号の説明】
1 デバッグシステム 11 入力装置 12 出力装置 13 制御装置 14 実行装置 15 記憶装置 131 デバッガコマンド制御手段 132 アドレスブレーク設定手段 133 状態遷移ブレーク設定手段 134 実行開始設定手段 135 実行完了要因解析手段 141 アドレスブレーク検知手段 142 状態遷移ブレーク検知手段 143 プログラム実行手段 144 ブレーク制御手段 151 タスク記憶部 152 システムおよびタスク管理情報記憶部 153 オペレーティングシステム記憶部 1420 状態データ書き込み信号 1421 休止状態データ検知信号 1422 タスクスケジューリング完了検知信号 1423 休止状態データ書き込み検出手段 1424 タスクスケジューリング完了検出手段 1425 ブレーク発生手段 1430 システムコール処理 1431 システムコール本体処理 1432 タスクスケジューリング処理 1521 システム管理情報 1522 タスク管理情報記憶部 15221 実行状態タスク 152211乃至1522n1 タスク状態

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 マルチタスクプログラムの1ラインステ
    ップテストを実施する手段ならびにユーザインタフェー
    ス手段を有する制御装置と、 テスト対象のマルチタスクプログラム自体およびそれの
    各タスクの動作状態を管理する管理情報ならびに前記マ
    ルチタスクプログラムの各タスクの動作を管理するオペ
    レーティングシステムを格納する記憶装置と、 前記記憶装置から前記オペレーティングシステムならび
    に前記マルチタスクプログラムの1ラインに対応する命
    令列を1命令毎ロードして実行するエミュレータを作動
    させる実行装置と、 を備えるデバッグシステムにおいて、 前記制御装置は、 前記ユーザインタフェース手段からテバッグコマンドを
    受けて、前記実行装置および前記記憶装置に対してマル
    チタスクプログラムの1ラインステップテストを実施さ
    せるデバッグコマンド制御手段と、 デバッグコマンドによって、前記マルチタスクプログラ
    ムの1ラインに対応する命令列の最後尾命令のアドレス
    でブレークさせるアドレスブレーク条件を前記実行制御
    装置に設定するアドレスブレーク設定手段と、 前記オペレーティングシステムが、マルチタスクプログ
    ラムのテスト対象のタスクを休止状態遷移させたとき、
    スケジュールしたタスクにブレークを発生させる状態遷
    移ブレーク条件を前記実行装置に設定する状態遷移ブレ
    ーク設定手段と、 デバックコマンドによって、前記実行装置にマルチタス
    クプログラムの1ラインステップテストを開始させる実
    行開始手段と、 前記実行装置からアドレスブレークおよび状態遷移ブレ
    ークの結果をユーザインタフェース手段に出力させる実
    行完了要因解析手段と、 を具備し、 前記実行装置は、 前記アドレスブレーク条件を保持し、前記テスト対象タ
    スクの1ラインステップテストで前記アドレスブレーク
    条件を検出して、前記タスクをブレークさせるアドレス
    ブレーク検知手段と、 テスト対象タスクのシステムコールによって呼び出され
    たオペレーティングシステムが前記管理情報に状態遷移
    データの書込みによって、前記タスクの状態遷移ブレー
    ク条件を検出する状態遷移ブレーク検知手段と、 デバックコマンドによって、前記記憶装置からマルチタ
    スクプログラムおよびオペレーティングシステムを1命
    令毎ロードして実行をエミュレートするプログラム実行
    手段と、 前記アドレスブレーク条件を検出して、マルチタスクプ
    ログラムの1ラインステップテストをブレークさせる、
    あるいは状態遷移ブレーク条件を検出してスケジュール
    したタスクにブレークを発生させるブレーク制御手段
    と、 を具備して、 なることを特徴とするデバックシステム。
  2. 【請求項2】 前記状態遷移ブレーク検知手段は、 前記オペレーティングシステムがタスクの動作状態を休
    止状態に遷移させる際の状態データ書き込みを検出して
    検出フラグをON状態にする休止状態データ書き込み検
    出手段と、 前記オペレーティングシステムが、前記タスクを休止状
    態に遷移させた後、スケジュールするタスクのタスクス
    ケジューリング処理完了を検出するタスクスケジューリ
    ング完了検出手段と、 前記検出フラグのON状態と前記タスクスケジューリン
    グ処理完了を検出して、スケジュールしたタスクにブレ
    ークを発生させるブレーク発生手段と、 を具備することを特徴とする請求項1記載のデバッグシ
    ステム。
  3. 【請求項3】 マルチタスクプログラムの1ラインステ
    ップテストを実施する手段ならびにユーザインタフェー
    ス手段とを有する制御装置と、 テスト対象のマルチタスクプログラム自体およびそれの
    各タスクの動作状態を管理するタスク管理情報ならびに
    前記マルチタスクプログラムの1ラインステップテスト
    を管理するオペレーティングシステムを格納する記憶装
    置と、 前記記憶装置から前記オペレーティングシステムならび
    に前記マルチタスクプログラムの1ラインに対応する命
    令列を1命令毎ロードして実行するエミュレータを作動
    させる実行装置と、 を備えるデバッグシステムのデバッグ方法において、 1ラインステップテスト要求によって、前記記憶装置の
    マルチタスクプログラムに対して、1ラインに対応する
    命令列の最後尾でブレークするアドレスブレーク条件を
    設定するステップと、 前記オペレーティングシステムがテスト対象タスクの休
    止状態遷移後のタスクスケジューリング処理完了で、ス
    ケジュールしたタスクにブレークを発生させる状態遷移
    ブレーク条件を設定するステップと、 前記マルチタスクプログラムあるいはオペレーティング
    システムの命令列を1命令毎順次に実行するステップ
    と、 前記1命令実行で前記アドレスブレーク条件が成立する
    か否かを判定するステップと、 前記判定でアドレスブレーク条件が成立するとき、前記
    1ラインステップテスト完了を制御装置に通知するステ
    ップと、 前記判定でアドレスブレーク条件が成立しないとき、前
    記状態遷移ブレーク条件が成立するか否かを判定するス
    テップと、 前記判定で前記状態遷移ブレーク条件が成立しないと
    き、1命令実行ステップに戻るステップと、 前記判定で前記状態遷移ブレーク条件が成立するとき、
    前記オペレーティングシステムの命令実行完了を前記制
    御装置に通知するステップと、 を含むことを特徴とするデバックシステムのデバック方
    法。
  4. 【請求項4】 前記状態遷移ブレーク条件が成立するか
    否かの判定は、 オペレーティングシステムが、タスクを休止状態に遷移
    する休止状態データを前記タスク管理情報に登録したこ
    とを示す検出フラグON状態をチェックするステップ
    と、 前記検出フラグがON状態のとき、前記オペレーテイン
    グシステムのタスクスケジューリング処理完了であるか
    否かを判定するステップと、 前記検出フラグがON状態で、かつ前記タスクスケジュ
    ーリング処理完了であるとき、スケジュールしたタスク
    に状態遷移ブレークを発生させるステップと、 前記検出フラグがON状態で、かつタスクスケジューリ
    ング処理完了していないとき、1命令毎の実行に戻るス
    テップと、 前記検出フラグがON状態でないとき、1命令毎の実行
    に戻るステップと、 オペレーティングシステムによるタスクの休止状態デー
    タを管理情報に書き込みが行われたとき、前記検出フラ
    グをON状態にして1命令毎の実行に戻るステップと、 を含むことを特徴とする請求項3記載のデバッグシステ
    ムのデバッグ方法。
JP8323821A 1996-12-04 1996-12-04 デバッグシステムおよびその方法 Expired - Fee Related JP2912269B2 (ja)

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 JPH10161905A (ja) 1998-06-19
JP2912269B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018207175A1 (de) * 2018-05-08 2019-11-14 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aktivieren von Tasks in einem Betriebssystem

Also Published As

Publication number Publication date
JPH10161905A (ja) 1998-06-19

Similar Documents

Publication Publication Date Title
US8327336B2 (en) Enhanced thread stepping
US8903703B2 (en) Dynamically adjusting speed versus accuracy of computer platform simulation
US6708326B1 (en) Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence
JP4901075B2 (ja) コンピュータ読取可能な媒体、方法及びコンピューティングデバイス
US7415699B2 (en) Method and apparatus for controlling execution of a child process generated by a modified parent process
US8793115B2 (en) Interface converter for unified view of multiple computer system simulations
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
US20040098639A1 (en) Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems
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
Hölscher Nested Preemption Fixed-Priority Scheduler for EV3OSEK
JP2007213396A (ja) デバッグシステム、オペレーションシステム、デバッグ方法、プログラム
JPH1145193A (ja) ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体
JP3449812B2 (ja) 制御用電子装置
JP2978841B2 (ja) インサーキットエミュレータにおけるエミュレーション方法
JPH11110429A (ja) イベント発生装置、ハードウェアシミュレーション装置およびその方法

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