(57)【要約】【課題】ダンプファイルをより小さいファイルサイズで保存し、以前行ったコマンドを再度実行できるように復元することを可能とするデバッグ装置等を提供する。【解決手段】本発明に係るデバッグ装置１０は、デバッガツール２１がダンプファイル３１を参照した場合に、該ダンプファイルが参照された位置をタグファイル３３として記録する参照箇所記録手段４４と、タグファイルに記録された位置におけるデータをダンプファイルから読み取り、当該位置および位置におけるデータを記録した縮小ダンプファイル３４を作成する縮小ダンプファイル作成手段４５と、縮小ダンプファイルに記録された位置および位置におけるデータを読み取り、当該位置におけるデータを配置して復元ダンプファイル３５を作成する縮小ダンプファイル復元手段４６と、を有する。【選択図】図１
2010122759.tif 000002
【特許請求の範囲】
【請求項１】
ダンプファイルをデバッグするデバッガツールを有するデバッグ装置であって、
前記デバッガツールが前記ダンプファイルを参照した場合に、該ダンプファイルが参照された位置をタグファイルとして記録する参照箇所記録手段と、
前記タグファイルに記録された位置におけるデータを前記ダンプファイルから読み取り、当該位置および前記位置におけるデータを記録した縮小ダンプファイルを作成する縮小ダンプファイル作成手段と、
前記縮小ダンプファイルに記録された位置および前記位置におけるデータを読み取り、前記位置に該当するデータを配置して復元ダンプファイルを作成する縮小ダンプファイル復元手段と、
を有することを特徴とするデバッグ装置。
【請求項２】
前記デバッガツールを起動し、前記デバッガツールが参照している前記ダンプファイルのファイル名を監視テーブルに書き込むデバッガ管理手段を有することを特徴とする、請求項１に記載のデバッグ装置。
【請求項３】
前記参照箇所記録手段が、前記監視テーブルを参照して前記ダンプファイルのファイル名を認識し、前記ファイル名で示される前記ダンプファイルが参照された位置を検出することを特徴とする、請求項２に記載のデバッグ装置。
【請求項４】
前記縮小ダンプファイル復元手段が、前記復元ダンプファイルの前記縮小ダンプファイルに記録されていない位置に、一時的な仮のデータである一時データを書き込むことを特徴とする、請求項１に記載のデバッグ装置。
【請求項５】
前記デバッガツールで前記ダンプファイルに対して実行されたコマンドを記録したコマンド履歴ファイルを作成するコマンド履歴作成手段と、
前記コマンド履歴ファイルに記録されたコマンドの中からユーザによる選択を受け付け、前記選択されたコマンドを前記ダンプファイルに対して再度実行するコマンド選択手段を有することを特徴とする、請求項１に記載のデバッグ装置。
【請求項６】
前記縮小ダンプファイルを可逆的に圧縮するダンプファイル圧縮手段と、
前記圧縮された縮小ダンプファイルを伸張するダンプファイル伸張手段とを有することを特徴とする、請求項１に記載のデバッグ装置。
【請求項７】
デバッガツールによって参照されるダンプファイルを保存および復元する方法であって、
前記デバッガツールが前記ダンプファイルを参照した場合に、該ダンプファイルが参照された位置をタグファイルとして記録し、
前記タグファイルに記録された位置におけるデータを前記ダンプファイルから読み取り、
当該位置および前記位置におけるデータを記録した縮小ダンプファイルを作成し、
前記縮小ダンプファイルに記録された位置および前記位置におけるデータを読み取り、
前記位置に該当する前記読み取ったデータを配置して復元ダンプファイルを作成する
ことを特徴とするダンプファイルの保存復元方法。
【請求項８】
デバッグ装置を構成するコンピュータに、
前記デバッガツールが前記ダンプファイルを参照した場合に、該ダンプファイルが参照された位置をタグファイルとして記録する手順と、
前記タグファイルに記録された位置におけるデータを前記ダンプファイルから読み取る手順と、
当該位置および前記位置におけるデータを記録した縮小ダンプファイルを作成する手順と、
前記縮小ダンプファイルに記録された位置および前記位置におけるデータを読み取る手順と、
前記位置に該当する前記読み取ったデータを配置して復元ダンプファイルを作成する手順と
を実行させることを特徴とするダンプファイルの保存復元プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はダンプファイルのデバッグに関し、特に該ダンプファイルの保存および復元に関する。
【背景技術】
【０００２】
多くのコンピュータにおいて、正常な計算処理を継続できない状態になってしまった場合に、動作中のコンピュータの物理メモリ内のデータを原因調査のためにディスクなどのデータ記憶装置へ保存している。これをダンプファイルという。また、ダンプファイルを解析するアプリケーションプログラムをデバッガツールという。
【０００３】
オペレーティングシステム、アプリケーションプログラムの障害調査に当たっては、過去の事例と新規の事例の比較によって調査を行うことが多い。また、類似の障害のダンプファイルを複数比較して調査することが有効な場合が多い。従って、ダンプファイルの保存については、デバッガツールによって一度参照された部分を、その参照された該ダンプファイル内の位置をそのままにして保存することが重要である。また、そのダンプファイルは長期に渡って保存されることが望ましい。
【０００４】
ダンプファイルのデバッグ、特にそのダンプファイルの保存について、次のような関連技術がある。特許文献１には、ダンプファイルを一定のサイズに分けて圧縮することでダンプファイルのサイズを小さくするという技術が記載されている。特許文献２には、メモリ上でダンプ対象領域として登録された領域をダンプファイルに書き込むという技術が記載されている。特許文献３には、ダンプファイルを採取した後に圧縮するという技術が記載されている。特許文献４には、主記憶イメージを圧縮してダンプファイルに書き込むという技術が記載されている。
【０００５】
【特許文献１】特開２００１−２５６０８２号公報
【特許文献２】特開２００５−３３２４２１号公報
【特許文献３】特開平０９−１７１４７６号公報
【特許文献４】特開平０９−３２５９０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ダンプファイルは、サイズの大きなファイルであることが多い。また、今後のコンピュータ装置の物理メモリの容量がさらに大きくなっていくにつれ、ダンプファイルもさらに大きなファイルとなっていくことが予想される。したがって、より多くのダンプファイルを長期に渡って保存することは、巨大な容量のデータ記憶装置を必要とすることとなり、より困難となる。
【０００７】
このため、上記の特許文献１，３，４では、ダンプファイルを圧縮して保存している。これらの文献で、ファイルの圧縮および伸張は、たとえばＺＩＰやＬＨＡなどのような可逆的なデータ圧縮および伸張の手法を使うことを前提としている。
【０００８】
しかし、上述したように、物理メモリのサイズが大きくなっていくことに伴って大きくなるダンプファイルに対しては、上記のような可逆的なデータ圧縮および伸張の手法によって圧縮しても、十分に小さなサイズのファイルにならない。このため、圧縮とは異なる、ダンプファイルの縮小方法が必要とされる。
【０００９】
また、可逆的な圧縮および伸張を伴う方法では、この圧縮および伸張の作業中のデータがコンピュータの物理メモリもしくは不揮発性記憶装置に書き込まれるので、それに伴う記憶容量および処理の負荷がかかるという問題もある。
【００１０】
本発明の目的は、ダンプファイルをより小さいファイルサイズで保存し、以前行ったコマンドを再度実行できるように復元することを可能とするデバッグ装置、ダンプファイルの保存復元方法およびそのプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明に係るデバッグ装置は、ダンプファイルをデバッグするデバッガツールを有するデバッグ装置であって、デバッガツールがダンプファイルを参照した場合に、該ダンプファイルが参照された位置をタグファイルとして記録する参照箇所記録手段と、タグファイルに記録された位置におけるデータをダンプファイルから読み取り、当該位置および位置におけるデータを記録した縮小ダンプファイルを作成する縮小ダンプファイル作成手段と、縮小ダンプファイルに記録された位置および位置におけるデータを読み取り、当該位置におけるデータを配置して復元ダンプファイルを作成する縮小ダンプファイル復元手段と、を有することを特徴とする。
【００１２】
上記目的を達成するため、本発明に係るダンプファイルの保存復元方法は、デバッガツールによって参照されるダンプファイルを保存および復元する方法であって、デバッガツールがダンプファイルを参照した場合に、該ダンプファイルが参照された位置をタグファイルとして記録し、タグファイルに記録された位置におけるデータをダンプファイルから読み取り、当該位置および位置におけるデータを記録した縮小ダンプファイルを作成し、縮小ダンプファイルに記録された位置および位置におけるデータを読み取り、位置に該当する読み取ったデータを配置して復元ダンプファイルを作成することを特徴とする。
【００１３】
上記目的を達成するため、本発明に係るダンプファイルの保存復元プログラムは、デバッグ装置を構成するコンピュータに、デバッガツールがダンプファイルを参照した場合に、該ダンプファイルが参照された位置をタグファイルとして記録する手順と、タグファイルに記録された位置におけるデータをダンプファイルから読み取る手順と、当該位置および位置におけるデータを記録した縮小ダンプファイルを作成する手順と、縮小ダンプファイルに記録された位置および位置におけるデータを読み取る手順と、位置に該当する読み取ったデータを配置して復元ダンプファイルを作成する手順とを実行させることを特徴とする。
【発明の効果】
【００１４】
本発明は、上述したようにデバッガツールがダンプファイルを参照した位置のデータのみを残した縮小ダンプファイルを作成し、それらのデータを当該位置にデータを配置して復元ダンプファイルを作成するように構成したので、以前行ったコマンドを再度実行することが可能である。これによって、ダンプファイルをより小さいファイルサイズで保存し、以前行ったコマンドを再度実行できるように復元することを可能とするという、従来にない優れたデバッグ装置、ダンプファイルの保存復元方法およびそのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１５】
［第１の実施形態］
以下、本発明の第１の実施形態の構成について添付図に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るデバッグ装置１０は、ダンプファイル３１をデバッグするデバッガツール２１を有するデバッグ装置であって、デバッガツール２１がダンプファイル３１を参照した場合に、該ダンプファイルが参照された位置をタグファイル３３として記録する参照箇所記録手段４４と、タグファイル３３に記録された位置におけるデータをダンプファイル３１から読み取り、当該位置および位置におけるデータを記録した縮小ダンプファイル３４を作成する縮小ダンプファイル作成手段４５と、縮小ダンプファイル３４に記録された位置および位置におけるデータを読み取り、位置に該当するデータを配置して復元ダンプファイル３５を作成する縮小ダンプファイル復元手段４６と、を備える。
【００１６】
また、デバッグ装置１０は、デバッガツールを起動し、デバッガツールが参照しているダンプファイルのファイル名（ダンプファイル名２６ｂ）を監視テーブル２６に書き込むデバッガ管理手段４１を備える。
そして参照箇所記録手段４４は、監視テーブル２６を参照してダンプファイルのファイル名（ダンプファイル名２６ｂ）を認識し、このファイル名で示されるダンプファイル３１が参照された位置を検出する。
【００１７】
そして縮小ダンプファイル復元手段４６が、復元ダンプファイル３５の縮小ダンプファイル３４に記録されていない位置に、たとえば全部「０」などのような一時的な仮のデータである一時データを書き込む。
【００１８】
以上のように構成することにより、デバッグ装置１０は、ダンプファイル３１をより小さいファイルサイズで保存し、以前行ったコマンドを再度実行できるように復元することが可能となる。
【００１９】
さらにデバッグ装置１０は、デバッガツール２１でダンプファイル３１に対して実行されたコマンドを記録したコマンド履歴ファイル３２を作成するコマンド履歴作成手段４３と、コマンド履歴ファイル３２に記録されたコマンドの中からユーザによる選択を受け付け、選択されたコマンドをダンプファイル３１に対して再度実行するコマンド選択手段４２を有する。このように構成することにより、一度実行されたコマンドの再実行がさらに容易となる。
以下、これをさらに詳述する。
【００２０】
（基本的な原理）
前述のように、ダンプファイルの保存については、デバッガツールによって一度参照された部分を、その参照された該ダンプファイル内の位置をそのままにして保存することが重要である。デバッガツールによって参照されていない部分を保存する必要はない。本発明はそのことを利用し、デバッガツールがダンプファイルを参照した場合に、その参照した部分だけを残し、未参照の部分を削除して、縮小ダンプファイルを作成するように構成されている。この処理には、ＺＩＰやＬＨＡなどのような、可逆的なデータ圧縮および伸張の手法を利用する必要はない。
【００２１】
また、縮小ダンプファイルから元のサイズのダンプファイルを復元する場合、未参照の部分も含めてその全体が可逆的に復元される必要はない。デバッガツールによって参照済の部分が、元のダンプファイル上の同一の位置に再現されていればよい。このため本発明では、縮小の段階で既に削除されたデータの部分については、一時的なデータを書き加えることで、元のダンプファイルサイズと同じサイズのファイルにする。このようにすることで、デバッガツールの種類に依存せずに、以前行ったコマンドを再度実行することが可能となる。
【００２２】
（装置およびデータの構成）
図１は、本発明の第１の実施形態に係るデバッグ装置１０の構成を示す説明図である。デバッグ装置１０は、ＣＰＵ、ＯＳ、ＲＡＭなどからなる制御部１１と、ハードディスクなどの不揮発性記憶装置からなる記憶部１２とを含む一般的なコンピュータ装置である。
【００２３】
コンピュータプログラムを実施する主体である制御部１１は、デバッガツール２１、コマンド履歴作成部２２、タグファイル作成部２３、縮小ダンプファイル作成部２４、縮小ダンプファイル復元部２５といった各々の機能部を実行する。同時に、制御部１１には一時データとして監視テーブル２６も保持される。また記憶部１２は、ダンプファイル３１、コマンド履歴ファイル３２、タグファイル３３、縮小ダンプファイル３４、復元ダンプファイル３５といった各々のデータを記憶している。
【００２４】
デバッガツール２１は、ダンプファイル３１を調査するために使用されるデバッガツールである。コマンド履歴作成部２２は、デバッガ管理手段４１、コマンド選択手段４２、コマンド履歴作成手段４３から構成され、これらの手段はそれぞれ概略つぎのように動作する。
【００２５】
デバッガ管理手段４１は、デバッガツール２１の起動および終了を行い、タグファイル作成部２３へデバッガツール２１の起動を通知するために監視テーブル２６へのデータの書き込みを行う。
【００２６】
図２は、図１に示した各テーブルおよびファイルのデータ構造について示す説明図である。図２（ａ）は監視テーブル２６、図２（ｂ）はコマンド履歴ファイル３２、図２（ｃ）はダンプファイル３１、図２（ｄ）はタグファイル３３、図２（ｅ）は縮小ダンプファイル３４、図２（ｆ）は復元ダンプファイル３５のデータ構造を各々示す。各々のデータ構造については、該当するテーブルおよびファイルが登場したところで後述する。
【００２７】
図２（ａ）に示した監視テーブル２６は、デバッガ開始フラグ２６ａとダンプファイル名２６ｂとを対応させて、制御部１１に一時データとして記憶される。このため、監視テーブル２６は記憶部１２に記憶されるファイルとはならない。デバッガ開始フラグ２６ａは、デバッガツール２１を起動した際にセットされ、デバッガツール２１を終了した際にクリアされるフラグである。ダンプファイル名２６ｂは、デバッガツール２１が参照しているダンプファイル３１のファイル名である。
【００２８】
コマンド履歴作成手段４３は、デバッガツール２１が実行するコマンドをデバッガツール２１へ入力し、同時にどのコマンドを実行したかをコマンド履歴ファイル３２へ書き込む。図２（ｂ）に示したコマンド履歴ファイル３２には、デバッガツール２１において実行されたコマンドが順番に書き込まれる。
【００２９】
コマンド選択手段４２は、デバッガツール２１がダンプファイル３１への調査を終了させた際に、コマンド履歴ファイル３２に記録されたコマンド履歴の中から、使用者が選択したコマンドが参照したダンプファイル３１内のデータのみを残して縮小ダンプファイル３４を作成するために、一旦タグファイル３３の内容を削除し、使用者が選択したコマンドを再度実行する。これでタグファイル３３を再構築する。
【００３０】
タグファイル作成部２３は参照箇所記録手段４４を含む。参照箇所記録手段４４は概略つぎのように動作する。図３は、図１に示したデバッガツール２１および参照箇所記録手段４４の動作について示す説明図である。図３（ａ）はデバッガツール２１がダンプファイル３１を参照する動作、図３（ｂ）は参照箇所記録手段４４が、デバッガツール２１がダンプファイル３１を参照した箇所について記録する動作を各々示す。
【００３１】
図３（ａ）に示したように、通常は、デバッガツール２１がダンプファイル３１を参照するときは、オペレーティングシステム１０１へダンプファイル３１への参照要求を行い、オペレーティングシステム１０１がダンプファイル３１の参照箇所を読み込み、デバッガツールへそのデータを渡している。
【００３２】
これに対し、参照箇所記録手段４４は図３（ｂ）に示したようにオペレーティングシステム１０１内に常駐し、オペレーティングシステム１０１の入出力をトレースする。参照箇所記録手段４４は監視テーブル２６を参照し、デバッガ開始フラグ２６ａを確認してデバッガツール２１が起動中であることを確認し、続いてダンプファイル名２６ｂを確認し、トレースした入出力がそのダンプファイル３１への参照であった場合、その参照箇所をタグデータとしてタグファイル３３へ書き込む。
【００３３】
タグファイル３３に記録されるタグデータは、概略つぎのように作成される。図２（ｃ）に示したダンプファイル３１は、一定のサイズのブロックに分割され、先頭から順番にブロック番号をつけられる。図２（ｄ）に示したように、デバッガツール２１がダンプファイル３１を参照した箇所のブロック番号が、参照箇所記録手段４４によってタグファイル３３に書き込まれていく。
【００３４】
縮小ダンプファイル作成部２４は、縮小ダンプファイル作成手段４５を含む。縮小ダンプファイル作成手段４５は概略つぎのように動作する。縮小ダンプファイル作成手段４５はまず、元のダンプファイルサイズ３４ａを図２（ｅ）に示した縮小ダンプファイル３４の先頭に書き込む。続いて、タグファイル３３からタグデータを読み込み、読み込んだタグデータ３４ｂを縮小ダンプファイルに書き込む。さらに続いて、タグデータ３４ｂを参照し、元のダンプファイル３１中の該当するブロックのデータ３４ｃを読み込み、そのデータを縮小ダンプファイル３４へ書き込んでいく。これによって、図２（ｅ）に示したデータ構成の縮小ダンプファイル３４が、縮小ダンプファイル作成手段４５によって書き込まれる。
【００３５】
縮小ダンプファイル復元部２５は、縮小ダンプファイル復元手段４６を含む。縮小ダンプファイル復元手段４６は概略つぎのように動作する。まず、縮小ダンプファイル３４の先頭に記録された、元のダンプファイルサイズ３４ａおよびタグデータ３４ｂを読み込む。タグデータに含まれるブロックについては、縮小ダンプファイル３４から当該データ３５ａを読み込み、元のダンプファイルと同一のブロックの位置に書き込む。またタグデータに含まれていないブロックについては、同じブロック位置に一時データ３５ｂを書き込む。これによって、図２（ｆ）に示したデータ構成の復元ダンプファイル３５が、縮小ダンプファイル復元手段４６によって作成される。
【００３６】
ここでいう一時データ３５ｂは、たとえば「全部０」などのようなごく単純なものでよい。なお、このように縮小ダンプファイル復元手段４６が縮小ダンプファイル３４から復元ダンプファイル３５を生成する動作を、縮小ダンプファイル３４の復元という。
【００３７】
（コマンド履歴ファイルおよびタグファイルの作成）
図４は、図１に示したデバッガツール２１がダンプファイル３１を調査する際に、コマンド履歴ファイル３２とタグファイル３３が書き込まれる動作について示すフローチャートである。
【００３８】
デバッガ管理手段４１がデバッガツール２１を起動すると（ステップＳ２０１）、このデバッガ管理手段４１は図２（ａ）に示した監視テーブル２６でデバッガ開始フラグ２６ａをセットし（ステップＳ２０２）、ダンプファイル名２６ｂを書き込む（ステップＳ２０３）。デバッガ管理手段４１からデバッガツール２１へコマンドを入力し、このコマンドを開始する（ステップＳ２０４）と、コマンド履歴作成手段４３はこの入力されたコマンドをコマンド履歴ファイル３２に書き込む（ステップＳ２０５）。
【００３９】
デバッガツール２１からオペレーティングシステム１０１に対してダンプファイルの参照が要求されると（ステップＳ２０６）、参照箇所記録手段４４は監視テーブル２６を確認し、デバッガ開始フラグ２６ａが立っている（デバッグが開始されている）ことと、その対象であるダンプファイル名２６ｂで表されるダンプファイル３１を確認する（ステップＳ２０７）。
【００４０】
参照箇所記録手段４４は、オペレーティングシステム１０１で検出された入出力がダンプファイル３１への参照であるか否かを確認する。ダンプファイル３１への参照でなかった場合は、ダンプファイルへの参照が来るまで待つ（ステップＳ２０８）。ダンプファイル３１への参照が検出されたら、参照箇所記録手段４４はタグファイル３３へ参照箇所をタグデータとして書き込む（ステップＳ２０９）。
【００４１】
デバッガツール２１で次に実行するコマンドがあれば、ステップＳ２０４へ戻って次のコマンドを実行する。次に実行するコマンドがなければ、ステップＳ２１１へ進む（ステップＳ２１０）。
【００４２】
コマンド選択手段４２により、使用者によるコマンド選択を行うか確認する（ステップＳ２１１）。行う場合は、ステップＳ２１２に進んでコマンド選択手段４２を実行する。コマンド選択手段４２の動作は図５で後述する。コマンド選択を行わない場合は、デバッガ管理手段４１が監視テーブル２６のデバッガ開始フラグ２６ａをクリアし、ダンプファイル名２６ｂを削除し（ステップＳ２１３）、デバッガツール２１を終了する（ステップＳ２１４）。
【００４３】
図５は、図４のステップＳ２１２に示した、コマンド選択手段４２の動作の詳細を示すフローチャートである。コマンド選択手段４２はまず、コマンド履歴ファイル３２を読み込み（ステップＳ２５１）、読み込まれたコマンドの中から操作者がコマンドを選択する入力を受け付ける（ステップＳ２５２）。
【００４４】
すると、コマンド選択手段４２はタグファイル３３の内容をすべて削除し（ステップＳ２５３）、デバッガツール２１へステップＳ２５２で選択されたコマンドを入力し、このコマンドを開始する（ステップＳ２５４）。これに応じてコマンド選択手段４２は、デバッガツール２１からオペレーティングシステム１０１に対してダンプファイルの参照を要求する（ステップＳ２５５）。
【００４５】
参照箇所記録手段４４により、監視テーブル２６を確認し、デバッガ開始フラグ２６ａが立っている（デバッグが開始されている）ことと、その対象であるダンプファイル名２６ｂで表されるダンプファイル３１への参照を確認する。ダンプファイル３１への参照でなかった場合は、ダンプファイル３１への参照が来るまで待つ（ステップＳ２５６）。ダンプファイル３１への参照が検出されたら、参照箇所記録手段４４はタグファイル３３へその参照箇所を書き込む（ステップＳ２５７）。
【００４６】
操作者に選択されたコマンドの中で、実行するコマンドが残っていれば、ステップＳ２５４へ戻って続くコマンドを実行する。残っていなければなければ終了する（ステップＳ２５８）。
【００４７】
（縮小ダンプファイルの作成）
図６は、図１に示した縮小ダンプファイル作成手段４５の動作について示すフローチャートである。縮小ダンプファイル作成手段４５はまず、タグファイル３３からタグデータを読み込み（ステップＳ３０１）、元のダンプファイルサイズ３４ａを縮小ダンプファイル３４の先頭に書き込む（ステップＳ３０２）。続いてステップＳ３０１で読み取ったタグデータ３４ｂを、元のダンプファイルサイズ３４ａに続けて書き込む（ステップＳ３０３）。
【００４８】
縮小ダンプファイル作成手段４５はここで、元のダンプファイル３１から、タグデータに記載されているブロック番号に該当するブロックのデータを読み込むと（ステップＳ３０４）、読み込んだ該当するブロックのデータ３４ｃを縮小ダンプファイル３４へ書き込んだ後（ステップＳ３０５）、元のダンプファイル３１を削除する（ステップＳ３０６）。
【００４９】
（復元ダンプファイルの作成）
図７は、図１に示した縮小ダンプファイル復元手段４６の動作について示すフローチャートである。以下、ｎはブロック番号を表す自然数である。縮小ダンプファイル復元手段４６はまず、縮小ダンプファイル３４からタグデータ３４ｂ、および元のダンプファイルサイズ３４ａを読み込む（ステップＳ４０１）。ブロック番号のｎ＝１とし（ステップＳ４０２）、このブロック番号ｎがタグデータ３４ｂに存在するか否かを確認する（ステップＳ４０３）。
【００５０】
存在すれば、当該データ３５ａを縮小ダンプファイル３４から読み込み（ステップＳ４０４）、復元ダンプファイル３５のブロックｎに書き込む（ステップＳ４０５）。ステップＳ４０３で、ブロック番号ｎがタグデータ３４ｂに存在しなければ、一時データ３５ｂを復元ダンプファイル３５のブロックｎに書き込む（ステップＳ４０６）。
【００５１】
ステップＳ４０５および４０６の終了後、ｎの値が元のダンプファイルサイズ３４ａに相当するブロックまで進んでいるか否かを確認する（ステップＳ４０７）。進んでいなければｎに１を加算し（ステップＳ４０８）、ステップＳ４０３に戻る。進んでいれば、復元ダンプファイル３５のファイルサイズが元のダンプファイルサイズ３４ａと一致するように、復元ダンプファイル３５の終端から元のダンプファイルサイズ３４ａよりも大きくなっている部分を削除して、サイズの端数を調整して（ステップＳ４０９）、縮小ダンプファイル３４の復元の処理を終了する。
【００５２】
（全体的な動作）
次に、上記の第１の実施形態の全体的な動作について説明する。本発明の第１の実施形態に係るデバッガツール２１によって参照されるダンプファイルを保存および復元する方法は、デバッガツール２１がダンプファイル３１を参照した場合に、該ダンプファイルが参照された位置をタグファイル３３として記録し（図４：ステップＳ２０６〜２０９）、次にタグファイル３３に記録された位置におけるデータをダンプファイル３１から読み取り、当該位置（タグデータ３４ｂ）および位置におけるデータ（該当するブロックのデータ３４ｃ）を記録した縮小ダンプファイル３４を作成し（図６：ステップＳ３０３〜３０５）、次に縮小ダンプファイル３４に記録された位置および位置におけるデータを読み取り（図７：ステップＳ４０１，４０４）、読み取った位置に該当するデータ（当該データ３５ａ）を配置して（図７：ステップＳ４０５）復元ダンプファイル３５を作成する。
【００５３】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるデバッグ装置１０に実行させるようにしてもよい。
【００５４】
以上説明したように、本実施形態においては、以上のような動作を行うことにより、次に記載するような効果を奏する。本実施形態に係るダンプファイルデバッグ装置１０は、ダンプファイル３１内で、デバッガツール２１が参照した箇所のみを保存するように構成されているため、該ダンプファイル３１に対して実行したコマンドを再度実行するのに必要なデータを残しつつ縮小ダンプファイル３４を作成することができる。また、縮小ダンプファイル３４から作成された復元ダンプファイル３５は、一度実行したコマンドで参照された部分が復元されているので、そのコマンドによる調査を再現することができる。
【００５５】
さらに、本実施形態では、一度実行されたコマンドがコマンド履歴ファイル３２に記録され、そのコマンドで参照された部分を保存して復元することも可能であるので、ダンプファイル３１に対して一度実行されたコマンドを復元ダンプファイル３５に対して再実行することがさらに容易となる。
【００５６】
［第２の実施形態］
図８は、本発明の第２の実施形態に係るデバッグ装置５１０の構成を示す説明図である。デバッグ装置５１０は、第１の実施形態に係るデバッグ装置１０と比べてコマンド選択手段４２と、コマンド履歴作成手段４３と、コマンド履歴ファイル３２とが省略されているのみであり、その他の構成、動作および作用は同一である。第１の実施形態と同一の要素には、同一の参照番号を付しており、その各々の作用は第１の実施形態の所で説明した通りである。ただし、コマンド選択手段４２およびコマンド履歴作成手段４３が存在しないため、図４のステップＳ２０５、２１１、２１２、および図５に示した動作は省略される。
【００５７】
この構成でも、デバッガ管理手段４１は監視テーブル２６へデバッガ開始フラグ２６ａとダンプファイル名２６ｂとを書き込む。このため、タグファイル作成部２３はダンプファイル３１の所在について、監視テーブル２６から把握することが可能である。従って、デバッガツール２１がダンプファイル３１に対して実行したコマンドについて、タグファイル作成部２３が第１の実施形態と同一の動作によってタグファイル３３を作成することが可能である。
【００５８】
このため、縮小ダンプファイル作成部２４によって、デバッガツール２１が参照した箇所のみが書き込まれた縮小ダンプファイル３４を作成することも可能である。さらに、この縮小ダンプファイル３４によって、縮小ダンプファイル復元部２５によって、復元ダンプファイル３５を作成することも可能である。
【００５９】
これによって、本発明の第２の実施形態に係るデバッグ装置５１０は、第１の実施形態に係るデバッグ装置１０と比べて、デバッガツール２１がダンプファイル３１に対して実行したコマンドをコマンド履歴ファイル３２に記録して再実行しやすくする効果は省略されるが、その点以外は第１の実施形態に係るデバッグ装置１０と同一の効果を得ることができる。
【００６０】
［第３の実施形態］
図９は、本発明の第３の実施形態に係るデバッグ装置６１０の構成を示す説明図である。デバッグ装置６１０は、第１の実施形態に係るデバッグ装置１０の縮小ダンプファイル作成部２４にダンプファイル圧縮手段６４７を、縮小ダンプファイル復元部２５にダンプファイル伸張手段６４８を、それぞれ追加したものである。ダンプファイル圧縮手段６４７およびダンプファイル伸張手段６４８は、ＺＩＰやＬＨＡなどのような可逆的な手法によってファイルの圧縮および伸張を行う。
【００６１】
図１０は、図９に示した縮小ダンプファイル作成手段４５の動作について示すフローチャートである。縮小ダンプファイル作成部２４は、図６に示したステップＳ３０１〜３０５と同一の動作を行った後、データの書き込みを完了した縮小ダンプファイル３４をダンプファイル圧縮手段６４７によって圧縮した後（ステップＳ７０７）、元のダンプファイル３１を削除する（ステップＳ３０６）。なお、ステップＳ７０７で圧縮された後の縮小ダンプファイル３４を、圧縮ダンプファイル６３４と呼ぶ。
【００６２】
図１１は、図９に示した縮小ダンプファイル復元手段４６の動作について示すフローチャートである。縮小ダンプファイル復元部２５は、圧縮ダンプファイル６３４をダンプファイル伸張手段６４８によって伸張して縮小ダンプファイル３４を生成した後（ステップＳ８０１）、ステップＳ４０１〜４０９と同一の処理を行って復元ダンプファイル３５を生成する。
【００６３】
第１および第２の実施形態では、ファイルの可逆的圧縮の動作を行っていなかったが、第３の実施形態ではこれに可逆的圧縮の動作を加えることによって、さらに少ないデータ量でダンプファイルを保存することができる。ただし、前述のように圧縮および伸張の処理には、それに伴う記憶容量および処理の負荷がかかる問題があるので、ユーザの判断により圧縮および伸張の処理を行うか否かを選択できるようにすることが望ましい。
【００６４】
もちろん、第２の実施形態で示した構成のデバッグ装置５１０に、ダンプファイル圧縮手段６４７およびダンプファイル伸張手段６４８を追加しても、上記の効果を得ることができる。
【００６５】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【００６６】
本発明は、ダンプファイルを使ったオペレーティングシステム、アプリケーションプログラムの障害調査といった用途に適用できる。また本発明は、ダンプファイルを長期保存し、オペレーティングシステム、アプリケーションプログラムの障害傾向の分析といった用途にも適用できる。その際、デバッガツールの種類には特に依存しない。
【図面の簡単な説明】
【００６７】
【図１】本発明の第１の実施形態に係るデバッグ装置の構成を示す説明図である。
【図２】図１に示した各テーブルおよびファイルのデータ構造について示す説明図である。図２（ａ）は監視テーブル、図２（ｂ）はコマンド履歴ファイル、図２（ｃ）はダンプファイル、図２（ｄ）はタグファイル、図２（ｅ）は縮小ダンプファイル、図２（ｆ）は復元ダンプファイルのデータ構造を各々示す。
【図３】図１に示したデバッガツールおよび参照箇所記録手段４４の動作について示す説明図である。図３（ａ）はデバッガツールがダンプファイルを参照する動作、図３（ｂ）は参照箇所記録手段が、デバッガツールがダンプファイルを参照した箇所について記録する動作を各々示す。
【図４】図１に示したデバッガツールがダンプファイルを調査する際に、コマンド履歴ファイルとタグファイルが書き込まれる動作について示すフローチャートである。
【図５】図４のステップＳ２１２に示した、コマンド選択手段の動作の詳細を示すフローチャートである。
【図６】図１に示した縮小ダンプファイル作成手段の動作について示すフローチャートである。
【図７】図１に示した縮小ダンプファイル復元手段の動作について示すフローチャートである。
【図８】本発明の第２の実施形態に係るデバッグ装置の構成を示す説明図である。
【図９】本発明の第３の実施形態に係るデバッグ装置の構成を示す説明図である。
【図１０】図９に示した縮小ダンプファイル作成手段の動作について示すフローチャートである。
【図１１】図９に示した縮小ダンプファイル復元手段の動作について示すフローチャートである。
【符号の説明】
【００６８】
１０，５１０，６１０  デバッグ装置
１１  制御部
１２  記憶部
２１  デバッガツール
２２  コマンド履歴作成部
２３  タグファイル作成部
２４  縮小ダンプファイル作成部
２５  縮小ダンプファイル復元部
２６  監視テーブル
２６ａ  デバッガ開始フラグ
２６ｂ  ダンプファイル名
３１  ダンプファイル
３２  コマンド履歴ファイル
３３  タグファイル
３４  縮小ダンプファイル
３４ａ  元のダンプファイルサイズ
３４ｂ  タグデータ
３４ｃ  該当するブロックのデータ
３５  復元ダンプファイル
３５ａ  当該データ
３５ｂ  一時データ
４１  デバッガ管理手段
４２  コマンド選択手段
４３  コマンド履歴作成手段
４４  参照箇所記録手段
４５  縮小ダンプファイル作成手段
４６  縮小ダンプファイル復元手段
６３４  圧縮ダンプファイル
６４７  ダンプファイル圧縮手段
６４８  ダンプファイル伸張手段
【図１】
2010122759.tif 000003
【図２】
2010122759.tif 000004
【図３】
2010122759.tif 000005
【図４】
2010122759.tif 000006
【図５】
2010122759.tif 000007
【図６】
2010122759.tif 000008
【図７】
2010122759.tif 000009
【図８】
2010122759.tif 000010
【図９】
2010122759.tif 000011
【図１０】
2010122759.tif 000012
【図１１】
2010122759.tif 000013