(57)【要約】【課題】  ダンプ対象領域の登録および解除の処理を容易にすることができる情報処理装置のメモリダンプ装置を得ることを目的とする。また更に、ダンプ対象領域情報のサイズを削減することを目的とする。【解決手段】  情報処理装置における障害発生時のメモリ対象をユーザが事前指定する方式において、ダンプ対象のメモリを一定サイズに分割し、かつダンプ出力が必要か不必要かを表すオン／オフビットを該分割領域毎に設定する領域設定手段と、故障発生時に設定されたビット対応のメモリの情報を外部ダンプファイルに出力するメモリダンプ解析手段と、出力されたメモリの情報を設定された分割領域分、順次出力するダンプファイル解析手段とを備えた。【選択図】        図７
2005332421.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のメモリに記憶された情報をダンプするメモリダンプ装置において、
メモリを一定サイズに分割したページ領域がそれぞれダンプ対象か否かを示すページ対応情報の集合をダンプ対象領域情報として記憶するダンプ対象領域情報ファイルと、
情報処理装置に障害が発生した場合に、ダンプ対象領域情報ファイルに記憶されたダンプ対象領域情報を読み込み、ページ対応情報の集合を、ダンプ対象領域の先頭ページ番号とページ数との組で表したダンプ対象領域情報に変換し、変換したダンプ対象領域情報と、ダンプ対象領域情報が示すメモリのダンプ対象領域に記憶された領域情報とをダンプファイルとして出力するメモリダンプ手段と、
メモリダンプ手段により出力されたダンプファイルのダンプ対象領域情報の先頭ページ番号とページ数との組を参照してダンプファイルの領域情報を解析するダンプファイル解析手段と
を備えたことを特徴とするメモリダンプ装置。
【請求項２】
上記ページ対応情報の集合は、ページ領域に対応したビットの集合であり、ビットのオンオフにより対応するページ領域がダンプ対象か否かを示すことを特徴とする請求項１記載のメモリダンプ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置におけるメモリダンプ方式に関し、特に障害発生時のシステムダンプにおいて、主メモリ内容の一部をダンプする方式に関するものである。
【背景技術】
【０００２】
従来、情報処理装置の障害発生時におけるメモリダンプ方式としては、障害発生時の主記憶内容を全てを二次記憶装置に保存することが一般的であった。
これを改善しようと、メモリダンプを保存する二次記憶装置の容量の削減や、メモリダンプ実行時間の短縮を目的とした、図２５に示す特開平２−１８６４５１号公報の方式がある。図２５の例では、情報処理装置の障害を検出すると、障害検出手段１０５が、障害情報選出手段１０４に指示し、障害選出手段１０４は障害検出箇所と障害の種類により、障害情報リスト１０７を作成する。次に障害検出手段１０５はメモリダンプ採取手段１０６に指示し、メモリダンプ採取手段１０６は、障害情報リスト１０７から主記憶装置１０２内の障害解析に必要な情報１０３をダンプファイル１０８に保存することにより、保存する主記憶装置内のデータを削減するものである。
【０００３】
第２の従来例である、予めユーザがダンプ領域のアドレスとダンプサイズを設定する方式として、図２６に示す特開平５−２５７７６１号公報に記載のようにダンプ領域のアドレスと、サイズをあらかじめ設定しておき、その設定に基づいてメモリダンプを行う方法があった。
図に示す方式においては、プログラムが異常終了した場合等の解析のためには、あらかじめプログラム対応で仮想記憶空間にエリアＡ等とアドレスとサイズをダンプ出力テーブル１１０１に設定しておく。そしてプログラムが異常終了した場合等には、ダンプエリア選択手段１１０３は図（Ｂ）に示す動作フローにより、現時点で登録されているエリアのみをダンプ出力手段１１０４に通知し、この通知に基づいて所定のエリアがダンプ出力される。
しかし、この方式ではダンプファイル内にダンプ出力管理テーブルを格納する手順がない。これはダンプファイルを解析する人が内容を熟知し、ダンプ領域を自由に指定できるという前提であると思われる。しかし大規模システムではこの前提は成立せず、ダンプファイル解析者がダンプ領域を指定できるとは限らない。更にダンプファイル既登録のダンプ領域と重複する可能性がある新規登録との関係が言及されていない。
【特許文献１】特開平０２−１８６４５１号公報
【特許文献２】特開平０５−２５７７６１号公報
【特許文献３】特開昭６２−０６５１４６号公報
【特許文献４】特開昭６２−２１２７４３号公報
【特許文献５】特開平０４−３４６１３９号公報
【特許文献６】特開平０２−２８２８３８号公報
【特許文献７】特開２０００−０２９７５０号公報
【特許文献８】特開平０２−１８６４５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記の従来技術のメモリダンプ方式では、障害検出時に障害解析に必要な情報を選出し、障害情報リストを作成するため、メモリダンプに必要な領域を算出するのに時間を要し、更に必ずしも適切な領域が得られるとは限らない、という課題がある。
また、障害解析に必要な情報のリストは、障害情報リストに格納されているため、ダンプファイルを解析するためには、障害情報選出手段が作成した障害情報リストを必要とする。障害情報選出手段が障害情報リストを作成すると、ユーザがメモリダンプ領域を自由に設定することが不可能であるという課題もある。
ユーザが領域を指定する方式においては、ダンプ領域の重複を避けることが考慮されていない。
さらには、仮想記憶機能を備えた情報処理装置において、仮想アドレス上で動作するプログラムが原因で障害が発生した場合、ダンプファイルを用いて障害解析をするためには、仮想アドレスで解析する必要があるが、そのような機構が存在しなかった。
また更に、ダンプファイル内に直接ダンプ領域を指定するダンプ出力管理テーブルがなく、ダンプファイル解析者はダンプファイルのデータがどのデータであるかを判読できない。
【０００５】
この発明は、上記のような課題を解消するためになされたもので、ダンプ対象領域の登録および解除の処理を容易にすることができる情報処理装置のメモリダンプ装置を得る。また更に、ダンプ対象領域情報のサイズを削減する。
【課題を解決するための手段】
【０００６】
この発明に係るメモリダンプ装置は、情報処理装置のメモリに記憶された情報をダンプするメモリダンプ装置において、
メモリを一定サイズに分割したページ領域がそれぞれダンプ対象か否かを示すページ対応情報の集合をダンプ対象領域情報として記憶するダンプ対象領域情報ファイルと、情報処理装置に障害が発生した場合に、ダンプ対象領域情報ファイルに記憶されたダンプ対象領域情報を読み込み、ページ対応情報の集合を、ダンプ対象領域の先頭ページ番号とページ数との組で表したダンプ対象領域情報に変換し、変換したダンプ対象領域情報と、ダンプ対象領域情報が示すメモリのダンプ対象領域に記憶された領域情報とをダンプファイルとして出力するメモリダンプ手段と、メモリダンプ手段により出力されたダンプファイルのダンプ対象領域情報の先頭ページ番号とページ数との組を参照してダンプファイルの領域情報を解析するダンプファイル解析手段とを備えたことを特徴とする。
【０００７】
また更に、上記ページ対応情報の集合は、ページ領域に対応したビットの集合であり、ビットのオンオフにより対応するページ領域がダンプ対象か否かを示すことを特徴とする。
【発明の効果】
【０００８】
この発明の実施の形態によれば、ユーザ指定のメモリダンプ領域をビットで設定するようにしたので、所望のダンプ領域を重複を避けて容易に出力できる効果がある。
【０００９】
また更に、仮想アドレスと実アドレスとの変換表を備えたので、仮想アドレスを指定したメモリダンプが行える効果がある。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
以下、ユーザがメモリダンプの領域を指定し、かつダンプ量を低減する、この発明の基本的なアイデアを実施の形態１として図を用いて説明する。
図１は本発明の実施の形態１による情報処理装置の構成図である。図中、１はＯＳ、２はメモリ、３は二次記憶装置を示している。二次記憶装置３には、障害発生時のメモリ内容を記憶するダンプファイル１０を備える。またＯＳ１には、ユーザからの指示により起動される領域設定手段１１、故障発生時に起動される故障検出手段１２、故障検出手段の指示により起動されるメモリダンプ手段１３、障害発生後にユーザからの指示により起動されるダンプファイル解析手段１４、およびユーザから指示されたメモリダンプ対象領域の情報を保持するダンプ対象領域情報ファイル１５を備える。また、メモリ２には、メモリダンプ対象領域となる領域Ａ２１、領域Ｂ２２、領域Ｃ２３を備える。
図のＯＳ１への入力として３つがあり、領域設定手段１１への「領域設定」は、原則として事前設定しておく。またダンプファイル解析手段１４を起動する「障害解析」は、故障発生後、適宜、出力をする。
【００１１】
図２は、ダンプ対象領域情報ファイル１５の構造を示したものである。ダンプ対象領域情報ファイル１５は各メモリダンプ対象領域の先頭アドレス（例えば０ｘ００００１０００）と先頭アドレスからダンプするサイズ（例えば０ｘ１０００幅の領域）を１組にした配列で構成される。ダンプ対象領域情報で空き（メモリダンプ対象領域が登録されていない）領域はアドレスが０、サイズが−１に設定されている。ここでは、ダンプ対象領域情報を配列で示しているが、アドレスとサイズを１組にしたリスト構造で構成しても同一である。
図３は、ダンプファイル１０の構造を示したものである。ダンプファイル１０は、ＯＳ１内のダンプ対象領域情報ファイル１５を格納したダンプ対象領域情報ファイル１５’、メモリ上の領域Ａ２１の内容を格納した領域Ａ２１’、メモリ上の領域Ｂ２２の内容を格納した領域Ｂ２２’、メモリ上の領域Ｃ２３の内容を格納した領域Ｃ２３’で構成される。
【００１２】
次に、この発明によるメモリダンプ装置の動作を図１、図２、図３を用いて説明する。本実施の形態では、メモリ２上の領域Ａ２１、領域Ｂ２２、領域Ｃ２３をメモリダンプ対象領域とした場合の例を示す。
まず、故障発生、及び障害解析に先立って、ユーザはＯＳ１の通常動作時に、領域設定手段１１に対して領域Ａ２１をメモリダンプ対象領域として登録するように指示する。この「領域設定」指示により、領域設定手段１１は、領域Ａ２１のメモリ上のアドレスおよびサイズを算出し、ダンプ対象領域情報ファイル１５に領域Ａの位置情報を登録する。図２において領域Ａの位置情報として先頭アドレス０ｘ００００１０００が、またダンプ領域のサイズとして０ｘ１０００幅分がメモリダンプ対象領域情報のインデックス０に登録される。
ユーザが領域Ｂ２２、領域Ｃ２３をメモリダンプ対象領域として登録する際も、領域設定手段１１は同様な処理で領域Ｂ２２、領域Ｃ２３の位置情報をダンプ対象領域情報ファイル１５に登録する。
【００１３】
情報処理装置内で障害が発生すると、メモリダンプ装置としてまず故障検出手段１２が故障を検出し、メモリダンプ手段１３を起動する。メモリダンプ手段１３は、まず、ダンプファイル１０のダンプ対象領域情報ファイル１５’の領域にダンプ対象領域情報ファイル１５の内容を書き込む。次に、ダンプ対象領域情報ファイル１５の内容に従い、メモリ２内のメモリダンプ対象領域をダンプファイル１０に書き込む。本実施の形態では、ダンプ対象領域情報ファイル１５にはメモリ２内の領域Ａ２１、領域Ｂ２２、領域Ｃ２３のアドレスおよびサイズが登録されているので、メモリダンプ手段１３は、ダンプファイル１０内の領域Ａ２１’の領域にメモリ２内の領域Ａ２１の内容を書き込み、ダンプファイル１０内の領域Ｂ２２’の領域にメモリ２内の領域Ｂ２２の内容を書き込み、ダンプファイル１０内の領域Ｃ２２’の領域にメモリ２内の領域Ｃ２３の内容を書き込む。
以上の操作の後、情報処理装置は再起動される。
【００１４】
情報処理装置が再起動されると、ユーザは、情報処理装置で発生した障害原因を解明するために、ダンプファイル解析手段１４を起動する。ユーザが障害発生時のメモリ２内の領域Ａ２１の内容を参照したい場合、ダンプファイル解析手段１４は、ダンプファイル１０内にあるダンプ対象領域情報ファイル１５’を参照し、ダンプファイル１０内に格納されている領域Ａ２１’の位置およびサイズを算出し、ダンプファイル１０内の領域Ａ２１’の内容を読み出し、ユーザに表示する。
同様に、ユーザが障害発生時のメモリ２内の領域Ｂ２２、領域Ｃ２３の内容を参照する場合、ダンプ解析手段１４は、ダンプファイル１０内にあるダンプ対象領域情報ファイル１５’を参照し、ダンプファイル１０内に格納されている領域Ｂ２２’および領域Ｃ２３’の位置およびサイズを算出し、ダンプファイル１０内の領域Ｂ２２’および領域Ｃ２３’の内容を読み出し、ユーザに表示する。
【００１５】
次に実施の形態１における領域設定手段１１の動作を図４を用いて説明する。
まず、Ｓ１０１でユーザからダンプ対象とする領域のアドレスとサイズが指示される。次にＳ１０２にて、ＯＳ１内にあるダンプ対象領域情報ファイル１５の先頭の情報（図２におけるインデックス０の情報）から順に登録領域情報を参照しＳ１０１にて指定された領域が既に登録されているかを検索する。Ｓ１０３にて、Ｓ１０１にて指定された領域が、ダンプ対象領域情報ファイル１５に登録されている領域と重ならない、すなわち指定された領域が、ダンプ対象領域情報ファイル１５に登録されていないと判断された場合、Ｓ１０４にて、ダンプ対象領域情報ファイル１５の空き領域（アドレスが０、サイズが−１）にＳ１０１にて指定されたアドレスおよびサイズを設定し、処理を終了する。
Ｓ１０３にて、Ｓ１０１で指定された領域がダンプ対象領域情報ファイル１５に登録されている領域と重なる場合、Ｓ１０５にて指定された領域と重なる登録済み領域をダンプ対象領域情報ファイル１５から削除する。次にＳ１０６にて、削除した領域とＳ１０１にて指定された領域を包含する領域のアドレスおよびサイズをダンプ対象領域情報ファイル１５に設定し、処理を終了する。これは、例えば図２において新しくインデックス３相当として、アドレス０Ｘ００００１５００からサイズ０Ｘ４０００と指定すると、既登録の領域Ａと領域Ｂと重なる領域があるので、既登録のインデックス０と１を削除して、インデックス３としてはアドレス０Ｘ００００１０００からサイズ０７０００までを登録する。
【００１６】
次に実施の形態１におけるメモリダンプ手段１３の動作を図５を用いて説明する。
まずＳ１１１にてダンプ対象領域情報ファイル１５のダンプファイル１０への書き込みが行われる。次にＳ１１２にて、ダンプ対象領域情報ファイル１５の先頭にある登録領域情報を取得する。図２の例で言えば、アドレス０ｘ００００１０００、サイズ０ｘ１０００という位置情報、すなわち領域Ａ２１の位置情報が取得される。次にＳ１１３で登録領域情報のサイズ情報部分が−１であるかチェックされる。サイズ情報部分が−１の場合、その情報領域が空きであることを意味しているが、ダンプ対象領域情報ファイル１５は先頭から順に領域を登録していくため、空き領域であるということは、以降の領域に登録されている情報は存在しないことを意味する。よってＳ１１３にて、登録領域情報のサイズ情報部分が−１である場合、処理を終了する。
【００１７】
Ｓ１１３にて、登録領域情報のサイズが−１でない場合、Ｓ１１４にて登録領域情報のアドレスおよびサイズ情報からメモリ２内の該当する領域をダンプファイル１０に書き込む。そして、Ｓ１１５にて、ダンプ対象領域情報ファイル１５の次の登録情報を取得（現在の登録情報がダンプ対象領域情報ファイル１５のインデックス０の情報（領域Ａ２１）であれば、インデックス１の情報（領域Ｂ２２）を取得）し、Ｓ１１３へ戻る。このようにしてＳ１１３からＳ１１５を繰り返すことにより、領域Ａ２１、領域Ｂ２２、領域Ｃ２３の内容がダンプファイル１０に書き込まれる。
【００１８】
次に実施の形態１におけるダンプファイル解析手段１４の動作を図６を用いて説明する。
ダンプ対象領域としては既に登録済みであるが、その中で特定の領域を参照するために、Ｓ１２１ではユーザから参照したい領域のアドレスとサイズを要求する。通常、障害解析は、少量の特定データ（変数へのポインタとか、文字列とか）を取っ掛かりにして解析を開始する。例えば、カーネル内の変数Ａに格納されているアドレスから６４バイト分にＣＰＵのレジスタ情報が格納されており、そのＣＰＵレジスタ情報のうちの命令レジスタ領域に障害発生時にＣＰＵが実行していたアドレスが、またスタックレジスタ領域に障害発生時のスタックの先頭アドレスが格納されていた場合、ユーザは、以下のような手順で障害を解析する。
１）変数Ａの内容を４バイトで表示
ＣＰＵレジスタ情報が格納されているアドレスを把握
２）１）で出力された内容をアドレスとした領域を６４バイト分表示
ＣＰＵレジスタ情報の内容を表示
３）２）で出力された内容の命令レジスタの内容をアドレスとした領域を表示
故障発生時に実行していた命令およびその近辺の命令を把握
４）２）で出力された内容の命令レジスタの内容をアドレスとした領域を表示
故障発生時のスタック内容から、故障発生時に操作していた変数を把握
この場合、ダンプ対象領域全てを出力するよりも、１），２），３），４）の領域を順番に表示していった方が解析が容易である。
【００１９】
このように、Ｓ１２１でユーザから表示したい領域のアドレスとサイズが指示される。次にＳ１２２でダンプファイル１０の先頭にあるダンプ対象領域情報ファイル１５’を取得する。そして、Ｓ１２３にて、次にダンプファイル１０から読み出す位置をダンプ対象領域情報ファイル１５’の最終アドレス＋１、すなわちメモリ内容が格納されている領域の先頭に合わせる。次にＳ１２４にて、Ｓ１２２で取得したダンプ対象領域情報ファイル１５’の先頭にある登録情報、すなわち領域Ａ２１’のメモリ２内のアドレスおよびサイズ情報が取得される。そして、Ｓ１２５にて取得した登録情報のサイズ情報部分が−１であるかをチェックする。サイズ情報部分が−１の場合、その情報領域が空きであることを意味しているが、ダンプ対象領域情報ファイル１５は先頭から順に領域を登録していくため、空き領域であるということは、以降の領域に登録されている情報はないことを意味する。よって、Ｓ１２５にて登録領域情報のサイズ情報部分が−１である場合、表示したい領域がダンプファイル１０内に存在しなかったと判断し、Ｓ１２６に進み、エラー出力を行い、処理を終了する。
【００２０】
Ｓ１２５にて、登録領域情報のサイズが−１でない場合、Ｓ１２７にて登録領域情報のアドレスおよびサイズ情報からＳ１２１で指示された表示領域が本登録領域情報が示す領域内であるか判断する。Ｓ１２７で表示領域が本登録領域情報が示す領域内でないと判断された場合、Ｓ１２８に進み、ファイル位置を現在のファイル位置＋本登録領域情報に記載のサイズに進める。これにより、ファイル位置は、ダンプファイル１０内の現在参照している登録領域の次の領域の先頭位置に進められる。次に、Ｓ１２９にて、ダンプ対象領域情報ファイル１５’の次の登録領域情報を取得し、この登録領域情報に対するチェックを行うためにＳ１２５に戻る。
Ｓ１２７にて、表示領域が本登録領域情報が示す領域内であると判断された場合、Ｓ１３０にて、ファイル位置情報からダンプファイル１０内にある本登録領域情報に対応したメモリ内容を取得し、Ｓ１３１にて、取得したダンプ内容から表示領域にあるデータを表示し、処理を終了する。
【００２１】
この実施の形態１による情報処理装置におけるメモリダンプ装置では、ＯＳ内にダンプ対象領域情報を設け、ユーザから指示されたメモリダンプ対象領域をダンプ対象領域情報に登録し、メモリダンプ時には、ダンプ対象領域情報を書き込むとともに、ダンプ対象領域情報に基づいてメモリダンプ対象領域をダンプファイルに書き込み、ダンプファイル解析時には、ダンプファイル内にあるダンプ対象領域情報を元にダンプファイル内にあるメモリ内容を表示するので、メモリダンプ時におけるダンプ対象領域の算出を省き、かつ、障害情報リストなど外部ファイルなしにメモリ内容が表示でき、かつユーザがメモリダンプ領域を指定できる情報処理装置におけるメモリダンプ装置が得られる。
【００２２】
実施の形態２．
ＯＳ中の情報記憶量を減らした、本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態１と同様であり、図１に示される。
図７は、本実施の形態におけるダンプ対象領域情報ファイル１５の構造である。本実施の形態では、メモリ２を一定サイズ（ページ）に分割し、分割された領域に対応したビットの集まりでダンプ対象領域情報ファイル１５が構成される。図７の例では、メモリ２の容量を１２８メガバイトとし、メモリ２を０ｘ１０００バイトすなわち４０９６バイトで分割し、ダンプ対象領域情報ファイル１５の０ビット目をメモリ２のアドレス０ｘ００００００００〜０ｘ０００００ＦＦＦに、１ビット目をメモリ２のアドレス０ｘ００００１０００〜０ｘ００００１ＦＦＦに、・・・、６５５３５ビット目をメモリ２のアドレス０ｘ０ＦＦＦＦ０００〜０ｘ０ＦＦＦＦＦＦＦに対応させている。そして、対応した領域がメモリダンプ対象領域に設定されている場合はビットをＯＮ、対象領域ではない場合はビットをＯＦＦにしている。このため、実施の形態１と同様な領域、即ち図２の領域Ａ、領域Ｂ、領域Ｃがメモリダンプ対象領域として設定されている場合、ダンプ対象領域情報ファイル１５の１ビット目、３〜６ビット目、１６〜１８ビットがＯＮになり、その他のビットはＯＦＦとなる。
【００２３】
次に実施の形態２における領域設定手段１１の動作を図８を用いて説明する。
まず、Ｓ２０１で、ユーザから対象領域のアドレスとサイズおよび領域を登録するのか登録を解除するのかが指示される。次にＳ２０２にて、対象領域をページ境界に変換、すなわち、対象領域の先頭アドレスを指定された領域の先頭アドレスが属するページの先頭アドレス（指定された領域の先頭アドレスが０ｘ１１２１である場合、対象領域の先頭アドレスは０ｘ１０００）にし、対象領域の最終アドレスを指定された領域の最終アドレスが属するページの最終アドレス（指定された領域の最終アドレスが０ｘ２０２１であれば、対象領域の最終アドレスは０ｘ２ＦＦＦ）にし、対象領域のサイズを算出する（指定された領域の先頭アドレスが０ｘ１１２１でサイズが０ｘＦ０１（最終アドレス０ｘ２０２１）の場合、対象領域の先頭アドレスは０ｘ１０００でサイズは０ｘ２０００（最終アドレス０ｘ２ＦＦＦ）となる）。
【００２４】
次にＳ２０３にて、指示が領域の登録であるか否かを判断する。指示が領域登録の場合、Ｓ２０４に移る。Ｓ２０４では、対象領域となるページに対応するダンプ対象領域情報ファイル１５のビットをＯＮにし処理を終了する。例えば、前述した領域（先頭アドレス０ｘ１１２１サイズ０ｘＦ０１）では、対象領域が０ｘ００００１０００〜０ｘ００００２ＦＦＦになるので、ダンプ対象領域情報ファイル１５のビット１とビット２がＯＮになる。また実施の形態１の領域Ｂ２２の領域が指定された場合、対象領域は０ｘ００００３０００〜０ｘ００００６ＦＦＦになるので、ビット３からビット６までがＯＮとなる。
【００２５】
Ｓ２０３にて、指示が領域の登録解除である場合、Ｓ２０５に移る。Ｓ２０５で、対象領域となるページに対応するダンプ対象領域情報ファイル１５のビットをＯＦＦにし処理を終了する。例えば、実施の形態１の領域Ａ２１の領域が指定された場合、対象領域は０ｘ００００１０００〜０ｘ００００１ＦＦＦになるので、ビット１がＯＦＦになる。また実施の形態１の領域Ｃ２３が指定された場合、対象領域は０ｘ０００１００００から０ｘ０００１２ＦＦＦになるので、ビット１６からビット１８までがＯＦＦになる。これにより、ダンプ対象領域情報ファイル１５でビットがＯＮになっている部分がメモリダンプ対象領域に設定され、ビットがＯＦＦになっている部分がメモリダンプ対象領域外として設定される。
【００２６】
次に実施の形態２におけるメモリダンプ手段１３の動作を図９を用いて説明する。
まずＳ２１１にてダンプ対象領域情報ファイル１５のダンプファイル１０への書き込みが行われる。次にＳ２１２にてダンプ対象領域情報ファイル１５の先頭ビット（図７では０ビット目）が参照される。次にＳ２１３にて、ビットが最終ビットを越えたか否かが判断される。もし、参照しているビットが最終ビット（図７では６５５３５ビット目）を越えた場合、処理を終了する。
【００２７】
Ｓ２１３にて参照しているビットが最終ビットを越えていない場合、Ｓ２１４にて、参照しているビットがＯＮになっているかチェックされる。もし、ビットがＯＮになっている場合、そのビットが対応している領域はメモリダンプ対象領域として登録されているので、Ｓ２１５に進み、ビットに対応する領域（ページ）をダンプファイル１０に書き込む。そして、Ｓ２１６に進みダンプ対象領域情報ファイル１５の次のビットを参照し、Ｓ２１３へ戻る。
Ｓ２１４にて、ビットがＯＮでない場合、そのビットが対応している領域はメモリダンプ対象領域ではないので、Ｓ２１６に進み、ダンプ対象領域情報ファイル１５の次のビットを参照し、Ｓ２１３へ戻る。このようにして、Ｓ２１３〜Ｓ２１６でダンプ対象領域情報ファイル１５の全ビットを参照し、ＯＮになっているビットに対応した領域がダンプファイル１０へと書き込まれる。
【００２８】
次に実施の形態２におけるダンプファイル解析手段１４の動作を図１０を用いて説明する。
まずＳ２２１で、ユーザから表示したい領域のアドレスとサイズが指示される。次にＳ２２２にて表示したい領域をページ単位（４０９６バイト）に変換し、対象となる領域を算出する。例えば、ユーザが０ｘ００００１１２１から０ｘＦ０１バイト分を表示したいと指示した場合、対象領域は、０ｘ００００１０００〜０ｘ００００２ＦＦＦとなる。
【００２９】
次にＳ２２３にてダンプファイル１０の先頭にあるダンプ対象領域情報ファイル１５’の内容を取得する。そして、Ｓ２２４にて、対象となる領域に対応するダンプ対象領域情報ファイル１５’内のビットが全てＯＮになっているかチェックする。例えば、０ｘ００００１０００〜０ｘ００００２ＦＦＦを対象領域とすると、ダンプ対象領域情報ファイル１５’のビット１〜ビット２がＯＮになっているかチェックする。Ｓ２２４で対象領域に対応するダンプ対象領域情報ファイル１５’内のビットがＯＮになっていない場合、ユーザが指示した領域はダンプファイル１０内に存在しないため、Ｓ２２５にて、エラー出力を行い処理を終了する。
【００３０】
Ｓ２２４にて対象となる領域に対応するダンプ対象領域情報ファイル１５’内のビットが全てＯＮになっている場合Ｓ２２６に進む。Ｓ２２６では、ファイル位置をダンプ対象領域情報ファイル１５’の最終アドレス＋１、すなわちメモリ内容が格納されている領域の先頭に合わせる。次にＳ２２７にて、ダンプ対象領域情報ファイル１５’の先頭ビットが参照される。そして、Ｓ２２８にて参照しているビットが最終ビットを越えたか否かが判断される。
【００３１】
Ｓ２２８にて、参照しているビットが最終ビットを越えていない場合、Ｓ２２９にて、参照しているビットがＳ２２２で算出した領域内のものであるか否かを判断する。Ｓ２２９で参照しているビットが対象領域内でないと判断された場合、Ｓ２３０にて参照しているビットがＯＮであるかチェックされる。ＯＮである場合、当該ビットに対応した領域がダンプファイル１０内に存在するため、Ｓ２３１にてファイル位置を現在のファイル位置＋領域サイズ（＝ページサイズ＝４０９６バイト）に更新する。これにより、ファイル位置は、ダンプファイル１０内の現在参照しているビットに対応した領域をスキップすることができる。次にＳ２３２にてダンプ対象領域情報ファイル１５’の次のビットを参照しＳ２２８に戻る。
Ｓ２３０にて、参照しているビットがＯＮでない場合、当該ビットに対応した領域はダンプファイル１０内に存在しないので、ファイル位置の更新はせずにＳ２３２に進みダンプ対象領域情報ファイル１５’の次のビットを参照しＳ２２８に戻る。
【００３２】
Ｓ２２９にて、参照しているビットがＳ２２２で算出した領域内であると判断された場合、Ｓ２３３にて、ファイル位置からダンプファイル１０内にある当該ビットに対応した領域を読み出す。そして、Ｓ２３１にてファイル位置を現在のファイル位置＋領域サイズ（＝ページサイズ＝４０９６バイト）に更新し、Ｓ２３２にてダンプ対象領域情報ファイル１５’の次のビットを参照しＳ２８８に戻る。このようにしてＳ２２８〜Ｓ２３３でダンプ対象領域情報ファイル１５’の全ビットを参照し、Ｓ２２２で算出した領域の内容をダンプファイルから読み出す。
Ｓ２２８にて、参照しているビットがダンプ対象領域情報ファイル１５’の最終ビットを越えた場合、Ｓ２２２で算出した領域の読み出しは完了したので、Ｓ２３４に進み、取得した領域の内容からＳ２２１で指示された表示したい領域の内容を抽出し、ユーザに表示する。
【００３３】
この実施の形態２におけるメモリダンプ装置では、メモリを一定サイズ（ページ）に分割し、各ページに対応したビットの集まりでダンプ対象領域情報を構成し、ユーザから指示されたメモリダンプ対象領域に対し、メモリダンプ対象領域が含まれるページに対応するビットをＯＮにし、ユーザから指示された登録解除するメモリダンプ対象領域に対し、登録解除領域が含まれるページに対応するビットをＯＦＦにし、メモリダンプ時には、メモリダンプ対象領域情報でビットがＯＮになっているページをダンプファイルに書き込むようにしたので、ダンプ対象領域の登録および解除の処理を容易にする情報処理装置におけるメモリダンプ装置を得ることができる。
【００３４】
実施の形態３．
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態１と同様であり、図１に示される。また、本実施の形態における領域設定手段１１の動作は実施の形態２と同様であり省略する。
図１１は、本実施の形態におけるメモリダンプ手段１３のダンプ対象領域情報ファイル１５をダンプファイル１０に書き込む際の動作を示している。本実施の形態では、ＯＳ１内のダンプ対象領域情報ファイル１５の構造はそのままであるが、ダンプファイル１０に書き込む際にメモリダンプ対象領域情報ファイル１５の内容を先頭ページ番号およびページ数を１組とした情報に変換しダンプファイル１０のダンプ対象領域情報ファイル１５’として書き込むようになっている。
【００３５】
次に、本実施の形態３におけるメモリダンプ手段１３の動作を図１２を用いて説明する。
まずＳ３０１にてダンプ対象領域情報ファイル１５の内容を変換するための準備として２つの変数（先頭ページ、ページ数）を０に設定する。次にＳ３０２にて、ダンプ対象領域情報の先頭ビットを参照する。そして、Ｓ３０３にて参照しているビットがダンプ対象領域情報ファイル１５の最終ビットを越えたか否かを判断する。Ｓ３０３にて参照しているビットが最終ビットを超えていない場合、Ｓ３０４に進み、参照しているビットがＯＮになっている、すなわちビットに対応した領域がメモリダンプ対象領域になっているか否かを判断する。Ｓ３０４にて参照しているビットがＯＮになっている場合、Ｓ３０５にて変数であるページ数が０になっているか否かを判断する。変数であるページ数が０になっている場合、参照しているビットの直前のビットはＯＦＦ、すなわち現在参照しているビットがメモリダンプ対象領域の先頭のページであることを意味するので、Ｓ３０６に進み、変数である先頭ページを現在参照しているビットに対応しているページに設定し、変数であるページ数を１に設定する。そして、Ｓ３０７に進み、ダンプ対象領域情報ファイル１５の次のビットを参照し、Ｓ３０３に戻る。
【００３６】
Ｓ３０５にて、変数であるページ数が０でない場合、現在参照しているビットはメモリダンプ対象領域内に入っていることを意味するので、Ｓ３０８にて、現在参照しているビットに対応するページをメモリダンプ対象領域に含めるために変数であるページ数を＋１し、Ｓ３０７に進み、ダンプ対象領域情報ファイル１５の次のビットを参照し、Ｓ３０３に戻る。
Ｓ３０４にて、参照しているビットがＯＦＦになっている、すなわちビットに対応した領域がメモリダンプ対象領域になっていない場合、Ｓ３０９にて変数であるページ数が０になっているか否かを判断する。変数であるページ数が０になっていない場合、参照しているビットの直前のビットはＯＮ、すなわち直前のビットが対応する領域がメモリダンプ対象領域であるため、Ｓ３１０にて、直前のメモリダンプ対象領域の情報が格納されている変数、先頭ページおよびページ数をダンプファイル１０内のダンプ対象領域情報ファイル１５’に書き込む。そして、現在参照しているビットはメモリダンプ対象領域ではないことを示すために、Ｓ３１１にて変数であるページ数を０に設定する。そして、Ｓ３０７に進み、ダンプ対象領域情報ファイル１５の次のビットを参照し、Ｓ３０３に戻る。
【００３７】
Ｓ３０９にて、ページ数が０でない場合、参照しているビットの直前のビットはＯＦＦ、すなわち直前のビットに対応する領域はメモリダンプ対象領域ではなく、かつ現在参照しているビットもメモリダンプ対象領域ではないので、そのままＳ３０７に進み、ダンプ対象領域情報ファイル１５の次のビットを参照し、Ｓ３０３に戻る。
Ｓ３０３にて、参照しているビットがダンプ対象領域情報ファイル１５の最終ビットを越えた場合、Ｓ３１２に進み、変数であるページ数が０になっているか否かを判断する。変数であるページが０になっていない場合、ダンプ対象領域情報ファイル１５の最終ビットに対応する領域がメモリダンプ対象領域であるため、Ｓ３１３にて、最終ビットに対応したメモリダンプ対象領域の情報が格納されている変数、先頭ページおよびページ数をダンプファイル１０内のダンプ対象領域情報ファイル１５’に書き込む。Ｓ３１２にて、変数であるページ数が０になっている場合、ダンプ対象領域情報ファイル１５の最終ビットに対応する領域がメモリダンプ対象領域になっていないため、そのままＳ３１４に進む。以上の操作により、ビットの集まりであったダンプ対象領域情報ファイル１５の情報を変換し、先頭ページ番号およびページ数を１組のメモリダンプ対象領域情報とした情報がダンプファイル１０のダンプ対象領域情報ファイル１５’に書き込まれる。
【００３８】
Ｓ３０１〜Ｓ３１３の操作が終了すると、Ｓ３１４にて、再度ダンプ対象領域情報の先頭ビットが参照される。次に、Ｓ３１５にてビットが最終ビットを越えたか否かを判断する。もし、参照しているビットが最終ビットを越えた場合、処理を終了する。
Ｓ３１５にて参照しているビットが最終ビットを越えていない場合、Ｓ３１６にて、参照しているビットがＯＮになっているかチェックされる。もし、ビットがＯＮになっている場合、そのビットが対応している領域はメモリダンプ対象領域として登録されているので、Ｓ３１７に進み、ビットに対応する領域をダンプファイル１０に書き込む。そして、Ｓ３１８に進みダンプ対象領域情報ファイル１５の次のビットを参照し、３１５に戻る。
Ｓ３１６にて、ビットがＯＮでない場合、そのビットが対応している領域はメモリダンプ対象領域ではないので、Ｓ３１８に進み、ダンプ対象領域情報ファイル１５の次のビットを参照し、Ｓ３１５に戻る。このようにしてＳ３１５〜Ｓ３１８でダンプ対象領域情報ファイル１５の全ビットを参照し、ＯＮになっているビットに対応した領域がダンプファイル１０へと書き込まれる。以上がメモリダンプ手段１３の動作である。
【００３９】
次に本発明の実施の形態３におけるダンプファイル解析手段１４の動作を図１３を用いて説明する。
Ｓ３２１で、ユーザから表示した領域のアドレスとサイズが指示される。次にＳ３２２にて表示したい領域をページ単位に変換し、対象領域となる領域を算出する。
次にＳ３２３にてダンプファイル１０の先頭にあるダンプ対象領域情報ファイル１５’の内容を取得する。そして、Ｓ３２４にて表示すべき領域がダンプ対象領域情報ファイル１５’内に存在するかチェックする。ダンプ対象領域情報ファイル１５’の情報は先頭ページとページ数が格納されているので、メモリダンプ対象領域の先頭アドレスは先頭ページ×ページサイズ（４０９６バイト）、メモリダンプ対象領域のサイズはページ数×ページサイズで算出できる。Ｓ３２４にて表示領域を含むメモリダンプ対象領域の情報がダンプ対象領域情報ファイル１５’に存在しない場合、Ｓ３２５にてエラー出力を行い処理を終了する。
【００４０】
Ｓ３２４にて表示すべき領域がダンプ対象領域情報ファイル１５’に存在する場合、Ｓ３２６に進む。Ｓ３２６では、ファイル位置をダンプ対象領域情報ファイル１５’の最終アドレス＋１、すなわちメモリ内容が格納されている領域の先頭に合わせる。次にＳ３２７にて、ダンプ対象領域情報ファイル１５’の先頭にある登録領域情報を取得する。そして、Ｓ３２８にて登録されている領域は表示対象領域を含んでいるかチェックする。Ｓ３２８にて表示対象領域が登録領域情報が示す領域内でないと判断された場合、Ｓ３２９に進み、ファイル位置を現在のファイル位置＋登録領域情報のページ数×ページサイズ（４０９６バイト）に進める。これにより、ファイル位置は、ダンプファイル１０内の現在参照している登録領域の次の領域の先頭位置に進められる。次に、Ｓ３３０にてダンプ対象領域情報ファイル１５’の次の登録領域情報を取得し、この登録領域情報に対するチェックを行うためにＳ３２８に戻る。
Ｓ３２８にて、表示対象領域が登録領域情報の領域内であると判断された場合、Ｓ３３１にて、ファイル位置情報からダンプファイル１０内にある登録領域情報に対応したダンプ内容を取得し、Ｓ３３２にて、取得したダンプ内容から表示領域にあるデータを表示し、処理を終了する。
【００４１】
この実施の形態３におけるメモリダンプ装置では、メモリダンプ時におけるダンプ対象領域情報をダンプファイルに書き込む際に、ダンプ対象領域情報から各メモリダンプ対象領域の先頭ページ番号およびページ数を１組とした情報を書き込み、ダンプファイル解析時は、先頭ページおよびページ数から、ダンプファイルに格納されたメモリ内容の位置を算出するようにしたので、ダンプファイル内におけるダンプ対象領域情報のサイズを削減した情報処理装置におけるメモリダンプ装置が得られる。
【００４２】
実施の形態４．
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態１と同様であり、図１に示される。
図１４は、本実施の形態におけるダンプ対象領域情報ファイル１５の構造である。本実施の形態では、メモリ２を一定サイズ（ページ）に分割し、分割された領域に対応したカウンタの集まりでダンプ対象領域情報ファイル１５が構成される。図１４の例では、メモリ２の容量を１２８メガバイトとし、メモリ２を０ｘ１０００バイトすなわち４０９６バイトで分割し、ダンプ対象領域情報ファイル１５のインデックス０をメモリ２のアドレス０ｘ００００００００〜０ｘ０００００ＦＦＦに、インデックス１をメモリ２のアドレス０ｘ００００１０００〜０ｘ００００１ＦＦＦに、・・・、インデックス６５５３５をメモリ２のアドレス０ｘ０ＦＦＦＦ０００〜０ｘ０ＦＦＦＦＦＦＦに対応させている。そして、対応した領域がメモリダンプ対象領域設定されている場合は、カウンタ値が正の値、対象領域ではない場合はカウンタを０にしている。カウンタの数値はそのメモリダンプ対象領域が多重登録回数を示している。図１４の例では、０ｘ００００４０００〜０ｘ００００５ＦＦＦの領域で二重に登録、すなわち、当該領域に対しメモリダンプ対象領域として２回の登録指示があったことを意味し、０ｘ０００１１０００〜０ｘ０００１１ＦＦＦの領域では４回の登録指示があったことを意味する。カウンタは１回の登録指示で＋１され、１回の登録解除で−１にされる。
【００４３】
次に実施の形態４における領域設定手段１１の動作を図１５を用いて説明する。
まずＳ４０１で、ユーザから対象領域のアドレスとサイズおよび領域を登録するのか登録を解除するのかが指示される。次にＳ４０２にて、対象領域をページ境界に変換、すなわち、対象領域の先頭アドレスを指定された領域の先頭アドレスの先頭アドレスが属するページの先頭アドレスにし、対象領域の最終アドレスを指定された領域の最終アドレスが属するページの最終アドレスにし、対象領域のサイズを算出する。
【００４４】
次にＳ４０３にて、指示が領域の登録であるか否かを判断する。指示が領域登録の場合、Ｓ４０４に移る。Ｓ４０４では、対象領域となるページに対応するダンプ対象領域情報ファイル１５のカウンタを＋１にし処理を終了する。
Ｓ４０３にて指示が領域の登録解除である場合、Ｓ４０５に移る。Ｓ４０５で、対象領域となるページに対応するダンプ対象領域情報ファイル１５のカウンタを−１にする。そして、Ｓ４０６にて、Ｓ４０５で設定したカウンタが−１されたことにより負値になった場合、カウンタ値を０に戻し、処理を終了する。これにより、ダンプ対象領域情報ファイル１５でカウンタが正値になっている部分がメモリダンプ対象領域の設定され、カウンタが０になっている部分がメモリダンプ対象領域外として設定される。
【００４５】
次に実施の形態４におけるメモリダンプ手段１３の動作を図１６を用いて説明する。
まずＳ４１１にてダンプ対象領域情報ファイル１５のダンプファイル１０への書き込みが行われる。次にＳ４１２にてダンプ対象領域情報ファイル１５の先頭カウンタ（図１５ではインデックス０）が参照される。次にＳ４１３にて、カウンタが最終カウンタを越えたか否かが判断される。もし、参照しているカウンタが最終カウンタ（図１５ではインデックス６５５３５）を越えた場合、処理を終了する。
【００４６】
Ｓ４１３にて参照しているカウンタが最終カウンタを越えていない場合、Ｓ４１４にて、参照しているカウンタが正値か否か判断される。もし、カウンタが正値になっている場合、そのカウンタが対応している領域はメモリダンプ対象領域として登録されているので、Ｓ４１５に進み、カウンタに対応する領域（ページ）をダンプファイル１０に書き込む。そして、Ｓ４１６に進みダンプ対象領域情報の次のカウンタを参照し、Ｓ４１３に戻る。
Ｓ４１４にてカウンタが正値ではない場合、そのカウンタが対応している領域はメモリダンプ対象領域ではないので、Ｓ４１６に進み、ダンプ対象領域情報ファイル１５の次のカウンタを参照し、Ｓ３１４に戻る。このようにして、Ｓ４１３〜Ｓ４１６でダンプ対象領域情報ファイル１５の全カウンタを参照し、正値になっているカウンタに対応した領域がダンプファイル１０へと書き込まれる。以上がメモリダンプ手段１３の動作である。
【００４７】
次に実施の形態４におけるダンプファイル解析手段１４の動作を図１７を用いて説明する。
まずＳ４２１で、ユーザから表示したい領域のアドレスとサイズが指示される。次にＳ４２２にて表示したい領域をページ単位（４０９６バイト）に変換し、対象となる領域を算出する。例えば、ユーザが０ｘ００００１１２１から０ｘＦ０１バイト分を表示したいと指示した場合、対象領域は、０ｘ００００１０００〜０ｘ００００２ＦＦＦとなる。
次にＳ４２３にてダンプファイル１０の先頭にあるダンプ対象領域情報ファイル１５’の内容を取得する。そして、Ｓ４２４にて、対象となる領域に対応するダンプ対象領域情報ファイル１５’内のカウンタが全て正値になっているかチェックする。例えば、０ｘ００００１０００〜０ｘ００００２ＦＦＦを対象領域とすると、ダンプ対象領域情報ファイル１５’のインデックス１〜インデックス２のカウンタが正値になっているかチェックする。Ｓ４２４で対象領域に対応するダンプ対象領域情報ファイル１５’内のカウンタが正値になっていない場合、ユーザが指示した領域はダンプファイル１０内に存在しないため、Ｓ４２５にて、エラー出力を行い処理を終了する。
【００４８】
Ｓ４２４にて対象となる領域に対応するダンプ対象領域情報ファイル１５’のカウンタが全て正値になっている場合、Ｓ４２６に進む。Ｓ４２６では、ファイル位置をダンプ対象領域情報ファイル１５’の最終アドレス＋１、すなわちメモリ内容が格納されている領域の先頭に合わせる。次にＳ４２７にて、ダンプ対象領域情報ファイル１５’の先頭カウンタが参照される。そして、Ｓ４２８にて参照しているカウンタが最終カウンタを越えたか否かが判断される。
【００４９】
Ｓ４２８にて、参照しているカウンタが最終カウンタを越えていない場合、Ｓ４２９にて参照しているカウンタが対象領域内のものであるか否かを判断する。Ｓ４２９で参照しているカウンタが対象領域内でないと判断された場合、Ｓ４３０にて参照しているカウンタが正値であるかチェックされる。正値である場合、当該カウンタに対応した領域がダンプファイル１０内に存在するため、Ｓ４３１にてファイル位置を現在のファイル位置＋領域サイズ（＝ページサイズ＝４０９６バイト）に更新する。これにより、ファイル位置は、ダンプファイル１０内の現在参照しているカウンタに対応した領域をスキップすることができる。次にＳ４３２にてダンプ対象領域情報ファイル１５’の次のカウンタを参照しＳ４２８に戻る。
Ｓ４３０にて、参照しているカウンタが正値ではない場合、当該カウンタに対応した領域はダンプファイル１０内に存在しないので、ファイル位置の更新はせずにＳ４３２に進み、ダンプ対象領域情報ファイル１５’の次のカウンタを参照しＳ４２８に戻る。
【００５０】
Ｓ４２９にて、参照しているカウンタが対象領域内であると判断された場合、Ｓ４３３にて、ファイル位置からダンプファイル１０内に当該カウンタに対応した領域、すなわちＳ４２１で指示された表示したい領域を読みだす。そして、Ｓ４３１にてファイル位置を現在のファイル位置＋領域サイズ（＝ページサイズ＝４０９６バイト）に更新し、Ｓ４３２にてダンプ対象領域情報ファイル１５’の次のカウンタを参照しＳ４２８に戻る。このようにしてＳ４２８〜Ｓ４３３でダンプ対象領域情報ファイル１５’の全カウンタを参照し、対象領域の内容をダンプファイルから読み出す。
Ｓ４２８にて、参照しているカウンタがダンプ対象領域情報ファイル１５’の最終カウンタを越えた場合、対象領域の読み出しは完了したので、Ｓ４３４で進み、取得した対象領域の内容からＳ４２１で指示された表示したい領域の内容を抽出し、ユーザに表示する。
【００５１】
この実施の形態４におけるメモリダンプ装置では、メモリを一定サイズ（ページ）に分割し、各ページに対応したカウンタの集まりでダンプ対象領域情報を構成し、ユーザから指示されたメモリダンプ対象領域の登録に対し、メモリダンプ対象領域が含まれるページに対応するカウンタを＋１にし、ユーザから指示されたメモリダンプ対象領域の登録解除に対し、登録解除領域が含まれるページに対応するカウンタを−１にし、メモリダンプ時には、メモリダンプ対象領域情報で、カウンタが正の値になっているページをダンプファイルに書き込むことで、ユーザから指示されたメモリダンプ対象領域が重複していても、１つの登録解除要求で他方の登録要求領域が消去されない情報処理装置におけるメモリダンプ装置が得られる。
【００５２】
実施の形態５．
本発明の他の実施形態における情報処理装置について説明する。情報処理装置の構成は、実施の形態１と同様であり、図１に示される。本実施の形態では、領域設定手段の動作以外は実施の形態４と同様である。
本実施の形態における領域設定手段１１の動作を図１８を用いて説明する。まずＳ５０１にて、ユーザから対象領域のアドレスとサイズおよび領域を登録するのか登録を解除するのか登録を一括消去するのかが指示される。次にＳ５０２にて、対象領域をページ境界に変換、すなわち、対象領域の先頭アドレスを指定された領域の先頭アドレスが属するページの先頭アドレスにし、対象領域の最終アドレスを指定された領域の最終アドレスが属するページの最終アドレスにし、対象領域のサイズを算出する。
次にＳ５０３にて指示が領域の登録であるか否かを判断する。指示が領域登録の場合、Ｓ５０４に移る。Ｓ５０４では、対象領域となるページに対応するダンプ対象領域情報ファイル１５のカウンタを＋１にし、処理を終了する。
【００５３】
Ｓ５０３にて指示が領域の登録でない場合、Ｓ５０５にて指示が領域の登録解除であるか否かを判断する。Ｓ５０５にて指示が領域の登録解除の場合、Ｓ５０６にて対象領域となるページに対応するダンプ対象領域情報ファイル１５のカウンタを−１にする。そして、Ｓ５０７にて、Ｓ５０６で設定したカウンタが−１されたことにより負値になった場合、カウンタ値を０に戻し処理を終了する。
Ｓ５０５で指示が領域の登録解除でない場合、Ｓ５０８に移る。Ｓ５０８で、対象領域となるページに対応するダンプ対象領域情報ファイル１５のカウンタを０にし、処理を終了する。これにより、対象領域は領域が多重登録されていても、１回の指示でメモリダンプ対象領域外に設定される。以上が領域設定手段１１の動作である。
【００５４】
この実施の形態５におけるメモリダンプ装置では、ユーザからの登録一括消去指示に対し、対象となるメモリダンプ対象領域が含まれるページに対応するダンプ対象領域情報のカウンタを０にすることで、メモリダンプ対象領域で重複登録されている領域を一括消去することを可能とする情報処理装置におけるメモリダンプ装置が得られる。
【００５５】
実施の形態６．
本発明の他の実施形態における情報処理装置について説明する。図１９は、本発明の実施の形態６における情報処理装置の構成図である。本実施の形態において情報処理装置は、仮想アドレスを物理アドレスに変換し、この変換後の物理アドレスを用いて物理空間をアクセスして、機能的に仮想アドレスを用いて仮想空間をアクセスする仮想記憶機能を備えている。図１９において、３０はこの仮想記憶機能を実現するために、仮想アドレスを記憶する仮想アドレス領域と物理アドレスを記憶する物理アドレス領域とを備えた論理／物理対応表である。他の構成は図１における構成の同一もしくは相当部であり説明を省略する。
【００５６】
図２０は、本実施の形態における論理／物理対応表３０の構成の一部を示している。論理／物理対応表３０は、仮想空間および物理空間を一定のサイズ（ページ、図２０の例では１ページ＝０ｘ１０００バイト＝４０９６バイト）に分割し、各仮想空間毎に仮想空間上のページ番号と、それに対応する物理空間上のページ番号を対応させた表を備える。図２０の例では、仮想空間Ａ上の領域Ａ２１’’（仮想アドレス０ｘ００００１０００〜０ｘ００００１ＦＦＦ）の領域は、論理／物理対応表３０の仮想空間Ａ用の論理ページ番号０ｘ００００１に対応しており、対応する物理ページ番号は０ｘ００００１、すなわち物理空間ではアドレス０ｘ００００１０００〜０ｘ００００１ＦＦＦに対応する。また、仮想空間Ｂ上の領域Ｃ２３’’（仮想アドレス０ｘ００００７０００〜０ｘ００００９ＦＦＦ）の領域は、論理／物理対応表３０の仮想空間Ｂ用の論理ページ番号０ｘ００００７〜０ｘ００００９に対応しており、対応する物理ページ番号は０ｘ０００１０〜０ｘ０００１２、すなわち物理空間ではアドレス０ｘ０００１００００〜０ｘ０００１２ＦＦＦに対応する。なお、このように論理／物理対応表３０を各仮想空間毎に備えることにりより、情報処理装置内の各プログラムを各−１つの仮想空間に割り当て、プログラムの切り替え時にプログラムに対応する論理／物理対応表３０を情報処理装置の仮想記憶機能に設定することで、ＯＳ１上で動作するプログラムを各々独立で並行に実行することができる。なお、図２０の論理／物理対応表３０内の仮想空間Ａ用の論理ページ番号０ｘ００００３に対応する物理ページ番号領域には−１が設定されているが、これはこの論理ページに対応する物理アドレス空間が存在しないことを意味する。
【００５７】
この実施の形態では、情報処理装置が備える上記仮想記憶機能は、仮想空間を分割した論理ページと物理空間を分割した物理ページとを定義するページング方式を備えた場合を説明する。しかし、この方式に限られることはなく、その他の方式、例えば、セグメントを使用する方式でも構わない。
図２１は、本実施の形態におけるダンプファイル１０の構造を示したものである。ダンプファイル１０には、ダンプ対象領域情報ファイル１５’およびメモリダンプ対象領域としての領域Ａ２１’、領域Ｂ２２’、領域Ｃ２３’のほかにメモリ２内の論理／物理対応表３０を格納するための論理／物理対応表３０’の領域で構成される。
【００５８】
次に、実施の形態６における領域設定手段１１の動作を図２２を用いて説明する。
まず、Ｓ６０１にて、ユーザからダンプ対象する領域の仮想空間上のアドレスとサイズが指示される。次にＳ６０２にて、メモリ２上の論理／物理対応表より、ユーザから指示された仮想空間上のアドレスを物理空間上のアドレスに変換する。そして、Ｓ６０３にて、ＯＳ１内にあるダンプ対象領域情報ファイル１５の先頭の情報からＳ６０２にて変換した物理空間上の領域が既に登録されているかを検索する。Ｓ６０４にて、Ｓ６０２にて変換した物理空間上の領域が、ダンプ対象領域情報ファイル１５に登録されている領域と重ならない、すなわち、指定された領域が、ダンプ対象領域情報ファイル１５に登録されていないと判断された場合、Ｓ６０５にて指定された領域の物理空間上のアドレスおよびサイズを、ダンプ対象領域情報ファイル１５の空き領域（アドレスが０、サイズが−１）に設定し、処理を終了する。
【００５９】
Ｓ６０４にて、Ｓ６０２で変換した物理空間上の領域がダンプ対象領域情報ファイル１５に登録されている領域と重なる場合、Ｓ６０６にて、指定された領域と重なる登録済み領域をダンプ対象領域情報ファイル１５から削除する。次にＳ６０７にて、削除した領域とＳ６０２にて指定された領域を包含する領域のアドレスおよびサイズをダンプ対象領域情報ファイル１５に設定し、処理を終了する。以上が、領域設定手段１１の動作である。
【００６０】
次に実施の形態６におけるメモリダンプ手段１３の動作を図２３を用いて説明する。
まずＳ６１１にて論理／物理対応表３０のダンプファイル１０への書き込みが行われる。次にＳ６１２にてダンプ対象領域情報ファイル１５のダンプファイル１０への書き込みが行われる。そして、Ｓ６１３にて、ダンプ対象領域情報ファイル１５の先頭にある登録領域情報を取得する。次にＳ６１３で登録領域情報のサイズ情報部分が−１であるかチェックされる。サイズ情報部分が−１の場合、その情報領域が空きであることを意味しているが、領域ダンプ対象領域情報ファイル１５は先頭から順に領域を登録していくため、空き領域であるということは、以降の領域に登録されている情報は存在しないことを意味する。よって、Ｓ６１４にて、登録領域情報のサイズ情報部分が−１である場合、処理を終了する。
【００６１】
Ｓ６１４にて、登録領域情報のサイズが−１でない場合、Ｓ６１５にて登録領域情報のアドレスおよびサイズ情報からメモリ２内の該当する領域をダンプファイル１０に書き込む。そして、Ｓ６１６にて、ダンプ対象領域情報ファイル１５の次の登録情報を取得し、Ｓ６１４へ戻る。このようにしてＳ６１４からＳ６１６を繰り返すことにより、メモリ２内のメモリダンプ対象領域がダンプファイル１０に書き込まれる。
【００６２】
次に実施の形態６におけるダンプファイル解析手段の動作を図２４を用いて説明する。
まず、Ｓ６２１でユーザから表示したい領域の仮想空間上のアドレスとサイズが指示される。次にＳ６２２でダンプファイル１０の先頭にある論理／物理対応表３０’を取得する。そしてＳ６２３にて、ユーザから指示された仮想空間上のアドレスをＳ６２２で取得した論理／物理対応表３０’を使い、物理空間上のアドレスに変換し、物理空間上の領域を算出する。
【００６３】
次にＳ６２４にてダンプファイル１０内の論理／物理対応表３０’の次にあるダンプ対象領域情報ファイル１５’を取得する。そして、Ｓ６２５にて、次にダンプファイル１０から読み出す位置をダンプ対象領域情報ファイル１５’の最終アドレス＋１、すなわちメモリ内容が格納されている領域の先頭に合わせる。次にＳ６２６にて、Ｓ６２４で取得したダンプ対象領域情報ファイル１５’の先頭にある登録情報を参照する。そして、Ｓ６２７にて取得した登録情報のサイズ情報部分が−１であるかをチェックする。サイズ情報部分が−１の場合、その情報領域が空きであることを意味しているが、ダンプ対象領域情報ファイル１５’は先頭から順に領域を登録していくため、空き領域であるということは、以降の領域に登録されている情報はないことを意味する。よって、Ｓ６２７にて参照している登録領域情報のサイズ情報部分が−１である場合、表示したい領域がダンプファイル１０内に存在しなかったと判断し、Ｓ６２８に進み、エラー出力を行い、処理を終了する。
【００６４】
Ｓ６２７にて、登録領域情報のサイズが−１でない場合、Ｓ６２９にて登録領域情報のアドレスおよびサイズ情報からＳ６２３で変換した物理空間上の領域が本登録領域情報が示す領域内であるか判断する。Ｓ６２９で変換した領域が登録領域情報が示す領域内でないと判断された場合、Ｓ６３０に進み、ファイル位置を現在のファイル位置＋登録領域情報に記載のサイズに進める。これにより、ファイル位置は、ダンプファイル１０内の現在参照している登録領域の次の領域の先頭位置に進められる。次に、Ｓ６３１にて、ダンプ対象領域情報ファイル１５’の次の登録領域情報を参照し、この登録領域情報に対するチェックを行うためにＳ６２７に戻る。
Ｓ６２９にて、変換した領域が登録領域情報の領域内であると判断された場合、Ｓ６３２にて、ファイル位置情報からダンプファイル１０内にある登録領域情報に対応したメモリ内容を取得し、Ｓ６３３にて、取得したダンプ内容からユーザが指示した領域にあるデータを表示し、処理を終了する。
【００６５】
この実施の形態６におけるメモリダンプ装置では、ユーザからのメモリダンプ対象領域の設定時には、仮想記憶機能を実現する論理／物理対応表を用いて、ユーザから指示された仮想アドレスを物理アドレスに変換してダンプ対象領域に登録し、メモリダンプ時には、ダンプ対象領域情報およびダンプ対象領域に基づいたメモリダンプ対象領域をダンプファイルに書き込むとともに、論理／物理対応表もダンプファイルに書き込み、ダンプファイル解析時には、ダンプファイル内にある論理／物理対応表とダンプ対象領域情報を元に、ダンプファイル内にメモリ内容を表示することで、仮想アドレスでの障害解析を可能にする情報処理装置におけるメモリダンプ装置が得られる。
【００６６】
この発明の実施の形態に係るメモリダンプ装置は、情報処理装置における障害発生時のメモリ対象をユーザが事前指定する方式において、
ダンプ対象のメモリを一定サイズに分割し、かつダンプ出力が必要か不必要かを表すオン／オフビットを該分割領域毎に設定する領域設定手段と、故障発生時に設定されたビット対応のメモリの情報をダンプ対象領域情報として外部ダンプファイルに出力するメモリダンプ手段と、出力されたメモリの情報を設定された分割領域分、順次出力するダンプファイル解析手段とを備えたことを特徴とする。
【００６７】
また更に、この発明の実施の形態に係るメモリダンプ装置は、分割領域を先頭アドレスまたはカウンタ数値で指定するようにしたことを特徴とする。
【００６８】
また更に、この発明の実施の形態に係るメモリダンプ装置は、仮想アドレスと実アドレスとの対応表を備えて、領域設定手段は、仮想アドレスを指定されると対応表を参照して実アドレスに変換して設定し、メモリダンプ手段は、対応表を参照して実アドレスの情報をメモリダンプし、ダンプファイル解析手段は、実アドレスの情報を出力するようにしたことを特徴とする。
【００６９】
また更に、この発明の実施の形態に係るメモリダンプ装置は、情報処理装置のメモリに記憶された情報をダンプするメモリダンプ装置において、
メモリのダンプ対象領域を示す情報をダンプ対象領域情報として記憶するダンプ対象領域情報ファイルと、情報処理装置に障害が発生した場合に、ダンプ対象領域情報ファイルに記憶されたダンプ対象領域情報を読み込み、ダンプ対象領域情報と、このダンプ対象領域情報が示すメモリのダンプ対象領域に記憶された領域情報とをダンプファイルとして出力するメモリダンプ手段と、メモリダンプ手段により出力されたダンプファイルのダンプ対象領域情報を参照してダンプファイルの領域情報を解析するダンプファイル解析手段と
を備え、上記情報処理装置は、メモリに、仮想空間アドレスを記憶する仮想空間アドレス領域と物理空間アドレスを記憶する物理空間アドレス領域とを備えた論理／物理対応表を記憶し、上記ダンプ対象領域情報ファイルは、仮想空間アドレスで示されたダンプ対象領域情報が論理／物理対応表を用いて物理空間アドレスに変換されたダンプ対象領域情報を入力して記憶し、上記メモリダンプ手段は、更に、論理／物理対応表をダンプファイルに出力し、上記ダンプファイル解析手段は、仮想空間アドレスで示されたユーザの参照希望領域を示すユーザ参照希望領域情報を入力し、ダンプファイルに出力された論理／物理対応表を用いてユーザ参照希望領域の仮想空間アドレスを物理空間アドレスに変換し、この変換した物理空間アドレスが示す領域情報を出力することを特徴とする。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施の形態１における情報処理装置の構成図である。
【図２】実施の形態１におけるダンプ対象領域情報ファイルの図である。
【図３】実施の形態１におけるダンプファイルの図である。
【図４】実施の形態１における領域設定手段の動作フロー図である。
【図５】実施の形態１におけるメモリダンプ手段の動作フロー図である。
【図６】実施の形態１におけるダンプファイル解析手段の動作フロー図である。
【図７】この発明の実施の形態２におけるダンプ対象領域情報ファイルの図である。
【図８】実施の形態２における領域設定手段の動作フロー図である。
【図９】実施の形態２におけるメモリダンプ手段の動作フロー図である。
【図１０】実施の形態２におけるダンプファイル解析手段の動作フロー図である。
【図１１】この発明の実施の形態３におけるメモリダンプ手段の動作フロー図である。
【図１２】実施の形態３におけるメモリダンプ手段の動作フロー図である。
【図１３】実施の形態３におけるダンプファイル解析手段の動作フロー図である。
【図１４】この発明の実施の形態４におけるダンプ対象領域情報ファイルの図である。
【図１５】実施の形態４における領域設定手段の動作フロー図である。
【図１６】実施の形態４におけるメモリダンプ手段の動作フロー図である。
【図１７】実施の形態４におけるダンプファイル解析手段の動作フロー図である。
【図１８】この発明の実施の形態５における領域設定手段の動作フロー図である。
【図１９】本発明の実施の形態６における情報処理装置の構成図である。
【図２０】実施の形態６における仮想／実アドレス変換表を示す図である。
【図２１】実施の形態６におけるダンプファイルの図である。
【図２２】実施の形態６における領域設定手段の動作フロー図である。
【図２３】実施の形態６におけるメモリダンプ手段の動作フロー図である。
【図２４】実施の形態６におけるダンプファイル解析手段の動作フロー図である。
【図２５】従来の情報処理装置におけるメモリダンプ方式を示す図である。
【図２６】従来の他のメモリダンプ方式の構成と動作を示す図である。
【符号の説明】
【００７１】
１１  領域設定手段、１３  メモリダンプ手段、１４  ダンプファイル解析手段、３０  論理／物理（仮想／実アドレス）対応表。
【図１】
2005332421.tif 000003
【図２】
2005332421.tif 000004
【図３】
2005332421.tif 000005
【図４】
2005332421.tif 000006
【図５】
2005332421.tif 000007
【図６】
2005332421.tif 000008
【図７】
2005332421.tif 000009
【図８】
2005332421.tif 000010
【図９】
2005332421.tif 000011
【図１０】
2005332421.tif 000012
【図１１】
2005332421.tif 000013
【図１２】
2005332421.tif 000014
【図１３】
2005332421.tif 000015
【図１４】
2005332421.tif 000016
【図１５】
2005332421.tif 000017
【図１６】
2005332421.tif 000018
【図１７】
2005332421.tif 000019
【図１８】
2005332421.tif 000020
【図１９】
2005332421.tif 000021
【図２０】
2005332421.tif 000022
【図２１】
2005332421.tif 000023
【図２２】
2005332421.tif 000024
【図２３】
2005332421.tif 000025
【図２４】
2005332421.tif 000026
【図２５】
2005332421.tif 000027
【図２６】
2005332421.tif 000028