JP2856152B2 - カーネルデバッガにおけるソフトウェアブレークポイント管理方式 - Google Patents

カーネルデバッガにおけるソフトウェアブレークポイント管理方式

Info

Publication number
JP2856152B2
JP2856152B2 JP8159109A JP15910996A JP2856152B2 JP 2856152 B2 JP2856152 B2 JP 2856152B2 JP 8159109 A JP8159109 A JP 8159109A JP 15910996 A JP15910996 A JP 15910996A JP 2856152 B2 JP2856152 B2 JP 2856152B2
Authority
JP
Japan
Prior art keywords
breakpoint
address
information
symbol
management table
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
JP8159109A
Other languages
English (en)
Other versions
JPH09319615A (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.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP8159109A priority Critical patent/JP2856152B2/ja
Publication of JPH09319615A publication Critical patent/JPH09319615A/ja
Application granted granted Critical
Publication of JP2856152B2 publication Critical patent/JP2856152B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ブレークポイント
の設定によるプログラムのデバッグ技術に関し、特に、
ローダブルモジュールのデバッグにも対応したプログラ
ムのデバッグ方法及び装置に関する。
【0002】
【従来の技術】オペレーティングシステム(OS)のカ
ーネル空間での動作をデバッグ対象とするデバッガを
「カーネルデバッガ」と呼ぶ。一般に、ハードウェアブ
レークポイント機構を持たないシステムにおいては、カ
ーネルデバッガが、OSのテキスト上に、直接、ブレー
ク命令(break命令)を書き込むことにより、ブレ
ークポイントの設定によるデバッグを実現している。こ
のような方法は、通常、「ソフトウェアブレークポイン
ト制御方法」と呼ばれている。そして、この種のソフト
ウェアブレークポイント制御には、基本的に、ブレーク
命令を書き込むアドレスを保持した管理テーブルが用い
られる。
【0003】
【発明が解決しようとする課題】上記した従来のカーネ
ルデバッガにおいては、デバッグ対象のローダブルモジ
ュール(loadable module;OS動作中
にメモリ上へのロード(load)/アンロード(un
load)操作が可能なドライバモジュール等)に、ブ
レークポイントが設定された場合に、当該ローダブルモ
ジュールがアンロードされると、カーネルデバッガのブ
レークポイントに関する管理テーブルには、本来無効で
あるはずのブレークポイント情報が残ってしまう、とい
う問題点を有している。
【0004】この理由は、従来のカーネルデバッガにお
いては、ローダブルモジュールのロード/アンロード状
態を、直接カーネルデバッガから知る手だてがない、こ
とによる。
【0005】また、上記した従来技術においては、第2
の問題点として、アンロード状態にあったデバッグ対象
のモジュールが再ロードされた場合、再ロードされるメ
モリ上のアドレスが、以前ロードされていたアドレスと
一致しているという保証はないため、カーネルデバッガ
内に残っていた対象モジュールに関するブレークポイン
ト情報と、実際に再ロードされたモジュールと、の整合
性が保たれない場合がが生じる。
【0006】この理由は、従来のカーネルデバッガにお
いては、ブレークポイント情報の管理が、ブレーク命令
を設定したアドレスを基に行われているため、再ロード
されたモジュールとの整合性が検証する手だてを有しな
いことによる。
【0007】従って、本発明は、上記事情に鑑みてなさ
れたものであって、その目的は、ブレーク命令を書き込
むアドレスによるブレークポイント管理の不備を補い、
ローダブルモジュールのロード/アンロード状態に依ら
ず、常に適正なブレークポイントの管理及び制御を可能
とする方法及び装置を提供することにある。
【0008】
【課題を解決するための手段】前記目的を達成するた
め、本発明に係るプログラムデガッグ方法は、モジュー
ルのロード/アンロードが自在とされてなるシステムの
プログラムデバッグにおいて、メモリ上にロードされた
モジュールのアドレスおよびシンボル情報を保持するシ
ンボル情報テーブルと、前記シンボル情報テーブルを基
に、指定アドレスに対応するシンボル情報とオフセット
値を取得するとともに、指定シンボルに対応するアドレ
スを取得するアドレス・シンボル相互変換手段と、を備
え、(a)ブレークポイント管理テーブルに、ブレーク
ポイントアドレスと、これに対応したシンボル情報と、
シンボルが示すアドレスからブレークポイントアドレス
までのオフセット値と、を設定し、メモリ上にブレーク
命令を設定する、ブレークポイント設定管理工程と、
(b)デバッガ起動時に、前記ブレークポイント管理テ
ーブル上のシンボル情報に対して前記アドレス−シンボ
ル相互変換手段を利用して、シンボルからアドレスへの
変換を試み、アドレス情報に基づき、デバッグ対象のモ
ジュールのアンロード/ロード状態、さらに再ロード状
態を判別して前記ブレークポイント管理テーブルのブレ
ークポイント情報の妥当性を検証し、該検証結果に応じ
、前記ブレークポイント管理テーブルの更新、及び/
又は、ブレークポイントの再設定を行う、ブレークポイ
ント情報の整合性管理工程と、を含むことを特徴とす
る。また本発明のデバッグ装置は、モジュールのロード
/アンロードが自在とされてなるシステムのプログラム
デバッグ装置において、メモリ上にロードされたモジュ
ールのアドレスおよびシンボル情報を保持するシンボル
情報テーブルと、前記シンボル情報テーブルを基に、指
定アドレスに対応するシンボル情報とオフセット値を取
得するとともに、指定シンボルに対応するアドレスを取
得するアドレス・シンボル相互変換手段と、ブレークポ
イント管理テーブルに、ブレークポイントアドレスと、
これに対応したシンボル情報と、シンボルが示すアドレ
スからブレークポイントアドレスまでのオフセット値
と、を設定し、メモリ上にブレーク命令を設定する、ブ
レークポイント設定管理手段と、デバッガ起動時に、前
記ブレークポイント管理テーブル上のシンボル情報に対
して、前記アドレス−シン ボル相互変換手段を利用し
て、シンボルからアドレスへの変換を試み、アドレス情
報に基づきデバッグ対象のモジュールのロード/アンロ
ード、再ロード状態を判別して前記ブレークポイント管
理テーブルのブレークポイント情報の妥当性を検証し、
該検証結果に応じて、前記ブレークポイント管理テーブ
ルの更新、及び/又は、ブレークポイントの再設定を行
う、ブレークポイント情報の整合性管理手段と、を含
【0009】
【発明の実施の形態】本発明の好ましい実施の形態を以
下に説明する。本発明は、好ましい実施の形態におい
て、デバッグ対象モジュールのロード/アンロード状態
に依らないソフトウェアブレークポイントによるデバッ
グに関するもので、現在メモリ上にロードされているオ
ブジェクトのシンボルとそのアドレスおよびシンボルに
関する補助情報を格納するシンボル情報テーブル(図2
の16)と、オブジェクトのアドレスとシンボルとのア
ドレス−シンボル相互変換手段(図2の15)と、1つ
の設定ブレークポイントに対し、元の命令、ブレークポ
イント設定アドレス、そのアドレスに関するシンボル、
シンボルが表すアドレスからブレークポイント設定アド
レスまでのオフセット値およびブレークポイント制御情
報を格納するブレークポイント管理テーブル(図2の1
1)と、更に、一旦は不正となったブレークポイント情
報を退避させておく、ブレークポイント管理テーブルと
全く同じ形式のブレークポイント退避テーブル(図2の
12)と、を備え、ブレークポイント設定管理手順(図
2の131)と、デバッガに処理が移った際のブレーク
ポイント設定および退避ブレークポイント整合性管理手
順(図2の101)と、を備えて構成される。
【0010】前述したように、一般に、ブレーク命令を
書き込んだアドレスに基づいてブレークポイント情報を
管理した場合、ブレークポイントを設定したローダブル
モジュールがアンロード/再ロードされると、ブレーク
ポイント管理情報の整合性は保証できなくなる。更に、
対象モジュールに対してブレーク命令の再設定を行おう
としても、再設定すべきブレーク命令の位置が特定でき
ない。
【0011】そこで、本発明は、好ましい実施の形態に
おいて、対象モジュールがロードされるメモリ上のアド
レスは不定であるが、モジュール内部のシンボルは不変
であることに着目し、対象モジュールがロードされるメ
モリ上のアドレスとシンボルとの変換機構(図2の1
5)を導入すると共に、シンボルが示す位置をベースと
して相対位置(オフセット)を用いることにより、任意
のアドレスにモジュールがロードされた場合でも、モジ
ュールに設定したブレークポイントの位置が特定できる
ように構成したものである。
【0012】このように、本発明の実施の形態において
は、アドレス−シンボル相互変換手段の導入により、モ
ジュールのロード/アンロード状態が判別できるため、
デバッグ対象のモジュールがロード/アンロードされた
場合でも、ブレークポイント管理テーブルには常に有効
な情報のみが設定されることになる。上記した本発明の
実施の形態を更に詳細に説明すべく、本発明の実施例を
図面を参照してより具体的に説明する。
【0013】
【実施例】図1は、本発明の一実施例の構成をブロック
図にて示したものである。図1を参照すると、本実施例
に係るデバッガが実装されるシステムは、CPU1と、
メモリ2と、磁気ディスク装置などの二次記憶装置3
と、コンソール4と、これらを相互に接続するシステム
バス5と、を備えて構成される。なお、CPU1はシン
グルプロセッサに限らず、複数のCPUで構成されてい
てもよい事は勿論である。図1に示したハードウェアシ
ステム上で、デバッグ対象となるオペレーティングシス
テム(OS)100と、デバッガ(カーネルデバッガ)
200が動作する。
【0014】図2は、デバッガ200の主要構成とブレ
ークポイント制御方法の関連の様子を模式的に示した図
である。
【0015】図2を参照すると、デバッガ200は、シ
ステム運用中にブレークポイント例外が発生した場合
に、その例外処理からコールされる初期処理部10と、
ブレークポイントに関する種々の情報が設定されるブレ
ークポイント管理テーブル11と、アンロードされたモ
ジュールに関するブレークポイント情報を退避保存する
ための退避管理テーブル12と、オペレータからのデバ
ッグコマンドを解析して実行するコマンド解析/実行部
13と、を含む。なお、オペレータからのコマンド入力
およびデバッガ200からの実行結果の出力は、コンソ
ール14を介して行われる。
【0016】初期処理部10は、ブレークポイント整合
性管理手段10−1を備え、コマンド解析/実行部13
は、ブレークポイント関連コマンドの一機能としてブレ
ークポイント設定管理手段13−1を備えている。
【0017】また、オペレーティングシステム(OS)
100は、メモリ上にロードされているモジュールに関
するシンボル情報や、対応するロードアドレス情報を格
納したシンボル情報テーブル16と、アドレス−シンボ
ル相互変換手段15を備えている。
【0018】図3は、本実施例におけるシンボル情報テ
ーブル16の1エントリの構成の一例を示したものであ
り、図中16−1はメモリ上にロードされたモジュール
のシンボル(文字列)であり、16−2はそのシンボル
がロードされているアドレスを示している。
【0019】図4は、本実施例におけるブレークポイン
ト管理テーブル11および退避テーブル12の1エント
リの構成の一例を示している。図中、11−1はブレー
クポイントを設定するアドレス、11−2は設定するブ
レークポイントアドレスより低位のメモリ位置にロード
されたシンボル(文字列)、11−3はシンボルが示す
アドレスからブレークポイントを設定するアドレスへの
オフセット値、11−4はブレーク命令に書き換えるた
めに元の命令を退避保存する領域をそれぞれ示してい
る。
【0020】本実施例の動作について図2を参照して説
明する。
【0021】オペレータからコンソール14を介して入
力されたブレークポイント設定要求は、ブレーク設定管
理手段13−1で処理される。ブレーク設定管理手段1
3−1では、アドレス−シンボル相互変換手段15を用
いて、指定されたブレークポイントアドレスに関するシ
ンボル情報とオフセット値を取得し、それらの情報をブ
レークポイント管理テーブル11に設定して、目的のア
ドレスにブレーク命令を設定する。
【0022】一方、ブレークポイント例外などのデバッ
ガ起動要因である例外が発生した場合、その例外処理か
らデバッガの初期処理部10がコールされる。
【0023】初期処理部10では、処理の一環として,
ブレークポイント整合性管理手段10−1を実行する。
ブレークポイント整合性管理手段10−1は、アドレス
−シンボル相互変換手段15を用いて、ローダブルモジ
ュールのロード/アンロード状態を調べ、その状態によ
ってブレークポイント管理テーブル11と退避テーブル
12の内容を更新し、必要ならばブレークポイントの再
設定を行い、常にブレークポイント管理テーブルの整合
性を保つ。
【0024】本発明の実施例を図面を参照して更に詳細
に説明する。図5は、本実施例におけるアドレス−シン
ボル相互変換手順15の処理動作の一例を説明するため
のフローチャートである。また、図6は、ブレークポイ
ント設定管理手段13−1の処理動作の一例を説明する
ためのフローチャートである。さらに図7および図8
は、ブレークポイント整合性管理手段10−1におけ
る、ブレークポイント管理テーブルの管理手順、及び退
避テーブルの管理手順の一例を示している。
【0025】オペレータがコンソール14を介して、デ
バッガ200によってオペレーティングシステム100
にブレークポイント設定する場合、ブレークポイント設
定管理手段13−1が呼び出される。
【0026】ブレークポイント設定管理手段13−1で
は、図6に示すように、オペレータがコンソール14等
で入力したブレークポイントアドレスを入力し(ステッ
プS61)、アドレス−シンボル相互変換手段15に
て、シンボルとオフセット値に変換する(ステップS6
2、S63)。
【0027】シンボルの変換に成功した場合には、命令
を管理テーブルに保存し(ステップS64)、指定アド
レスの命令をブレーク命令で置換し(ステップS6
5)、図4に示されるブレークポイント管理テーブル1
1に、ブレークポイントアドレス111、およびシンボ
ル112、オフセット値113、元の命令114を設定
する(ステップS66)。
【0028】システム動作中に、ブレークポイント例外
またはデバッガ起動要因となる例外(EXCEPTION)が発
生すると、その例外処理から初期処理部10がコールさ
れる。初期処理部10では、後に、ブレークポイント例
外などの発生時点に復帰できるよう、当該CPUのレジ
スタ情報のセーブ等を行った後、ブレークポイント整合
性管理手段10−1を実行する。
【0029】ブレークポイント整合性管理手段10−1
は、図7に示すように、ブレークポイント管理テーブル
11に、アンロード/再ロードされているモジュールの
ブレークポイント情報が残っていないかを調べるため、
管理テーブルの各エントリのシンボル情報に対して、ア
ドレス−シンボル相互変換手段15を利用して、シンボ
ルからアドレスへの変換を試みる(ステップS70)。
【0030】ステップS71の判定において、シンボル
からのアドレス取得に失敗した場合、該ブレークポイン
ト情報に対応したモジュールはアンロード中であると判
断し(ステップS77)、情報を退避テーブル12に移
して、ブレークポイント管理テーブル14から一時的に
削除する(ステップS78)。
【0031】ステップS71の判定においてアドレス取
得に成功した場合でも、またモジュールが再ロードされ
ている可能性があるため、シンボルから変換取得したア
ドレスと、ブレークポイント管理テーブル14内のオフ
セット値の和(現在ロードされているモジュール内でブ
レークポイントが設定されているべきアドレス)と、ブ
レークポイント管理テーブル内のアドレス(当初、ブレ
ークポイントを設定したアドレス)とを比較する(ステ
ップS72、S73)。
【0032】アドレスが一致しなかった場合は、該当モ
ジュールが再ロードされているものと判断し(ステップ
S79)、シンボルから変換取得したアドレスと、ブレ
ークポイント管理テーブル内のオフセット値で示される
アドレスの命令をブレーク命令で置換し、該ブレークポ
イント情報のブレークポイントアドレス111と元の命
令114を再設定する(ステップS80)。
【0033】ステップS73の判定において、アドレス
が一致した場合でも、デバッグ対象モジュールが同一ア
ドレスに再ロードされた可能性もあるため、ブレークポ
イント管理テーブル内のブレークポイントアドレスにブ
レーク命令が存在するか調べる(ステップS74、S7
5)。
【0034】ブレーク命令が存在しない場合、デバッグ
対象モジュールが同一アドレスに再ロードしたものと判
断し(ステップS81)、ブレークポイント管理テーブ
ル14内のブレークポイントアドレスの命令を退避(セ
ーブ)しこのアドレスにブレーク命令を再設定する(ス
テップS82)。
【0035】一方、ブレーク命令が存在する場合は、正
常なブレークポイント情報と判断して(ステップS7
6)、1つのブレークポイント管理情報の整合性管理処
理を終える。
【0036】ブレークポイント整合性管理手段10−1
では、ブレークポイント管理テーブルの整合性を検査し
た後、更に、図8に示すように、退避テーブル12に、
再ロードされているモジュールのブレークポイント情報
がないかを調べるため、退避テーブルの各エントリのシ
ンボル情報に対してアドレス−シンボル相互変換手段1
5を利用して、シンボルからアドレスへの変換を試みる
(ステップS83、S84)。
【0037】アドレス取得に失敗した場合、該ブレーク
ポイント情報に対応したモジュールは未だアンロード中
であると判断して(ステップS89)、次のエントリに
処理を移す。
【0038】一方、アドレス取得に成功した場合、対応
モジュールが再ロードされているものと判断して(ステ
ップS85)、変換取得したアドレスと退避テーブル内
のオフセット値の和をブレークポイントアドレスとして
(ステップS86)、該アドレスの命令をブレーク命令
に置換し(ステップS87)、このブレークポイントア
ドレスと、置換された元の命令、および退避テーブル内
のシンボルとオフセット値を、ブレークポイント管理テ
ーブル11に移して、退避テーブルエントリをクリアし
(ステップS86)、正常なブレークポイント情報とし
て扱うよう再設定する。
【0039】上記のようにブレークポイント整合管理手
段10−1を経ることにより、ブレークポイント管理テ
ーブルは常に正常な状態に保たれる。
【0040】なお、アドレス−シンボル相互変換手段1
5は、次の2つの機能手段を備えている。
【0041】図5(A)に示すように、アドレス→シン
ボル変換手段は、与えられたアドレスをキーとして、シ
ンボル情報テーブル16の全エントリを検索し(ステッ
プS51)、指定アドレスに最も近いアドレス値(指定
アドレスと同じか低位)を持つエントリのシンボルおよ
び指定アドレスまでのオフセット値を返す(ステップS
52)。
【0042】また、シンボル→アドレス変換手段は、図
5(B)に示すように、与えられたシンボルをキーとし
て、シンボル情報テーブル16の全エントリを検索し
(ステップS53)、指定シンボルと一致したエントリ
があれば、該エントリのアドレス情報を返し(ステップ
S55)、存在しなければエラーを返す(ステップS5
6)。
【0043】
【発明の効果】以上説明したように、本発明によれば、
アドレス−シンボル相互変換手段の導入によりモジュー
ルのロード/アンロード状態が判別できるようにしたこ
とにより、デバッグ対象のモジュールがロード/アンロ
ードされた場合でも、ブレークポイント管理テーブルに
は、常に有効な情報のみが設定されるという効果を有す
る。
【0044】また、本発明によれば、再ロードされたモ
ジュールに対してブレークポイントの再設定を行うこと
ができるという効果を有する。これは、本発明において
は、ブレークポイントアドレスだけでなく、シンボルと
オフセット情報でも管理しているため、モジュールがど
のアドレスにロードされても、ブレークポイント設定位
置が特定できることによる。
【図面の簡単な説明】
【図1】本発明の一実施例を適用したシステムの全体構
成を示すブロック図である。
【図2】本発明の実施例を説明するための図であり、本
発明の一実施例に係るデバッガの主要構成およびブレー
クポイント制御方式の相互関連を模式的に示す図であ
る。
【図3】本発明の一実施例におけるシンボル情報テーブ
ルの1エントリの構成の一例を示す図である。
【図4】本発明の一実施例におけるブレークポイント管
理テーブルの1エントリの構成の一例を示す図である。
【図5】本発明の一実施例におけるアドレス−シンボル
相互変換手段の処理動作を説明するためのフローチャー
トである。
【図6】本発明の一実施例におけるブレークポイント設
定管理手段の処理動作を説明するためのフローチャート
である。
【図7】本発明の一実施例におけるブレークポイント整
合性管理手段の処理動作を説明するためのフローチャー
トである。
【図8】本発明の一実施例における退避テーブル整合性
管理手段の処理動作を説明するためのフローチャートで
ある。
【符号の説明】
1 CPU 2 共有メモリ 3 二次記憶装置 4 コンソール 5 システムバス 10 初期処理部 11 ブレークポイント管理テーブル 12 退避テーブル 13 コマンド解析/実行部 14 コンソール 15 アドレス−シンボル相互変換手段 16 シンボル情報テーブル 100 オペレーティングシステム 10−1 ブレークポイント管理テーブル整合性管理手
順 11−1 ブレークポイントアドレス 11−2 アドレスに関するシンボル 11−3 オフセット値 11−4 元の命令 13−1 ブレークポイント設定管理手順 16−1 シンボル情報 16−2 アドレス情報

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】モジュールのロード/アンロードが自在と
    されてなるシステムのプログラムデバッグにおいて、 メモリ上にロードされたモジュールのアドレスおよびシ
    ンボル情報を保持するシンボル情報テーブルと、 前記シンボル情報テーブルを基に、指定アドレスに対応
    するシンボル情報とオフセット値を取得するとともに、
    指定シンボルに対応するアドレスを取得するアドレス・
    シンボル相互変換手段と、 を備え、 (a)ブレークポイント管理テーブルに、ブレークポイ
    ントアドレスと、これに対応したシンボル情報と、シン
    ボルが示すアドレスからブレークポイントアドレスまで
    のオフセット値と、を設定し、メモリ上にブレーク命令
    を設定する、ブレークポイント設定管理工程と、 (b)デバッガ起動時に、前記ブレークポイント管理テ
    ーブル上のシンボル情報に対して前記アドレス−シンボ
    ル相互変換手段を利用して、シンボルからアドレスへの
    変換を試み、アドレス情報に基づき、デバッグ対象のモ
    ジュールのアンロード/ロード状態、さらに再ロード状
    態を判別して前記ブレークポイント管理テーブルのブレ
    ークポイント情報の妥当性を検証し、該検証結果に応じ
    、前記ブレークポイント管理テーブルの更新、及び/
    又は、ブレークポイントの再設定を行う、ブレークポイ
    ント情報の整合性管理工程と、 を含むことを特徴とするプログラムデバッグ方法。
  2. 【請求項2】前記工程(a)のブレークポイント設定管
    理工程が、 (a−1)ブレークポイントを設定するアドレスが指定
    された場合、前記アドレス・シンボル変換手段により、
    シンボル情報とオフセット値を取得して前記ブレークポ
    イント管理テーブルに設定し、目的のアドレスにブレー
    クポイントを設定する工程と、 (a−2)ブレークポイントを設定するシンボルおよび
    オフセット値が指定された場合、前記シンボル・アドレ
    ス変換手段により、アドレスを取得して前記ブレークポ
    イント管理テーブルに設定し、目的のアドレスにブレー
    クポイントを設定する工程と、 を含むことを特徴とする請求項1記載のプログラムデバ
    ッグ方法。
  3. 【請求項3】前記(b)のブレークポイント情報の整合
    性管理工程が前記ブレークポイント管理テーブル上のシンボル情報に
    対して前記アドレス−シンボル相互変換手段を利用して
    シンボルからアドレスへの変換を試み、アドレスが取得
    されない場合 デバッグ対象のモジュールはアンロード状
    態と判断し、アドレスが取得された場合、前記取得アド
    レスと前記ブレークポイント管理テーブルにあるオフセ
    ットとを加えたアドレスが前記ブレークポイント管理テ
    ーブルにあるアドレスと一致するか比較し、一致しない
    場合再ロード状態と判別する工程により、前記ブレーク
    ポイント管理テーブルのブレークポイント情報の妥当性
    を検証し、該検証結果に応じて、前記ブレークポイント
    管理テーブルの更新、及び/又は、ブレークポイントの
    再設定を行う、ことを特徴とする請求項1記載のプログ
    ラムデバッグ方法
  4. 【請求項4】前記(b)のブレークポイント情報の整合
    性管理工程が、 (b−1)デバッグ対象のモジュールがアンロードされ
    ていた場合に、該当するブレークポイント情報を、前記
    ブレークポイント管理テーブルから、退避テーブルへ移
    す工程と、 (b−2)デバッグ対象のモジュールがロードされてい
    る場合、前回のブレークポイント設定した状態のままな
    のか、一旦アンロードされた後に再ロードされた状態で
    あるかを判別する工程と、 (b−3)デバッグ対象のモジュールが再ロードされて
    おり、且つ対応するブレークポイント情報が前記ブレー
    クポイント管理テーブルに残っていた場合には、前記ブ
    レークポイント管理テーブルの情報を更新し、ブレーク
    ポイントを再設定する工程と、 (b−4)デバッグ対象のモジュールが再ロードされて
    おり、且つ対応するブレークポイント情報が既に前記退
    避テーブルに移されていた場合には、前記退避テーブル
    のブレークポイント情報を前記ブレークポイント管理テ
    ーブルに移して内容を更新し、ブレークポイントを再設
    定する工程と、 を含むことを特徴とする請求項1記載のプログラムデバ
    ッグ方法。
  5. 【請求項5】モジュールのロード/アンロードが自在と
    されたシステムのプログラムデバッグ方法において、 ブレークポイント例外などのデバッガ起動要因によりデ
    バッガが起動された際、前記(b)のブレークポイント
    情報の整合性管理工程を含む初期処理手段と、 前記(a)のブレークポイント設定管理工程を含む、オ
    ペレータからのデバッグコマンドを解析して実行する、
    コマンド解析/実行手段と、 を有し、 ブレークポイント設定情報を管理するためのブレークポ
    イント管理テーブルおよび退避テーブルを備えてなるカ
    ーネルデバッガを用い、 前記ブレークポイント設定管理工程でのブレークポイン
    ト設定と、前記ブレークポイント情報の整合性管理工程
    によって、オペレータがデバッグ対象モジュールのロー
    ド/アンロード状態を意識することなく、自動的にブレ
    ークポイントが設定/解除されることを特徴とする請求
    項1記載のプログラムデバッグ方法。
  6. 【請求項6】モジュールのロード/アンロードが自在と
    されてなるシステムのプログラムデバッグ装置におい
    メモリ上にロードされたモジュールのアドレスおよびシ
    ンボル情報を保持するシンボル情報テーブルと前記シンボル情報テーブルを基に、指定アドレスに対応
    するシンボル情報とオフセット値を取得するとともに、
    指定シンボルに対応するアドレスを取得するアドレス・
    シンボル相互変換手段とブレークポイント管理テーブルに、ブレークポイントア
    ドレスと、これに対応したシンボル情報と、シンボルが
    示すアドレスからブレークポイントアドレスまでのオフ
    セット値と、を設定し、メモリ上にブレーク命令を設定
    する、ブレーク ポイント設定管理手段とデバッガ起動時、前記ブレークポイント管理テーブル上
    のシンボル情報に対して前記アドレス−シンボル相互変
    換手段を利用して、シンボルからアドレスへの変換を試
    み、アドレス情報に基づき、 デバッグ対象のモジュール
    のアンロード/ロード状態、さらに再ロード状態を判別
    して前記ブレークポイント管理テーブルのブレークポイ
    ント情報の妥当性を検証し、該検証結果に応じて前記ブ
    レークポイント管理テーブルの更新、及び/又は、ブレ
    ークポイントの再設定を行う、ブレークポイント情報の
    整合性管理手段とを含む ことを特徴とするデバッグ装置
  7. 【請求項7】プロセッサシステムのデバッグ装置におい
    ブレークポイント例外などのデバッガ起動要因の発生時
    にコールされ、コール元のCPUに関するレジスタ情報
    などの情報のセーブ処理、及び/又はブレークポイント
    整合性管理処理を行う初期処理手段とオペレータから入力されたデバッグコマンドを解析して
    実行するコマンド解析/実行手段とブレークポイント情報が設定されるブレークポイント管
    理テーブルとアンロードされたモジュールに関するブレークポイント
    情報を退避保存するための退避テーブルとを備えたデバッガとメモリ上にロードされたモジュールのアドレスおよびシ
    ンボル情報を保持するシンボル情報テーブルと前記シンボル情報テーブルを基に、指定アドレスに対応
    するシンボル情報とオフセット値を取得するとともに、
    指定シンボルに対応するアドレスを取得するアドレス・
    シンボル相互変換手段とオペレータからのコマンド入力および前記デバッガから
    の実行結果を出力する端末とを備え前記初期処理手段は、前記ブレークポイント管理テーブ
    ル上のシンボル情報に 対して前記アドレス−シンボル相
    互変換手段を利用してシンボルからアドレスへの変換を
    試み、アドレスが取得されない場合、デバッグ対象のモ
    ジュールはアンロード状態と判断し、アドレスが取得さ
    れた場合、前記取得アドレスと前記ブレークポイント管
    理テーブルにあるオフセットとを加えたアドレスが前記
    ブレークポイント管理テーブルにあるアドレスと一致す
    るか比較し、一致しない場合再ロード状態と判別して、
    前記ブレークポイント管理テーブルのブレークポイント
    情報の妥当性を検証し、該検証結果に応じて、前記ブレ
    ークポイント管理テーブルの更新、及び/又は、ブレー
    クポイントの再設定を行うブレークポイント整合性管理
    手段を備え前記コマンド解析/実行手段は、ブレークポイントを設
    定するアドレスが指定された場合、前記アドレス・シン
    ボル変換手段により、シンボル情報とオフセット値を取
    得して前記ブレークポイント管理テーブルに設定し、目
    的のアドレスにブレークポイントを設定し、ブレークポ
    イントを設定するシンボルおよびオフセット値が指定さ
    れた場合、前記シンボル・アドレス変換手段により、ア
    ドレスを取得して前記ブレークポイント管理テーブルに
    設定し、目的のアドレスにブレークポイントを設定する
    ブレークポイント設定管理手段を備えたことを特徴とす
    るプロセッサシステムのデバッグ装置
  8. 【請求項8】前記ブレークポイント整合性管理手段が前記アドレス・シンボル相互変換手段で前記シンボルか
    らのアドレス取得に失敗した場合、デバッグ対象のモジ
    ュールがアンロードされていると判断して、該当するブ
    レークポイント情報を、前記ブレークポイント管理テー
    ブルから、退避テーブルへ移し前記アドレス・シンボル相互変換手段で前記シンボルか
    らのアドレスが取得された場合、前回のブレークポイン
    ト設定した状態のままなのか、一旦アンロードされた後
    に再ロードされた状態であるかを判別し、デバッグ対象
    のモジュールが再ロードされており、且つ対応するブレ
    ークポイント情報が前記ブレークポイント管理テーブル
    に残っていた場合には、前記ブレークポイント管理テー
    ブルの情報を更新し、ブレークポイントを再設定しデバッグ対象のモジュールが再ロードされており、且つ
    対応するブレークポイント情報が既に前記退避テーブル
    に移されていた場合には、前記退避テーブルのブレーク
    ポイント情報を前記ブレークポイント管理テーブルに移
    して内容を更新し、ブレークポイントを再設定する、こ
    とを特徴とする請求項7記載のプロセッサシステムのデ
    バッグ装置
JP8159109A 1996-05-30 1996-05-30 カーネルデバッガにおけるソフトウェアブレークポイント管理方式 Expired - Fee Related JP2856152B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8159109A JP2856152B2 (ja) 1996-05-30 1996-05-30 カーネルデバッガにおけるソフトウェアブレークポイント管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8159109A JP2856152B2 (ja) 1996-05-30 1996-05-30 カーネルデバッガにおけるソフトウェアブレークポイント管理方式

Publications (2)

Publication Number Publication Date
JPH09319615A JPH09319615A (ja) 1997-12-12
JP2856152B2 true JP2856152B2 (ja) 1999-02-10

Family

ID=15686447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8159109A Expired - Fee Related JP2856152B2 (ja) 1996-05-30 1996-05-30 カーネルデバッガにおけるソフトウェアブレークポイント管理方式

Country Status (1)

Country Link
JP (1) JP2856152B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257805B2 (en) 2001-11-09 2007-08-14 International Business Machines Corporation Restoring debugging breakpoints subsequent to program code modifications
JP3764405B2 (ja) 2002-05-27 2006-04-05 株式会社東芝 デバッグ装置及びデバッグ方法
CN100552650C (zh) * 2004-04-30 2009-10-21 马维尔国际贸易有限公司 用于结合使用有效范围语句和动态缓存变量的方法
US7657572B2 (en) * 2007-03-06 2010-02-02 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations

Also Published As

Publication number Publication date
JPH09319615A (ja) 1997-12-12

Similar Documents

Publication Publication Date Title
CN101154187B (zh) 用于为程序打补丁的方法、装置、服务处理器和系统
US7840845B2 (en) Method and system for setting a breakpoint
KR20030059339A (ko) 단일 스텝 처리 방법 및 장치
US6237120B1 (en) Program patching of a ROM
US4520440A (en) Test verification of processor architecture having a partial instruction set
US5363502A (en) Hot stand-by method and computer system for implementing hot stand-by method
US20020029359A1 (en) Method and apparatus for getting dump of a computer system
JP2856152B2 (ja) カーネルデバッガにおけるソフトウェアブレークポイント管理方式
CN116450398A (zh) 异常回溯方法、装置、设备和介质
US11829238B2 (en) Data integrity verification
US6948095B2 (en) Methods and apparatus for dynamically loading a file on a target computer system
JP3424729B2 (ja) ダイナミックパーティション制御システム
JP2954666B2 (ja) メモリチェック方式
CN114327659B (zh) 设备启动方法及无线超声设备
JPH0317760A (ja) データ書込み確認方式
JPS6310234A (ja) 割込み処理装置
JP2872008B2 (ja) コンピュータシステムおよびそのシステム縮退運転実現方法
US6789211B2 (en) Storing in a reserved memory location data indicative of a stack location which stores the entry point of a dynamically loaded file
JPH0644129A (ja) 情報処理装置
JPH06236292A (ja) データ処理装置
JP2860054B2 (ja) プログラムデバッグ装置
JP3102568B2 (ja) ソフトウエア開発装置
JP2677043B2 (ja) プログラム開発支援装置
EP1148419A1 (en) Debugging embedded systems
JPH11212945A (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: 19981027

LAPS Cancellation because of no payment of annual fees