JP4676289B2 - デバッグシステム及び方法 - Google Patents

デバッグシステム及び方法 Download PDF

Info

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
Application number
JP2005267335A
Other languages
English (en)
Other versions
JP2007079969A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2005267335A priority Critical patent/JP4676289B2/ja
Priority to US11/520,806 priority patent/US7694182B2/en
Publication of JP2007079969A publication Critical patent/JP2007079969A/ja
Application granted granted Critical
Publication of JP4676289B2 publication Critical patent/JP4676289B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments 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

本発明は、マルチタスク環境のデバッグシステム及び方法に関し、特に、複数のタスクが同一メモリにアクセスする環境下において、当該メモリの記録内容の書き換えを随時行った場合に、当該メモリへアクセスする他のタスクの動作に影響を与えないように制御する技術に関する。
近年、情報家電や自動車制御機器の高機能化、高性能化に伴い、システムに組込まれるソフトウェアの大規模化、複雑化が進んでいる。そのため、組込みソフトウェア分野において、Operating System(OS)の利用が増加しており、OSのほとんどがマルチタスクOSである。
このマルチタスクOSを利用することにより、同時に複数の処理を並行して実行させることが可能となる。具体的には、マイクロコンピュータの処理時間を分割し、複数のアプリケーションプログラムを順番に割り当てることにより、複数の処理を同時に処理しているようにみせている。
マルチタスクOS上で動作するアプリケーションプログラムは、タスクと呼ばれる実行単位として処理される。OSによってはタスクをプロセスと呼ぶことがあり、さらに、同じプロセスに属し、マイクロコンピュータ資源を共有する実行単位をスレッドと呼ぶが、本発明では、特にプロセスとスレッドという実行単位を区別して使わない限り、マルチタスク環境で動作する実行単位をタスクと呼ぶ。
マルチタスク環境で動作する複数のタスクは、独立したメモリ資源を持ちマイクロコンピュータで実行されるが、特定の条件において、メモリ資源を共有することがある。
LinuxというマルチタスクOSでは、1つのアプリケーションプログラムが複数のプロセスとして起動された場合と、1つのプロセスが複数のスレッドとして起動された場合、同一のメモリ資源を共有する。
マイクロコンピュータがメモリ管理ユニット(MMU)を使用する場合、Linuxは仮想記憶機能を使用し、タスクは論理アドレス空間で動作する。1つのアプリケーションプログラムが複数のプロセスとして起動される場合、それぞれのプロセスは異なった論理アドレス空間で動作するが、物理アドレス空間は共有される。また、1つのプロセスが複数のスレッドとして起動される場合、同じ論理アドレス空間で動作し、物理アドレス空間は共有される。
このように、マルチタスク環境で複数のタスクがメモリ資源を共有する場合、デバッガを用いてデバッグ対象のタスクのブレーク設定やメモリの記録内容の書き換えを行うと、デバッグ対象外のタスクの動作に影響を与えることになる。
具体的には、デバッグ対象外のタスクを実行中に他のタスクについて設定されたブレーク設定に基づくブレーク停止が発生したり、デバッグ用に書き換えられた命令が実行されて、実行中のタスクの動作に不具合が生じてしまう。
このような不具合を防止する技術として、特許文献1にデバッグ対象のタスクに対してのみ、当該タスクについて設定されたブレーク設定に基づくブレーク停止を発生させ、デバッグ対象外のタスクに対しては、デバッグ対象のタスクと共有するメモリにおけるブレーク設定を無効化する処理を行い、その後デバッグ対象外のタスクの実行を再開させる技術が開示されている。
これにより、デバッグ対象外のタスク実行中における不要なブレークの発生を抑制し、当該タスクを正常稼動させることができ、マルチタスク環境下でのデバッグ効率を向上することができる。
特開2000−172532
しかしながら、上記従来技術においては、デバッグ対象外のタスクでブレークが発生した場合に再実行を行う必要があり、再実行処理に時間がかかり、デバッグ対象外のタスクのリアルタイム性、すなわち、定められた時間要求を満たして動作することを阻害するという問題が生じる。
本発明は、上記の課題を解決するもので、デバッグ対象のタスクへのブレーク設定が、デバッグ対象外のタスクの動作に影響を与えない、マルチタスク環境のデバッグシステム及び方法を提供することを目的とする。
本発明は、複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグシステムであって、前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と、タスク切替時において、次のタスクが前記設定情報において、デバッグ設定の対象となっている場合に、当該次のタスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ設定後の状態にし、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスの内、当該次のタスクに使用される物理アドレス空間範囲内に属する物理アドレスにおける記録内容をデバッグ解除後の状態にし、次のタスクがデバッグ設定の対象となっていない場合に、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスの内、当該次のタスクに使用される物理アドレス空間範囲内に属する物理アドレスにおける記録内容をデバッグ解除後の状態にする設定制御手段とを備える。
又、本発明は、複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグ装置に用いるデバッグ方法であって、前記デバッグ装置は、前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段とを備え、前記デバッグ方法は、タスク切替時において、次のタスクが前記設定情報において、デバッグ設定の対象となっている場合に、当該次のタスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ設定後の状態にし、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスの内、当該次のタスクに使用される物理アドレス空間範囲内に属する物理アドレスにおける記録内容をデバッグ解除後の状態にし、次のタスクがデバッグ設定の対象となっていない場合に、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスの内、当該次のタスクに使用される物理アドレス空間範囲内に属する物理アドレスにおける記録内容をデバッグ解除後の状態にする設定制御ステップを含むこととしてもよい。
本発明は、上記構成を備えることにより、タスク切替時に次のタスクに使用される物理アドレス空間範囲内において、デバッグ設定がされた状態になっている物理アドレスにおける記録内容は、デバッグ解除後の状態にされるので、デバッグ対象となっている、次のタスク以外の他のタスクにおけるデバッグ設定が、次のタスクの動作に影響を与えないように制御することができる。
ここで、前記設定制御手段は、タスク実行開始時に、実行開始するタスクが、前記設定情報において、デバッグ設定の対象となっている場合に、当該実行開始タスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行う第1設定手段と、その後、タスク切替時期が到来する毎に、前記設定情報において、次のタスクがデバッグ設定の対象となっている場合に当該タスクのアドレス情報の物理アドレスおいてのみ、デバッグ設定を行う第2設定手段と、前記設定情報において、切替前のタスクがデバッグ設定の対象となっている場合に、当該デバッグ設定の物理アドレスにおいて、デバッグ解除をする解除手段とを有することとしてもよい。
又、前記設定制御ステップは、タスク実行開始時に、実行開始するタスクが、前記設定情報において、デバッグ設定の対象となっている場合に、当該実行開始タスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行う第1設定ステップと、その後、タスク切替時期が到来する毎に、前記設定情報において、次のタスクがデバッグ設定の対象となっている場合に当該タスクのアドレス情報の物理アドレスおいてのみ、デバッグ設定を行う第2設定ステップと、前記設定情報において、切替前のタスクがデバッグ設定の対象となっている場合に、当該デバッグ設定の物理アドレスにおいて、デバッグ解除をする解除ステップとを含むこととしてもよい。
これにより、デバッグ設定の対象となっているタスクの物理アドレスにおいてのみ、デバッグの設定と解除が行われるので、タスク切替時におけるデバッグ設定及び解除の処理を最小限にすることができ、デバッグの設定及び解除に要する処理負荷を最小限にとどめることができる。
ここで、前記設定制御手段は、タスク切替時期が到来する毎に、前記設定情報において、切替前のタスクと次のタスクの両者がデバッグ設定の対象となっているか否かを判定する設定判定手段と、両者がデバッグ設定の対象となっている場合に、両者の各アドレス情報によって特定される物理アドレスが一致するか否かを判定するアドレス判定手段とを有し、両者の物理アドレスが一致しない場合に限り、前記第2設定手段は、前記デバッグ設定を行い、前記解除手段は、前記デバッグ解除をすることとしてもよい。
又、前記設定制御ステップは、タスク切替時期が到来する毎に、前記設定情報において、切替前のタスクと次のタスクの両者がデバッグ設定の対象となっているか否かを判定する設定判定ステップと、両者がデバッグ設定の対象となっている場合に、両者の各アドレス情報によって特定される物理アドレスが一致するか否かを判定するアドレス判定ステップとを含み、両者の物理アドレスが一致しない場合に限り、前記第2設定ステップは、前記デバッグ設定を行い、
前記解除ステップは、前記デバッグ解除をすることとしてもよい。
これにより、次のタスクと切替前のタスクのデバッグ設定が、同一の物理アドレスにおいて行われている場合には、タスク切替時におけるデバッグ設定及び解除の処理を省くことができるので、タスク切替時における処理負荷を軽減することができる。
ここで、前記設定制御手段は、タスク切替時期が到来する毎に、切替前のタスクに使用される物理アドレス空間範囲と次のタスクに使用される物理アドレス空間範囲とが重複するか否かを判定する重複判定手段を有し、重複する場合に限り、前記解除手段は、前記デバッグ解除をすることとしてもよい。
又、前記設定制御ステップは、タスク切替時期が到来する毎に、切替前のタスクに使用される物理アドレス空間範囲と次のタスクに使用される物理アドレス空間範囲とが重複するか否かを判定する重複判定ステップを含み、重複する場合に限り、前記解除ステップは、前記デバッグ解除をすることとしてもよい。
これにより、切替前のタスクが次のタスクと共通する物理アドレス空間範囲を使用しない場合には、タスク切替時におけるデバッグ解除処理を省くことができるので、デバッグ解除処理に要する処理負荷を軽減することができる。
<構成>
(デバッグシステムの構成)
図1は、本実施の形態に係るデバッグシステム100の構成を示す機能ブロック図である。デバッグシステム100は、端末1〜3と、デバッグ装置10から構成される。
各端末は、デバッグ装置と通信回線で接続され、通信回線を介して各種コマンドをデバッグ装置10に出力し、当該コマンドに基づく処理結果をデバッグ装置10から受取り、端末の表示部(図外)に表示させる。
デバッグ装置10は、各端末からのアプリケーションプログラム実行コマンドの入力に応じて、アプリケーションプログラムをRAM上の物理アドレス空間にロードし、当該アプリケーションプログラムをマルチタスクOS上で実行することにより、タスクを実行し、実行結果を当該アプリケーションプログラムの実行を要求した端末に送信する。
端末からのコマンドが、デバッグ対象となるアプリケーションプログラムの実行命令である場合には、デバッグ装置10は、後述するブレーク設定表において登録されている論理アドレス空間上のアドレスに対応付けられている、RAM12の物理アドレス空間上のアドレスに記録されている元命令をブレーク命令に書き換えた後、デバッグ対象となるアプリケーションプログラムをマルチタスクOS11上で実行し、ブレーク命令が検出されると、当該アプリケーションプログラムを停止し、処理結果を当該端末に送信する。
図1では、端末1からのアプリケーションプログラム実行コマンドの入力に応じて、タスク1が実行され、端末2からのアプリケーション実行コマンドの入力に応じて、タスク2が実行され、端末3からのアプリケーション実行コマンドの入力に応じてタスク3が実行されていることを具体例として示している。
又、図1では、タスク1、タスク2、タスク3がRAM12上のメモリ領域を共用していることを示している。
(デバッグ装置の構成)
図2は、デバッグ装置10の構成を示す機能ブロック図である。デバッグ装置10は、マルチタスクOS部101、ブレーク設定部102、ブレーク解除部103、通信部104、アプリケーション記憶部105、ページテーブル記憶部106、タスク管理情報記憶部107、ブレーク設定表記憶部108から構成される。
(マルチタスクOS部101)
CPU、MMU(memory management unit)、マルチタスクOS11を含むROM、RAM12から構成され、各アプリケーションプログラムの実行、アプリケーションプログラムに起因するタスクの実行の時分割制御を行う。
MMUは、論理アドレスから物理アドレスへの変換、ROM、RAM12を管理する。
(アプリケーション記憶部105)
デバッグ対象となるアプリケーションプログラムとデバッグ対象外のアプリケーションプログラムとを記憶している。
(ページテーブル記憶部106)
ページテーブルを記憶している。
ここで、「ページテーブル」とは、マルチタスクOS部101によって作成され、管理されるテーブルであり、実行中のタスクが参照する論理アドレスをRAM12上の物理アドレスに変換するためのテーブルのことをいい、具体的には、マルチタスクOS部101が、タスクが参照する論理アドレス空間範囲を論理アドレスの範囲に応じて複数のブロック(以下、各ブロックを「論理ページ」という。)に分割し、分割したブロック単位で対応する大きさの物理アドレス空間範囲(以下、「物理ページ」という。)を割り当て、ページテーブルには、タスク毎に、各論理ページと当該論理ページに割当てられた物理ページにおける先頭の物理アドレス(以下、「ベースアドレス」という。)との対応関係が示されている。
論理ページのサイズとしては、例えば4KByteが用いられ、この場合には、論理アドレスの下位12ビットがオフセット値として、対応する物理ページのベースアドレスに加えられ、論理アドレスから物理アドレスへの変換が行われる。
図4は、ページテーブルをイメージ的に表した図である。図4に示すように、論理アドレスの範囲に応じて、各論理アドレスが属する論理ページが特定され、さらに、特定された各論理ページについて、同じサイズの物理ページがRAM12上に割当てられる。
図6は、マルチタスクOS部101によって行われるアドレス変換の過程をイメージ的に表した図である。図6では、タスク1の参照する論理アドレスKが物理アドレスに変換される過程を具体例として示している。
図6では、タスク1の参照する論理アドレスK(図6の601)について、ページテーブル(図6の602、説明の便宜上、602の内容は、ここでは、図4のページテーブルの内容としている。)を用いて、当該論理アドレスKが属する論理ページL1が特定され(図6の603)、さらに当該ページテーブルを用いて、論理ページL1に対応付けられている物理ページPH1におけるベースアドレス1が特定され(図6の604)、特定されたベースアドレス1と論理アドレスKのオフセット値に基づいて、論理アドレスKに対応する物理アドレスが算出(図6の605)される過程が示されている。
(タスク管理情報記憶部107)
タスク管理情報を記憶している。
ここで、「タスク管理情報」とは、時分割制御の対象となるタスクの識別子と、タスクの実行状態を示す状態情報と、タスクのコンテキストの退避先を示すスタックポインタの値と、現時点におけるタスクの実行の優先順位を示すタスク優先度との対応関係を示す情報のことをいう。タスク管理情報は、マルチタスクOS部101によって作成され、管理される。
図5は、タスク管理情報の具体例を示す。
(ブレーク設定部102)
ブレーク設定の登録処理及びブレーク設定処理を行う。
ここで、「ブレーク設定」とは、アプリケーションプログラムの実行を途中で停止する命令と停止するポイントを論理アドレスで指定することをいう。
1.ブレーク設定の登録処理
端末からブレーク設定を登録するための登録コマンドが通信部104を介して入力されると、登録コマンドを解析して、登録コマンドの指定するタスク識別子、ブレーク設定する論理アドレス、ブレーク種別を特定し、特定したタスク識別子、論理アドレス、ブレーク種別をブレーク設定表に登録する。
ブレーク設定表に登録するブレーク設定は、1つのタスクについて、複数あってもよい。
ここで、「ブレーク設定表」とは、タスクの識別子と当該タスクについて設定されるブレーク設定の論理アドレスと、ブレーク種別との対応関係を示すテーブルのことをいう。
又、「ブレーク種別」とは、ブレーク設定の種類がソフトウェアブレークか、ハードウェアブレークを示す識別子のことをいう。
「ソフトウェアブレーク」とは、アプリケーションプログラムにおいて、特定の論理アドレスの元命令を、当該アプリケーションプログラムを停止する命令(以下、「ブレーク命令」という。)に書き換えることにより、アプリケーションプログラムの実行を途中で停止するブレーク設定のことをいう。
又、「ハードウェアブレーク」とは、CPUのレジスタにアプリケーションプログラムにおける停止位置を示す論理アドレス(以下、「ブレークアドレス」という。)を設定し、CPUが設定された論理アドレスの参照またはこの論理アドレスの命令の実行が行われた際に、アプリケーションプログラムの実行を途中で停止するブレーク設定のことをいう。
ブレーク設定がソフトウェアブレークである場合には、ブレーク命令によって書き換えられる元命令は、ブレーク設定表に退避され、対応するタスク識別子及び論理アドレスと対応付けてブレーク設定表に格納される。
2.ブレーク設定処理
マルチタスクOS部101によってタスクの実行が開始される時又はタスクの切替が行われる時に、次に実行予定のタスクの識別子をマルチタスクOS部101より取得して次に実行予定のタスク識別子を特定し、特定したタスク識別子が後述するブレーク設定表に登録されているか否かを判定し、登録されている場合には、さらにブレーク設定表において、当該タスクの識別子に対応付けられているブレーク種別に基づいて、登録されているブレーク設定がソフトウェアブレークか、ハードウェアブレークかを判別し、ハードウェアブレークの場合には、レジスタにブレーク設定表に登録されている論理アドレスを設定し、ソフトウェアブレークの場合、ブレーク設定表に登録されている論理アドレスに対応するRAM12上の物理アドレスをマルチタスクOS部101より取得し、RAM12上において、当該物理アドレスに格納されている元命令をブレーク設定表に退避し、当該物理アドレスにブレーク命令を書き込む。
(ブレーク解除部103)
ブレーク設定の削除処理及びブレーク設定解除処理を行う。
1.ブレーク設定の削除処理
端末からブレーク設定を削除するための削除コマンドが通信部104を介して入力されると、削除コマンドを解析して、削除コマンドの指定するタスク識別子、論理アドレス、ブレーク種別を特定し、特定したタスク識別子、論理アドレス、ブレーク種別を有するブレーク設定をブレーク設定表から削除する。
2.ブレーク設定解除処理
マルチタスクOS部101によってタスクの切替が行われる時に、停止したタスクの識別子をマルチタスクOS部101より取得し、取得したタスク識別子がブレーク設定表に登録されているか否かを判定し、登録されている場合には、さらにブレーク設定表において、当該タスクの識別子に対応付けられているブレーク種別に基づいて、登録されているブレーク設定がソフトウェアブレークか、ハードウェアブレークかを判別し、ハードウェアブレークの場合には、レジスタに設定されているブレークアドレスの設定を解除し、ソフトウェアブレークの場合、ブレーク設定表に登録されている論理アドレスに対応するRAM12上の物理アドレスをマルチタスクOS部101より取得し、RAM12上の当該物理アドレスにブレーク設定表に退避されている元命令を書き込み、ブレーク設定を解除する。
(通信部104)
各端末から入力された各種コマンドを受信し、マルチタスクOS部101、ブレーク設定部102、ブレーク解除部103、通信部104に出力する。
(ブレーク設定表記憶部108)
ブレーク設定表を記憶している。図3は、ブレーク設定表の具体例を示す。
<動作>
(ブレーク設定の登録処理)
図8は、ブレーク設定部102の行うブレーク設定登録処理の動作を示すフローチャートである。
ブレーク設定部102は、端末からブレーク設定を登録するための登録コマンドが通信部104を介して入力されると(ステップS801)、登録コマンドを解析し(ステップS802)、登録コマンドの指定するタスク識別子、ブレーク設定する論理アドレス、ブレーク種別を特定し(ステップS803)、特定したタスク識別子、論理アドレス、ブレーク種別をブレーク設定表に登録する(ステップS804)。
(ブレーク設定の削除処理)
図21は、ブレーク解除部103の行うブレーク設定削除処理の動作を示すフローチャートである。
ブレーク解除部103は、端末からブレーク設定を削除するための削除コマンドが通信部104を介して入力されると(ステップS2101)、削除コマンドを解析し(ステップS2102)、削除コマンドの指定するタスク識別子、論理アドレス、ブレーク種別を特定し(ステップS2103)、特定したタスク識別子、論理アドレス、ブレーク種別を有するブレーク設定をブレーク設定表から削除する(ステップS2104)。
(タスク切替処理A)
図7は、マルチタスクOS部101の行うタスク切替処理Aの動作を示すフローチャートである。
マルチタスクOS部101は、ディスパッチ(タスク切替)が発生すると(ステップS701)、実行中のタスクを停止し(ステップS702)、実行中のタスクのコンテキスト(レジスタセット、プログラムカウンタ、ステータスレジスタ等)を当該タスクに割当てたRAM12上のメモリ領域(スタック領域)に格納して、コンテキストを退避し(ステップS703)、タスク管理情報記憶部107に記憶されているタスク管理情報において、該当するタスク識別子に対応付けられているスタックポインタの値を退避先のスタックポインタの値に書き換え、そのタスク優先度と状態情報を更新し、ブレーク設定部102に制御を移行し、後述するブレーク設定処理Aを実行させ(ステップS704)、さらにブレーク解除部103に制御を移行し、後述するブレーク解除処理Aを実行させた後(ステップS705)、タスク管理情報のタスク優先度を参照して、タスク優先度が最上位のタスクを次に実行すべきタスクと決定し、当該タスクのスタックポインタの示すコンテキストの退避先から当該タスクのコンテキストを読出し、コンテキストを復帰させ(ステップS706)、当該タスクの実行を開始する(ステップS707)。
(ブレーク設定処理A)
図9は、ブレーク設定部102の行うブレーク設定処理Aの動作を示すフローチャートである。
ブレーク設定部102は、マルチタスクOS部101より、次に実行予定のタスクのタスク識別子を取得して次に実行予定のタスク識別子を特定し、さらにブレーク設定表記憶部108に記憶されているブレーク設定表を参照して、当該タスク識別子についてのブレーク設定の登録の有無を検索し(ステップS901)、ブレーク設定の登録がある場合には(ステップS902:Y)、そのブレーク種別がソフトウェアブレークか否かを判定する(ステップS903)。
ソフトウェアブレークである場合に(ステップS903:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部101に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部101より取得し、当該物理アドレスに格納されている元命令を当該ブレーク設定がされているタスク識別子、論理アドレスと対応付けてブレーク設定表に格納することにより、元命令を退避し(ステップS904)、元命令の物理アドレスにブレーク命令を書き込むことによりブレーク設定を行い(ステップS905)、取得したタスク識別子について登録されている全てのブレーク設定について、検索が完了したか否かを判定し(ステップ907)、完了している場合には(ステップS907:Y)、ブレーク設定処理Aを終了し、完了していない場合には(ステップS907:N)、ステップS901の処理に移行する。
ステップS903の判定が否定的である場合(ステップS903:N)、ブレーク設定部102は、CPUのレジスタにブレークアドレスを設定する(ステップS906)。
又、ステップS902の判定が否定的である場合には(ステップS902:N)、ブレーク設定部102は、ブレーク設定処理Aを終了する。
(ブレーク解除処理A)
図10は、ブレーク解除部103の行うブレーク解除処理Aの動作を示すフローチャートである。
ブレーク解除部103は、停止したタスクの識別子をマルチタスクOS部101より取得し、さらにブレーク設定表記憶部108に記憶されているブレーク設定表を参照して、当該タスク識別子についてのブレーク設定の登録の有無を検索し(ステップS101)、ブレーク設定の登録がある場合には(ステップS102:Y)、そのブレーク種別がソフトウェアブレークか否かを判定する(ステップS103)。
ソフトウェアブレークである場合に(ステップS103:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部101に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部101より取得し、当該ブレーク設定についてブレーク設定表に退避されている元命令を取得した物理アドレスに書き込み、元命令を復帰させ(ステップS104)、停止したタスク識別子について登録されている全てのブレーク設定について、検索が完了したか否かを判定し(ステップS106)、完了している場合には(ステップS106:Y)、ブレーク解除処理Aを終了し、完了していない場合には(ステップS106:N)、ステップS101の処理に移行する。
ステップS103の判定が否定的である場合(ステップS103:N)、ブレーク解除部103は、CPUのレジスタのブレークアドレス設定を解除する(ステップS105)。
又、ステップS102の判定が否定的である場合には(ステップS102:N)、ブレーク解除部103は、ブレーク解除処理Aを終了する。
(実施の形態2)
実施の形態1におけるデバッグシステム100においては、タスクの切替が行われる毎に、ブレーク設定処理とブレーク解除処理を行うこととしたが、実施の形態2におけるデバッグシステム200(実施の形態1の図1に示すデバッグシステム100とは、後述するデバッグ装置の構成のみが異なり、他の構成要素は同一であるので、デバッグシステム200の構成を示す機能ブロック図の図示は省略する。以下、後述するデバッグシステム300、400、500についても同様とする。)においては、次に実行されるタスクについても直前に停止したタスクと同じブレーク設定がされている場合に、タスク切替時のブレーク設定処理及びブレーク解除処理が省かれ、タスク切替処理が迅速に行われる。
<構成>
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図22は、デバッグシステム200に含まれるデバッグ装置20の構成を示す機能ブロック図である。
デバッグ装置20は、マルチタスクOS部201、ブレーク設定部202、ブレーク解除部203、通信部104、アプリケーション記憶部105、ページテーブル記憶部106、タスク管理情報記憶部107、ブレーク設定表記憶部108から構成される。
図22において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
マルチタスクOS部201、ブレーク設定部202及びブレーク解除部203の有する機能における相違点については、後述する。
<動作>
実施の形態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の処理と同じである。
以下、ステップS121〜ステップS125の処理について説明し、その他の処理については、説明を省略する。
ブレーク設定部202は、マルチタスクOS部201より、停止したタスクと次に実行予定のタスクのタスク識別子をそれぞれ取得して両者のタスク識別子を特定し、さらにブレーク設定表記憶部108に記憶されているブレーク設定表を参照して、両者のタスク識別子についてのブレーク設定の登録の有無を検索し(ステップS121)、両者のブレーク設定の登録がある場合には(ステップS122:Y)、両者のブレーク設定の論理アドレスをマルチタスクOS部201に通知し、両者の論理アドレスがそれぞれ属する物理ページをマルチタスクOS部201より取得し、両者の物理ページが重複するか否かを判定する(ステップS123)。
ここで、マルチタスクOS部201は、ページテーブル記憶部106に記憶されているページテーブルを参照して、通知された両者の論理アドレスに対応付けられている物理ページを特定し、ブレーク設定部202に通知する。
ステップS123において、両者の物理ページが重複する場合には(ステップS123:Y)、ブレーク設定部202は、両者の論理アドレスのオフセット値が一致するか否かを判定し(ステップS124)、一致する場合には(ステップS124:Y)、ステップS130の処理に移行し、一致しない場合には(ステップS124:N)、ステップS126の処理に移行する。
ステップS123において、両者の物理ページが重複しない場合には(ステップS123:N)、ステップS126の処理に移行する。
又、ステップS122において、両者のブレーク設定の登録がなく(ステップS122:N)、次に実行すべきタスクについてのブレーク設定のみが登録されている場合には(ステップS125:Y)、ブレーク設定部202は、ステップS126の処理に移行する。
又、ステップS125の判定が否定的である場合には(ステップS125:N)、ブレーク設定部202は、ブレーク設定処理Bを終了する。
(ブレーク解除処理B)
図13は、ブレーク解除部203の行うブレーク解除処理Bの動作を示すフローチャートである。
ブレーク解除処理Bは、ステップS131〜ステップS135の処理において、実施の形態1におけるブレーク解除処理Aと異なり、ステップS136〜ステップS139の処理は、図10のブレーク解除処理BのステップS103〜ステップS106の処理と同じである。
以下、ステップS131〜ステップS135の処理について説明し、その他の処理については、説明を省略する。
ブレーク解除部203は、マルチタスクOS部201より、停止したタスクと次に実行予定のタスクのタスク識別子をそれぞれ取得し、さらにブレーク設定表記憶部108に記憶されているブレーク設定表を参照して、両者のタスク識別子についてのブレーク設定の登録の有無を検索し(ステップS131)、両者のブレーク設定の登録がある場合には(ステップS132:Y)、両者のブレーク設定の論理アドレスをマルチタスクOS部201に通知し、両者の論理アドレスがそれぞれ属する物理ページをマルチタスクOS部201より取得し、両者の物理ページが重複するか否かを判定する(ステップS133)。
ここで、マルチタスクOS部201は、ページテーブル記憶部106に記憶されているページテーブルを参照して、通知された両者の論理アドレスに対応付けられている物理ページを特定し、ブレーク解除部203に通知する。
ステップS133において、両者の物理ページが重複する場合には(ステップS133:Y)、ブレーク解除部203は、両者の論理アドレスのオフセット値が一致するか否かを判定し(ステップS134)、一致する場合には(ステップS134:Y)、ステップS139の処理に移行し、一致しない場合には(ステップS134:N)、ステップS136の処理に移行する。
ステップS133において、両者の物理ページが重複しない場合には(ステップS133:N)、ステップS136の処理に移行する。
又、ステップS132において、両者のブレーク設定の登録がなく(ステップS132:N)、停止したタスクについてのブレーク設定のみが登録されている場合には(ステップS135:Y)、ブレーク解除部203は、ステップS136の処理に移行する。
又、ステップS135の判定が否定的である場合には(ステップS135:N)、ブレーク解除部203は、ブレーク解除処理Bを終了する。

(実施の形態3)
実施の形態1におけるデバッグシステム100おいては、タスクの切替が行われる毎に、ブレーク設定処理とブレーク解除処理を行うこととしたが、実施の形態3におけるデバッグシステム300においては、タスク切替時にブレーク設定表に登録されている全てのブレーク設定が予め行われ、ブレーク設定表に登録されているブレーク設定の内、次に実行すべきタスクとブレーク設定の物理アドレスが異なる全てのブレーク設定が解除される。
<構成>
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図23は、デバッグシステム300に含まれるデバッグ装置30の構成を示す機能ブロック図である。
デバッグ装置30は、マルチタスクOS部301、ブレーク設定部302、ブレーク解除部303、通信部104、アプリケーション記憶部105、ページテーブル記憶部106、タスク管理情報記憶部107、ブレーク設定表記憶部108から構成される。
図23において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
マルチタスクOS部301、ブレーク設定部302及びブレーク解除部303の有する機能における相違点については、後述する。
<動作>
実施の形態1との相違点を中心に説明し、同一の動作を行うものについては、説明を省略する。
タスク切替処理C)
図15は、マルチタスクOS部301の行うタスク切替処理Cの動作を示すフローチャートである。
図15に示すように、タスク切替処理Cにおいては、実施の形態1におけるタスク切替処理Aとは、ステップS704及びステップS705でそれぞれ示すブレーク設定処理及びブレーク解除処理の内容が異なる。
(ブレーク設定処理C)
図14は、ブレーク設定部302の行うブレーク設定処理Cの動作を示すフローチャートである。
ブレーク設定部302は、ブレーク設定表に登録されている各ブレーク設定を検索し(ステップS141)、検索した各ブレーク設定の示すブレーク種別に基づいて、当該ブレーク設定がソフトウェアブレークか否かを判定する(ステップS142)。
ソフトウェアブレークである場合に(ステップS142:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部301に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部301より取得し、当該物理アドレスに格納されている元命令を当該ブレーク設定がされているタスク識別子、論理アドレスと対応付けてブレーク設定表に格納することにより、元命令を退避し(ステップS143)、元命令の物理アドレスにブレーク命令を書き込むことによりブレーク設定を行い(ステップS144)、ブレーク設定表に登録されている全てのブレーク設定について、ブレーク設定を完了したか否かを判定し(ステップ146)、完了している場合には(ステップS146:Y)、ブレーク設定処理Cを終了し、完了していない場合には(ステップS146:N)、ステップS141の処理に移行する。
ステップS142の判定が否定的である場合(ステップS142:N)、ブレーク設定部302は、CPUのレジスタにブレークアドレスを設定する(ステップS145)。
(ブレーク解除処理C)
図16は、ブレーク解除部303の行うブレーク解除処理Cの動作を示すフローチャートである。
ブレーク解除部303は、次に実行予定のタスクの識別子をマルチタスクOS部301より取得し、さらにブレーク設定表記憶部108に記憶されているブレーク設定表を参照して、当該タスク識別子以外のタスク識別子についてのブレーク設定の登録の有無を検索し(ステップS161)、次に実行予定のタスク識別子以外のタスク識別子についてのブレーク設定の登録がある場合には(ステップS162:Y)、当該タスク識別子と次に実行予定のタスク識別子の両者のブレーク設定の論理アドレスをマルチタスクOS部301に通知し、両者の論理アドレスがそれぞれ属する物理ページをマルチタスクOS部301より取得し、両者の物理ページが重複するか否かを判定する(ステップS163)。
ここで、マルチタスクOS部301は、ページテーブル記憶部106に記憶されているページテーブルを参照して、通知された両者の論理アドレスに対応付けられている物理ページを特定し、ブレーク解除部303に通知する。
ステップS163において、両者の物理ページが重複する場合には(ステップS163:Y)、ブレーク解除部303は、両者の論理アドレスのオフセット値が一致するか否かを判定し(ステップS164)、一致する場合には(ステップS164:Y)、ステップS168の処理に移行し、一致しない場合には(ステップS164:N)、そのブレーク種別がソフトウェアブレークか否かを判定する(ステップS165)。
ソフトウェアブレークである場合に(ステップS165:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部301に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部301より取得し、当該ブレーク設定についてブレーク設定表に退避されている元命令を取得した物理アドレスに書き込み、元命令を復帰させ(ステップS166)、次に実行すべきタスク識別子以外のタスク識別子について登録されている全てのブレーク設定について、検索が完了したか否かを判定し(ステップS168)、完了している場合には(ステップS168:Y)、ブレーク解除処理Cを終了し、完了していない場合には(ステップS168:N)、ステップS161の処理に移行する。
ステップS165の判定が否定的である場合(ステップS165:N)、ブレーク解除部303は、CPUのレジスタのブレークアドレス設定を解除する(ステップS167)。
又、ステップS162の判定が否定的である場合には(ステップS162:N)、ブレーク解除部303は、ブレーク解除処理Cを終了する。
又、ステップS164の判定が肯定的である場合には(ステップS164:Y)、ステップS168の処理に移行する。
又、ステップS163の判定が否定的である場合には(ステップS163:N)、ステップS165の処理に移行する。
(実施の形態4)
実施の形態1におけるデバッグシステム100おいては、タスクの切替が行われる毎に、ブレーク解除処理を行うこととしたが、実施の形態4におけるデバッグシステム400においては、タスク切替時に実施の形態1と同様にブレーク設定が行われ、次に実行すべきタスクと停止したタスクとが物理ページを共有しない場合には、ブレーク解除処理が省略され、ブレーク解除処理の処理負荷が軽減される。
<構成>
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図24は、デバッグシステム400に含まれるデバッグ装置40の構成を示す機能ブロック図である。
デバッグ装置40は、マルチタスクOS部401、ブレーク設定部102、ブレーク解除部403、通信部104、アプリケーション記憶部105、ページテーブル記憶部106、タスク管理情報記憶部107、ブレーク設定表記憶部108から構成される。
図24において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
マルチタスクOS部401、ブレーク解除部403の有する機能における相違点については、後述する。
<動作>
実施の形態1との相違点を中心に説明し、同一の動作を行うものについては、説明を省略する。
タスク切替処理D)
図17は、マルチタスクOS部401の行うタスク切替処理Dの動作を示すフローチャートである。
図17に示すように、タスク切替処理Dにおいては、実施の形態1におけるタスク切替処理Aとは、ステップS705で示すブレーク解除処理の内容が異なる。
(ブレーク解除処理D)
図18は、ブレーク解除部403の行うブレーク解除処理Dの動作を示すフローチャートである。
ブレーク解除部403は、停止したタスク及び次に実行すべきタスクのタスク識別子をマルチタスクOS部401より取得し、さらに、次に実行予定のタスクに割当てられた物理ページと、停止したタスクに割当てられた物理ページとをマルチタスクOS部401を介して特定し、特定した前者の物理ページと後者の各物理ページとを比較し(ステップS181)、前者の物理ページと後者の物理ページが重複するか否かを判定する(ステップS182)。
両者が重複する場合(ステップS182:Y)、ブレーク解除部403は、ブレーク設定表を参照して、停止したタスク識別子についてのブレーク設定の登録の有無を検索し(ステップS183)、ブレーク設定の登録がある場合には(ステップS184:Y)、停止したタスク識別子についてのブレーク設定がソフトウェアブレークか否かを判定する(ステップS185)。
ステップS185の判定がソフトウェアブレークである場合に(ステップS185:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部401に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部401より取得し、当該ブレーク設定についてブレーク設定表に退避されている元命令を、取得した物理アドレスに書き込み、元命令を復帰させ(ステップS186)、停止したタスク識別子について登録されている全てのブレーク設定について、検索が完了したか否かを判定し(ステップ188)、完了している場合には(ステップS188:Y)、ブレーク解除処理Dを終了し、完了していない場合には(ステップS188:N)、ステップS181の処理に移行する。
ステップS185の判定が否定的である場合(ステップS185:N)、ブレーク解除部403は、CPUのレジスタのブレークアドレス設定を解除する(ステップS187)。
又、ステップS182の判定が否定的である場合には(ステップS182:N)、ブレーク解除部403は、ブレーク解除処理Dを終了する。
又、ステップS184の判定が否定的である場合には(ステップS184:N)、ブレーク解除処理Dを終了する。
(実施の形態5)
実施の形態1におけるデバッグシステム100においては、タスクの切替時にまず、ブレーク設定処理を行い、次いで停止したタスクにブレーク設定がされている場合にブレーク解除処理を行うこととしたが、実施の形態5におけるデバッグシステム500においては、タスク切替時にまずブレーク設定表に登録されている全てのブレーク設定を解除した後に、ブレーク設定処理が行われる。
<構成>
実施の形態1におけるデバッグシステム100と共通する構成要素については説明を省略し、相違点を中心に説明する。
(デバッグ装置の構成)
図25は、デバッグシステム500に含まれるデバッグ装置50の構成を示す機能ブロック図である。
デバッグ装置50は、マルチタスクOS部501、ブレーク設定部102、ブレーク解除部503、通信部104、アプリケーション記憶部105、ページテーブル記憶部106、タスク管理情報記憶部107、ブレーク設定表記憶部108から構成される。
図25において、実施の形態1におけるデバッグ装置10と同一の構成要素については、同一の番号を付している。
マルチタスクOS部501、ブレーク解除部503の有する機能における相違点については、後述する。
<動作>
実施の形態1との相違点を中心に説明し、同一の動作を行うものについては、説明を省略する。
タスク切替処理E)
図19は、マルチタスクOS部501の行うタスク切替処理Eの動作を示すフローチャートである。
図19に示すように、タスク切替処理Eにおいては、実施の形態1におけるタスク切替処理Aとは、ステップS704及びステップS705で示すブレーク設定処理とブレーク解除処理の順序が逆になっている点、ステップS705で示すブレーク解除処理の内容が異なる。
(ブレーク解除処理E)
図20は、ブレーク解除部503の行うブレーク解除処理Eの動作を示すフローチャートである。
ブレーク解除部503は、ブレーク設定表に登録されているブレーク設定を検索し(ステップS201)、検索した各ブレーク設定の示すブレーク種別に基づいて、当該ブレーク設定がソフトウェアブレークか否かを判定する(ステップS202)。
ステップS202の判定がソフトウェアブレークである場合に(ステップS202:Y)、当該ブレーク設定がされている論理アドレスをマルチタスクOS部501に通知して、当該論理アドレスのRAM12上の物理アドレスを特定させ、特定された物理アドレスをマルチタスクOS部501より取得し、当該ブレーク設定についてブレーク設定表に退避されている元命令を、取得した物理アドレスに書き込み、元命令を復帰させ(ステップS203)、当該ブレーク設定を解除し、ブレーク設定表に登録されている全てのブレーク設定の解除を完了したか否かを判定し(ステップS205)、完了している場合には(ステップS205:Y)、ブレーク解除部503は、ブレーク解除処理Eを終了し、完了していない場合には(ステップS205:N)、ステップS201の処理に移行する。
ステップS202の判定が否定的である場合(ステップS202:N)、ブレーク解除部503は、CPUのレジスタのブレークアドレス設定を解除する(ステップS204)。
<補足>
以上、本発明の実施形態1〜5について説明したが、本発明はこれら実施形態に限られないことは勿論である。
(1)本実施の形態1〜5においては、元命令をブレーク命令に書き換えることにより、マルチタスク環境下でのデバッグ処理を行うこととしたが、元命令をブレーク命令ではなく、他の命令に書き換えることによりデバッグ処理を行うこととしてもよいし、特定の物理アドレスのデータを書き換えることにより、デバッグ処理を行うこととし、タスク切替が行われる時に、実施の形態1〜5で説明したブレーク設定処理の代わりにデバッグ処理を行い、ブレーク解除処理の代わりに、書き換えた命令又はデータを元の命令又はデータに書き換えることにより、デバッグ処理の解除を行うこととしてもよい。
(2)本実施の形態1〜5においては、端末1〜3からのコマンド入力により、ブレーク設定の登録処理、削除処理、デバッグの実行を行うこととしたが、デバッグ装置に入力部を設け、当該入力部からコマンド入力することにより、上記処理及びデバッグを実行することとしてもよい。
又、コマンド入力によらず、GUI(Graphic User Interface)を介して、登録又は削除するブレーク設定に係るタスク識別子、論理アドレス、ブレーク種別を指定することにより、ブレーク設定の登録処理、削除処理を行うこととしてもよい。
(3)実施の形態4においては、タスク切替時に、ブレーク設定処理Aを行うこととしたが、ブレーク設定処理Aの代わりに、ブレーク設定処理Cを行い、ブレーク設定表に登録されている、次に実行すべきタスク以外の各タスクについてのブレーク解除処理Dと同様のブレーク解除処理D'を行うこととしてもよい。図26は、上記の場合におけるブレーク解除部403の行うブレーク解除処理D'の動作を示すフローチャートである。
本発明は、複数のタスクが同一メモリにアクセスする環境下において、当該メモリの記録内容の書き換えを随時行ってデバッグを実行する場合に、当該メモリへアクセスする他のタスクの動作に影響を与えないように制御する技術として利用できる。
本実施の形態に係るデバッグシステム100の構成を示す機能ブロック図である。 デバッグ装置10の構成を示す機能ブロック図である。 ブレーク設定表の具体例を示す。 ページテーブルをイメージ的に表した図である。 タスク管理情報の具体例を示す。 マルチタスクOS部101によって行われるアドレス変換の過程をイメージ的に表した図である。 マルチタスクOS部101の行うタスク切替処理Aの動作を示すフローチャートである。 ブレーク設定部102の行うブレーク設定登録処理の動作を示すフローチャートである。 ブレーク設定部102の行うブレーク設定処理Aの動作を示すフローチャートである。 ブレーク解除部103の行うブレーク解除処理Aの動作を示すフローチャートである。 マルチタスクOS部201の行うタスク切替処理Bの動作を示すフローチャートである。 ブレーク設定部202の行うブレーク設定処理Bの動作を示すフローチャートである。 ブレーク解除部203の行うブレーク解除処理Bの動作を示すフローチャートである。 ブレーク設定部302の行うブレーク設定処理Cの動作を示すフローチャートである。 マルチタスクOS部301の行うタスク切替処理Cの動作を示すフローチャートである。 ブレーク解除部303の行うブレーク解除処理Cの動作を示すフローチャートである。 マルチタスクOS部401の行うタスク切替処理Dの動作を示すフローチャートである。 ブレーク解除部403の行うブレーク解除処理Dの動作を示すフローチャートである。 マルチタスクOS部501の行うタスク切替処理Eの動作を示すフローチャートである。 ブレーク解除部503の行うブレーク解除処理Eの動作を示すフローチャートである。 ブレーク解除部103の行うブレーク設定削除処理の動作を示すフローチャートである。 デバッグシステム200に含まれるデバッグ装置20の構成を示す機能ブロック図である。 デバッグシステム300に含まれるデバッグ装置30の構成を示す機能ブロック図である。 デバッグシステム400に含まれるデバッグ装置40の構成を示す機能ブロック図である。 デバッグシステム500に含まれるデバッグ装置50の構成を示す機能ブロック図である。 ブレーク解除部403の行うブレーク解除処理D'の動作を示すフローチャートである。
符号の説明
1〜3 端末
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)

  1. 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグシステムであって、
    前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
    デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と、
    タスク切替時において、次のタスクが前記設定情報において、デバッグ設定の対象となっている場合に、
    前記設定情報においてデバッグ設定の対象となっている、当該次のタスクを含む全てのタスクについて各タスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ設定後の状態にするデバッグ設定制御手段と、
    次のタスクと、前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致しない場合に、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ解除後の状態にするデバッグ解除処理を実行し、次のタスクと前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致する場合には、当該次のタスク以外のタスクについては、前記デバッグ解除処理の実行を抑止するデバッグ解除制御手段と、
    を備えることを特徴とするデバッグシステム。
  2. 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグシステムであって、
    前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
    デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と、
    タスク切替時期が到来する毎に、前記設定情報において、切替前のタスクと次のタスクの両者がデバッグ設定の対象となっているか否か及び両者によってそれぞれ使用される物理アドレス空間範囲が重複しているか否かを判定
    両者がデバッグ設定の対象となっており、かつ、両者によってそれぞれ使用される物理アドレス空間範囲が重複している場合に、両者の各アドレス情報によって特定される物理アドレスが一致するか否かを判定
    タスク実行開始時に、実行開始するタスクが、前記設定情報において、デバッグ設定の対象となっている場合に、当該実行開始タスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、その後、タスク切替時期が到来する毎に、前記設定情報において、次のタスクがデバッグ設定の対象となっている場合に、当該次のタスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが一致する場合に限り、当該デバッグ設定を抑止するデバッグ設定制御手段と、
    タスク切替時期において、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが不一致である場合に限り、切替前のタスクに係る物理アドレスにおいてデバッグ解除を行うデバッグ解除制御手段と、
    を備えることを特徴とするデバッグシステム。
  3. 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグ装置に用いるデバッグ方法であって、
    前記デバッグ装置は、
    前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
    デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と
    を備え、
    前記デバッグ方法は、
    タスク切替時において、次のタスクが前記設定情報において、デバッグ設定の対象となっている場合に、
    前記設定情報においてデバッグ設定の対象となっている、当該次のタスクを含む全てのタスクについて各タスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ設定後の状態にするデバッグ設定制御ステップと、
    次のタスクと、前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致しない場合に、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスにおける記録内容をデバッグ解除後の状態にするデバッグ解除処理を実行し、次のタスクと前記設定情報においてデバッグ設定の対象となっている次のタスク以外のタスクとにそれぞれ使用される物理アドレス空間範囲が重複し、かつ、次のタスクのアドレス情報の特定する物理アドレスが、当該次のタスク以外のタスクのアドレス情報の特定する物理アドレスと一致する場合には、当該次のタスク以外のタスクについては、前記デバッグ解除処理の実行を抑止するデバッグ解除制御ステップと、
    を含むことを特徴とするデバッグ方法。
  4. 複数のタスクが時分割に切替えられて、連続的に実行される実行環境下で、少なくとも2つ以上のタスクに共用されるメモリ領域内の一部の記録内容を書き換えるデバッグ設定と、書き換えた記録内容を元の記録内容に戻すデバッグ解除を随時行ってデバッグを実行するデバッグ装置に用いるデバッグ方法であって、
    前記デバッグ装置は、
    前記各タスクに使用されるメモリ領域の物理アドレス空間範囲を記憶しているアドレス空間記憶手段と、
    デバッグ設定の対象となるタスクとデバッグ設定が行われる物理アドレスを特定するアドレス情報との対応関係を示す設定情報を記憶している設定情報記憶手段と
    を備え、
    前記デバッグ方法は、
    タスク切替時期が到来する毎に、前記設定情報において、切替前のタスクと次のタスクの両者がデバッグ設定の対象となっているか否か及び両者によってそれぞれ使用される物理アドレス空間範囲が重複しているか否かを判定
    両者がデバッグ設定の対象となっており、かつ、両者によってそれぞれ使用される物理アドレス空間範囲が重複している場合に、両者の各アドレス情報によって特定される物理アドレスが一致するか否かを判定し、
    タスク実行開始時に、実行開始するタスクが、前記設定情報において、デバッグ設定の対象となっている場合に、当該実行開始タスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、その後、タスク切替時期が到来する毎に、前記設定情報において、次のタスクがデバッグ設定の対象となっている場合に、当該次のタスクのアドレス情報の特定する物理アドレスにおいてのみ、デバッグ設定を行い、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが一致する場合に限り、当該デバッグ設定を抑止するデバッグ設定制御ステップと、
    タスク切替時期において、切替前のタスクと次のタスクの両者の各アドレス情報によって特定される物理アドレスが不一致である場合に限り、切替前のタスクに係る物理アドレスにおいてデバッグ解除を行うデバッグ解除制御ステップと、
    を含むことを特徴とするデバッグ方法。
JP2005267335A 2005-09-14 2005-09-14 デバッグシステム及び方法 Expired - Fee Related JP4676289B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172532A (ja) * 1998-12-08 2000-06-23 Hiroaki Takada マルチタスクデバッグ装置及びマルチタスクデバッグ方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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