JP2913991B2 - リアルタイム・システム・デバッグ装置 - Google Patents

リアルタイム・システム・デバッグ装置

Info

Publication number
JP2913991B2
JP2913991B2 JP4068598A JP6859892A JP2913991B2 JP 2913991 B2 JP2913991 B2 JP 2913991B2 JP 4068598 A JP4068598 A JP 4068598A JP 6859892 A JP6859892 A JP 6859892A JP 2913991 B2 JP2913991 B2 JP 2913991B2
Authority
JP
Japan
Prior art keywords
task
rtos
real
remote
debug
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
JP4068598A
Other languages
English (en)
Other versions
JPH05274177A (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.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric 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 Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP4068598A priority Critical patent/JP2913991B2/ja
Publication of JPH05274177A publication Critical patent/JPH05274177A/ja
Application granted granted Critical
Publication of JP2913991B2 publication Critical patent/JP2913991B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はリアルタイム・システム
・デバッグ装置に関し、更に詳しくは、仮想オンライン
・デバッガに関する。
【0002】
【従来の技術】従来、シミュレーションによるリアルタ
イム・アプリケーション開発におけるデバッグ方法とし
ては、主に以下の3つの方法が用いられている。なお、
以下の説明では、リアルタイム・オペレーティングシス
テムをRTOSと記し、アプリケーション・タスクをA
Pタスクと記す。
【0003】方法1…RTOSスタブ(図8参照) RTOSシステムコールのシミュレーション・ライブラ
リをAPタスクとリンクさせ、開発装置の専用デバッガ
を使用してAPタスクをデバッグ/テストする方法。
【0004】方法2…ターゲットシュミレーションプロ
セス(図9参照) RTOSと複数のAPタスク・オブジェクトを1つにリ
ンクした全体(以下シミュレーション・プロセスと記
す)を、開発装置の専用デバッガを使用してAPタスク
をデバッグ/テストする方法。
【0005】方法3…プロセッサ・シミュレータ(図1
0参照) 通常、MPUが行う機械語命令の解釈と同じ処理をソフ
トウェアで実行しながらプログラムのデバッグ/テスト
をする方法。
【0006】
【発明が解決しようとする課題】方法1は主にAPタス
クの単体テストに用いられるものであり、タスク間の同
期処理や時間/時刻に同期した複雑なAPタスクのデバ
ッグ/テストができない。
【0007】方法2では、APタスクに対してセットし
たブレークポイントがヒットした場合、デバッガに制御
が移り、シミュレーション・プロセス全体が停止状態に
なってしまう。デバッグ対象のAPタスクのみ停止し他
のAPタスクの動作には影響しないでデバッグ/テスト
ができない。
【0008】また、RTOSと複数のAPタスク・オブ
ジェクトを1つにリンクするので、静的変数やシンボル
の多重定義の問題も起きる。また、RTOSと複数のA
Pタスク・オブジェクトを1つにリンクしなければなら
ないので、ソースコード修正のたびに再リンクと初期化
処理を繰り返さなければならず、デバッグ/テストした
いAPタスクのみシミュレーション・プロセス内にロー
ド/アンロードすることができない。
【0009】方法3は主に組み込み型プログラムの開発
に使用されるものであり、方法2と同様の問題がある。
本発明は、これら各方法の問題点に鑑みてなされたもの
であり、その目的は、オンラインマルチタスク下でのデ
バッグが可能でターゲットレス/リモート両方のデバッ
グを統一思想で行えるシミュレーション・プロセスにお
けるデバッガを実現することにある。なお、以下の説明
では、デバッグ対象がシミュレーション・プロセスであ
るため、各用語には「仮想」を付ける。
【0010】具体的には、本発明では、あるタスクをデ
バッグ中でも他のタスクは停止することなく動作できる
仮想オンラインモードまたはシミュレーション・プロセ
ス内のAPタスクにセットしたブレークポイントがヒッ
トした場合シミュレーション・プロセス全体が停止する
仮想オフラインモードで動作するマルチ仮想デバッグモ
ードが可能であり、仮想オンラインモードで複数のAP
タスク(任意状態)を同時にデバッグできるマルチタス
クデバッグ機構機構を有し、デバッグ対象としては開発
装置上のシミュレーション・プロセスだけではなくネッ
トワーク上の分散ターゲットも含むネットワーク対応に
なっているデバッガを実現する。
【0011】
【課題を解決するための手段】このような課題を解決す
る発明は、リモートデバッグモニタ(rDBM)と、該
リモートデバッグモニタ(rDBM)と対で使用され、
ソースコード/シンボルの管理と制御を司どる同時使用
可能な複数のリモート・ソースコードデバッガ(rSD
B)と、タスクとしてロード可能なロードモジュール
と、シミュレーション・プロセス外の仮想デバイスサー
バと通信しながら入出力を管理するIOCS,RTOS
サポートデバッグシステムコール(ptrace)及び
共有メモリへのポインタ(SysTblTop)を有す
るリアルタイム・オペレーティングシステム(RTO
S)と、リアルタイム・オペレーティングシステム(R
TOS)テーブルの内容をフォーマット表示するリモー
ト・システムテーブルモニタ(rSTM)と、再配置可
能オブジェクトを共有メモリ上にロードし、タスク登録
機能を有するローダタスクと、RTOS,APタスク及
びrDBMがコンテキストをもって疑似並列動作が可能
で、開発装置の基本スケジューリング単位になるシミュ
レーション・プロセスと、RTOS,IOCSのシステ
ムテーブルやモジュールがロードされ開発装置が管理す
る共有メモリと、で構成されたことを特徴とするもので
ある。
【0012】
【作用】ハードウェアとOSに依存するptrac
e()ライブラリを切り換えることにより、様々なMP
U,動作モード(オフライン,オンライン),OS上で
共通のデバッガが使用でき、開発ツールを共通化でき
る。ptraceはOS依存であるが標準インタフェー
スを使用しているので、使用するOSのptraceラ
イブラリを使用することで各種開発装置への移植が容易
である。
【0013】デバッグしたいモジュールのみシミュレー
ション・プロセスのアドレス空間に再ロードしてデバッ
グ/テストができ、デバッグの効率が向上できる。ネッ
トワークにより結合され分散されたターゲット上のプロ
グラムに対して開発マシンから遠隔によるソースコード
デバッグが可能になる。
【0014】
【実施例】以下、図面を参照して、本発明の実施例を詳
細に説明する。図1は本発明に基づくシミュレーション
開発環境の一例を示す概念図である。
【0015】1はリモートデバッグモニタ(以下rDB
Mと略記)、2は該rDBM1と対で使用され、ソース
コード/シンボルの管理と制御を司どる同時使用可能な
複数のリモート・ソースコードデバッガ(以下rSDB
と略記)である。
【0016】3はタスクとしてロード可能なロードモジ
ュール、4はリアルタイム・オペレーティングシステム
(以下RTOSと略記)で、シミュレーション・プロセ
ス外の仮想デバイスサーバと通信しながら入出力を管理
するIOCS5,RTOSサポートデバッグシステムコ
ール(以下ptraceと略記)6及び共有メモリへの
ポインタ(以下SysTblTopと略記)7を有す
る。
【0017】8はRTOSテーブルの内容をフォーマッ
ト表示するリモート・システムテーブルモニタ(以下r
STMと略記)である。9は再配置可能オブジェクトを
共有メモリ上にロードし、タスク登録機能を有するロー
ダタスクである。
【0018】11はRTOS4,APタスク10及びr
DBM1がコンテキストをもって疑似並列動作が可能
で、開発装置の基本スケジューリング単位になるシミュ
レーション・プロセスである。
【0019】12は共有メモリで、RTOS,IOCS
のシステムテーブルやモジュールがロードされ開発装置
が管理する。図2は図1で用いるデバッガの構成例図で
ある。13はC言語レベルデバッガであり、機能に応じ
て、常に開発装置上で動作するソースコード/シンボル
制御部14と動作環境や動作モードを変更できるデバッ
グ制御部15に独立分離されている。
【0020】rSDB2は上述のようにソースコード/
シンボルの管理と制御を司どる部分で常にrDBM1と
対(rSDB:=N:1)で使用され、ネットワークイ
ンタフェースで結合されている。そして、開発装置の基
本スケジューリング単位(プロセス)として動作する。
また、コンパイラ/リンカの出力するオブジェクト形式
に依存する部分で、標準のオブジェクト形式を有してお
り、各種のオブジェクト形式には該標準オブジェクト形
式への変換ツールで対応している。これにより、rSD
B2本体を共通化して、各種開発装置や各種コンパイラ
/リンカをサポートできる。
【0021】16はX−11Window(以下Xと略
記)であり、rSDB2のマンマシンも代行する。17
はSocketであって、開発装置はもとよりネットワ
ーク透過性のあるネットワークインタフェースであり、
これによりネットワーク結合された分散ターゲット上で
rDBM1を動作させることができる。
【0022】rDBM1はシミュレーション・プロセス
11やターゲット上で動作するものであって、rSDB
2がなくても単独動作も可能である。ただし、ソースコ
ードとシンボルが扱えない。
【0023】該rDBM1の動作形態には、 A.動作環境…シミュレーション/リモートターゲット B.動作モード…オンライン/オフライン があり、図3に示すようにA×Bの4種の組み合わせが
ある。具体的には、ptraceライブラリを切り換え
て使用する。
【0024】ptrace6は開発装置上の標準OS
(UNIX)互換インタフェースであり、図4のデバッ
グ機構を有する。該ptrace6はMPU機能に依存
する部分で、rDBM1の動作タイプごとにライブラリ
として用意されている。図4の機能を利用することによ
り、rDBM1をRTOSタスクとして動作させること
が可能になる。ただし、PTRACE TRACEME
は開発装置専用のため、RTOS上ではPTRACE
ATTACHを使用する。PTRACE ATTACH
/PTRACE DETACHにより任意状態マルチタ
スクのデバッグを可能にする。
【0025】図5は被デバッグAPタスク10の状態遷
移図である。マルチタスク(任意状態)デバッグ機能拡
張のため、TRCフラグとTRCSTOPフラグを用意
している。
【0026】TRCフラグはPTRACE ATTAC
Hによりトレースモードになったことを示す。これは、
PTRACE DETACHにより解除される。TRC
STOPフラグはREADY状態のタスクがPTRAC
ATTACHされた場合とPTRACE ATTA
CH後システムコールによりREADY状態になったこ
とを示す。これによってDORMANT状態になったA
PタスクをPTRACE DETACHする場合、RE
ADY状態にするか否かを判断できる。いずれの場合で
も、PTRACE DETACHによりTRCSTOP
は解除される。
【0027】以下図5の各状態を説明する。 トレースモード BLOCK/SUSPENDタスク状態フラグと共存す
るがREADY状態フラグとは共存せず、この場合はT
RCかつTRCSTOPの特殊な停止状態(DORMA
NT)として扱われる。
【0028】BLOCKまたはSUSPEND状態 PTRACE ATTACHによりTRCフラグがその
タスクにセットされる。BLOCK/SUSPEND状
態フラグはそのままで、特殊なトレース状態になる。該
TRCフラグはPTRACE DETACHにより解除
される。このとき、BLOCK/SUSPEND状態フ
ラグが残っていればタスクはそのままの状態になる。
【0029】READY状態 この状態のタスクがPTRACE ATTACHされる
とTRCフラグとTRCSTOPフラグがセットされ
る。デバッグ中にこのタスクがBLOCK/SUSPE
NDされてその後PTRACE DETACHされると
TRCフラグとTRCSTOPフラグが解除され、BL
OCK/SUSPENDになる。READY状態であれ
ば再びREADY状態になる。継続実行(CONTIN
UE)の場合には、TRCフラグとTRCSTOPフラ
グはそのままREADY状態になる。
【0030】DORMANT状態 この状態のタスクがPTRACE ATTACHされる
とTRCフラグがセットされる。該タスクのデバッグ中
に他タスクからTASK STARTが実行されたRE
ADY状態になった場合、TRCSTOPフラグがセッ
トされ、PTRACE DETACHされてもDORM
ANTにならず、READY状態になる。
【0031】NON−EXISTENT状態 この状態のタスクにTRCフラグがセットされるのは、
デバッグ中の親タスクが子タスクをTASK CREA
TE(タスク生成)したときに親タスクのTRCフラグ
が継承される場合のみである。
【0032】図6はブレークポイントの管理説明図であ
る。18はrSDB管理ブロックであり、マルチrSD
Bを管理するためのブロックである。rDBM1にコネ
クションされたrSDBのIDとそのrSDBがPTR
ACE ATTACHしたタスクのリストで構成され
る。これらは、強制的にコネクションが切れた場合や全
タスクをPTRACE DETACHするとき参照され
る。
【0033】19はアクティブ・ブレークポイント管理
テーブルであり、現在セットされているブレークポイン
トのテーブルである。エントリ内容は、主に要求元rS
DBのID,セットされたタスクのID,ブークポイン
トアドレスで構成される。
【0034】図7はセット動作の説明図である。 rSDBブレークコマンド入力 rSDB2へソースコードのシンボルを使用してrcv
msg()関数の先頭にブレークポイントをセットする
コマンドを入力する。
【0035】アドレス変換 rSDB2はRTOSモジュールとロードしたモジュー
ルのシンシボル情報をモジュール毎に管理している。ま
た、指定タスクがどのモジュールに属するかタスク生成
時登録される。該シンボル情報を参照して、rcvms
g関数名はモジュール内相対アドレスに変換される。
【0036】rDBMブレークコマンド入力 シンボルのアドレス変換処理されたコマンドがそのまま
rDBM1へ送信される。このレベルのコマンドはrD
BM1が単独で動作するときのコマンドと同一である。
【0037】コマンドのptrace展開 アドレス変換処理を受けたコマンドを受け取ったrDB
M1は、RTOSシステムコールである一連のptra
ceに展開する。ブレークコマンドの場合は、ブレーク
ポイント・アドレスの元の内容を予めセーブし、ブレー
クコードの書き込みを数回に分けて実行する。
【0038】論理アドレス変換 RTOS4はCMDパラメータを解釈し、メモリ書き込
みルーチンを呼び出す。実際の書き込みアドレスは、タ
スク管理ブロックにセットされたタスク空間の論理アド
レスとptraceパラメータで受け取った相対アドレ
スに基づいて算出される。
【0039】タスク空間へ仮想ブレークポイントのセ
ット 通常、ブレークポイントはMPUが予約した不正命令を
使用するが、シミュレーション環境では疑似的なブレー
クポイントコードを使用する。すなわち、ブレーク用R
TOSシステムコール(図4のPTRACE BRKD
ONE)を使用する。
【0040】次に、ヒット動作を説明する。 仮想ブレークポイントヒット RTOSシステムコールptrace(PTRACE
BRKDONE…)が実行される。
【0041】PTRACE BRKDONE内部処理 a.タスクをトレースモード停止状態にする。 ブレークポイントがヒットしたタスクは、RUNNIN
G状態タスクであるので、このタスクをトレースモード
停止状態にする。
【0042】b.カレントタスクid取得 RTOSシステムテーブルに現実行中のAPタスクのタ
スク管理ブロックアドレスが格納されている。
【0043】c.スタックよりブレークアドレスを算出 ブレークポイントはシステムコール(実際には関数呼び
出し)に置き換えたものなので、スタックには戻り番地
がセーブされている。該アドレスには関数呼び出しのた
めの引数セットなどの前処理が入るので、実際のブレー
クポイント・アドレスではないので補正が必要になる。
【0044】d.rDBMへブレーク完了通知 上記ブレークアドレスと現実行中のAPタスクIDを、
rDBM1へメイルボックスで通知する。ブレーク完了
待ちになっていたrDBM1がREADY状態になる。
【0045】rDBMブレーク完了処理 a.ブレークポイントの修復 予めセーブしておいたメモリ内容でブレークポイント・
アドレス内容を元の内容に復元する。スタックもブレー
クポイントセット前の値に戻す。
【0046】b.アクティブブレークポイント・テーブ
ル検索(図6参照) rDBM1はメイルボックスから1つのブレーク完了メ
イル(ブレークアドレス,タスクID)を取り出す。ブ
レークアドレスからアクティブブレークポイント・テー
ブルを検索し、該当ブレークポイントエントリを検索す
る。
【0047】c.要求元rSDBへ完了通知 エントリには、要求元rSDBのIDが格納されている
ので、これによってrSDBへブレーク完了通知を行
う。
【0048】
【発明の効果】以上詳細に説明したように、本発明によ
れば、以下のような効果が得られる。 開発ツールを共通化できる。
【0049】ハードウェアとOSに依存するptrac
e()ライブラリを切り換えるだけで、様々なMPU,
動作モード(オフライン,オンライン),OS上で共通
のデバッガが使用できる。
【0050】特に、ptraceはOS依存であるけれ
ど、標準インタフェースを使用しているので、使用する
OSのptraceライブラリを使用すれば各種開発装
置への移植が容易である。
【0051】デバッグの効率が向上できる。 デバッグしたいモジュールのみシミュレーション・プロ
セスのアドレス空間に再ロードしデバッグ/テストがで
きるので非常に効率が良い。
【0052】リモートデバッグが容易である。 ネットワークにより結合され分散されたターゲット上の
プログラムに対して開発マシンから遠隔によるソースコ
ードデバッグが可能になる。
【図面の簡単な説明】
【図1】本発明に基づくシミュレーション開発環境の一
例を示す概念図である。
【図2】図1で用いるデバッガの構成例図である。
【図3】rDBMの動作形態説明図である。
【図4】デバッグ用RTOSシステムコールの説明図で
ある。
【図5】被デバッグAPタスクの状態遷移図である。
【図6】ブレークポイントの管理説明図である。
【図7】セット動作の説明図である。
【図8】従来のシミュレーション開発手法の説明図であ
る。
【図9】従来のシミュレーション開発手法の説明図であ
る。
【図10】従来のシミュレーション開発手法の説明図で
ある。
【符号の説明】
1 rDBM(リモートデバッグモニタ) 2 rSDB(リモート・ソースコードデバッガ) 3 ロードモジュール 4 RTOS(リアルタイム・オペレーティングシス
テム) 5 IOCS 6 ptrace(RTOSサポートデバッグシステ
ムコール) 7 SysTblTop(共有メモリへのポインタ) 8 rSTM(リモート・システムテーブルモニタ) 9 ローダタスク 10 APタスク 11 シミュレーション・プロセス 12 共有メモリ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 リモートデバッグモニタ(rDBM)
    と、 該リモートデバッグモニタ(rDBM)と対で使用さ
    れ、ソースコード/シンボルの管理と制御を司どる同時
    使用可能な複数のリモート・ソースコードデバッガ(r
    SDB)と、 タスクとしてロード可能なロードモジュールと、 シミュレーション・プロセス外の仮想デバイスサーバと
    通信しながら入出力を管理するIOCS,RTOSサポ
    ートデバッグシステムコール(ptrace)及び共有
    メモリへのポインタ(SysTblTop)を有するリ
    アルタイム・オペレーティングシステム(RTOS)
    と、 リアルタイム・オペレーティングシステム(RTOS)
    テーブルの内容をフォーマット表示するリモート・シス
    テムテーブルモニタ(rSTM)と、 再配置可能オブジェクトを共有メモリ上にロードし、タ
    スク登録機能を有するローダタスクと、 RTOS,APタスク及びrDBMがコンテキストをも
    って疑似並列動作が可能で、開発装置の基本スケジュー
    リング単位になるシミュレーション・プロセスと、 RTOS,IOCSのシステムテーブルやモジュールが
    ロードされ開発装置が管理する共有メモリと、で構成さ
    れたことを特徴とするリアルタイム・システム・デバッ
    グ装置。
JP4068598A 1992-03-26 1992-03-26 リアルタイム・システム・デバッグ装置 Expired - Fee Related JP2913991B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4068598A JP2913991B2 (ja) 1992-03-26 1992-03-26 リアルタイム・システム・デバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4068598A JP2913991B2 (ja) 1992-03-26 1992-03-26 リアルタイム・システム・デバッグ装置

Publications (2)

Publication Number Publication Date
JPH05274177A JPH05274177A (ja) 1993-10-22
JP2913991B2 true JP2913991B2 (ja) 1999-06-28

Family

ID=13378392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4068598A Expired - Fee Related JP2913991B2 (ja) 1992-03-26 1992-03-26 リアルタイム・システム・デバッグ装置

Country Status (1)

Country Link
JP (1) JP2913991B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219804B1 (en) 1998-08-05 2001-04-17 International Business Machines Corporation Debugging client server programs from third party workstations
US8499337B1 (en) 2004-10-06 2013-07-30 Mcafee, Inc. Systems and methods for delegation and notification of administration of internet access
JP5212508B2 (ja) * 2011-03-15 2013-06-19 オムロン株式会社 デバッグ装置
GB2504491A (en) * 2012-07-30 2014-02-05 Ibm Remote debug service in a cloud environment

Also Published As

Publication number Publication date
JPH05274177A (ja) 1993-10-22

Similar Documents

Publication Publication Date Title
US6011920A (en) Method and apparatus for debugging applications on a personality neutral debugger
US6718294B1 (en) System and method for synchronized control of system simulators with multiple processor cores
US6826746B2 (en) Debugger probe for object oriented programming
US5630049A (en) Method and apparatus for testing software on a computer network
US5528503A (en) Integrated automation development system and method
US6216237B1 (en) Distributed indirect software instrumentation
US6042614A (en) System and method for a distributed debugger for debugging distributed application programs
US5781778A (en) Method and system for debugging parallel and distributed applications
US6948164B2 (en) Method and system for modifying executable code to add additional functionality
EP2724235B1 (en) N-way runtime interoperative debugging
US20050034104A1 (en) Method for multi-language debugging
US20030233634A1 (en) Open debugging environment
JP2004086910A (ja) コンピュータ・プログラムをデバックするための方法、システムおよびソフトウェア・プロダクト
CN114756357B (zh) 一种基于jvm的非阻塞分布式计划任务调度方法
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
JP2000066904A (ja) マルチタスク制御方法及び記憶媒体
JPH11505645A (ja) プロセッサに基づくデジタルシステムをシミュレートするための装置および方法
JP2913991B2 (ja) リアルタイム・システム・デバッグ装置
CN112579460B (zh) 一种基于多核嵌入式系统的多级调试方法
Viarheichyk Embedded Programming with Modern C++ Cookbook: Practical recipes to help you build robust and secure embedded applications on Linux
KR950012113B1 (ko) 멀티 아키텍춰 환경내의 다중 코드 실행 및 디버깅 시스템에서 코드 인터페이스 자케팅에 특히 적합한 크로스-도메인 명령 호출 및 데이타 참조를 검출하기 위한 시스템 및 방법
KR100214125B1 (ko) 전전자 교환기에서 함수 파라미터 추적 방법
JP2000181748A (ja) マルチメモリ空間プログラムのデバッグシステムおよびそのデバッグ方法
JPH05282160A (ja) リアルタイム・シミュレーション開発機構
JPH0434625A (ja) デバッグ・サポート装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees