(57)【要約】      （修正有）【課題】障害の発生に関係するデータを効率的にダンプすることが可能な情報処理装置及びプログラムを提供する。【解決手段】検知手段が自装置に発生した障害を検知するＳ１１と、障害を検知したことを条件に、特定手段はレジスタが保持するレジスタ値に基づいて主記憶装置上のメモリアドレスを特定Ｓ１２し、ダンプ手段は特定手段が特定したメモリアドレスを基準アドレスとし、当該基準アドレスから加算及び減算方向に所定量シフトさせた主記憶装置の対象領域を設定Ｓ１３し、記憶されているデータを補助記憶装置にダンプするＳ１４。【選択図】図３
2018097489.tif 000002
【特許請求の範囲】
【請求項１】
自装置に発生した障害を検知する検知手段と、
前記検知手段が障害を検知したことを条件に、レジスタが保持するレジスタ値に基づいて主記憶装置上のメモリアドレスを特定する特定手段と、
前記特定手段が特定したメモリアドレスを基準アドレスとし、当該基準アドレスから加算及び減算方向に所定量シフトさせた前記主記憶装置の対象領域に記憶されているデータを補助記憶装置にダンプするダンプ手段と、
を備える情報処理装置。
【請求項２】
前記特定手段は、複数のレジスタの一部又は全てが保持するレジスタ値に基づいて前記主記憶装置上のメモリアドレスを前記レジスタ毎に特定する請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、前記レジスタのうち、プログラムカウンタが保持するレジスタ値に基づいて前記主記憶装置上のメモリアドレスを特定する請求項１又は２に記載の情報処理装置。
【請求項４】
前記ダンプ手段は、前記補助記憶装置の記憶容量に応じて、前記加算及び減算方向のシフト量を調整する請求項１〜３の何れか一項に記載の情報処理装置。
【請求項５】
前記補助記憶装置は、前記主記憶装置より小さい記憶容量を有する請求項１〜４の何れか一項に記載の情報処理装置。
【請求項６】
情報処理装置のコンピュータを、
自装置に発生した障害を検知する検知手段と、
前記検知手段が障害を検知したことを条件に、レジスタが保持するレジスタ値に基づいて主記憶装置上のメモリアドレスを特定する特定手段と、
前記特定手段が特定したメモリアドレスを基準アドレスとし、当該基準アドレスから加算及び減算方向に所定量シフトさせた前記主記憶装置の対象領域に記憶されているデータを補助記憶装置にダンプするダンプ手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、ＰＣ（パーソナルコンピュータ）等の情報処理装置では、プログラムの異常終了等の障害の発生時に、その時点での主記憶装置の内容を補助記憶装置にダンプする機能が搭載されている。また、ダンプされたデータを解析することで、障害が発生した原因を特定することが行われている。
【０００３】
ところで、例えば、組み込み機器等の情報処理装置では、主記憶装置の記憶容量と比較して、補助記憶装置の記憶容量が小さいものが存在する。このような情報処理装置では、主記憶装置の全内容を補助記憶装置にダンプすることができず、補助記憶装置の記憶容量分の一部のデータがダンプされることになる。しかしながら、ダンプが不用意に行われると、障害の発生と無関係なデータがダンプされてしまう可能性があるため、障害発生の原因を特定できない場合があった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、障害の発生に関係するデータを効率的にダンプすることが可能な情報処理装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の情報処理装置は、検知手段と、特定手段と、ダンプ手段とを備える。検知手段は、自装置に発生した障害を検知する。特定手段は、前記検知手段が障害を検知したことを条件に、レジスタが保持するレジスタ値に基づいて主記憶装置上のメモリアドレスを特定する。ダンプ手段は、前記特定手段が特定したメモリアドレスを基準アドレスとし、当該基準アドレスから加算及び減算方向に所定量シフトさせた前記主記憶装置の対象領域に記憶されているデータを補助記憶装置にダンプする。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図２】図２は、実施形態に係る情報処理装置の機能構成の一例を示す図である。
【図３】図３は、実施形態の情報処理装置が実行するダンプ処理の一例を示すフローチャートである。
【図４】図４は、ダンプされたデータのデータ構成の一例を示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態に係る情報処理装置及びプログラムについて、図面を参照して説明する。以下の実施形態では、クレジットカード等の読み取りや暗証番号の入力に使用するピンパッド等の端末装置に適用した例について説明するが、この実施形態に限定されないものとする。
【０００８】
図１は、実施形態に係る情報処理装置のハードウェア構成の一例を示す図であって、端末装置１０のハードウェア構成を示している。図１に示すように、端末装置１０は、ＣＰＵ（Central  Processing  Unit）１１、ＲＯＭ（Read  Only  Memory）１２、ＲＡＭ（Random  Access  Memory）１３及び記憶部１４のコンピュータ構成を備える。また、端末装置１０は、現在日時を計時するＲＴＣ（Real  Time  Clock）等の計時部（図示せず）を備える。
【０００９】
ＣＰＵ１１は、プロセッサであって、レジスタ１１１を有する。ＣＰＵ１１は、ＲＯＭ１２や記憶部１４に記憶されたプログラムと協働することで、端末装置１０の動作を統括的に制御する。ＲＯＭ１２は、ＣＰＵ１１が実行する各種プログラムや各種データを記憶する。ＲＡＭ１３は、端末装置１０の主記憶装置である。ＲＡＭ１３は、ＣＰＵ１１が各種プログラムを実行する際にデータやプログラムを一時的に記憶するワークスペースとして機能する。
【００１０】
記憶部１４は、端末装置１０の補助記憶装置であり、読み書き可能な不揮発性の記憶媒体を有する。記憶部１４は、例えば半導体メモリや、電池を用いてデータを保持することが可能なＳＲＡＭ（Static  Random  Access  Memory）等である。記憶部１４は、ＣＰＵ１１が実行する各種プログラムや各種データを記憶する。
【００１１】
また、記憶部１４は、ダンプ用記憶部１４１を保持する。本実施形態では、記憶部１４のダンプ用記憶部１４１は、例えば４キロバイト（４０９６バイト）等の、ＲＡＭ１３よりも小さい記憶容量を有するものとする。なお、ダンプ用記憶部１４１の記憶容量は、予め定められた固定値であってもよいし、他の記憶領域の使用状態に応じて動的に変動する不定値であってもよい。
【００１２】
また、端末装置１０は、通信Ｉ／Ｆ１５と、操作部１６と、表示部１７と、カード読取部１８と、印字部１９とを備える。
【００１３】
通信Ｉ／Ｆ１５は、図示しない外部装置と有線又は無線通信することが可能な通信インタフェースである。例えば、通信Ｉ／Ｆ１５は、ＣＰＵ１１の制御の下、決済端末やカード会社のサーバ装置等と通信を行う。
【００１４】
操作部１６は、キーボードやポインティングデバイス等の入力デバイスを有する。操作部１６は、例えば、数字入力用のテンキー等を含み、暗証番号等の入力を受け付ける。操作部１６は、操作を受け付けると、その操作内容をＣＰＵ１１に出力する。
【００１５】
表示部１７は、液晶ディスプレイ等の表示デバイスを有する。表示部１７は、ＣＰＵ１１の制御の下、各種情報を表示する。なお、表示部１７は、タッチパネル構成としてもよい。この場合、タッチパネルは、操作部１６として機能する。
【００１６】
カード読取部１８は、クレジットカードやデビットカード等のカードからカード情報を読み取るカードリーダである。カード読取部１８は、カードが保持するカード情報を読み取り、読み取ったカード情報をＣＰＵ１１に出力する。
【００１７】
印字部１９は、サーマルプリンタ等の印字装置である。印字部１９は、ＣＰＵ１１の制御の下、所定の紙媒体に印字して伝票を発行する。
【００１８】
上記の構成において、ＣＰＵ１１は、ＲＯＭ１２や記憶部１４に記憶されたプログラムを実行することで、カードの読み取りや与信照会等の各種の処理を実行する。また、ＣＰＵ１１は、ＲＯＭ１２や記憶部１４に記憶されたプログラムを実行することで、図２に示すように、障害検知部２１と及びダンプ処理部２２等を機能部として実現する。
【００１９】
図２は、実施形態に係る情報処理装置の機能構成の一例を示す図であって、図１に示した端末装置１０の機能構成を示している。図２に示すように、端末装置１０は、ダンプ出力に係る機能構成として、障害検知部２１とダンプ処理部２２とを備える。
【００２０】
障害検知部２１は、検知手段の一例である。障害検知部２１は、端末装置１０の状態を監視し、端末装置１０に発生した障害を検知する。例えば、障害検知部２１は、ＣＰＵ１１が実行する各種処理（プロセスやスレッド）を監視し、処理の異常終了を検知すると、障害発生として検知する。なお、障害検知部２１が検知する対象は、ソフトウェア障害に限らず、ハードウェア障害を検知の対象に含めてもよい。
【００２１】
ダンプ処理部２２は、特定手段及びダンプ手段の一例である。ダンプ処理部２２は、障害検知部２１により障害の発生が検知されたことを条件に、その障害が発生した時点でのメモリの内容を記憶部１４のダンプ用記憶部１４１にダンプする。より詳細には、ダンプ処理部２２は、ＣＰＵ１１のレジスタ１１１が保持するレジスタ値に基づいて、異常終了した処理に関係する命令等が記憶されたＲＡＭ１３上のメモリアドレスを特定する。
【００２２】
例えば、ＡＲＭ（商標登録）プロセッサでは、ｒ０からｒ１５の１６本のレジスタ１１１を有する。ｒ０〜ｒ１３は汎用レジスタ、ｒ１４はリンクレジスタ、ｒ１５はプログラムカウンタである。なお、ｒ１３は、スタックポインタとしても使用される。これらのレジスタ１１１は、ＲＡＭ１３上のメモリアドレスや演算結果等のデータを保持する。
【００２３】
障害検知部２１が障害の発生を検知すると、ダンプ処理部２２は、レジスタ１１１が保持するレジスタ値に基づいて、当該レジスタ値が指すＲＡＭ１３上のメモリアドレスを特定する。ダンプ処理部２２は、特定したメモリアドレスを基点アドレスとし、この基点アドレスから加算方向及び減算方向にメモリアドレスを所定量シフトしたＲＡＭ１３上の記憶領域（以下、ダンプ対象領域という）を設定する。そして、障害検知部２１は、ＲＡＭ１３のダンプ対象領域に記憶されているデータを、記憶部１４のダンプ用記憶部１４１にダンプする。
【００２４】
また、レジスタ１１１にメモリアドレスのオフセットが指示されている場合、ダンプ処理部２２は、そのオフセット分を加味（加算、減算等）してダンプ対象領域を設定し、当該ダンプ対象領域に記憶されているデータをダンプする。
【００２５】
例えば、或るレジスタ１１１が指示するメモリアドレスがＡ１、オフセットがα１であったとする。この場合、ダンプ処理部２２は、Ａ１を基点アドレスとし、この基点アドレスから減算方向に所定量シフトしたメモリアドレスまでの範囲を、減算方向のダンプ対象領域に設定する。また、ダンプ処理部２２は、基点アドレスをα１分オフセットしたメモリアドレスから加算方向に所定量シフトしたメモリアドレスまでの範囲を、加算方向のダンプ対象領域に設定する。そして、ダンプ処理部２２は、減算方向及び加算方向のダンプ対象領域に記憶されているデータをダンプ用記憶部１４１にダンプする。なお、上記の例では、レジスタ１１１が指示するメモリアドレスを基点アドレスとしたが、これに限らず、オフセット後のメモリアドレスを基点アドレスとし、この基点アドレスから加算方向及び減算方向に所定量シフトした範囲をダンプ対象領域としてもよい。
【００２６】
なお、メモリアドレスのシフト量は、ダンプされたデータがダンプ用記憶部１４１に収まるよう、ダンプ用記憶部１４１の記憶容量に基づき予め定められているものとする。また、ダンプ処理部２２は、ダンプ用記憶部１４１の記憶容量に応じて、加算及び減算方向のシフト量を調整してもよい。この場合、シフト量を調整するタイミングは特に問わず、障害検知部２１が障害を検知したタイミングや、端末装置１０の起動時に調整する構成としてもよい。また、ダンプ処理部２２は、ダンプ用記憶部１４１の記憶容量がＲＡＭ１３の記憶容量以上の場合、上記のダンプ方法を行わずにＲＡＭ１３の全内容をダンプ用記憶部１４１にダンプするよう制御してもよい。
【００２７】
また、加算及び減算方向へのシフト量は、ｒ０からｒ１５の各レジスタ１１１で同一としてもよいし、異なる値としてもよい。また、メモリアドレスのシフト量は、加算方向及び減算方向で同値としてもよいし、異なる値としてもよい。
【００２８】
また、上記のダンプ方法は、ｒ０からｒ１５の全てのレジスタ１１１に適用してもよいし、一部のレジスタ１１１に適用する構成としてもよい。後者の場合、例えば、実行中のメモリアドレスを保持するｒ１５のプログラムカウンタに適用することで、異常終了の発生時に実行されていた命令等を効率的に取得することができる。なお、上記ダンプ方法の非対象となったレジスタ１１１については、ダンプ処理部２２は、ダンプしないよう制御してもよいし、特定したメモリアドレスのデータをダンプするように制御してもよい。
【００２９】
また、ダンプの対象は、ＲＡＭ１３上のデータに限らないものとする。例えば、ダンプ処理部２２は、レジスタ１１１が保持するレジスタ値の内容をダンプ用記憶部１４１にダンプしてもよい。
【００３０】
図３は、端末装置１０（ダンプ処理部２２）が実行するダンプ処理の一例を示すフローチャートである。
【００３１】
まず、ダンプ処理部２２は、障害検知部２１により障害の発生が検知されるまで待機する（ステップＳ１１；Ｎｏ）。障害検知部２１により障害の発生が検知されると（ステップＳ１１；Ｙｅｓ）、ダンプ処理部２２は、ステップＳ１２に移行する。
【００３２】
ステップＳ１２において、ダンプ処理部２２は、ＣＰＵ１１のレジスタ１１１が保持するレジスタ値に基づき、そのレジスタ値で指示されたＲＡＭ１３上のメモリアドレスを特定する（ステップＳ１２）。続いて、ダンプ処理部２２は、特定したメモリアドレスを基点アドレスとし、この基点アドレスから加算及び減算方向に所定量シフトさせたＲＡＭ１３上のダンプ対象領域を設定する（ステップＳ１３）。そして、ダンプ処理部２２は、ダンプ対象領域に記憶されているデータを、レジスタ１１１が保持するレジスタ値等とともにダンプ用記憶部１４１にダンプする（ステップＳ１４）。
【００３３】
図４は、ダンプされたデータのデータ構成の一例を示す図である。図４では、オフセットアドレス「０００〜ＦＦＦ」の４０９６バイト分のデータがダンプされた例を示している。
【００３４】
オフセットアドレス「０００〜００Ｆ」の１６バイト分の領域には、障害が発生したことを示す識別子であるＭａｇｉｃ  Ｎｕｍｂｅｒ、ダンプされた際の日時を示すＴｉｍｅｓｔａｍｐ、障害の種別を示すＡｂｏｒｔ  Ｋｉｎｄが格納される。オフセットアドレス「０１０〜０ＢＦ」の１７６バイト分の領域には、レジスタ１１１が保持するデータの内容（レジスタ値）が格納される。オフセットアドレス「０Ｃ０〜ＢＦＦ」の１９２バイト毎の各領域には、ｒ０〜ｒ１２、ｒ１４、ｒ１５のレジスタ１１１が保持するメモリアドレスに基づきダンプされたデータが格納される。オフセットアドレス「Ｃ００〜ＦＦＦ」の１０２４バイト分の領域には、ｒ１３のレジスタ１１１が保持するメモリアドレスに基づきダンプされたデータが格納される。
【００３５】
ここで、例えば、オフセットアドレス「Ｂ４０〜ＢＦＦ」に格納されたデータが、上記のダンプ方法で取得されていたとする。この場合、１９２バイトのデータは、ｒ１５のレジスタ１１１が保持するレジスタ値に基づき特定した基準アドレスから、加算及び減算方向に所定量シフトさせたダンプ対象領域のデータとなる。
【００３６】
このように、端末装置１０では、障害が発生すると、レジスタが保持するレジスタ値に基づき特定したメモリアドレスを基準に、加算及び減算方向に所定量シフトさせたダンプ対象領域を設定する。そして、端末装置１０は、ＲＡＭ１３上のダンプ対象領域に記憶されているデータをダンプ用記憶部１４１にダンプする。これにより、端末装置１０は、障害が発生した際に実行されていた処理の関係する命令等が記憶されたデータをダンプすることができるため、障害の発生に関係するデータを効率的にダンプすることができる。したがって、上記の方法でダンプされたデータを解析することで、障害発生の原因特定を効率的に行うことができる。
【００３７】
また、メモリアドレスのシフト量は、ダンプ用記憶部１４１の記憶容量に応じて定めることができるため、ＲＡＭ１３の記憶容量と比較して、記憶部１４（ダンプ用記憶部１４１）の記憶容量が小さい場合であっても、障害の発生に関係するデータを効率的にダンプすることができる。
【００３８】
以上、本発明の実施形態を説明したが、上記実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、追加、組み合わせ等を行うことができる。また、上記実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００３９】
また、上記実施形態の情報処理装置で実行されるプログラムは、当該情報処理装置が備える記憶媒体（ＲＯＭまたは記憶部）に予め組み込んで提供するものとするが、これに限らず、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。更に、記憶媒体は、コンピュータ或いは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００４０】
また、上記実施形態の情報処理装置で実行されるプログラムをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよく、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
【符号の説明】
【００４１】
１０  端末装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  記憶部
１５  通信Ｉ／Ｆ
１６  操作部
１７  表示部
１８  カード読取部
１９  印字部
２１  障害検知部
２２  ダンプ処理部
１１１  レジスタ
１４１  ダンプ用記憶部
【先行技術文献】
【特許文献】
【００４２】
【特許文献１】特開平８−２８６９５７号公報
【図１】
2018097489.tif 000003
【図２】
2018097489.tif 000004
【図３】
2018097489.tif 000005
【図４】
2018097489.tif 000006