JP4676289B2 - デバッグシステム及び方法 - Google Patents
デバッグシステム及び方法 Download PDFInfo
- Publication number
- JP4676289B2 JP4676289B2 JP2005267335A JP2005267335A JP4676289B2 JP 4676289 B2 JP4676289 B2 JP 4676289B2 JP 2005267335 A JP2005267335 A JP 2005267335A JP 2005267335 A JP2005267335 A JP 2005267335A JP 4676289 B2 JP4676289 B2 JP 4676289B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- setting
- debug
- break
- physical address
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
このマルチタスクOSを利用することにより、同時に複数の処理を並行して実行させることが可能となる。具体的には、マイクロコンピュータの処理時間を分割し、複数のアプリケーションプログラムを順番に割り当てることにより、複数の処理を同時に処理しているようにみせている。
LinuxというマルチタスクOSでは、1つのアプリケーションプログラムが複数のプロセスとして起動された場合と、1つのプロセスが複数のスレッドとして起動された場合、同一のメモリ資源を共有する。
具体的には、デバッグ対象外のタスクを実行中に他のタスクについて設定されたブレーク設定に基づくブレーク停止が発生したり、デバッグ用に書き換えられた命令が実行されて、実行中のタスクの動作に不具合が生じてしまう。
本発明は、上記の課題を解決するもので、デバッグ対象のタスクへのブレーク設定が、デバッグ対象外のタスクの動作に影響を与えない、マルチタスク環境のデバッグシステム及び方法を提供することを目的とする。
ここで、前記設定制御手段は、タスク切替時期が到来する毎に、前記設定情報において、切替前のタスクと次のタスクの両者がデバッグ設定の対象となっているか否かを判定する設定判定手段と、両者がデバッグ設定の対象となっている場合に、両者の各アドレス情報によって特定される物理アドレスが一致するか否かを判定するアドレス判定手段とを有し、両者の物理アドレスが一致しない場合に限り、前記第2設定手段は、前記デバッグ設定を行い、前記解除手段は、前記デバッグ解除をすることとしてもよい。
前記解除ステップは、前記デバッグ解除をすることとしてもよい。
ここで、前記設定制御手段は、タスク切替時期が到来する毎に、切替前のタスクに使用される物理アドレス空間範囲と次のタスクに使用される物理アドレス空間範囲とが重複するか否かを判定する重複判定手段を有し、重複する場合に限り、前記解除手段は、前記デバッグ解除をすることとしてもよい。
これにより、切替前のタスクが次のタスクと共通する物理アドレス空間範囲を使用しない場合には、タスク切替時におけるデバッグ解除処理を省くことができるので、デバッグ解除処理に要する処理負荷を軽減することができる。
(デバッグシステムの構成)
図1は、本実施の形態に係るデバッグシステム100の構成を示す機能ブロック図である。デバッグシステム100は、端末1〜3と、デバッグ装置10から構成される。
各端末は、デバッグ装置と通信回線で接続され、通信回線を介して各種コマンドをデバッグ装置10に出力し、当該コマンドに基づく処理結果をデバッグ装置10から受取り、端末の表示部(図外)に表示させる。
端末からのコマンドが、デバッグ対象となるアプリケーションプログラムの実行命令である場合には、デバッグ装置10は、後述するブレーク設定表において登録されている論理アドレス空間上のアドレスに対応付けられている、RAM12の物理アドレス空間上のアドレスに記録されている元命令をブレーク命令に書き換えた後、デバッグ対象となるアプリケーションプログラムをマルチタスクOS11上で実行し、ブレーク命令が検出されると、当該アプリケーションプログラムを停止し、処理結果を当該端末に送信する。
又、図1では、タスク1、タスク2、タスク3がRAM12上のメモリ領域を共用していることを示している。
(デバッグ装置の構成)
図2は、デバッグ装置10の構成を示す機能ブロック図である。デバッグ装置10は、マルチタスクOS部101、ブレーク設定部102、ブレーク解除部103、通信部104、アプリケーション記憶部105、ページテーブル記憶部106、タスク管理情報記憶部107、ブレーク設定表記憶部108から構成される。
CPU、MMU(memory management unit)、マルチタスクOS11を含むROM、RAM12から構成され、各アプリケーションプログラムの実行、アプリケーションプログラムに起因するタスクの実行の時分割制御を行う。
MMUは、論理アドレスから物理アドレスへの変換、ROM、RAM12を管理する。
デバッグ対象となるアプリケーションプログラムとデバッグ対象外のアプリケーションプログラムとを記憶している。
(ページテーブル記憶部106)
ページテーブルを記憶している。
図4は、ページテーブルをイメージ的に表した図である。図4に示すように、論理アドレスの範囲に応じて、各論理アドレスが属する論理ページが特定され、さらに、特定された各論理ページについて、同じサイズの物理ページがRAM12上に割当てられる。
図6では、タスク1の参照する論理アドレスK(図6の601)について、ページテーブル(図6の602、説明の便宜上、602の内容は、ここでは、図4のページテーブルの内容としている。)を用いて、当該論理アドレスKが属する論理ページL1が特定され(図6の603)、さらに当該ページテーブルを用いて、論理ページL1に対応付けられている物理ページPH1におけるベースアドレス1が特定され(図6の604)、特定されたベースアドレス1と論理アドレスKのオフセット値に基づいて、論理アドレスKに対応する物理アドレスが算出(図6の605)される過程が示されている。
タスク管理情報を記憶している。
ここで、「タスク管理情報」とは、時分割制御の対象となるタスクの識別子と、タスクの実行状態を示す状態情報と、タスクのコンテキストの退避先を示すスタックポインタの値と、現時点におけるタスクの実行の優先順位を示すタスク優先度との対応関係を示す情報のことをいう。タスク管理情報は、マルチタスクOS部101によって作成され、管理される。
(ブレーク設定部102)
ブレーク設定の登録処理及びブレーク設定処理を行う。
ここで、「ブレーク設定」とは、アプリケーションプログラムの実行を途中で停止する命令と停止するポイントを論理アドレスで指定することをいう。
1.ブレーク設定の登録処理
端末からブレーク設定を登録するための登録コマンドが通信部104を介して入力されると、登録コマンドを解析して、登録コマンドの指定するタスク識別子、ブレーク設定する論理アドレス、ブレーク種別を特定し、特定したタスク識別子、論理アドレス、ブレーク種別をブレーク設定表に登録する。
ここで、「ブレーク設定表」とは、タスクの識別子と当該タスクについて設定されるブレーク設定の論理アドレスと、ブレーク種別との対応関係を示すテーブルのことをいう。
又、「ブレーク種別」とは、ブレーク設定の種類がソフトウェアブレークか、ハードウェアブレークを示す識別子のことをいう。
又、「ハードウェアブレーク」とは、CPUのレジスタにアプリケーションプログラムにおける停止位置を示す論理アドレス(以下、「ブレークアドレス」という。)を設定し、CPUが設定された論理アドレスの参照またはこの論理アドレスの命令の実行が行われた際に、アプリケーションプログラムの実行を途中で停止するブレーク設定のことをいう。
2.ブレーク設定処理
マルチタスクOS部101によってタスクの実行が開始される時又はタスクの切替が行われる時に、次に実行予定のタスクの識別子をマルチタスクOS部101より取得して次に実行予定のタスク識別子を特定し、特定したタスク識別子が後述するブレーク設定表に登録されているか否かを判定し、登録されている場合には、さらにブレーク設定表において、当該タスクの識別子に対応付けられているブレーク種別に基づいて、登録されているブレーク設定がソフトウェアブレークか、ハードウェアブレークかを判別し、ハードウェアブレークの場合には、レジスタにブレーク設定表に登録されている論理アドレスを設定し、ソフトウェアブレークの場合、ブレーク設定表に登録されている論理アドレスに対応するRAM12上の物理アドレスをマルチタスクOS部101より取得し、RAM12上において、当該物理アドレスに格納されている元命令をブレーク設定表に退避し、当該物理アドレスにブレーク命令を書き込む。
ブレーク設定の削除処理及びブレーク設定解除処理を行う。
1.ブレーク設定の削除処理
端末からブレーク設定を削除するための削除コマンドが通信部104を介して入力されると、削除コマンドを解析して、削除コマンドの指定するタスク識別子、論理アドレス、ブレーク種別を特定し、特定したタスク識別子、論理アドレス、ブレーク種別を有するブレーク設定をブレーク設定表から削除する。
2.ブレーク設定解除処理
マルチタスクOS部101によってタスクの切替が行われる時に、停止したタスクの識別子をマルチタスクOS部101より取得し、取得したタスク識別子がブレーク設定表に登録されているか否かを判定し、登録されている場合には、さらにブレーク設定表において、当該タスクの識別子に対応付けられているブレーク種別に基づいて、登録されているブレーク設定がソフトウェアブレークか、ハードウェアブレークかを判別し、ハードウェアブレークの場合には、レジスタに設定されているブレークアドレスの設定を解除し、ソフトウェアブレークの場合、ブレーク設定表に登録されている論理アドレスに対応するRAM12上の物理アドレスをマルチタスクOS部101より取得し、RAM12上の当該物理アドレスにブレーク設定表に退避されている元命令を書き込み、ブレーク設定を解除する。
各端末から入力された各種コマンドを受信し、マルチタスクOS部101、ブレーク設定部102、ブレーク解除部103、通信部104に出力する。
(ブレーク設定表記憶部108)
ブレーク設定表を記憶している。図3は、ブレーク設定表の具体例を示す。
<動作>
(ブレーク設定の登録処理)
図8は、ブレーク設定部102の行うブレーク設定登録処理の動作を示すフローチャートである。
(ブレーク設定の削除処理)
図21は、ブレーク解除部103の行うブレーク設定削除処理の動作を示すフローチャートである。
(タスク切替処理A)
図7は、マルチタスクOS部101の行うタスク切替処理Aの動作を示すフローチャートである。
(ブレーク設定処理A)
図9は、ブレーク設定部102の行うブレーク設定処理Aの動作を示すフローチャートである。
又、ステップS902の判定が否定的である場合には(ステップS902:N)、ブレーク設定部102は、ブレーク設定処理Aを終了する。
(ブレーク解除処理A)
図10は、ブレーク解除部103の行うブレーク解除処理Aの動作を示すフローチャートである。
又、ステップS102の判定が否定的である場合には(ステップS102:N)、ブレーク解除部103は、ブレーク解除処理Aを終了する。
実施の形態1におけるデバッグシステム100においては、タスクの切替が行われる毎に、ブレーク設定処理とブレーク解除処理を行うこととしたが、実施の形態2におけるデバッグシステム200(実施の形態1の図1に示すデバッグシステム100とは、後述するデバッグ装置の構成のみが異なり、他の構成要素は同一であるので、デバッグシステム200の構成を示す機能ブロック図の図示は省略する。以下、後述するデバッグシステム300、400、500についても同様とする。)においては、次に実行されるタスクについても直前に停止したタスクと同じブレーク設定がされている場合に、タスク切替時のブレーク設定処理及びブレーク解除処理が省かれ、タスク切替処理が迅速に行われる。
<構成>
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図22は、デバッグシステム200に含まれるデバッグ装置20の構成を示す機能ブロック図である。
図22において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
<動作>
実施の形態1との相違点を中心に説明し、同一の動作を行うものについては、説明を省略する。
(タスク切替処理B)
図11は、マルチタスクOS部201の行うタスク切替処理Bの動作を示すフローチャートである。図11に示すように、実施の形態1におけるタスク切替処理Aとは、ステップS114及びステップS115で示すブレーク設定処理及びブレーク解除処理の内容が異なる。
(ブレーク設定処理B)
図12は、ブレーク設定部202の行うブレーク設定処理Bの動作を示すフローチャートである。ブレーク設定処理Bは、ステップS121〜ステップS125の処理において、実施の形態1におけるブレーク設定処理Aと異なり、ステップS126〜ステップS130の処理は、図9のブレーク設定処理AのステップS903〜ステップS907の処理と同じである。
ブレーク設定部202は、マルチタスクOS部201より、停止したタスクと次に実行予定のタスクのタスク識別子をそれぞれ取得して両者のタスク識別子を特定し、さらにブレーク設定表記憶部108に記憶されているブレーク設定表を参照して、両者のタスク識別子についてのブレーク設定の登録の有無を検索し(ステップS121)、両者のブレーク設定の登録がある場合には(ステップS122:Y)、両者のブレーク設定の論理アドレスをマルチタスクOS部201に通知し、両者の論理アドレスがそれぞれ属する物理ページをマルチタスクOS部201より取得し、両者の物理ページが重複するか否かを判定する(ステップS123)。
ステップS123において、両者の物理ページが重複する場合には(ステップS123:Y)、ブレーク設定部202は、両者の論理アドレスのオフセット値が一致するか否かを判定し(ステップS124)、一致する場合には(ステップS124:Y)、ステップS130の処理に移行し、一致しない場合には(ステップS124:N)、ステップS126の処理に移行する。
又、ステップS122において、両者のブレーク設定の登録がなく(ステップS122:N)、次に実行すべきタスクについてのブレーク設定のみが登録されている場合には(ステップS125:Y)、ブレーク設定部202は、ステップS126の処理に移行する。
(ブレーク解除処理B)
図13は、ブレーク解除部203の行うブレーク解除処理Bの動作を示すフローチャートである。
以下、ステップS131〜ステップS135の処理について説明し、その他の処理については、説明を省略する。
ステップS133において、両者の物理ページが重複する場合には(ステップS133:Y)、ブレーク解除部203は、両者の論理アドレスのオフセット値が一致するか否かを判定し(ステップS134)、一致する場合には(ステップS134:Y)、ステップS139の処理に移行し、一致しない場合には(ステップS134:N)、ステップS136の処理に移行する。
又、ステップS132において、両者のブレーク設定の登録がなく(ステップS132:N)、停止したタスクについてのブレーク設定のみが登録されている場合には(ステップS135:Y)、ブレーク解除部203は、ステップS136の処理に移行する。
(実施の形態3)
実施の形態1におけるデバッグシステム100おいては、タスクの切替が行われる毎に、ブレーク設定処理とブレーク解除処理を行うこととしたが、実施の形態3におけるデバッグシステム300においては、タスク切替時にブレーク設定表に登録されている全てのブレーク設定が予め行われ、ブレーク設定表に登録されているブレーク設定の内、次に実行すべきタスクとブレーク設定の物理アドレスが異なる全てのブレーク設定が解除される。
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図23は、デバッグシステム300に含まれるデバッグ装置30の構成を示す機能ブロック図である。
図23において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
<動作>
実施の形態1との相違点を中心に説明し、同一の動作を行うものについては、説明を省略する。
(タスク切替処理C)
図15は、マルチタスクOS部301の行うタスク切替処理Cの動作を示すフローチャートである。
(ブレーク設定処理C)
図14は、ブレーク設定部302の行うブレーク設定処理Cの動作を示すフローチャートである。
ソフトウェアブレークである場合に(ステップS142:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部301に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部301より取得し、当該物理アドレスに格納されている元命令を当該ブレーク設定がされているタスク識別子、論理アドレスと対応付けてブレーク設定表に格納することにより、元命令を退避し(ステップS143)、元命令の物理アドレスにブレーク命令を書き込むことによりブレーク設定を行い(ステップS144)、ブレーク設定表に登録されている全てのブレーク設定について、ブレーク設定を完了したか否かを判定し(ステップ146)、完了している場合には(ステップS146:Y)、ブレーク設定処理Cを終了し、完了していない場合には(ステップS146:N)、ステップS141の処理に移行する。
(ブレーク解除処理C)
図16は、ブレーク解除部303の行うブレーク解除処理Cの動作を示すフローチャートである。
ステップS163において、両者の物理ページが重複する場合には(ステップS163:Y)、ブレーク解除部303は、両者の論理アドレスのオフセット値が一致するか否かを判定し(ステップS164)、一致する場合には(ステップS164:Y)、ステップS168の処理に移行し、一致しない場合には(ステップS164:N)、そのブレーク種別がソフトウェアブレークか否かを判定する(ステップS165)。
又、ステップS162の判定が否定的である場合には(ステップS162:N)、ブレーク解除部303は、ブレーク解除処理Cを終了する。
又、ステップS163の判定が否定的である場合には(ステップS163:N)、ステップS165の処理に移行する。
(実施の形態4)
実施の形態1におけるデバッグシステム100おいては、タスクの切替が行われる毎に、ブレーク解除処理を行うこととしたが、実施の形態4におけるデバッグシステム400においては、タスク切替時に実施の形態1と同様にブレーク設定が行われ、次に実行すべきタスクと停止したタスクとが物理ページを共有しない場合には、ブレーク解除処理が省略され、ブレーク解除処理の処理負荷が軽減される。
<構成>
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図24は、デバッグシステム400に含まれるデバッグ装置40の構成を示す機能ブロック図である。
図24において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
<動作>
実施の形態1との相違点を中心に説明し、同一の動作を行うものについては、説明を省略する。
(タスク切替処理D)
図17は、マルチタスクOS部401の行うタスク切替処理Dの動作を示すフローチャートである。
(ブレーク解除処理D)
図18は、ブレーク解除部403の行うブレーク解除処理Dの動作を示すフローチャートである。
又、ステップS182の判定が否定的である場合には(ステップS182:N)、ブレーク解除部403は、ブレーク解除処理Dを終了する。
(実施の形態5)
実施の形態1におけるデバッグシステム100においては、タスクの切替時にまず、ブレーク設定処理を行い、次いで停止したタスクにブレーク設定がされている場合にブレーク解除処理を行うこととしたが、実施の形態5におけるデバッグシステム500においては、タスク切替時にまずブレーク設定表に登録されている全てのブレーク設定を解除した後に、ブレーク設定処理が行われる。
<構成>
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図25は、デバッグシステム500に含まれるデバッグ装置50の構成を示す機能ブロック図である。
図25において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
<動作>
実施の形態1との相違点を中心に説明し、同一の動作を行うものについては、説明を省略する。
(タスク切替処理E)
図19は、マルチタスクOS部501の行うタスク切替処理Eの動作を示すフローチャートである。
(ブレーク解除処理E)
図20は、ブレーク解除部503の行うブレーク解除処理Eの動作を示すフローチャートである。
ステップS202の判定がソフトウェアブレークである場合に(ステップS202:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部501に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部501より取得し、当該ブレーク設定についてブレーク設定表に退避されている元命令を、取得した物理アドレスに書き込み、元命令を復帰させ(ステップS203)、当該ブレーク設定を解除し、ブレーク設定表に登録されている全てのブレーク設定の解除を完了したか否かを判定し(ステップS205)、完了している場合には(ステップS205:Y)、ブレーク解除部503は、ブレーク解除処理Eを終了し、完了していない場合には(ステップS205:N)、ステップS201の処理に移行する。
<補足>
以上、本発明の実施形態1〜5について説明したが、本発明はこれら実施形態に限られないことは勿論である。
又、コマンド入力によらず、GUI(Graphic User Interface)を介して、登録又は削除するブレーク設定に係るタスク識別子、論理アドレス、ブレーク種別を指定することにより、ブレーク設定の登録処理、削除処理を行うこととしてもよい。
10、20、30、40、50 デバッグ装置
11 マルチタスクOS
12 RAM
101、201、301、401、501 マルチタスクOS部
102、202、302 ブレーク設定部
103、203、303、403、503 ブレーク解除部
104 通信部
105 アプリケーション記憶部
106 ページテーブル記憶部
107 タスク管理情報記憶部
108 ブレーク設定表記憶部
Claims (4)
- 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグシステムであって、
前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と、
タスク切替時において、次のタスクが前記設定情報において、デバッグ設定の対象となっている場合に、
前記設定情報においてデバッグ設定の対象となっている、当該次のタスクを含む全てのタスクについて各タスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ設定後の状態にするデバッグ設定制御手段と、
次のタスクと、前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致しない場合に、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ解除後の状態にするデバッグ解除処理を実行し、次のタスクと前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致する場合には、当該次のタスク以外のタスクについては、前記デバッグ解除処理の実行を抑止するデバッグ解除制御手段と、
を備えることを特徴とするデバッグシステム。 - 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグシステムであって、
前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と、
タスク切替時期が到来する毎に、前記設定情報において、切替前のタスクと次のタスクの両者がデバッグ設定の対象となっているか否か及び両者によってそれぞれ使用される物理アドレス空間範囲が重複しているか否かを判定し、
両者がデバッグ設定の対象となっており、かつ、両者によってそれぞれ使用される物理アドレス空間範囲が重複している場合に、両者の各アドレス情報によって特定される物理アドレスが一致するか否かを判定し、
タスク実行開始時に、実行開始するタスクが、前記設定情報において、デバッグ設定の対象となっている場合に、当該実行開始タスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、その後、タスク切替時期が到来する毎に、前記設定情報において、次のタスクがデバッグ設定の対象となっている場合に、当該次のタスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが一致する場合に限り、当該デバッグ設定を抑止するデバッグ設定制御手段と、
タスク切替時期において、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが不一致である場合に限り、切替前のタスクに係る物理アドレスにおいてデバッグ解除を行うデバッグ解除制御手段と、
を備えることを特徴とするデバッグシステム。 - 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグ装置に用いるデバッグ方法であって、
前記デバッグ装置は、
前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と
を備え、
前記デバッグ方法は、
タスク切替時において、次のタスクが前記設定情報において、デバッグ設定の対象となっている場合に、
前記設定情報においてデバッグ設定の対象となっている、当該次のタスクを含む全てのタスクについて各タスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ設定後の状態にするデバッグ設定制御ステップと、
次のタスクと、前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致しない場合に、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ解除後の状態にするデバッグ解除処理を実行し、次のタスクと前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致する場合には、当該次のタスク以外のタスクについては、前記デバッグ解除処理の実行を抑止するデバッグ解除制御ステップと、
を含むことを特徴とするデバッグ方法。 - 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグ装置に用いるデバッグ方法であって、
前記デバッグ装置は、
前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と
を備え、
前記デバッグ方法は、
タスク切替時期が到来する毎に、前記設定情報において、切替前のタスクと次のタスクの両者がデバッグ設定の対象となっているか否か及び両者によってそれぞれ使用される物理アドレス空間範囲が重複しているか否かを判定し、
両者がデバッグ設定の対象となっており、かつ、両者によってそれぞれ使用される物理アドレス空間範囲が重複している場合に、両者の各アドレス情報によって特定される物理アドレスが一致するか否かを判定し、
タスク実行開始時に、実行開始するタスクが、前記設定情報において、デバッグ設定の対象となっている場合に、当該実行開始タスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、その後、タスク切替時期が到来する毎に、前記設定情報において、次のタスクがデバッグ設定の対象となっている場合に、当該次のタスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが一致する場合に限り、当該デバッグ設定を抑止するデバッグ設定制御ステップと、
タスク切替時期において、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが不一致である場合に限り、切替前のタスクに係る物理アドレスにおいてデバッグ解除を行うデバッグ解除制御ステップと、
を含むことを特徴とするデバッグ方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005267335A JP4676289B2 (ja) | 2005-09-14 | 2005-09-14 | デバッグシステム及び方法 |
US11/520,806 US7694182B2 (en) | 2005-09-14 | 2006-09-14 | Debugging system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005267335A JP4676289B2 (ja) | 2005-09-14 | 2005-09-14 | デバッグシステム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007079969A JP2007079969A (ja) | 2007-03-29 |
JP4676289B2 true JP4676289B2 (ja) | 2011-04-27 |
Family
ID=37856712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005267335A Expired - Fee Related JP4676289B2 (ja) | 2005-09-14 | 2005-09-14 | デバッグシステム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7694182B2 (ja) |
JP (1) | JP4676289B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008257438A (ja) * | 2007-04-04 | 2008-10-23 | Sharp Corp | デバッグ装置の制御に用いる例外処理装置、例外処理方法、例外処理プログラム、並びに、前記例外処理装置を組み込んだテレビ及び携帯電話 |
JP2009043061A (ja) * | 2007-08-09 | 2009-02-26 | Oki Electric Ind Co Ltd | デバッグ装置及びデバッグ方法 |
US8156476B2 (en) * | 2008-06-10 | 2012-04-10 | Microsoft Corporation | Debugging support for tasks in multithreaded environments |
KR20110095050A (ko) * | 2010-02-18 | 2011-08-24 | 삼성전자주식회사 | 공유 라이브러리 디버깅 장치 |
JP5550581B2 (ja) * | 2011-02-17 | 2014-07-16 | 三菱電機株式会社 | 共有メモリデバッグ装置及びプログラム |
JP6028355B2 (ja) * | 2012-03-22 | 2016-11-16 | 日本電気株式会社 | 運用管理装置、方法、及び、プログラム |
CN111092767B (zh) * | 2019-12-20 | 2022-10-18 | 北京百度网讯科技有限公司 | 用于调试设备的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172532A (ja) * | 1998-12-08 | 2000-06-23 | Hiroaki Takada | マルチタスクデバッグ装置及びマルチタスクデバッグ方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS638947A (ja) * | 1986-06-30 | 1988-01-14 | Nec Corp | プログラムデバツグサポ−ト方式 |
US5632032A (en) * | 1994-02-07 | 1997-05-20 | International Business Machines Corporation | Cross address space thread control in a multithreaded environment |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6378124B1 (en) * | 1999-02-22 | 2002-04-23 | International Business Machines Corporation | Debugger thread synchronization control points |
US6681384B1 (en) * | 1999-12-23 | 2004-01-20 | International Business Machines Corporation | Multi-threaded break-point |
JP2002014841A (ja) * | 2000-06-30 | 2002-01-18 | Esol Co Ltd | デバッグカーネルシステム |
TWI299468B (en) * | 2004-09-06 | 2008-08-01 | Matsushita Electric Ind Co Ltd | Debug system for debugging multi-task system and a circuit device connected with a host computer |
-
2005
- 2005-09-14 JP JP2005267335A patent/JP4676289B2/ja not_active Expired - Fee Related
-
2006
- 2006-09-14 US US11/520,806 patent/US7694182B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172532A (ja) * | 1998-12-08 | 2000-06-23 | Hiroaki Takada | マルチタスクデバッグ装置及びマルチタスクデバッグ方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070061627A1 (en) | 2007-03-15 |
US7694182B2 (en) | 2010-04-06 |
JP2007079969A (ja) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4676289B2 (ja) | デバッグシステム及び方法 | |
JP3546678B2 (ja) | マルチos構成方法 | |
JP6431521B2 (ja) | スナップショットからのアプリケーションの回復 | |
WO2000045257B1 (en) | Executing programs for a first computer architecture on a computer of a second architecture | |
CN101251792A (zh) | 用于受应用管理的线程单元的结构化异常处理 | |
KR101666032B1 (ko) | 로드 가능한 모듈에 대한 가상화 지원 방법 및 장치 | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2009541834A (ja) | ネイティブコードに結合中に例外処理するための例外処理システム、例外処理方法、変換装置、および記憶媒体 | |
US10162324B2 (en) | Method for manipulating a control program of a control device | |
US7010725B2 (en) | Method and apparatus for getting dump of a computer system | |
CN118377637B (zh) | 减少冗余缓存一致性操作的方法、装置、设备和存储介质 | |
US5375213A (en) | Address translation device and method for managing address information using the device | |
JP4026667B2 (ja) | マルチos構成方法 | |
CN116450398A (zh) | 异常回溯方法、装置、设备和介质 | |
JP6098389B2 (ja) | 電子機器、制御装置及びプログラム | |
EP2960798A1 (en) | Automatic memory leak detection | |
JP6369069B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
JP5212216B2 (ja) | ジョブ処理装置 | |
JP4149619B2 (ja) | 優先度変換システム | |
JP2009199391A (ja) | ガーベージコレクション方法及びその実施装置と処理プログラム | |
JPH05297911A (ja) | シーケンスコントローラ用シーケンス制御回路 | |
JP2011118830A (ja) | マルチタスクシステム、及び、プログラム | |
JP2001325122A (ja) | デバッグ方式及びデバッグ方法 | |
JP4780327B2 (ja) | パーティション・コンテキスト制御装置及び方法、並びにコンピュータ | |
JPH06295265A (ja) | 仮想記憶制御における命令中断情報格納制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080826 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101217 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110118 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110127 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140204 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4676289 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |