コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、情報記録部と、前記情報記録部に記録されている、前記メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、メモリダンプ出力部と、を備えていることを特徴とするメモリダンプ取得装置。コンピュータにおいてメモリ書き換え命令が実行されたときに、前記メモリ書き換え命令に関する情報を取得する、情報取得部を更に備えている、請求項1に記載のメモリダンプ取得装置。前記情報取得部が、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、請求項1または2に記載のメモリダンプ取得装置。前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、請求項1~3のいずれかに記載のメモリダンプ取得装置。前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え情報を、外部に出力する、請求項1~4のいずれかに記載のメモリダンプ取得装置。前記コンピュータが、仮想環境においてゲストOSによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストOSによって実行されている、請求項1~5のいずれかに記載のメモリダンプ取得装置。aコンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、b前記aのステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、を有することを特徴とするメモリダンプ取得方法。コンピュータにおけるメモリダンプを取得するためのプログラムであって、前記コンピュータに、aメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、b前記aのステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、を実行させるプログラム。しかしながら、上述した特許文献1~特許文献3に開示された技術では、取得処理の実行時におけるメモリ状態のメモリダンプについては取得できるが、障害発生直前などのメモリ状態のメモリダンプを取得することは困難である。このため、上述した特許文献1~特許文献3に開示された技術には、メモリ状態遷移を解析することができないという問題がある。本発明の目的の一例は、上記問題を解消し、任意の時点でのメモリダンプを取得し得る、メモリダンプ取得装置、メモリダンプ取得方法、およびプログラムを提供することにある。上記目的を達成するため、本発明の一側面におけるメモリダンプ取得装置は、コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、情報記録部と、前記情報記録部に記録されている、前記メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、メモリダンプ出力部と、を備えていることを特徴とする。また、上記目的を達成するため、本発明の一側面におけるメモリダンプ取得方法は、aコンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、b前記aのステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、を有することを特徴とする。更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータにおけるメモリダンプを取得するためのプログラムであって、前記コンピュータに、aメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、b前記aのステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、を実行させることを特徴とする。以上のように、本発明における、メモリダンプ取得装置、メモリダンプ取得方法、およびプログラムによれば、任意の時点でのメモリダンプを取得することができる。実施の形態以下、本発明の実施の形態におけるメモリダンプ取得装置、メモリダンプ取得方法、およびプログラムについて、図1~6を参照しながら説明する。[装置構成]最初に、図1を用いて、本実施の形態におけるメモリダンプ取得装置2の構成について説明する。図1は、本発明の実施の形態におけるメモリダンプ取得装置の構成を示すブロック図である。図1に示す本実施の形態におけるメモリダンプ取得装置2は、コンピュータ1におけるメモリダンプを取得する装置である。図1に示すように、メモリダンプ取得装置2は、情報取得部21と、情報記録部22と、メモリダンプ出力部23と、時刻情報取得部24とを備えている。情報取得部21は、コンピュータ1において、CPUCentralProcessingUnit11がメモリ12に対してメモリ書き換え命令を実行したときに、メモリ書き換え命令に関する情報以下メモリ書き換え情報とする。を取得する。また、情報取得部21は、取得したメモリ書き換え情報を情報記録部22に入力する。本実施の形態では、情報取得部21は、CPUとメモリとを結ぶバス上に配置された回路によって構成されている。回路は、CPUからメモリ12に出力されたメモリ書き換え命令を検知し、検知したメモリ書き換え命令に基づいて、メモリ書き換え情報を出力する。また、本実施の形態において、メモリ書き換え情報としては、インストラクションアドレス、書き換えアドレス、およびメモリ内容が挙げられる後述の図3参照。時刻情報取得部24は、情報取得部21から情報記録部22へとメモリ書き換え情報が出力されると、その時の現在時刻を特定する時刻情報を情報記録部22に入力する。この時刻情報によって特定される時刻は、メモリ書き換え命令が実行されたときの時刻に相当する。情報記録部22は、メモリ書き換え情報と、時刻情報とを受け付け、これらを関連付けて記録する。即ち、情報記録部22は、メモリ書き換え情報と、メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する。メモリダンプ出力部23は、情報記録部22に記録されている、メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成したメモリダンプを外部の出力装置3に出力する。本実施の形態では、メモリダンプ出力部23は、外部の使用者から、時刻指定を伴ったメモリダンプ取得命令が入力されると、指定された時刻に関連づけられているメモリ書き換え情報を取得し、取得したメモリ書き換え情報に基づいて、指定された時刻におけるメモリダンプを作成する。そして、この場合は、メモリダンプ出力部23は、指定された時刻におけるメモリダンプを出力する。[装置動作]次に、本発明の実施の形態におけるメモリダンプ取得装置2の動作について説明する。以下の説明においては、適宜図1を参酌する。また、本実施の形態では、メモリダンプ取得装置2を動作させることによって、メモリダンプ取得方法が実施される。よって、本実施の形態におけるメモリダンプ取得方法の説明は、以下のメモリダンプ取得装置2の動作説明に代える。[メモリ書き換え情報記録処理]最初に、図2および図3を用いてメモリ書き換え情報の記録処理について説明する。図2は、本発明の実施の形態におけるメモリダンプ取得装置がメモリ書き換え情報の記録処理を実行する際の動作を示すフロー図である。図3は、本実施の形態において取得されたメモリ書き換え情報の一例を示す図である。図2に示すように、まず、CPU11がメモリ12に対してメモリ書き換え命令を発行すると、情報取得部21は、それを検知するステップA1。そして、情報取得部21は、検知したメモリ書き換え命令に基づいて、インストラクションアドレス、書き換えアドレス、およびメモリ内容を、メモリ書き換え情報として取得するステップA2。また、情報取得部21は、取得したメモリ書き換え情報を情報記録部22に入力する。次に、情報記録部22は、出力時刻情報取得部24から時刻情報を取得する。そして、図3に示すように、情報記録部22は、取得した時刻情報が示す時刻と入力されたメモリ書き換え情報とを関連付けて記録するステップA3。以上のステップA1~A3の実行により、時刻と共にメモリ書き換え情報が記録される。[メモリダンプ出力処理]続いて、図4および図5を用いて、メモリダンプの出力処理について説明する。図4は、本発明の実施の形態におけるメモリダンプ取得装置がメモリダンプの出力処理を実行する際の動作を示すフロー図である。図5は、本発明の実施の形態において作成されたメモリダンプの一例を示す図である。図4に示すように、まず、メモリダンプ出力部23は、使用者が、任意の時刻を指定したメモリダンプ取得命令を入力しているかどうかを判定するステップB1。ステップB1の判定の結果、メモリダンプ取得命令が入力されていない場合は、メモリダンプ出力部23は、待機状態となる。一方、ステップB1の判定の結果、メモリダンプ取得命令が入力されている場合は、メモリダンプ出力部23は、情報記録部22にアクセスし、指定時刻に関連付けられたメモリ書き換え情報を取得するステップB2。次に、メモリダンプ出力部23は、取得したメモリ書き換え情報に基づいて、メモリダンプを作成するステップB3。具体的には、ステップB3では、メモリダンプ出力部23は、メモリ書き換え情報を参照し、初期状態の時点コンピュータ1が立ち上がった時点からステップB1で指定された時刻までのメモリの状態メモリ変化を復元する。この結果、図5に示すメモリダンプファイルが作成される。また、図5においては、指定された時刻は1287030705806108である。その後、メモリダンプ出力部23は、作成したメモリダンプを出力し、使用者に提供するステップB4。また、本実施の形態においては、使用者は、メモリダンプ出力部23に対して、任意の時刻を指定した上で、指定メモリアドレスのインストラクションアドレスを問い合わせる命令を入力することもできる。この場合、メモリダンプ出力部23は、指定時刻において最後に指定メモリアドレスを書き換えたインストラクションアドレスを、出力する。以上のステップB1~B4の実行により、使用者は、障害発生から時間が経過し、解析対象となるコンピュータ1のメモリ12の状態が変化していても、障害発生の時刻を元にメモリダンプ出力部23から障害発生時のメモリダンプを取得でき、障害の解析を実施できる。また、使用者は、必要に応じて、障害発生前の任意の時点におけるメモリダンプ、及びメモリ書き換えを行ったインストラクションアドレスを参照できるので、迅速に障害を解析することができる。また、本発明の実施の形態におけるプログラムは、コンピュータ1に、図2に示すステップA2~A3、および図4に示すステップB1~B4を実行させるプログラムであれば良い。このプログラムをコンピュータ1にインストールし、実行することによって、本実施の形態におけるメモリダンプ取得装置2とメモリダンプ取得方法とを実現することができる。この場合、コンピュータのCPU11は、メモリダンプ出力部23として機能し、処理を行なう。さらに、メモリ12の空き領域、またはハードディスク等の記憶装置が、情報記録部22として機能し、コンピュータに備えられているリアルタイムクロックICが時刻情報取得部24として機能する。また、上述した例では、情報取得部21は、ハードゥエアによって実現されているが、本実施の形態においては、情報取得部21は、メモリダンプ出力部23と同様に、プログラムによって実現することもできる。この場合は、プログラムは図2に示すステップA1も実行する。[実施の形態における説明]以上のように、本実施の形態では、任意の時点でのメモリダンプを取得できるため、障害発生直前から障害発生時までのメモリ状態遷移を参照し、詳細なシステム解析が可能になる。また、本実施の形態では、メモリ書き換え情報として、その書き換えを行ったインストラクションアドレスを記録しているため、問題発生時のメモリを書き換えた命令を特定することもできる。[変形例]また、本実施の形態におけるメモリダンプ取得装置2は、仮想マシン環境に適用することもできる。この例について図6を用いて説明する。図6は、本発明の実施の形態におけるメモリダンプ取得装置の他の例の構成を示すブロック図である。図6の例では、コンピュータ1は、ハイパーバイザー10を備えている。ハイパーバイザー10は、複数のゲストOSを実行して、仮想マシン14~16を構築している。図6の例においては、メモリダンプの取得対象は、各仮想マシンである。そして、メモリ書き換え命令は、各仮想マシンのゲストOSによって実行されている。そして、図6に示す仮想マシン環境においては、ハイパーバイザー1は、ゲストOS管理部13によって、ゲストOSの命令をフックする機能を備えている。このため、この機能を利用し、ゲストOS管理部13に、ゲストOSがメモリ書き換え命令を実行した場合に、それをフックさせて、情報記録部22へとメモリ書き換え情報を出力させることができる。このように、図6に示す仮想マシン環境においては、ゲストOS管理部13を、図1に示した情報取得部21として機能させることができる。従って、図6に示すように、ハイパーバイザー1の管理下で、情報記録部22と、メモリダンプ出力部23と、事項情報取得部24とを構築すれば、仮想マシン環境下においても、上述した実施の形態における効果を得ることができる。つまり、本実施の形態におけるメモリダンプ取得装置2は、特別な装置を用いることなく、一般的なハイパーバイザー10のみによって、仮想環境にも適用できる。ここで、実施の形態におけるメモリダンプ取得装置2を実現するコンピュータ1について図7を用いて説明する。図7は、本発明の実施の形態におけるメモリダンプ取得装置を実現するコンピュータの一例を示すブロック図である。図7に示すように、コンピュータ1は、CPU11と、メモリ12と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。CPU11は、記憶装置113に格納された、本実施の形態におけるプログラムコードをメモリ12に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メモリ12は、典型的には、DRAMDynamicRandomAccessMemory等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。また、記憶装置113の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU11と、キーボード及びマウスといった入力装置4との間のデータ伝送を仲介する。表示コントローラ115は、出力装置ディスプレイ装置3と接続され、出力装置3での表示を制御する。データリーダ/ライタ116は、CPU11と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ1における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU11と、他のコンピュータとの間のデータ伝送を仲介する。また、記録媒体120の具体例としては、CFCompactFlash及びSDSecureDigital等の汎用的な半導体記憶デバイス、フレキシブルディスクFlexibleDisk等の磁気記憶媒体、又はCD-ROMCompactDiskReadOnlyMemoryなどの光学記憶媒体が挙げられる。上述した実施の形態の一部又は全部は、以下に記載する付記1~付記16によって表現することができるが、以下の記載に限定されるものではない。付記1コンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、情報記録部と、前記情報記録部に記録されている、前記メモリ書き換え情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、メモリダンプ出力部と、を備えていることを特徴とするメモリダンプ取得装置。付記2コンピュータにおいてメモリ書き換え命令が実行されたときに、前記メモリ書き換え命令に関する情報を取得する、情報取得部を更に備えている、付記1に記載のメモリダンプ取得装置。付記3前記情報取得部が、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、付記1または2に記載のメモリダンプ取得装置。付記4前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、付記1~3のいずれかに記載のメモリダンプ取得装置。付記5前記メモリダンプ出力部が、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え情報を、外部に出力する、付記1~4のいずれかに記載のメモリダンプ取得装置。付記6前記コンピュータが、仮想環境においてゲストOSによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストOSによって実行されている、付記1~5のいずれかに記載のメモリダンプ取得装置。付記7aコンピュータにおいてメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、b前記aのステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、を有することを特徴とするメモリダンプ取得方法。付記8前記aのステップにおいて、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、付記7に記載のメモリダンプ取得方法。付記9前記bのステップにおいて、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、付記7または8に記載のメモリダンプ取得方法。付記10d外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報を、外部に出力する、ステップを更に有する、付記7~9のいずれかに記載のメモリダンプ取得方法。付記11前記コンピュータが、仮想環境においてゲストOSによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストOSによって実行されている、付記7~10のいずれかに記載のメモリダンプ取得方法。付記12コンピュータにおけるメモリダンプを取得するためのプログラムであって、前記コンピュータに、aメモリ書き換え命令が実行されたときに取得された、前記メモリ書き換え命令に関する情報と、前記メモリ書き換え命令が実行されたときの時刻とを関連付けて記録する、ステップと、b前記aのステップで記録されている、前記メモリ書き換え命令に関する情報とそれに関連づけられている時刻とに基づいて、当該時刻におけるメモリダンプを作成し、作成した前記メモリダンプを外部に出力する、ステップと、を実行させるプログラム。付記13前記aのステップにおいて、前記メモリ書き換え命令に関する情報として、インストラクションアドレス、書き換えアドレス、およびメモリ内容が取得されている、付記12に記載のプログラム。付記14前記bのステップにおいて、外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報に基づいて、指定された時刻におけるメモリダンプを作成する、付記12または13に記載のプログラム。付記15d外部から時刻が指定されたときに、指定された時刻に関連づけられているメモリ書き換え命令に関する情報を取得し、取得したメモリ書き換え命令に関する情報を、外部に出力する、ステップを更に前記コンピュータに実行させる、付記12~14のいずれかに記載のプログラム。付記16前記コンピュータが、仮想環境においてゲストOSによって構築された仮想マシンであり、前記メモリ書き換え命令が、前記ゲストOSによって実行されている、付記12~15のいずれかに記載のプログラム。