(57)【要約】【課題】任意の時点でのメモリダンプを取得し得る、メモリダンプ取得装置、メモリダンプ取得方法、およびプログラムを提供する。【解決手段】メモリダンプ取得装置２は、コンピュータ１においてメモリ書き換え命令が実行されたときに取得された、メモリ書き換え命令に関する情報と、メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、情報記録部２２と、情報記録部２２に記録されている、メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成したメモリダンプを外部に出力する、メモリダンプ出力部２３と、を備えている。【選択図】図１
2012190120.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、情報記録部と、
前記情報記録部に記録されている、前記メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、メモリダンプ出力部と、
を備えていることを特徴とするメモリダンプ取得装置。
【請求項２】
コンピュータにおいてメモリ書き換え命令が実行されたときに、前記メモリ書き換え命令に関する情報を取得する、情報取得部を更に備えている、請求項１に記載のメモリダンプ取得装置。
【請求項３】
前記情報取得部が、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、請求項１または２に記載のメモリダンプ取得装置。
【請求項４】
前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、請求項１〜３のいずれかに記載のメモリダンプ取得装置。
【請求項５】
前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え情報を、外部に出力する、請求項１〜４のいずれかに記載のメモリダンプ取得装置。
【請求項６】
前記コンピュータが、仮想環境においてゲストＯＳによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストＯＳによって実行されている、請求項１〜５のいずれかに記載のメモリダンプ取得装置。
【請求項７】
（ａ）コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、
（ｂ）前記（ａ）のステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、
を有することを特徴とするメモリダンプ取得方法。
【請求項８】
コンピュータにおけるメモリダンプを取得するためのプログラムであって、
前記コンピュータに、
（ａ）メモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、
（ｂ）前記（ａ）のステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおけるメモリダンプを取得する、メモリダンプ取得装置、メモリダンプ取得方法、およびプログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータシステムにおいては、障害が発生したときに、メモリ上のデータを、ファイルとして保存する処理が行われている。このような処理によって保存されるデータは、「メモリダンプ」と呼ばれている。稼働中のシステムのメモリダンプを取得することは、システム障害の原因解析などを行う際に有効な手段となる。
【０００３】
但し、ある時点のシステム全体のメモリダンプを取得するためには、メモリ内容が書き換えられないように、システムのすべての処理を停止させてから行う必要がある。このため、メモリダンプを取得することには、システムへの影響が大きいという問題がある。また、障害発生時にメモリダンプを取得しても、取得したメモリダンプからは、障害の発生後のメモリ状態しか参照できないため、実際には、障害の解析が難しいという問題もある。
【０００４】
このような問題を解決するため、従来から、メモリダンプの取得中であっても、システムの処理を継続できるようにする技術が提案されている（例えば、特許文献１〜３参照）。具体的には、特許文献１に開示された技術は、メモリ内容の書き換えが生じたときに、すべてのメモリ内容を別のメモリ装置にいったん待避させ、メモリ内容の変化を回避することで、システムを停止せずにメモリダンプを取得している。
【０００５】
また、特許文献２に開示された技術は、メモリダンプの記録用の領域を用意し、障害が発生するまで、この記録用の領域とシステムのメモリとを同期しておくことで、システムを停止せずにメモリダンプを取得している。
【０００６】
さらに、特許文献３に開示された技術は、メモリダンプが取得されている記憶領域に対して書き込み要求を受け付けた場合に、メモリダンプが取得されている記憶領域と異なる記憶領域を新たに割り当てることで、システムを停止せずにメモリダンプを取得している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１５４０８７号公報
【特許文献２】特開２００４−１０２３９５号公報
【特許文献３】特開２００９−１４０２９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１〜特許文献３に開示された技術では、取得処理の実行時におけるメモリ状態のメモリダンプについては取得できるが、障害発生直前などのメモリ状態のメモリダンプを取得することは困難である。このため、上述した特許文献１〜特許文献３に開示された技術には、メモリ状態遷移を解析することができないという問題がある。
【０００９】
本発明の目的の一例は、上記問題を解消し、任意の時点でのメモリダンプを取得し得る、メモリダンプ取得装置、メモリダンプ取得方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の一側面におけるメモリダンプ取得装置は、
コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、情報記録部と、
前記情報記録部に記録されている、前記メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、メモリダンプ出力部と、
を備えていることを特徴とする。
【００１１】
また、上記目的を達成するため、本発明の一側面におけるメモリダンプ取得方法は、
（ａ）コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、
（ｂ）前記（ａ）のステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、
を有することを特徴とする。
【００１２】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータにおけるメモリダンプを取得するためのプログラムであって、
前記コンピュータに、
（ａ）メモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、
（ｂ）前記（ａ）のステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１３】
以上のように、本発明における、メモリダンプ取得装置、メモリダンプ取得方法、およびプログラムによれば、任意の時点でのメモリダンプを取得することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態におけるメモリダンプ取得装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態におけるメモリダンプ取得装置がメモリ書き換え情報の記録処理を実行する際の動作を示すフロー図である。
【図３】図３は、本実施の形態において取得されたメモリ書き換え情報の一例を示す図である。
【図４】図４は、本発明の実施の形態におけるメモリダンプ取得装置がメモリダンプの出力処理を実行する際の動作を示すフロー図である。
【図５】図５は、本発明の実施の形態において作成されたメモリダンプの一例を示す図である。
【図６】図６は、本発明の実施の形態におけるメモリダンプ取得装置の他の例の構成を示すブロック図である。
【図７】図７は、本発明の実施の形態におけるメモリダンプ取得装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１５】
（実施の形態）
以下、本発明の実施の形態におけるメモリダンプ取得装置、メモリダンプ取得方法、およびプログラムについて、図１〜６を参照しながら説明する。
【００１６】
［装置構成］
最初に、図１を用いて、本実施の形態におけるメモリダンプ取得装置２の構成について説明する。図１は、本発明の実施の形態におけるメモリダンプ取得装置の構成を示すブロック図である。
【００１７】
図１に示す本実施の形態におけるメモリダンプ取得装置２は、コンピュータ１におけるメモリダンプを取得する装置である。図１に示すように、メモリダンプ取得装置２は、情報取得部２１と、情報記録部２２と、メモリダンプ出力部２３と、時刻情報取得部２４とを備えている。
【００１８】
情報取得部２１は、コンピュータ１において、ＣＰＵ（Central Processing Unit）１１がメモリ１２に対してメモリ書き換え命令を実行したときに、メモリ書き換え命令に関する情報（以下「メモリ書き換え情報」とする。）を取得する。また、情報取得部２１は、取得したメモリ書き換え情報を情報記録部２２に入力する。
【００１９】
本実施の形態では、情報取得部２１は、ＣＰＵとメモリとを結ぶバス上に配置された回路によって構成されている。回路は、ＣＰＵからメモリ１２に出力されたメモリ書き換え命令を検知し、検知したメモリ書き換え命令に基づいて、メモリ書き換え情報を出力する。また、本実施の形態において、メモリ書き換え情報としては、インストラクションアドレス、書き換えアドレス、およびメモリ内容が挙げられる（後述の図３参照）。
【００２０】
時刻情報取得部２４は、情報取得部２１から情報記録部２２へとメモリ書き換え情報が出力されると、その時の現在時刻を特定する時刻情報を情報記録部２２に入力する。この時刻情報によって特定される時刻は、メモリ書き換え命令が実行されたときの時刻に相当する。
【００２１】
情報記録部２２は、メモリ書き換え情報と、時刻情報とを受け付け、これらを関連付けて記録する。即ち、情報記録部２２は、メモリ書き換え情報と、メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する。
【００２２】
メモリダンプ出力部２３は、情報記録部２２に記録されている、メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成したメモリダンプを外部の出力装置３に出力する。
【００２３】
本実施の形態では、メモリダンプ出力部２３は、外部の使用者から、時刻指定を伴ったメモリダンプ取得命令が入力されると、指定された時刻に関連づけられているメモリ書き換え情報を取得し、取得したメモリ書き換え情報に基づいて、指定された時刻におけるメモリダンプを作成する。そして、この場合は、メモリダンプ出力部２３は、指定された時刻におけるメモリダンプを出力する。
【００２４】
［装置動作］
次に、本発明の実施の形態におけるメモリダンプ取得装置２の動作について説明する。以下の説明においては、適宜図１を参酌する。また、本実施の形態では、メモリダンプ取得装置２を動作させることによって、メモリダンプ取得方法が実施される。よって、本実施の形態におけるメモリダンプ取得方法の説明は、以下のメモリダンプ取得装置２の動作説明に代える。
【００２５】
［メモリ書き換え情報記録処理］
最初に、図２および図３を用いてメモリ書き換え情報の記録処理について説明する。図２は、本発明の実施の形態におけるメモリダンプ取得装置がメモリ書き換え情報の記録処理を実行する際の動作を示すフロー図である。図３は、本実施の形態において取得されたメモリ書き換え情報の一例を示す図である。
【００２６】
図２に示すように、まず、ＣＰＵ１１がメモリ１２に対してメモリ書き換え命令を発行すると、情報取得部２１は、それを検知する（ステップＡ１）。そして、情報取得部２１は、検知したメモリ書き換え命令に基づいて、インストラクションアドレス、書き換えアドレス、およびメモリ内容を、メモリ書き換え情報として取得する（ステップＡ２）。また、情報取得部２１は、取得したメモリ書き換え情報を情報記録部２２に入力する。
【００２７】
次に、情報記録部２２は、出力時刻情報取得部２４から時刻情報を取得する。そして、図３に示すように、情報記録部２２は、取得した時刻情報が示す時刻と入力されたメモリ書き換え情報とを関連付けて記録する（ステップＡ３）。以上のステップＡ１〜Ａ３の実行により、時刻と共にメモリ書き換え情報が記録される。
【００２８】
［メモリダンプ出力処理］
続いて、図４および図５を用いて、メモリダンプの出力処理について説明する。図４は、本発明の実施の形態におけるメモリダンプ取得装置がメモリダンプの出力処理を実行する際の動作を示すフロー図である。図５は、本発明の実施の形態において作成されたメモリダンプの一例を示す図である。
【００２９】
図４に示すように、まず、メモリダンプ出力部２３は、使用者が、任意の時刻を指定したメモリダンプ取得命令を入力しているかどうかを判定する（ステップＢ１）。
【００３０】
ステップＢ１の判定の結果、メモリダンプ取得命令が入力されていない場合は、メモリダンプ出力部２３は、待機状態となる。一方、ステップＢ１の判定の結果、メモリダンプ取得命令が入力されている場合は、メモリダンプ出力部２３は、情報記録部２２にアクセスし、指定時刻に関連付けられたメモリ書き換え情報を取得する（ステップＢ２）。
【００３１】
次に、メモリダンプ出力部２３は、取得したメモリ書き換え情報に基づいて、メモリダンプを作成する（ステップＢ３）。具体的には、ステップＢ３では、メモリダンプ出力部２３は、メモリ書き換え情報を参照し、初期状態の時点（コンピュータ１が立ち上がった時点）からステップＢ１で指定された時刻までのメモリの状態（メモリ変化）を復元する。この結果、図５に示すメモリダンプ（ファイル）が作成される。また、図５においては、指定された時刻は「1287030705.806108」である。その後、メモリダンプ出力部２３は、作成したメモリダンプを出力し、使用者に提供する（ステップＢ４）。
【００３２】
また、本実施の形態においては、使用者は、メモリダンプ出力部２３に対して、任意の時刻を指定した上で、指定メモリアドレスのインストラクションアドレスを問い合わせる命令を入力することもできる。この場合、メモリダンプ出力部２３は、指定時刻において最後に指定メモリアドレスを書き換えたインストラクションアドレスを、出力する。
【００３３】
以上のステップＢ１〜Ｂ４の実行により、使用者は、障害発生から時間が経過し、解析対象となるコンピュータ１のメモリ１２の状態が変化していても、障害発生の時刻を元にメモリダンプ出力部２３から障害発生時のメモリダンプを取得でき、障害の解析を実施できる。また、使用者は、必要に応じて、障害発生前の任意の時点におけるメモリダンプ、及びメモリ書き換えを行ったインストラクションアドレスを参照できるので、迅速に障害を解析することができる。
【００３４】
また、本発明の実施の形態におけるプログラムは、コンピュータ１に、図２に示すステップＡ２〜Ａ３、および図４に示すステップＢ１〜Ｂ４を実行させるプログラムであれば良い。このプログラムをコンピュータ１にインストールし、実行することによって、本実施の形態におけるメモリダンプ取得装置２とメモリダンプ取得方法とを実現することができる。
【００３５】
この場合、コンピュータのＣＰＵ１１は、メモリダンプ出力部２３として機能し、処理を行なう。さらに、メモリ１２の空き領域、またはハードディスク等の記憶装置が、情報記録部２２として機能し、コンピュータに備えられているリアルタイムクロックＩＣが時刻情報取得部２４として機能する。
【００３６】
また、上述した例では、情報取得部２１は、ハードゥエアによって実現されているが、本実施の形態においては、情報取得部２１は、メモリダンプ出力部２３と同様に、プログラムによって実現することもできる。この場合は、プログラムは図２に示すステップＡ１も実行する。
【００３７】
［実施の形態における説明］
以上のように、本実施の形態では、任意の時点でのメモリダンプを取得できるため、障害発生直前から障害発生時までのメモリ状態遷移を参照し、詳細なシステム解析が可能になる。また、本実施の形態では、メモリ書き換え情報として、その書き換えを行ったインストラクションアドレスを記録しているため、問題発生時のメモリを書き換えた命令を特定することもできる。
【００３８】
［変形例］
また、本実施の形態におけるメモリダンプ取得装置２は、仮想マシン環境に適用することもできる。この例について図６を用いて説明する。図６は、本発明の実施の形態におけるメモリダンプ取得装置の他の例の構成を示すブロック図である。
【００３９】
図６の例では、コンピュータ１は、ハイパーバイザー１０を備えている。ハイパーバイザー１０は、複数のゲストＯＳを実行して、仮想マシン１４〜１６を構築している。図６の例においては、メモリダンプの取得対象は、各仮想マシンである。そして、メモリ書き換え命令は、各仮想マシンのゲストＯＳによって実行されている。
【００４０】
そして、図６に示す仮想マシン環境においては、ハイパーバイザー１は、ゲストＯＳ管理部１３によって、ゲストＯＳの命令をフックする機能を備えている。このため、この機能を利用し、ゲストＯＳ管理部１３に、ゲストＯＳがメモリ書き換え命令を実行した場合に、それをフックさせて、情報記録部２２へとメモリ書き換え情報を出力させることができる。
【００４１】
このように、図６に示す仮想マシン環境においては、ゲストＯＳ管理部１３を、図１に示した情報取得部２１として機能させることができる。従って、図６に示すように、ハイパーバイザー１の管理下で、情報記録部２２と、メモリダンプ出力部２３と、事項情報取得部２４とを構築すれば、仮想マシン環境下においても、上述した実施の形態における効果を得ることができる。つまり、本実施の形態におけるメモリダンプ取得装置２は、特別な装置を用いることなく、一般的なハイパーバイザー１０のみによって、仮想環境にも適用できる。
【００４２】
ここで、実施の形態におけるメモリダンプ取得装置２を実現するコンピュータ１について図７を用いて説明する。図７は、本発明の実施の形態におけるメモリダンプ取得装置を実現するコンピュータの一例を示すブロック図である。
【００４３】
図７に示すように、コンピュータ１は、ＣＰＵ１１と、メモリ１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００４４】
ＣＰＵ１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメモリ１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メモリ１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００４５】
また、記憶装置１１３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１と、キーボード及びマウスといった入力装置４との間のデータ伝送を仲介する。表示コントローラ１１５は、出力装置（ディスプレイ装置）３と接続され、出力装置３での表示を制御する。データリーダ／ライタ１１６は、ＣＰＵ１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００４６】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash）及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【００４７】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１６）によって表現することができるが、以下の記載に限定されるものではない。
【００４８】
（付記１）
コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、情報記録部と、
前記情報記録部に記録されている、前記メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、メモリダンプ出力部と、
を備えていることを特徴とするメモリダンプ取得装置。
【００４９】
（付記２）
コンピュータにおいてメモリ書き換え命令が実行されたときに、前記メモリ書き換え命令に関する情報を取得する、情報取得部を更に備えている、付記１に記載のメモリダンプ取得装置。
【００５０】
（付記３）
前記情報取得部が、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、付記１または２に記載のメモリダンプ取得装置。
【００５１】
（付記４）
前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、付記１〜３のいずれかに記載のメモリダンプ取得装置。
【００５２】
（付記５）
前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え情報を、外部に出力する、付記１〜４のいずれかに記載のメモリダンプ取得装置。
【００５３】
（付記６）
前記コンピュータが、仮想環境においてゲストＯＳによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストＯＳによって実行されている、付記１〜５のいずれかに記載のメモリダンプ取得装置。
【００５４】
（付記７）
（ａ）コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、
（ｂ）前記（ａ）のステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、
を有することを特徴とするメモリダンプ取得方法。
【００５５】
（付記８）
前記（ａ）のステップにおいて、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、付記７に記載のメモリダンプ取得方法。
【００５６】
（付記９）
前記（ｂ）のステップにおいて、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、付記７または８に記載のメモリダンプ取得方法。
【００５７】
（付記１０）
（ｄ）外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報を、外部に出力する、ステップを更に有する、付記７〜９のいずれかに記載のメモリダンプ取得方法。
【００５８】
（付記１１）
前記コンピュータが、仮想環境においてゲストＯＳによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストＯＳによって実行されている、付記７〜１０のいずれかに記載のメモリダンプ取得方法。
【００５９】
（付記１２）
コンピュータにおけるメモリダンプを取得するためのプログラムであって、
前記コンピュータに、
（ａ）メモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、
（ｂ）前記（ａ）のステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、
を実行させるプログラム。
【００６０】
（付記１３）
前記（ａ）のステップにおいて、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、付記１２に記載のプログラム。
【００６１】
（付記１４）
前記（ｂ）のステップにおいて、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、付記１２または１３に記載のプログラム。
【００６２】
（付記１５）
（ｄ）外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報を、外部に出力する、ステップを更に前記コンピュータに実行させる、付記１２〜１４のいずれかに記載のプログラム。
【００６３】
（付記１６）
前記コンピュータが、仮想環境においてゲストＯＳによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストＯＳによって実行されている、付記１２〜１５のいずれかに記載のプログラム。
【産業上の利用可能性】
【００６４】
以上のように、本発明によれば、任意の時点でのメモリダンプを取得することができ、メモリ状態遷移を解析することができる。本発明は、メモリダンプの取得が求められるコンピュータシステムに対して広く適用可能である。
【符号の説明】
【００６５】
１  コンピュータ
２  メモリダンプ取得装置
１０  ハイパーバイザー
１１  ＣＰＵ
１２  メモリ
１３  ゲストＯＳ管理部
１４〜１６  仮想マシン（ゲストＯＳ）
２１  情報取得部
２２  情報記録部
２３  メモリダンプ出力部
２４  時刻情報取得部
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2012190120.tif 000003
【図２】
2012190120.tif 000004
【図３】
2012190120.tif 000005
【図４】
2012190120.tif 000006
【図５】
2012190120.tif 000007
【図６】
2012190120.tif 000008
【図７】
2012190120.tif 000009