(57)【要約】      （修正有）【課題】カーネルパニック発生時におけるダンプファイルの正当性を正確に判断できるダンプ処理装置及び画像形成装置を提供する。【解決手段】画像形成装置のコントローラ１１は、オペレーティングシステムの異常時に対象データをＨＤＤ１４に記憶させる。コントローラ１１は、対象データを分割して複数の分割データを生成する分割データ生成部１１１と、分割データを識別するヘッダ情報を生成するヘッダ情報生成部１１２と、分割データの正当性を判断するためのチェックサムを生成するチェックサム生成部１１３と、ヘッダ情報を分割データの書込み開始前にＨＤＤ１４に書き込み、チェックサムを分割データの書込み完了後にＨＤＤ１４に書き込む書込み部１０２と、を備える。【選択図】図３
2019191820.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムの異常時に対象データを所定の記憶装置に記憶させるダンプ処理装置であって、
前記対象データを分割して複数の分割データを生成する分割データ生成部と、
前記分割データを識別するヘッダ情報を生成するヘッダ情報生成部と、
前記分割データの正当性を判断するためのチェックサムを生成するチェックサム生成部と、
前記ヘッダ情報を前記分割データの書込み開始前に前記記憶装置に書き込み、前記チェックサムを前記分割データの書込み完了後に前記記憶装置に書き込む書込み部と、
を備えるダンプ処理装置。
【請求項２】
全ての前記対象データの書込みが完了したか否かを示す情報を含む管理情報を生成する管理情報生成部、
を更に備え、
前記書込み部は、前記管理情報を前記記憶装置に書き込む、
請求項１に記載のダンプ処理装置。
【請求項３】
前記管理情報は、前記対象データの書込み先を示す情報及び前記対象データのデータサイズを示す情報を更に含む、
請求項２に記載のダンプ処理装置。
【請求項４】
前記記憶装置から読み出された、前記対象データに基づくダンプファイルに含まれる前記ヘッダ情報及び前記チェックサムに基づいて、前記ダンプファイルの正当性を判断する正当性判断部、
を更に備える請求項１〜３のいずれか１項に記載のダンプ処理装置。
【請求項５】
前記正当性判断部は、前記ヘッダ情報及び前記チェックサムが存在し、且つ前記チェックサムが正当な値である場合に、当該ヘッダ情報及び当該チェックサムに対応する前記分割データは正当であると判断する、
請求項４に記載のダンプ処理装置。
【請求項６】
前記記憶装置から読み出された、前記対象データに基づくダンプファイルに含まれる前記管理情報、前記ヘッダ情報、及び前記チェックサムに基づいて、前記ダンプファイルの正当性を判断する正当性判断部、
を更に備える請求項２又は３に記載のダンプ処理装置。
【請求項７】
前記正当性判断部は、
前記管理情報が、全ての前記対象データの書込みが完了したことを示す場合には、前記ダンプファイルは正当であると判断し、
前記管理情報が、全ての前記対象データの書込みが完了したことを示していない場合には、前記ヘッダ情報及び前記チェックサムが存在し、且つ前記チェックサムが正当な値である場合に、当該ヘッダ情報及び当該チェックサムに対応する前記分割データは正当であると判断する、
請求項６に記載のダンプ処理装置。
【請求項８】
請求項１〜７のいずれか１項に記載のダンプ処理装置と、
画像を形成する画像形成部と、
を備える画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ダンプ処理装置及び画像形成装置に関する。
【背景技術】
【０００２】
ＯＳ（Operating  System）上でアプリケーションを動作させる装置において、ＯＳの異常、いわゆるカーネルパニックが発生した際に、メインメモリに記憶されているログデータ等をＨＤＤ（Hard  Disk  Drive）等の外部記憶装置に書き込むダンプ処理が行われる。ダンプ処理により外部記憶装置に書き込まれたデータ（ダンプファイル）は、後に障害解析用のデータ等として利用される。しかし、ダンプ処理の実行中に電源断が発生すると、データの書込みが中断され、ダンプファイルの正当性を保証することができなくなる。
【０００３】
データ書込み時における電源断に対処することを目的として、例えば、ガベージコレクション処理において、固定長のデータ単位の書込み完了時にフラグを発行し、復帰後にフラグを参照することにより、データの書込み完了を判断する技術が開示されている（特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術のように、データの書込み完了時に発行される情報（フラグ、チェックサム等）を参照することにより、書き込まれたダンプファイルの正当性をある程度判断することができる。しかしながら、カーネルパニック発生時に実行されるダンプ処理においては、メインメモリ内のログデータ等の対象データを様々なデータ長に分割して書き込む場合がある。このような場合、書込み完了時に発行されるチェックサム等の情報のみを用いてダンプファイルの正当性を判断すると、データの書込み開始に関する情報を十分に取得することができないため、ダンプファイルの正当性を正確に判断することができない場合がある。
【０００５】
本発明は、上記に鑑みてなされたものであって、カーネルパニック発生時におけるダンプファイルの正当性を正確に判断できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の一形態は、オペレーティングシステムの異常時に対象データを所定の記憶装置に記憶させるダンプ処理装置であって、前記対象データを分割して複数の分割データを生成する分割データ生成部と、前記分割データを識別するヘッダ情報を生成するヘッダ情報生成部と、前記分割データの正当性を判断するためのチェックサムを生成するチェックサム生成部と、前記ヘッダ情報を前記分割データの書込み開始前に前記記憶装置に書き込み、前記チェックサムを前記分割データの書込み完了後に前記記憶装置に書き込む書込み部と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、カーネルパニック発生時におけるダンプファイルの正当性を正確に判断することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る画像形成装置のハードウェア構成例を示すブロック図である。
【図２】図２は、実施形態に係る画像形成装置のソフトウェアレイヤ構成例を示す図である。
【図３】図３は、実施形態に係るコントローラの機能構成例を示すブロック図である。
【図４】図４は、実施形態に係るダンプ処理の全体的な処理例を示すフローチャートである。
【図５】図５は、実施形態に係るダンプファイルのデータ構造例を示す図である。
【図６】図６は、実施形態に係るログ管理情報を更新する際の処理例を示すフローチャートである。
【図７】図７は、実施形態に係るダンプ処理において複数のデータブロックを含むログ２０２を書き込む際の処理例を示すフローチャートである。
【図８】図８は、実施形態に係るデータブロックの書込み時における電源断の影響を概念的に例示する図である。
【図９】図９は、実施形態に係る正当性判断処理の例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、ダンプ処理装置及び画像形成装置の実施形態を詳細に説明する。以下の実施形態によって本発明が限定されるものではなく、以下の実施形態における構成要素には当業者が容易に想到できるもの、実質的に同一のもの、及びいわゆる均等の範囲のものが含まれる。以下の実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更、及び組み合わせを行うことができる。
【００１０】
図１は、実施形態に係る画像形成装置１のハードウェア構成例を示すブロック図である。画像形成装置１は、カーネルパニック発生時にダンプファイルを所定の記憶装置に記憶させるダンプ処理を実行するコントローラ１１（ダンプ処理装置）を含む装置の一例である。本実施形態に係る画像形成装置１は、コントローラ１１、操作部１２、エンジン１３（画像形成部）、及びＨＤＤ１４を含む。
【００１１】
コントローラ１１は、画像形成装置１全体の制御を司るユニットであり、ＣＰＵ（Central  Processing  Unit）２１、ＡＳＩＣ（Application  Specific  Integrated  Circuit）２２、ＤＲＡＭ（Dynamic  Random  Access  Memory）２３、ＳＳＤ（Solid  State  Drive）２４、ＮＶＲＡＭ（Non-Volatile  Random  Access  Memory）２５、ＵＳＢ・Ｉ／Ｆ（Universal  Serial  Bus  Interface）２６、及びＳＤカードＩ／Ｆ２７を含む。
【００１２】
ＣＰＵ２１は、例えばＳｏＣ（System  on  Chip）の形態を有する集積回路であり、ＤＲＡＭ２３、操作部１２、ＨＤＤ１４、ＵＳＢ・Ｉ／Ｆ２６、及びＡＳＩＣ２２と接続している。ＤＲＡＭ２３は、メインメモリとして利用される揮発性メモリである。操作部１２は、ユーザの操作を受け付け、ユーザに情報を提供するユーザインターフェースであり、例えばキーパッド、タッチパネル、スピーカ等を利用して構成される。ＨＤＤ１４は、大容量の外部記憶装置である。ＵＳＢ・Ｉ／Ｆ２６は、各種の外部機器と接続可能なインターフェースであり、例えばＵＳＢメモリ２８等と接続する。
【００１３】
ＡＳＩＣ２２は、特定用途向けの集積回路であり、画像処理、各種Ｉ／Ｆの機能を実現させるための処理等を行う。ＡＳＩＣ２２は、ＣＰＵ２１、ＳＳＤ２４、ＮＶＲＡＭ２５、ＳＤカードＩ／Ｆ２７、及びエンジン１３と接続している。ＳＳＤ２４は、主にシステム起動用プログラムの格納先として利用される記憶装置である。ＮＶＲＡＭ２５は、主にユーザデータの管理等に利用される比較的小容量の不揮発性メモリである。ＳＤカードＩ／Ｆ２７は、外部メモリであるＳＤカード２９と接続するインターフェースである。エンジン１３は、ＡＳＩＣ２２からの制御信号に基づいて、例えば電子写真プロセス、インクジェット方式等を利用して、実際に印刷処理を行う機構である。
【００１４】
図２は、実施形態に係る画像形成装置１のソフトウェアレイヤ構成例を示す図である。本実施形態に係る画像形成装置１のソフトウェアレイヤは、アプリケーション層５１、サービス層５２、及びＯＳ層５３を含む。
【００１５】
アプリケーション層５１は、最上位の層であり、ＯＳを利用するユーザが作成したアプリケーションを含む。アプリケーション層５１に致命的エラーが発生した場合には、アプリケーション層５１はＯＳのファイルシステム等の機能を利用して自らダンプ処理を行うことができる。
【００１６】
サービス層５２は、ＯＳ上で動作するアプリケーションの一種であるが、常駐して何らかの機能を提供することを目的とする点でアプリケーション層５１とは異なっている。サービス層５２の致命的エラーが結果的にカーネルパニックを引き起こす可能性はあるが、サービス層５２はＯＳ上で動作するアプリケーションの一種であるため、ＯＳのファイルシステム等の機能を利用して自らダンプ処理を行うことができる。
【００１７】
ＯＳ層５３は、最下位の層であり、アプリケーション層５１及びサービス層５２に対してファイルシステム等の機能を提供する。ＯＳ層５３に致命的エラーが発生すると、カーネルパニックと呼ばれる状態に陥り、ＯＳ層５３はダンプ処理（パニックダンプ）を行ってリブートする。このとき、ファイルシステム等の機能を提供するＯＳ層５３自体がエラーを起こしているため、上位２つの層５１，５２におけるダンプ処理とは異なり、ファイルシステムをそのまま利用した動作を保証することができない。そのため、パニックダンプを行う際には、ファイルシステムを利用せず、ＨＤＤ１４等の所定の記憶装置のドライバを直接制御して生データを書き込む等の処理が必要となる。
【００１８】
図３は、実施形態に係るコントローラ１１の機能構成例を示すブロック図である。コントローラ１１は、ダンプ処理部１０１、書込み部１０２、読出し部１０３、及び正当性判断部１０４を含む。
【００１９】
ダンプ処理部１０１は、カーネルパニック発生時にＤＲＡＭ２３等に記憶されているログデータ等の対象データをＨＤＤ１４に書き込むダンプ処理を行う。ダンプ処理により、ＨＤＤ１４には対象データに基づくダンプファイル１１０が記憶される。ダンプ処理部１０１は、ＣＰＵ２１、ＣＰＵ２１を制御するプログラム等の協働により構成され得る。
【００２０】
ダンプ処理部１０１は、分割データ生成部１１１、ヘッダ情報生成部１１２、チェックサム生成部１１３、ログ種別情報生成部１１４、及びログ管理情報生成部１１５を含む。
【００２１】
分割データ生成部１１１は、ダンプ処理の対象となる対象データ（本実施形態においては、カーネルパニック発生時にＤＲＡＭ２３に記憶されていたログデータ）を分割し、複数の分割データを生成する。
【００２２】
ヘッダ情報生成部１１２は、分割データ生成部１１１により生成された分割データを識別するヘッダ情報を生成する。
【００２３】
チェックサム生成部１１３は、分割データ生成部１１１により生成された分割データの正当性を判断するために算出された値であるチェックサムを生成する。チェックサムの算出方法は特に限定されるものではなく、周知又は新規な算出方法を適宜利用することができる。
【００２４】
ログ種別情報生成部１１４は、ダンプ処理の対象となるログデータを構成するログの種別を示すログ種別情報を生成する。ログの種別は使用条件に応じて適宜選択されるべきものであるが、例えば、デバイスドライバのログ、カーネルデバッガのコマンド結果のログ等であり得る。
【００２５】
ログ管理情報生成部１１５は、ログデータの書込みを管理するためのログ管理情報（管理情報）を生成する。ログ管理情報は、ログデータ全体の書込みが完了したか否かを示す情報（完了フラグ）を含む。ログ管理情報のデータ構造は使用条件に応じて適宜選択されるべきものであるが、例えば、完了フラグの他、ログの書込み先を示す情報、ログのデータサイズを示す情報等を含んでもよい。
【００２６】
書込み部１０２は、ダンプ処理部１０１により生成されたデータをＨＤＤ１４に書き込む。ダンプ処理部１０１により生成されたデータには、分割データ、ヘッダ情報、チェックサム、ログ種別情報、及びログ管理情報が含まれる。書込み部１０２は、ＣＰＵ２１、ＣＰＵ２１を制御するプログラム等の協働により構成され得る。
【００２７】
読出し部１０３は、ＨＤＤ１４に書き込まれたダンプファイル１１０を読み出す。読出し部１０３は、ＣＰＵ２１、ＣＰＵ２１を制御するプログラム等の協働により構成され得る。
【００２８】
正当性判断部１０４は、読出し部１０３により読み出されたダンプファイル１１０の正当性を判断する正当性判断処理を行う。正当性判断部１０４は、ヘッダ情報及びチェックサムに基づいて分割データの正当性を判断する。具体的には、ヘッダ情報及びチェックサムの両方が存在し、且つチェックサムが正当な値である場合に、当該ヘッダ情報及びチェックサムに対応する分割データは正当であると判断される。換言すれば、チェックサムが正当な値であっても、ヘッダ情報が存在しない場合には、当該チェックサムに対応する分割データは正当であるとは判断されない。正当性判断部１０４は、ＣＰＵ２１、ＣＰＵ２１を制御するプログラム等の協働により構成され得る。
【００２９】
図４は、実施形態に係るダンプ処理の全体的な処理例を示すフローチャートである。カーネルパニックが発生すると、ダンプ処理部１０１は、ＨＤＤ１４の状態をチェックする（Ｓ１０１）。ＨＤＤ１４の状態のチェック方法は特に限定されるべきものではないが、例えばハードウェア認識処理、空き容量検査処理等を利用することができる。ＨＤＤ１４が使用可能な状態である場合（Ｓ１０２：Ｙｅｓ）、使用可能なＨＤＤ１４に対象データを書き込むダンプ処理を行う（Ｓ１０３）。一方、ＨＤＤ１４が使用不可能である場合（Ｓ１０２：Ｎｏ）、ダンプ処理は実行されない。
【００３０】
図５は、実施形態に係るダンプファイル１１０のデータ構造例を示す図である。本実施形態に係るダンプファイル１１０は、ログ管理情報２０１と、複数のログ２０２（２０２Ａ，２０２Ｂ）とを含んでいる。ここでは、１つのダンプファイル１１０が２つのログ２０２Ａ，２０２Ｂを含んでいる例を示す。
【００３１】
ログ管理情報２０１は、各ログ２０２Ａ，２０２Ｂの書込みが完了したか否かを示す完了フラグ、各ログ２０２Ａ，２０２ＢのＬＢＡ（Logical  Block  Addressing）オフセット値、各ログ２０２Ａ，２０２Ｂのサイズ等を含む。
【００３２】
各ログ２０２Ａ，２０２Ｂは、ログの種別毎に分けられている。ログの種別は、例えば、デバイスドライバのログ、カーネルデバッガのコマンド結果のログ等であり得る。各ログ２０２Ａ，２０２Ｂのデータサイズは、ログの種別に応じて異なる。なお、ログの数及び種別はこれに限られるものではなく、使用条件に応じて適宜選択されるべきものである。
【００３３】
各ログ２０２Ａ，２０２Ｂは、ログの種別を示すログ種別情報２１１（２１１Ａ，２１１Ｂ）と、複数のデータブロック２１２（２１２Ａ〜２１２Ｆ）とを含んでいる。本例では、第１のログ２０２Ａが３つのデータブロック２１２Ａ〜２１２Ｃを含み、第２のログ２０２Ｂが３つのデータブロック２１２Ｄ〜２１２Ｆを含んでいる。
【００３４】
ログ種別情報２１１は、ログの種別毎に一意に割り当てられた情報（値）である。パニックダンプ後、ログ種別情報２１１を追うことにより、正常な箇所までサルベージすることができる。
【００３５】
各データブロック２１２（２１２Ａ〜２１２Ｆ）は、分割データ２２１（２２１Ａ〜２２１Ｆ）と、ヘッダ情報２２２（２２２Ａ〜２２２Ｆ）と、チェックサム２２３（２２３Ａ〜２２３Ｆ）とを含んでいる。
【００３６】
分割データ２２１は、ダンプ処理の対象となるログデータ（対象データ）を分割したデータである。データの分割方法は特に限定されるべきものではないが、例えばログデータに含まれる終端文字を基準としてデータを分割する方法等を用いることができる。各分割データ２２１Ａ〜２２１Ｆのデータサイズは一致していなくてもよい。図５において、各分割データ２２１Ａ〜２２１Ｆに対応する各矩形の上下方向（下位アドレスから上位アドレスへの方向）の長さがそれぞれ異なっているが、これは各分割データ２２１Ａ〜２２１Ｆのデータサイズが異なっていることを示している。
【００３７】
ヘッダ情報２２２は、分割データ２２１を識別するための情報であり、分割データ２２１の直前（本例では下位アドレス側）に書き込まれている。例えば、第１のログ２０２Ａの第１のデータブロック２１２Ａに含まれるヘッダ情報２２２Ａは、第１のデータブロック２１２Ａに含まれる分割データ２２１Ａを識別し、第１のログ２０２Ａの第２のデータブロック２１２Ｂに含まれるヘッダ情報２２２Ｂは、第２のデータブロック２１２Ｂに含まれる分割データ２２１Ｂを識別する。他のヘッダ情報２２２Ｃ〜２２２Ｆについても同様である。
【００３８】
チェックサム２２３は、分割データ２２１の正当性（信頼性）を判断するために算出された情報（値）であり、分割データ２２１の直後（本例では上位アドレス側）に書き込まれている。例えば、第１のログ２２Ａの第１のデータブロック２１２Ａに含まれるチェックサム２２３Ａは、第１のデータブロック２１２Ａに含まれる分割データ２２１Ａの正当性を示し、第１のログ２０２Ａの第２のデータブロック２１２Ｂに含まれるチェックサム２２３Ｂは、第２のデータブロック２１２Ｂに含まれる分割データ２２１Ｂの正当性を示す。他のチェックサム２２３Ｃ〜２２２Ｆについても同様である。
【００３９】
図６は、実施形態に係るログ管理情報２０１を更新する際の処理例を示すフローチャートである。ここでは、図５に示すようにダンプファイル１１０が２つのログ２０２Ａ，２０２Ｂを含む場合について説明する。
【００４０】
カーネルパニック発生時におけるダンプ処理が開始し、書込み部１０２が第１のログ２０２ＡをＨＤＤ１４に書き込むと（Ｓ２０１）、ログ管理情報生成部１１５は、書込み部１０２を介して、ログ管理情報２０１を第１のログ２０２Ａの書込みが完了したことを示す内容に更新する（第１のログ２０２Ａに対応する完了フラグを立てる）（Ｓ２０２）。その後、書込み部１０２が第２のログ２０２ＢをＨＤＤ１４に書き込むと（Ｓ２０３）、ログ管理情報生成部１１５は、書込み部１０２を介して、ログ管理情報２０１を第２のログ２０２Ｂの書込みが完了したことを示す内容に更新する（第２のログ２０２Ｂに対応する完了フラグを立てる）（Ｓ２０４）。
【００４１】
上記処理により、ログ管理情報２０１を各ログ２０２Ａ，２０２Ｂの書込みが完了しているか否かを示す状態に保つことができる。
【００４２】
図７は、実施形態に係るダンプ処理において複数のデータブロック２１２を含むログ２０２を書き込む際の処理例を示すフローチャートである。ここでは、第１のログ２０２Ａを書き込む場合について説明する。第１のログ２０２Ａの書込みが開始すると、ログ種別情報生成部１１４は、第１のログ２０２Ａの種別を示す第１のログ種別情報２１１Ａを書き込む（Ｓ３０１）。その後、ヘッダ情報生成部１１２は、第１の分割データ２２１Ａを識別する第１のヘッダ情報２２２Ａを書き込む（Ｓ３０２）。その後、分割データ生成部１１１は、第１の分割データ２２１Ａを書き込む（Ｓ３０３）。その後、チェックサム生成部１１３は、第１の分割データ２２１Ａの正当性を判断するためのチェックサム２２３Ａを書き込む（Ｓ３０４）。これにより、第１のヘッダ情報２２２Ａ、第１の分割データ２２１Ａ、及び第１のチェックサム２２３Ａが下位アドレスから上位アドレスへ順番に配列された第１のデータブロック２１２Ａが構成される。
【００４３】
その後、第１のログ２０２Ａに含まれる全てのデータブロック２１２が書き込まれたか否かが判断される（Ｓ３０５）。全てのデータブロック２１２が書き込まれた場合（Ｓ３０５：Ｙｅｓ）、第１のログ２０２Ａの書込みを終了する。一方、全てのデータブロック２１２が書き込まれてはいない場合（Ｓ３０５：Ｎｏ）、未だ書き込まれていないデータブロック２１２Ｂ，２１２Ｃについて、ステップＳ３０２〜Ｓ３０４の処理が繰り返される。第２のログ２０２Ｂについても、上記と同様の処理により書込みが行われる。これにより、図５に示すようなデータ構造を有するダンプファイル１１０が生成される。
【００４４】
上述したように、本実施形態に係る正当性判断部１０４（図３参照）は、チェックサム２２３だけでなくヘッダ情報２２２にも基づいて、分割データ２２１の正当性を判断する。すなわち、正当性判断部１０４は、カーネルパニックからの復帰後に上記データ構造を有するダンプファイル１１０をＨＤＤ１４から読み出し、各分割データ２２１Ａ〜２２１Ｆについて、それぞれヘッダ情報２２２Ａ〜２２２Ｆ及びチェックサム２２３Ａ〜２２３Ｆが存在するか否か、且つ各チェックサム２２３Ａ〜２２３Ｆが正当な値であるか否かを検証する。これにより、ダンプファイル１１０の正当性を分割データ２２１毎に正確に判断することが可能となる。
【００４５】
ここで、ログデータの書込み時（ダンプファイル１１０の生成時）における電源断による影響について考察する。図８は、実施形態に係るデータブロック２１２の書込み時における電源断の影響を概念的に例示する図である。図８において、４つのパターン３０１〜３０４が示されている。
【００４６】
第１のパターン３０１は、データブロック２１２の書込み時に電源断が生じなかった場合を示している。この場合、ヘッダ情報２２２、分割データ２２１、及びチェックサム２２３は正常に書き込まれ、ヘッダ情報２２２及びチェックサム２２３の両方が存在するという条件は満たされるため、チェックサム２２３の値が正常であれば分割データ２２１の正当性が保証される。
【００４７】
第２のパターン３０２は、ヘッダ情報２２２の書込み中に電源断が生じた場合を示している。この場合、ヘッダ情報２２２は完全には書き込まれず、分割データ２２１及びチェックサム２２３は全く書き込まれない。そのため、判断対象となる分割データ２２１が存在しないこととなり、分割データ２２１の正当性は当然保証されない。
【００４８】
第３のパターン３０３は、分割データ２１１の書込み中に電源断が生じた場合を示している。この場合、分割データ２２１は完全には書き込まれず、チェックサム２２３は全く書き込まれない。そのため、分割データ２２１及びチェックサム２２３の両方が存在するという条件が満たされず、分割データ２２１の正当性は保証されない。
【００４９】
第４のパターン３０４は、チェックサム２２３の書込み中に電源断が生じた場合を示している。この場合、チェックサム２２３は完全には書き込まれない。そのため、分割データ２２１及びチェックサム２２３の両方が存在するという条件が満たされず、分割データ２２１の正当性は保証されない。
【００５０】
図９は、実施形態に係る正当性判断処理の例を示すフローチャートである。正当性判断処理は、カーネルパニックからの復帰後にＨＤＤ１４から読み出されたダンプファイル１１０に対して実行される。
【００５１】
先ず、正当性判断部１０４は、ログ管理情報２０１に完了フラグ（ログデータ全体の書込みが完了したことを示すフラグ）が含まれているか否かを判断する（Ｓ４０１）。ログ管理情報２０１に完了フラグが含まれている場合（Ｓ４０１：Ｙｅｓ）、正当性判断部１０４は、当該ダンプファイル１１０を有効（正当）と判断する（Ｓ４０２）。
【００５２】
ログ管理情報２０１に完了フラグが含まれていない場合（Ｓ４０１：Ｎｏ）、正当性判断部１０４は、ヘッダ情報２２２が書き込まれているか否かを判断する（Ｓ４０３）。ヘッダ情報２２２が書き込まれている場合（Ｓ４０３：Ｙｅｓ）、正当性判断部１０４は、チェックサム２２３が正常に書き込まれているか否か（チェックサム２２３が書き込まれており且つ正常な値を示しているか否か）を判断する（Ｓ４０４）。チェックサム２２３が正常に書き込まれている場合（Ｓ４０４：Ｙｅｓ）、正当性判断部１０４は、当該ヘッダ情報２２２及びチェックサム２２３に対応する分割データ２２１を有効と判断する（Ｓ４０５）。その後、正当性判断部１０４は、未判断のデータブロック２１２（分割データ２２１）があるか否かを判断し（Ｓ４０７）、未判断のデータブロック２１２がある場合（Ｓ４０７：Ｙｅｓ）にはステップＳ４０３を再度実行し、未判断のデータブロック２１２がない場合（Ｓ４０７：Ｎｏ）には本フローを終了する。
【００５３】
一方、ヘッダ情報２２２が書き込まれていない場合（Ｓ４０３：Ｎｏ）又はチェックサム２２３が書き込まれていない場合（Ｓ４０４：Ｎｏ）、正当性判断部１０４は、判断対象となっている分割データ２２１を無効（正当でない）と判断し（Ｓ４０６）、ステップＳ４０７を実行する。
【００５４】
上記処理によれば、ダンプファイル１１０の正当性をヘッダ情報２２２及びチェックサム２２３に基づいて分割データ２２１毎に判断することができる。
【００５５】
上記コントローラ１１（画像形成装置１）の機能を実現するプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、メモリカード、ＣＤ−Ｒ及びＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
【００５６】
また、プログラムをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、プログラムをダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。また、プログラムをＲＯＭ等に予め組み込んで提供するように構成してもよい。また、プログラムは画像形成装置１に含まれる機能部のうちプログラムにより実現可能な機能を含むモジュール構成となっていてもよい。プログラムにより実現される機能は、記憶媒体からプログラムを読み出して実行することにより主記憶装置にロードされる。すなわち、プログラムにより実現される機能は主記憶装置上に生成される。
【００５７】
以上のように、本実施形態によれば、ヘッダ情報２２２及びチェックサム２２３に基づいて分割データ２２１毎に正当性を判断することが可能なダンプファイル１１０を生成することができる。正当性判断時に、チェックサム２２３だけでなくヘッダ情報２２１も参照することにより、分割データ２２１の書込み開始を検知することができる。そのため、分割データ２２１のデータ長が一定でない場合であっても、様々な電源断の発生タイミングに対応して、分割データ２２１の正当性を正確に判断することが可能となる。これにより、カーネルパニック発生時に生成されるダンプファイル１１０の正当性を正確に判断することが可能となる。
【００５８】
以上、本発明の実施形態を説明したが、上記実施形態は例として提示したものであり、発明の範囲を限定することを意図するものではない。この新規な実施形態はその他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更、及び組み合わせを行うことができる。この実施形態及びその変形は発明の範囲及び要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５９】
１  画像形成装置
１１  コントローラ（ダンプ処理装置）
１２  操作部
１３  エンジン（画像形成部）
１４  ＨＤＤ（記憶装置）
２１  ＣＰＵ
２２  ＡＳＩＣ
２３  ＤＲＡＭ
２４  ＳＳＤ
２５  ＮＶＲＡＭ
２６  ＵＳＢ・Ｉ／Ｆ
２７  ＳＤカードＩ／Ｆ
２８  ＵＳＢメモリ
２９  ＳＤカード
５１  アプリケーション層
５２  サービス層
５３  ＯＳ層
１０１  ダンプ処理部
１０２  書込み部
１０３  読出し部
１０４  正当性判断部
１１０  ダンプファイル
１１１  分割データ生成部
１１２  ヘッダ情報生成部
１１３  チェックサム生成部
１１４  ログ種別情報生成部
１１５  ログ管理情報生成部
２０１  ログ管理情報（管理情報）
２０２（２０２Ａ，２０２Ｂ）  ログ
２１１（２１１Ａ，２１１Ｂ）  ログ種別情報
２１２（２１２Ａ〜２１２Ｆ）  データブロック
２２１（２２１Ａ〜２２１Ｆ）  分割データ
２２２（２２２Ａ〜２２２Ｆ）  ヘッダ情報
２２３（２２３Ａ〜２２３Ｆ）  チェックサム
【先行技術文献】
【特許文献】
【００６０】
【特許文献１】特開２００４−２０６３８１号公報
【図１】
2019191820.tif 000003
【図２】
2019191820.tif 000004
【図３】
2019191820.tif 000005
【図４】
2019191820.tif 000006
【図５】
2019191820.tif 000007
【図６】
2019191820.tif 000008
【図７】
2019191820.tif 000009
【図８】
2019191820.tif 000010
【図９】
2019191820.tif 000011