(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムの制御の下にプログラムモジュールを実行する情報処理装置であって、
操作に関する情報を収集するログモードに設定するログモード設定部と、
前記オペレーティングシステムと、ハードウェア資源との間のアクセス要求に応じて、該アクセス要求に関する情報をログとして出力させるためのプログラムモジュールをロードするログモード制御部と、
該ログモード制御部によりロードされたプログラムモジュールに従って、前記アクセス要求に関する情報をログとして収集するログ収集部と、
前記情報処理装置を休止状態に移行させる際に、前記情報処理装置が正常系の処理により休止状態に移行したことを表す動作履歴を保持する動作履歴保持部と
を有し、
前記ログモード設定部は、前記動作履歴保持部に動作履歴が保持されていない場合に、前記ログモードに設定し、
前記ログモード制御部は、前記オペレーティングシステムの起動の際に、前記ログモード設定部によりログモードに設定されている場合に、前記プログラムモジュールをロードする、情報処理装置。
【請求項２】
オペレーティングシステムの制御の下にプログラムモジュールを実行する情報処理装置であって、
操作に関する情報を収集するログモードに設定するログモード設定部と、
前記オペレーティングシステムと、ハードウェア資源との間の命令に応じて、該オペレーティングシステム又は該ハードウェア資源に該命令を実行させるための第１のプログラムモジュールと、前記第１のプログラムモジュールにより前記命令を実行させる際に、前記オペレーティングシステムと、前記ハードウェア資源との間のアクセス要求に関する操作情報をログとして出力させるための第２のプログラムモジュールとを格納する記憶部と、
前記オペレーティングシステムと、ハードウェア資源との間のアクセス要求に応じて、該アクセス要求に関する情報をログとして出力させるための第３のプログラムモジュールをロードするログモード制御部と、
該ログモード制御部によりロードされた第３のプログラムモジュールに従って、前記アクセス要求に関する情報をログとして収集するログ収集部と、
を有し、
前記ログモード制御部は、前記オペレーティングシステムの起動の際に、前記ログモード設定部によりログモードに設定されている場合に、前記第３のプログラムモジュールをロードし、前記オペレーティングシステムの起動の際にロードされる第１のプログラムモジュールを初期化する際に、前記ログモード設定部によりログモードに設定されている場合に、前記第２のプログラムモジュールをロードする、情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
ユーザによる所定の操作に従って、前記動作履歴保持部を初期化する動作履歴初期化部
を有し、
前記ログモード設定部は、前記動作履歴保持部に、前記動作履歴初期化部により無効化される動作履歴が保持されている場合、前記ログモードに設定する、情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、
前記オペレーティングシステムと、前記ハードウェア資源との間の命令に応じて、該オペレーティングシステム又は該ハードウェア資源に該命令を実行させるための第１のプログラムモジュールと、前記第１のプログラムモジュールにより前記命令を実行させる際に、前記オペレーティングシステムと、前記ハードウェア資源との間のアクセス要求に関する操作情報をログとして出力させるための第２のプログラムモジュールとを格納する記憶部
を有し、
前記ログモード制御部は、前記オペレーティングシステムの起動の際にロードされる第２のプログラムモジュールを初期化する際に、前記ログモード設定部によりログモードに設定されていない場合に、前記第２のプログラムモジュールをアンロードする、情報処理装置。
【請求項５】
オペレーティングシステムの制御の下にプログラムモジュールを実行する情報処理装置によって実行されるログ出力の制御方法であって、
操作に関する情報を収集するログモードに設定し、
前記オペレーティングシステムと、ハードウェア資源との間のアクセス要求に応じて、該アクセス要求に関する情報をログとして出力させるためのプログラムモジュールをロードし、
該ロードしたプログラムモジュールに従って、前記アクセス要求に関する情報をログとして出力し、
前記情報処理装置を休止状態に移行させる際に、前記情報処理装置が正常系の処理により休止状態に移行したことを表す動作履歴を保持する、
前記動作履歴が保持されていない場合に、前記ログモードに設定し、
前記オペレーティングシステムの起動の際に、前記ログモードに設定されている場合に、前記プログラムモジュールをロードする、ログ出力の制御方法。
【請求項６】
オペレーティングシステムの制御の下にプログラムモジュールを実行する情報処理装置によって実行されるログ出力の制御方法であって、
前記情報処理装置は、
前記オペレーティングシステムと、ハードウェア資源との間の命令に応じて、該オペレーティングシステム又は該ハードウェア資源に該命令を実行させるための第１のプログラムモジュールと、前記第１のプログラムモジュールにより前記命令を実行させる際に、前記オペレーティングシステムと、前記ハードウェア資源との間のアクセス要求に関する操作情報をログとして出力させるための第２のプログラムモジュールとを格納する記憶部
を有し、
前記情報処理装置は、
操作に関する情報を収集するログモードに設定し、
前記オペレーティングシステムと、ハードウェア資源との間のアクセス要求に応じて、該アクセス要求に関する情報をログとして出力させるための第３のプログラムモジュールをロードし、
該ロードした第３のプログラムモジュールに従って、前記アクセス要求に関する情報をログとして出力する、
前記オペレーティングシステムの起動の際に、前記ログモードに設定されている場合に、前記第３のプログラムモジュールをロードし、
前記オペレーティングシステムの起動の際にロードされる第１のプログラムモジュールを初期化する際に、前記ログモードに設定されている場合に、前記第２のプログラムモジュールをロードする、ログ出力の制御方法。
【請求項７】
オペレーティングシステムの制御の下にプログラムモジュールを実行する携帯端末装置であって、
前記携帯端末装置への操作に関する情報を収集する動作状態であるログモードに移行すべき状態にあるか否かを判定する、状態判定部と、
前記判定においてログモードとすべき状態にあると判定した場合、前記オペレーティングシステムとハードウェア資源との間でのアクセス要求に応じて、該アクセス要求に関する情報をログに出力する命令を有するプログラムモジュールを、前記オペレーティングシステムの起動処理においてロードさせる、ログモード制御部と、
前記携帯端末装置を休止状態に移行させる際に、前記携帯端末装置が正常系の処理により休止状態に移行したことを表す動作履歴を保持する動作履歴保持部と
を備え、
前記状態判定部は、前記動作履歴保持部に動作履歴が保持されていない場合に、前記ログモードに移行すべき状態にあると判定することを特徴とする携帯端末装置。
【請求項８】
オペレーティングシステムの制御の下にプログラムモジュールを実行する携帯端末装置であって、
前記オペレーティングシステムと、ハードウェア資源との間の命令に応じて、該オペレーティングシステム又は該ハードウェア資源に該命令を実行させるための第１のプログラムモジュールと、前記第１のプログラムモジュールにより前記命令を実行させる際に、前記オペレーティングシステムと、前記ハードウェア資源との間のアクセス要求に関する操作情報をログとして出力させるための第２のプログラムモジュールとを格納する記憶部と、
前記携帯端末装置への操作に関する情報を収集する動作状態であるログモードに移行すべき状態にあるか否かを判定する、状態判定部と、
前記判定においてログモードとすべき状態にあると判定した場合、前記オペレーティングシステムと前記ハードウェア資源との間でのアクセス要求に応じて、当該アクセス要求に関する情報をログに出力する命令を有する第３のプログラムモジュールを、前記オペレーティングシステムの起動処理においてロードさせる、ログモード制御部と、
を備え、
前記ログモード制御部は、前記オペレーティングシステムの起動の際にロードされる第１のプログラムモジュールを初期化する際に、前記ログモードに設定されている場合に、前記第２のプログラムモジュールをロードすることを特徴とする携帯端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ出力機能を有する情報処理装置に関する。
【背景技術】
【０００２】
ログを出力するログ出力装置が知られている。
【０００３】
例えば、ログ出力装置は、システム上で、ログ出力命令を含むアプリケーションプログラムを実行することにより、ログを出力する（例えば、特許文献１参照）。ログ出力装置は、システムの状態を判断するためのシステムの状態情報を検出し、該システムの状態情報に基づいて、ログとして出力の対象とすべきかどうかを表す基準レベルを決定する。該ログ出力装置は、基準レベルに基づいて、ログとして出力するかどうかを判断する。
【０００４】
該ログ出力装置によれば、システムの状態に応じて、基準レベルが変更される。基準レベルが変更されるため、システムの状態が正常であるときと、異常であるときとで、異なる基準レベルを設定できる。システムの状態が正常であるときと、異常であるときとで、異なる基準レベルを設定できるため、より適切なログを出力することが可能である。
【０００５】
また、例えば、オペレーティングシステムからのディスクドライブに対するアクセス要求を検知し、必要に応じて、該ディスクドライブの稼動状態の履歴をログ情報として蓄積するログ出力装置が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１１０１５６号公報
【特許文献２】特開２０１０−１５７２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
引用文献１では、ログ出力命令を受けた際に、取得されるべきログと、所定の基準レベルとを比較することにより、実際にログとして出力すべきかどうかが判断される。ログとして出力すべきかどうかが判断されることにより、出力されるログの情報量を調整することができる。
【０００８】
しかし、ログ出力命令は、アプリケーションプログラムに含まれる。従って、ログ出力命令の数が多くなるに従って、アプリケーションプログラムの容量が増加する。
【０００９】
アプリケーションプログラムの容量は、該アプリケーションプログラムを格納する補助記憶媒体の消費量や、該アプリケーションプログラムを実行する際に消費される主記憶媒体の容量に影響する。さらに、アプリケーションプログラムの容量は、補助記憶媒体から、主記憶媒体へのロード時間にも影響する。このため、補助記憶媒体や、主記憶媒体等のハードウェア資源を効率的に使用するという市場の要求を満たすため、ログ出力命令の数を少なくしたプログラムモジュールがインストールされた状態で、工場から出荷される製品が多い。従って、工場から出荷された製品に障害が発生した場合、アプリケーションプログラムに含まれるログ出力命令に従って出力されるログだけでは、該障害の発生原因を解析するのに十分な情報を得ることができない場合がある。十分な情報を得ることができないことにより、有効な解決策を検討することができないことがある。
【００１０】
さらに、ログ出力命令に応じて取得されるべきログと、所定の基準レベルとが比較されるため、該比較のために、演算負荷が生じる。該演算負荷により、ハードウェア資源の効率的な使用という市場の要求を満たすことができず、製品としての魅力が損なわれることになる。
【００１１】
引用文献２では、オペレーティングシステムからHDDへのアクセス要求に応じて、HDDドライバーからHDDに発行されるべきコマンドと、該コマンドに対するレスポンスとを監視する監視用のドライバーが設けられる場合がある。この場合、アプリケーションプログラムに含まれるべきログ出力命令により、ログ以外の情報を取得することが可能になる。
【００１２】
しかし、HDDへのアクセス要求などは、頻繁に生じるコマンドであるため、運用段階にある製品において、HDDアクセス要求、及び該コマンドに対するレスポンスを常に監視することは、アクセス要求が生じる度に監視のために演算が実行されるため、装置に演算負荷がかかる。該演算負荷により、ハードウェア資源の効率的な使用という市場の要求を満たすことができず、製品としての魅力が損なわれることになる。
【００１３】
開示の情報処理装置は、ハードウェア資源を効率的に使用しつつ、障害の解決に資するログを収集することを目的とする。
【課題を解決するための手段】
【００１４】
開示の一実施例の情報処理装置は、
オペレーティングシステムの制御の下にプログラムモジュールを実行する情報処理装置であって、
操作に関する情報を収集するログモードに設定するログモード設定部と、
前記オペレーティングシステムと、ハードウェア資源との間のアクセス要求に応じて、該アクセス要求に関する情報をログとして出力させるためのプログラムモジュールをロードするログモード制御部と、
該ログモード制御部によりロードされたプログラムモジュールに従って、前記アクセス要求に関する情報をログとして収集するログ収集部と、
前記情報処理装置を休止状態に移行させる際に、前記情報処理装置が正常系の処理により休止状態に移行したことを表す動作履歴を保持する動作履歴保持部と
を有し、
前記ログモード設定部は、前記動作履歴保持部に動作履歴が保持されていない場合に、前記ログモードに設定し、
前記ログモード制御部は、前記オペレーティングシステムの起動の際に、前記ログモード設定部によりログモードに設定されている場合に、前記プログラムモジュールをロードする。
【発明の効果】
【００１５】
開示の実施例によれば、ハードウェア資源を効率的に使用しつつ、障害の解決に資するログを収集することができる。
【図面の簡単な説明】
【００１６】
【図１】携帯端末の一実施例を示す図である。
【図２】携帯端末の一実施例を示す機能ブロック図である。
【図３】携帯端末の動作の一実施例を示すフローチャートである。
【図４】携帯端末の起動処理の一実施例を示すフローチャートである。
【図５】携帯端末の起動処理の一実施例を示すフローチャートである。
【図６】携帯端末の動作の一実施例を示すフローチャートである。
【図７】携帯端末の動作の一実施例を示すフローチャートである。
【図８】携帯端末の一実施例を示す機能ブロック図である。
【図９】携帯端末の起動処理の一実施例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面に基づいて、実施例を説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
【００１８】
＜第１の実施例＞
＜携帯端末＞
図１は、携帯端末１００の一実施例を示す。図１には、主にハードウェア構成が示される。
【００１９】
本携帯端末１００は、中央演算処理装置１０２と、記憶装置１０４と、入力装置１０６と、出力装置１０８とを有する。各装置は、バス１５０により接続される。本実施例では、一例として、携帯端末１００について説明される。携帯端末に限らず、ログ出力機能を有する機器やシステムに適用できる。より一般的には、情報処理装置に適用できる。例えば、携帯情報端末(PDA: Personal Digital Assistants)等に適用できる。
【００２０】
中央演算処理装置１０２は、記憶装置１０４、入力装置１０６、及び出力装置１０８の制御を行う。中央演算処置装置１０２は、記憶装置１０４に記憶されたプログラムに従って機能し、所定の処理を行う。
【００２１】
記憶装置１０４は、各種アプリケーションと、各種サービスと、オペレーティングシステム(OS: Operating System)と、各種ドライバーとを有する。例えば、記憶装置１０４は、コンピュータ内でデータやプログラムを記憶する外部記憶装置である。例えば、ハードディスク(hard disk, fixed disk)やフレキシブルディスク(Flexible Disk)、MO(Magneto-Optical disk)、CD-R(Compact Disk Recordable)、磁気テープなどが含まれる。
【００２２】
アプリケーションは、ユーザが携帯端末１００上で実行する作業を実施する機能を有するソフトウェアである。例えば、アプリケーションには、ワードプロセッサ、表計算ソフト、データベース管理システム(DBMS: Data Base Management System)、メディアプレーヤーなどが含まれてもよい。
【００２３】
サービスは、オペレーティングシステムからの情報をサービスに変換して、アプリケーションに通知する。
【００２４】
オペレーティングシステムは、本携帯端末１００において、ハードウェアを抽象化したインターフェースをアプリケーションソフトウェアに提供するソフトウェアである。
【００２５】
各種ドライバーは、オペレーティングシステム２２２として機能する中央演算処理装置１０２に対して、デバイス層との間のインターフェースを提供するためのソフトウェアである。
【００２６】
入力装置１０６は、例えば、キーボードやタッチパネル等により構成され、当該携帯端末１００への指示や、データの入力を行うための装置である。該指示は、オペレーティングシステムに対するものや、アプリケーションに対するものが含まれる。
【００２７】
出力装置１０８は、例えば、ディスプレイにより構成され、当該携帯端末１００による処理状態や処理結果を表示する。該処理状態や処理結果には、オペレーティングシステムやアプリケーションによるものが含まれる。ディスプレイには、液晶ディスプレイ(LCD: Liquid Crystal Display)、CRT(Cathode  Ray  Tube)ディスプレイ、プラズマ(PDP:  Plasma  Display  Panel)ディスプレイ、有機EL(Electro-Luminescence)ディスプレイなどが含まれる。
【００２８】
＜携帯端末の機能＞
図２は、本携帯端末１００の一実施例を示す。図２には、主にソフトウェア構成が示される。
【００２９】
図２に示される携帯端末１００は、デバイス層と、ドライバー層と、オペレーティングシステムと、サービス層／ミドル層と、アプリケーション層とにより表される。
【００３０】
＜デバイス層＞
デバイス層には、キー２０２が含まれる。該キー２０２は、入力装置１０８に含まれる。キー２０２は、キードライバー２１０に、ユーザにより押下げられたキーに対応する信号を入力する。該信号には、押下げられたキーを表す情報が含まれてもよい。
【００３１】
デバイス層には、タッチパネル２０４が含まれる。該タッチパネル２０４は、入力装置１０８に含まれる。タッチパネル２０４は、ユーザがタッチパネル上の表示に接触した場合、タッチパネルドライバー２１４に、該表示に対応する信号を入力する。該信号には、タッチパネル上の指示位置を表す情報が含まれてもよい。
【００３２】
デバイス層には、記憶デバイス２０６が含まれる。記憶デバイス２０６は、記憶装置１０４に含まれる。記憶デバイス２０６は、記憶装置１０４の所定の記憶領域により実現させてもよい。記憶デバイス２０６は、ファイルシステム領域であってもよい。該記憶デバイス２０６には、１又は複数のログファイルが含まれる。図２に示される例では、２のログファイル、つまりログファイルＡ２０６２、ログファイルＢ２０６４が示される。該記憶デバイス２０６は、OSのファイルシステムにより読み書き可能な領域である。該記憶デバイス２０６は、携帯端末１００が工場出荷状態にされた場合には、初期化されることもある。
【００３３】
デバイス層には、記憶デバイス２０８が含まれる。記憶デバイス２０８は、記憶装置１０４に含まれる。記憶デバイス２０８は、記憶装置１０４の所定の記憶領域により実現されてもよい。記憶デバイス２０８は、リザーブ領域であってもよい。該記憶デバイス２０８には、１又は複数のログファイルと、１又は複数のフラグとが含まれる。図２に示される例では、不具合情報を含むログが格納される、不具合情報ありログファイル２０８２と、前回の終了の際に正常に終了したかどうかを表す、前回正常終了フラグ２０８４と、ログを取得するログモードに設定されたかどうかを表す、トレースモードフラグ２０８６と、ログのバックアップをとるかどうかを表す、ログバックアップフラグ２０８８とが示される。リザーブ領域は、OSのファイルシステムからは読み出し、書き込みできない領域である。該記憶デバイス２０８は、携帯端末１００が工場出荷状態にされた場合にも、初期化されない。すなわち、工場出荷時と同程度の初期状態を復元する処理において、記憶デバイス２０８に格納されている本実施例に係る各種情報は初期化対象とされない。ここで、ログモードとは、携帯端末１００の動作に関する情報を、履歴として取得することを表す。動作に関する情報は、操作により携帯端末が操作されたことに起因した情報であってもよい。また、動作に関する情報は、他の装置からの要求に起因した情報であってもよい。他の装置からの要求には、当該携帯端末１００への着信などが含まれてもよい。また、動作に関する情報は、当該携帯端末１００により自動的に実行される動作に起因した情報であってもよい。当該携帯端末１００により自動的に実行される動作には、当該携帯端末１００に搭載されたソフトウェアのアップデート等が含まれてもよい。これらの動作が実行される際には、OSと、ハードウェア資源との間のアクセス要求が実行される。従って、動作に関する情報は、OSと、ハードウェア資源との間のアクセス要求に関する情報であってもよい。
【００３４】
＜ドライバー層＞
ドライバー層には、キードライバー２１０が含まれる。キードライバー２１０は、デバイス層からの割り込みを検知して、OS２２２に通知する。つまり、キードライバー２１０は、キー２０２が押下げられた際に、OS２２２に、押下げられたキーのコードを表す情報を通知する処理を中央演算処理装置１０２に実行させるためのプログラムモジュールであってもよい。
【００３５】
ドライバー層には、トレースモード用キードライバー２１２が含まれる。トレースモード用キードライバー２１２は、デバイス層からの割り込みを検知して、OS２２２に通知する処理に加え、さらに、デバイス層からの割り込みをログに出力する。つまり、トレースモード用キードライバー２１２は、キードライバー２１０の機能を含み、さらに、デバイス層からの割り込みをログに出力する処理を中央演算処理装置１０２に実行させるためのプログラムモジュールであってもよい。具体的には、キー２０２が押下げられた際に、OS２２２に、押下げられたキーのコードを表す情報を通知する。さらに、トレースモード用キードライバー２１２は、押下げられたキーのコードを表す情報をフラッシュドライバー２１８に出力する。トレースモード用キードライバー２１２は、キーが押下げられたことを表す情報をフラッシュドライバー２１８に出力するようにしてもよい。この場合、トレースモード用キードライバー２１２は、キードライバー２１０に代ってロードされる。
【００３６】
また、トレースモード用キードライバー２１２は、デバイス層からの割り込みをログに出力する機能を有するようにしてもよい。つまり、トレースモード用キードライバー２１２は、デバイス層からの割り込みをログに出力する処理を中央演算処理装置１０２に実行させるためのプログラムモジュールであってもよい。この場合、トレースモード用キードライバー２１２は、「サブキードライバー」と呼ばれることもある。トレースモード用キードライバー２１２は、キードライバー２１０とともに動作することにより、デバイス層からの割り込みをログに出力する。具体的には、キー２０２が押下げられた際に、キードライバー２１０は、OS２２２に、押下げられたキーのコードを表す情報を通知する。トレースモード用キードライバー２１２は、キードライバー２１０による押下げられたキーのコードを表す情報の通知に応じて、押下げられたキーのコードを表す情報をフラッシュドライバー２１８に出力する。トレースモード用キードライバー２１２は、キードライバー２１０による押下げられたキーのコードを表す情報の通知に応じて、キーが押下げられたことを表す情報をフラッシュドライバー２１８に出力するようにしてもよい。
【００３７】
以下の説明では、一例として、主に、トレースモード用キードライバー２１２が、デバイス層からの割り込みをログに出力する機能を有する場合について説明する。
【００３８】
＜トレースモード用キードライバーの起動（その１）＞
トレースモード用キードライバー２１２は、デバイス層からの割り込みをログに出力する機能を有する。この場合、トレースモード用キードライバー２１２は、OS２２２の起動の際に、キードライバー２１０によりロードするかどうかが判定されるようにしてもよい。具体的には、ブートローダの起動の際に、記憶デバイス２０８に格納された前回正常終了フラグ２０８４がチェックされる。前回正常終了フラグ２０８４がオンでない場合、つまり、前回正常に終了しなかった場合には、トレースモードフラグ２０８６と、ログバックアップフラグ２０８８とがオンにされる。前回正常に終了しなかった場合に、トレースモードフラグ２０８６、及びログバックアップフラグ２０８８の少なくとも一方がオンにされるようにしてもよい。さらに、前回正常終了フラグ２０８４がオフにされる。
【００３９】
OS２２２が起動される際に、各種デバイスドライバーの初期化が実行される。該初期化の際に、キードライバー２１０の初期化も行われる。該キードライバー２１０の初期化の際に、キードライバー２１０は、トレースモードフラグ２０８６がオンであるかどうかを判定し、トレースモードフラグ２０８６がオンであると判定された場合に、トレースモード用キードライバー２１２がロードされるようにしてもよい。
【００４０】
＜トレースモード用キードライバーの起動（その２）＞
トレースモード用キードライバー２１２は、デバイス層からの割り込みをログに出力する機能を有する。この場合、トレースモード用キードライバー２１２は、OS２２２の起動の際に、トレースモード用キードライバー２１２によりアンロードするかどうかが判定されるようにしてもよい。具体的には、ブートローダの起動の際に、記憶デバイス２０８に格納された前回正常終了フラグ２０８４がチェックされる。前回正常終了フラグ２０８４がオンでない場合、つまり、前回正常に終了しなかった場合には、トレースモードフラグ２０８６と、ログバックアップフラグ２０８８とがオンにされる。前回正常に終了しなかった場合に、トレースモードフラグ２０８６、及びログバックアップフラグ２０８８の少なくとも一方がオンにされるようにしてもよい。さらに、前回正常終了フラグ２０８４がオフにされる。
【００４１】
OS２２２が起動される際に、各種デバイスドライバーの初期化が実行される。該初期化の際に、キードライバー２１０の初期化とともにトレースモード用キードライバー２１２の初期化も行われる。トレースモード用キードライバー２１２の初期化の際には、トレースモード用キードライバー２１２がロードされ、トレースモードフラグ２０８６がオフであるかどうかが判定される。トレースモードフラグ２０８６がオフでない、つまり、オンであると判定された場合には、トレースモード用キードライバー２１２はアンロードされない。つまり、トレースモード用キードライバー２１２の起動が成功する。トレースモードフラグ２０８６がオフであると判定される場合には、トレースモード用キードライバー２１２がアンロードされる。
【００４２】
キードライバー２１０、又はトレースモード用キードライバー２１２によりトレースモード用キードライバー２１２を起動するかどうかが判定されることにより、OSの変更を行うことなく、トレースモード用キードライバー２１２を起動させることができる。
【００４３】
ドライバー層には、タッチパネルドライバー２１４が含まれる。タッチパネルドライバー２１４は、デバイス層からの割り込みを検知して、OS２２２に通知する。つまり、タッチパネルドライバー２１４は、タッチパネル２０４に接触された際に、OS２２２に、接触された位置の座標を表す情報を通知する処理を中央演算処理装置１０２に実行させるためのプログラムモジュールであってもよい。
【００４４】
ドライバー層には、トレースモード用タッチパネルドライバー２１６が含まれる。トレースモード用タッチパネルドライバー２１６は、デバイス層からの割り込みを検知して、OS２２２に通知する処理に加え、さらに、デバイス層からの割り込みをログに出力する。つまり、トレースモード用タッチパネルドライバー２１６は、タッチパネルドライバー２１４の機能を含み、さらに、デバイス層からの割り込みをログに出力する処理を中央演算処理装置１０２に実行させるためのプログラムモジュールであってもよい。具体的には、タッチパネル２０４に接触された際に、OS２２２に、該接触された位置の座標を表す情報を通知する。さらに、トレースモード用タッチパネルドライバー２１６は、接触された位置の座標を表す情報をフラッシュドライバー２１８に出力する。トレースモード用タッチパネルドライバー２１６は、タッチパネルに接触されたことを表す情報をフラッシュドライバー２１８に出力するようにしてもよい。この場合、トレースモード用タッチパネルドライバー２１６は、タッチパネルドライバー２１４に代ってロードされる。
【００４５】
また、トレースモード用タッチパネルドライバー２１６は、デバイス層からの割り込みをログに出力する機能を有するようにしてもよい。つまり、トレースモード用タッチパネルドライバー２１６は、デバイス層からの割り込みをログに出力する処理を中央演算処理装置１０２に実行させるためのプログラムモジュールであってもよい。この場合、トレースモード用タッチパネルドライバー２１６は、「サブタッチパネルドライバー」と呼ばれることもある。トレースモード用タッチパネルドライバー２１６は、タッチパネルドライバー２１４とともに動作することにより、デバイス層からの割り込みをログに出力する。具体的には、タッチパネル２０４に接触された際に、タッチパネルドライバー２１４は、OS２２２に、該接触された位置の座標を表す情報を通知する。トレースモード用タッチパネルドライバー２１６は、タッチパネルドライバー２１４による接触された位置の座標を表す情報の通知に応じて、該接触された位置の座標を表す情報をフラッシュドライバー２１８に出力する。トレースモード用タッチパネルドライバー２１６は、タッチパネルドライバー２１４による接触された位置を表す情報の通知に応じて、タッチパネルが接触されたことを表す情報をフラッシュドライバー２１８に出力するようにしてもよい。
【００４６】
以下の説明では、一例として、主に、トレースモード用タッチパネルドライバー２１６が、デバイス層からの割り込みをログに出力する機能を有する場合について説明する。
【００４７】
＜トレースモード用タッチパネルドライバーの起動（その１）＞
トレースモード用タッチパネルドライバー２１６は、デバイス層からの割り込みをログに出力する機能を有する。この場合、トレースモード用タッチパネルドライバー２１６は、OS２２２の起動の際に、タッチパネルドライバー２１４によりロードするかどうかが判定されるようにしてもよい。具体的には、ブートローダの起動の際に、記憶デバイス２０８に格納された前回正常終了フラグ２０８４がチェックされる。前回正常終了フラグ２０８４がオンでない場合、つまり、前回正常に終了しなかった場合には、トレースモードフラグ２０８６と、ログバックアップフラグ２０８８とがオンにされる。前回正常に終了しなかった場合に、トレースモードフラグ２０８６、及びログバックアップフラグ２０８８の少なくとも一方がオンにされるようにしてもよい。さらに、前回正常終了フラグ２０８４がオフにされる。
【００４８】
OS２２２が起動される際に、各種デバイスドライバーの初期化が実行される。該初期化の際に、タッチパネルドライバー２１４の初期化も行われる。該タッチパネルドライバー２１４の初期化の際に、タッチパネルドライバー２１４は、トレースモードフラグ２０８６がオンであるかどうかを判定し、トレースモードフラグ２０８６がオンであると判定された場合に、トレースモード用タッチパネルドライバー２１６がロードされるようにしてもよい。
【００４９】
＜トレースモード用タッチパネルドライバーの起動（その２）＞
トレースモード用タッチパネルドライバー２１６は、デバイス層からの割り込みをログに出力する機能を有する。この場合、トレースモード用タッチパネルドライバー２１６は、OS２２２の起動の際に、トレースモード用タッチパネルドライバー２１６によりアンロードするかどうかが判定されるようにしてもよい。具体的には、ブートローダの起動の際に、記憶デバイス２０８に格納された前回正常終了フラグ２０８４がチェックされる。前回正常終了フラグがオンでない場合、つまり、前回正常に終了しなかった場合には、トレースモードフラグ２０８６と、ログバックアップフラグ２０８８がオンにされる。前回正常に終了しなかった場合に、トレースモードフラグ２０８６、及びログバックアップフラグ２０８８の少なくとも一方がオンにされるようにしてもよい。さらに、前回正常終了フラグ２０８４がオフにされる。
【００５０】
OS２２２が起動される際に、各種デバイスドライバーの初期化が実行される。該初期化の際に、タッチパネルドライバー２１４の初期化とともにトレースモード用タッチパネルドライバー２１６の初期化も行われる。トレースモード用タッチパネルドライバー２１６の初期化の際には、トレースモード用タッチパネルドライバー２１６がロードされ、トレースモードフラグ２０８６がオフであるかどうかが判定される。トレースモードフラグ２０８６がオフでない、つまり、オンであると判定された場合には、トレースモード用タッチパネルドライバー２１６がアンロードされない。つまり、トレースモード用タッチパネルドライバー２１６の起動が成功する。トレースモードフラグ２０８６がオフであると判定される場合には、トレースモード用タッチパネルドライバー２１６がアンロードされる。
【００５１】
タッチパネルドライバー２１４、又はトレースモード用タッチパネルドライバー２１６によりトレースモード用タッチパネルドライバー２１６を起動するかどうかが判定されるため、既存のOSの実装に変更を加えることなく、トレースモード用タッチパネルドライバー２１６を起動させることができる。
【００５２】
ドライバー層には、フラッシュドライバー２１８が含まれる。該フラッシュドライバー２１８は、OS２２２からの書き込みの要求に応じて、記憶デバイス２０６に書き込む。つまり、フラッシュドライバー２１８は、記憶デバイス２０６に、OS２２２のファイル管理部２２２４により入力されるべきログを書き込む。さらに、該フラッシュドライバー２１８は、トレースモード用キードライバー２１２、及びトレースモード用タッチパネルドライバー２１６からの書き込みの要求に応じて、記憶デバイス２０６に書き込む。つまり、フラッシュドライバー２１８は、記憶デバイス２０６に、トレースモード用キードライバー２１２、及びトレースモード用タッチパネルドライバー２１６により入力されるべきログを書き込む。さらに、フラッシュドライバー２１８は、ファイル管理部２２２４からログファイルＡ２０６２又はログファイルＢ２０６４に格納される情報が容量を超えること、格納された情報に不具合のログが含まれることが通知された場合に、フラッシュドライバー２２０に、不具合のログを入力する。フラッシュドライバー２２０は、不具合情報ログファイル２０８２に、フラッシュドライバー２１８により入力された不具合のログを格納する。
【００５３】
ドライバー層には、フラッシュドライバー（リザーブ領域用）２２０が含まれる。該フラッシュドライバー２２０は、OS２２２からの要求に応じてフラッシュドライバー２１８から入力されるべき、不具合情報を含むログを、記憶デバイス２０８の不具合情報ありログファイル２０８２に書き込む。つまり、フラッシュドライバー２２０は、記憶デバイス２０８に、不具合情報ありログファイル２０８２を書き込む。さらに、フラッシュドライバー２２０は、前回終了フラグ、トレースモードフラグ、ログバックアップフラグのオン、オフを設定する。
【００５４】
＜オペレーティングシステム＞
オペレーティングシステム２２２は、入力装置１０６により実行される入力機能、出力装置１０８により実行される出力機能、記憶装置１０４により実行されるファイルシステム管理機能など、アプリケーションから共通して利用される機能を実行することにより、携帯端末１００全体を管理する。
【００５５】
オペレーティングシステム２２２は、デバイス管理部２２２２を有する。デバイス管理部２２２２は、サービス／ミドル層に、キードライバー２１０からの押下げられたキーのコードを表す情報、タッチパネルドライバー２１４からの接触された位置の座標を表す情報を通知する。さらに、デバイス管理部２２２２は、アプリケーション層に、キードライバー２１０からの押下げられたキーのコードを表す情報、タッチパネルドライバー２１４からの接触された位置の座標を表す情報を通知する。
【００５６】
また、トレースモード用キードライバー２１２がキードライバー２１０の機能を有し、トレースモード用タッチパネルドライバー２１６がタッチパネルドライバー２１４の機能を有する場合に、デバイス管理部２２２２は、サービス／ミドル層に、トレースモード用キードライバー２１２により入力されるべき押下げられたキーのコードを表す情報、トレースモード用タッチパネルドライバー２１６により入力されるべき接触された位置の座標を表す情報を通知する。さらに、デバイス管理部２２２２は、アプリケーション層に、トレースモード用キードライバー２１２により入力されるべき押下げられたキーのコードを表す情報、トレースモード用タッチパネルドライバー２１６により入力されるべき接触された位置の座標を表す情報を通知する。
【００５７】
オペレーティングシステム２２２は、ファイル管理部２２２４を有する。ファイル管理部２２２４は、フラッシュドライバー２１８に、アプリケーション層、サービス／ミドル層から通知されるべきログを通知する。
【００５８】
さらに、ファイル管理部２２２４は、記憶デバイス２０６、及び記憶デバイス２０８に格納されるべき情報を管理する。例えば、ログファイルＡ２０６２又はログファイルＢ２０６４に格納されるべき情報が、該ログファイルＡ２０６２又はログファイルＢ２０６４の容量を超えるかどうかを判定する。さらに、ファイル管理部２２２４は、容量を超えると判定した場合に、格納された情報に不具合のログが含まれるかどうかを判定する。さらに、ファイル管理部２２２４は、格納された情報に不具合のログが含まれると判定した場合、フラッシュドライバー２１８に、ログファイルＡ２０６２又はログファイルＢ２０６４の容量を超えること、不具合のログが含まれることを通知する。
【００５９】
＜サービス／ミドル層＞
サービス／ミドル層には、キーパットサービス２２４が含まれる。該キーパッドサービス２２４は、OS２２２から通知されるべき押下げられたキーのコードを表す情報を、サービスに変換する。キーパットサービス２２４は、アプリケーション層に、サービスに変換された押下げられたキーのコードを表す情報を通知する。
【００６０】
サービス／ミドル層には、マウスパットサービス２２６が含まれる。該マウスパッドサービス２２６は、OS２２２から通知されるべき接触された位置の座標を表す情報を、サービスに変換する。マウスパットサービス２２６は、アプリケーション層に、サービスに変換された接触された位置の座標を表す情報を通知する。例えば、接触された位置の座標に基づいて、該位置が「メールを起動」することを表すアイコンに該当する場合、メーラに通知する。また、例えば、接触された位置の座標に基づいて、該位置が「インターネットを起動」することを表すアイコンに該当する場合、ブラウザに通知する。
【００６１】
サービス／ミドル層には、ログサービス２２８が含まれる。該ログサービス２２８は、ユーザにより利用されたアプリケーションのログを収集する。該ログサービス２２８は、ユーザにより利用されたアプリケーションのログをファイルシステム管理部２２２４に通知する。
【００６２】
＜アプリケーション層＞
アプリケーション層には、１又は複数のアプリケーション２３０ｎ（ｎは、ｎ＞０の整数）が含まれる。図２には、一例として、ｎ＝４の場合について示される。ｎは、１−３であってもよいし、４以上であってもよい。該アプリケーション２３０ｎは、サービス／ミドル層から、サービスを表す情報を取得する。該アプリケーション２３０ｎは、OS２２２から、押下げられたキーのコードを表す情報、接触された位置の座標を表す情報を取得する。該アプリケーション２３０ｎは、取得された情報に従って、所定の処理を実行する。
【００６３】
＜携帯端末の動作（その１）＞
図３は、本携帯端末１００の処理の一実施例を示す。
【００６４】
図３に示されるフローチャートでは、携帯端末１００においてログを取得するログモードに設定すべきかどうかが判断される。例えば、携帯端末１００の起動の際に、前回の終了の際に正常に終了したかどうかに応じて、ログモードに設定するかどうかが判定される。つまり、前回の終了の際に、正常に終了しなかった場合に、ログモードに設定すると判定される。正常に終了しなかった場合に、詳細なログ情報を取得する必要があるためである。
【００６５】
携帯端末１００が起動される（ステップＳ３０２）。つまり、ユーザにより所定の操作が実行されることにより、携帯端末１００が起動する。
【００６６】
携帯端末１００は、前回の終了の際に正常に終了したかどうかを判定する（ステップＳ３０４）。つまり、キードライバー２１０、及びトレースモード用キードライバー２１２の少なくとも一方は、記憶デバイス２０８に格納された前回正常フラグ２０８４を参照し、前回の終了の際に正常に終了したかどうかを判定する。
【００６７】
前回の終了の際に正常に終了したと判定されない場合（ステップＳ３０４：ＮＯ）、携帯端末１００は、ログモードに設定する（ステップＳ３０６）。つまり、キードライバー２１０又はトレースモード用キードライバー２１２は、前回の終了の際に正常に終了したと判定されない場合、ログモードに設定すると判定する。
【００６８】
具体的には、前回の終了の際に正常に終了したと判定されない場合、キードライバー２１０は、トレースモード用キードライバー２１２をロードすると判定する。デバイス管理部２２２２は、キードライバー２１０による判定に従って、トレースモード用キードライバー２１２をロードする。トレースモード用キードライバー２１２がロードされることによりログモードに設定される。また、前回の終了の際に正常に終了したと判定されない場合、トレースモード用キードライバー２１２は、当該トレースモード用キードライバー２１２をアンロードしないと判定する。デバイス管理部２２２２は、トレースモード用キードライバー２１２による判定に従って、トレースモード用キードライバー２１２をアンロードしない。トレースモード用キードライバー２１２がロードされたままであることによりログモードに設定される。
【００６９】
ステップＳ３０４により前回の終了の際に正常に終了したと判定された場合（ステップＳ３０４：ＹＥＳ）、又はステップＳ３０６によりログモードに設定された場合、ユーザにより、携帯端末１００が操作される（ステップＳ３０８）。
【００７０】
ログモードに設定されている場合には、ログとして、ユーザの操作に応じて、オペレーティングシステムと、ハードウェア資源との間のアクセス要求に関する情報が収集される。
【００７１】
ユーザにより携帯端末１００を終了させる操作が行われる（ステップＳ３１０）。ユーザが所定の操作を行うことにより、携帯端末１００を終了させる。
【００７２】
携帯端末１００が正常に終了する場合、携帯端末１００は、正常に終了したことを設定する（ステップＳ３１２）。つまり、各種ドライバーのアンロードが行われる際に、フラッシュドライバー２２０は、記憶デバイス２０８に格納されるべき前回正常フラグ２０８４をオンに設定する。一方、携帯端末１００が正常に終了しない場合、携帯端末１００は、正常に終了しなかったことを設定する。つまり、各種ドライバーのアンロードが行われる際に、フラッシュドライバー２２０は、記憶デバイス２０８に格納されるべき前回正常フラグ２０８４をオフに設定する。例えば、携帯端末１００に不具合が発生した場合、該不具合により操作不能となった場合、強制的に電源をオフにした場合、バッテリー着脱や自動リブートを行うことにより復旧させた場合等の場合には、前回正常フラグ２０８４をオフに設定する。
【００７３】
携帯端末１００の電源がオフにされる（ステップＳ３１４）。
【００７４】
＜携帯端末の起動処理の詳細＞
図４、図５は、携帯端末１００の起動処理の詳細を示すフローチャートである。
【００７５】
＜携帯端末の起動処理（その１）＞
図４は、キードライバー２１０により、トレースモード用キードライバー２１２がロードされるかどうかが判定され、さらにタッチパネルドライバー２１４により、トレースモード用タッチパネルドライバー２１６がロードされるかどうかが判定される例を示す。
【００７６】
携帯端末１００の電源キーが押下げられる（ステップＳ４０２）。
【００７７】
携帯端末１００は、CPU１０２を初期化する（ステップＳ４０４）。
【００７８】
携帯端末１００は、ブートローダを起動する（ステップＳ４０６）。
【００７９】
携帯端末１００は、メモリを初期化する（ステップＳ４０８）。つまり、ブートローダは、メモリを初期化する。
【００８０】
携帯端末１００は、フラッシュROMを初期化する（ステップＳ４１０）。つまり、ブートローダは、フラッシュROMを初期化する。
【００８１】
携帯端末１００は、ディスプレイを初期化する（ステップＳ４１２）。つまり、ブートローダは、ディスプレイを初期化する。
【００８２】
携帯端末１００は、低レベルキードライバーを初期化する（ステップＳ４１４）。つまり、ブートローダは、低レベルキードライバーを初期化する。該低レベルキードライバーは、キードライバー２１０の一部であってもよい。
【００８３】
携帯端末１００は、特定のキーが押下げられたかどうかを判定する（ステップＳ４１６）。つまり、低レベルキードライバーは、キー２０２の特定のキーが押下げられたかどうかを判定する。ブートローダによりキー２０２の特定のキーが押下げられたかどうかが判定されてもよい。ユーザは、ログモードに設定したい場合には、ブートローダの起動の際に、特定のキーを押下げることにより、ログモードに手動で設定できる。
【００８４】
特定のキーが押下げられたと判定された場合（ステップＳ４１６：ＹＥＳ）、携帯端末１００は、前回正常終了フラグ２０８４をオフにする（ステップＳ４１８）。つまり、低レベルキードライバーは、キー２０２の特定のキーが押下げられたと判定した場合、フラッシュドライバー２２０に、記憶デバイス２０８の前回正常終了フラグ２０８４をオフにするように通知する。キー２０２の特定のキーが押下げられたと判定された場合、ブートローダから、フラッシュドライバー２２０に、記憶デバイス２０８の前回正常終了フラグ２０８４をオフにするように通知されてもよい。フラッシュドライバー２２０は、低レベルキードライバーからの通知に従って、記憶デバイス２０８の前回正常終了フラグ２０８４をオフにする。
【００８５】
ステップＳ４１６により特定のキーが押下げられたと判定されない場合（ステップＳ４１６：ＮＯ）、又はステップＳ４１８により前回正常終了フラグ２０８４がオフにされた場合、携帯端末１００は、前回正常フラグ２０８４がオンにされているかどうかを判定する（ステップＳ４２０）。つまり、低レベルキードライバーは、前回正常終了フラグ２０８４がオンにされているかどうかを判定する。ブートローダにより前回正常終了フラグ２０８４がオンにされているかどうかが判定されてもよい。
【００８６】
前回正常終了フラグがオンにされていると判定されない場合（ステップＳ４２０：NO）、携帯端末１００は、トレースモードフラグをオンにする（ステップＳ４２２）。つまり、低レベルキードライバーは、トレースモードフラグをオンにする。この場合、低レベルキードライバーは、フラッシュドライバー２２０に、トレースモードフラグをオンにするように通知する。ブートローダによりトレースモードフラグがオンされてもよい。この場合、ブートローダは、フラッシュドライバー２２０に、トレースモードフラグをオンにするように通知する。フラッシュドライバー２２０は、低レベルキードライバーからの通知に従って、トレースモードフラグをオンにする。
【００８７】
さらに、携帯端末１００は、ログバックアップフラグ２０８８をオンにする（ステップＳ４２４）。つまり、低レベルキードライバーは、ログバックアップフラグ２０８８をオンにする。低レベルキードライバーは、フラッシュドライバー２２０に、ログバックアップフラグ２０８８をオンにするように通知する。ブートローダによりログバックアップフラグ２０８８がオンされてもよい。この場合、ブートローダは、フラッシュドライバー２２０に、ログバックアップフラグ２０８８をオンにするように通知する。フラッシュドライバー２２０は、低レベルキードライバーからの通知に従って、ログバックアップフラグ２０８８をオンにする。
【００８８】
さらに、携帯端末１００は、前回正常終了フラグ２０８４をオフにする（ステップＳ４２６）。つまり、低レベルキードライバーは、前回正常終了フラグ２０８４をオフにする。低レベルキードライバーは、フラッシュドライバー２２０に、前回正常終了フラグ２０８４をオフにするように通知する。ブートローダにより前回正常終了フラグ２０８４がオフされてもよい。この場合、ブートローダは、フラッシュドライバー２２０に、前回正常終了フラグ２０８４をオフにするように通知する。フラッシュドライバー２２０は、低レベルキードライバーからの通知に従って、前回正常終了フラグ２０８４をオフにする。
【００８９】
前回正常終了フラグ２０８４がオンにされていると判定された場合（ステップＳ４２０：ＹＥＳ）、又はステップＳ４２６により前回正常終了フラグがオフにされた場合、携帯端末１００は、OSを起動する（ステップＳ４２８）。
【００９０】
カーネルが初期化される（ステップＳ４３０）。つまり、OS２２２のデバイス管理部２２２２は、カーネルを初期化する。
【００９１】
ファイルシステムが初期化される（ステップＳ４３２）。つまり、OS２２２のデバイス管理部２２２２は、ファイルシステムを初期化する。
【００９２】
デバイスドライバーが初期化される（ステップＳ４３４）。つまり、OS２２２のデバイス管理部２２２２は、デバイスドライバーを初期化する。
【００９３】
通信ドライバーが初期化される（ステップＳ４３６）。つまり、OS２２２のデバイス管理部２２２２は、通信ドライバーを初期化する。
【００９４】
キードライバー２１０が初期化される（ステップＳ４３８）。つまり、OS２２２のデバイス管理部２２２２は、キードライバー２１０を初期化する。
【００９５】
携帯端末１００は、トレースモードフラグがオンにされているかどうかを判定する（ステップＳ４４０）。つまり、キードライバー２１０は、トレースモードフラグがオンにされているかどうかを判定する。
【００９６】
トレースモードフラグがオンにされていると判定された場合（ステップＳ４４０：ＹＥＳ）、携帯端末１００は、サブキードライバーをロードする（ステップＳ４４２）。つまり、デバイス管理部２２２２は、トレースモード用キードライバー２１２をロードする。
【００９７】
トレースモードフラグ２０８６がオンにされていないと判定された場合（ステップＳ４４０：ＮＯ）、又はステップＳ４４２によりサブキードライバーがロードされた場合、携帯端末１００は、タッチパネルドライバー２１４を初期化する（ステップＳ４４４）。つまり、デバイス管理部２２２２は、タッチパネルドライバー２１４を初期化する。
【００９８】
携帯端末１００は、トレースモードフラグ２０８６がオンにされているかどうかを判定する（ステップＳ４４６）。つまり、タッチパネルドライバー２１０は、トレースモードフラグ２０８６がオンにされているかどうかを判定する。
【００９９】
トレースモードフラグがオンにされていると判定された場合（ステップＳ４４６：ＹＥＳ）、携帯端末１００は、サブタッチパネルドライバーをロードする（ステップＳ４４８）。
【０１００】
トレースモードフラグ２０８６が設定されていないと判定された場合（ステップＳ４４６：ＮＯ）、又はステップＳ４４８によりサブタッチパネルドライバーがロードされた場合、その他のデバイスが初期化される（ステップＳ４５０）。つまり、OS２２２のデバイス管理部２２２２は、その他のデバイスを初期化する。
【０１０１】
携帯端末１００は、サービスを初期化する（ステップＳ４５２）。
【０１０２】
キーパットが初期化される（ステップＳ４５４）。
【０１０３】
マウスパットが初期化される（ステップＳ４５６）。
【０１０４】
シェルが初期化される（ステップＳ４５８）。
【０１０５】
GUIが初期化される（ステップＳ４６０）。
【０１０６】
その他のサービスが初期化される（ステップＳ４６２）。
【０１０７】
起動処理が完了する（ステップS４６４）。
【０１０８】
＜携帯端末の起動処理（その２）＞
図５は、トレースモード用キードライバー２１０により、トレースモード用キードライバー２１２がアンロードされるどうかが判定され、さらにトレースモード用タッチパネルドライバー２１６により、トレースモード用タッチパネルドライバー２１６がアンロードされるかどうかが判定される例を示す。
【０１０９】
図５に示されるフローチャートのステップＳ５０２−Ｓ５３８の処理は、図４に示されるフローチャートのステップＳ４０２−Ｓ４３８の処理と同様であるので、その説明を省略する。
【０１１０】
携帯端末１００は、サブキードライバーを初期化する（ステップＳ５４０）。つまり、デバイス管理部２２２２は、サブキードライバーを初期化する。
【０１１１】
携帯端末１００は、トレースモードフラグがオフにされているかどうかを判定する（ステップＳ５４２）。つまり、トレースモード用キードライバー２１２は、トレースモードフラグがオフにされているかどうかを判定する。
【０１１２】
トレースモードフラグがオフにされていると判定された場合（ステップＳ５４２：ＹＥＳ）、携帯端末１００は、サブキードライバーをアンロードする（ステップＳ５４４）。つまり、デバイス管理部２２２２は、トレースモード用キードライバー２１２をアンロードする。
【０１１３】
ステップＳ５４２によりトレースモードフラグがオフにされていると判定されない場合（ステップＳ５４２：ＮＯ）、又はステップＳ５４４によりサブキードライバーのアンロードがされた場合、携帯端末１００は、タッチパネルドライバー２１４を初期化する（ステップＳ５４６）。つまり、デバイス管理部２２２２は、タッチパネルドライバー２１４を初期化する。
【０１１４】
携帯端末１００は、サブタッチパネルドライバーを初期化する（ステップＳ５４８）。つまり、デバイス管理部２２２２は、トレースモード用タッチパネルドライバー２１６を初期化する。
【０１１５】
携帯端末１００は、トレースモードフラグがオフにされているかどうかを判定する（ステップＳ５５０）。つまり、トレースモード用タッチパネルドライバー２１６は、トレースモードフラグがオフにされているかどうかを判定する。
【０１１６】
トレースモードフラグがオフにされていると判定された場合（ステップＳ５５０：ＹＥＳ）、携帯端末１００は、サブタッチパネルドライバーをアンロードする（ステップＳ５５２）。つまり、デバイス管理部２２２２は、トレースモード用タッチパネルドライバー２１６をアンロードする。
【０１１７】
ステップＳ５５０によりトレースモードフラグがオフにされていると判定されない場合（ステップＳ５５０：ＮＯ）、又はステップＳ５５２によりサブタッチパネルドライバーのアンロードがされた場合、携帯端末１００は、その他のデバイスを初期化する（ステップＳ５５４）。
【０１１８】
ステップＳ５５６−Ｓ５６８の処理は、図４のステップＳ４５２−Ｓ４６４と同様であるため、説明を省略する。
【０１１９】
＜携帯端末の動作（その２）＞
図６は、本携帯端末１００の処理の一実施例を示す。
【０１２０】
図６に示されるフローチャートでは、ログモードに設定された携帯端末１００により不具合情報を含むログが取得された場合の処理について説明される。該不具合には、操作の順番により操作不能になることにより生じる不具合や、機能が同時に実行された場合に操作不能になることにより生じる不具合が含まれる。
【０１２１】
記憶デバイス２０６に含まれる複数のログファイルをローテーションさせて使用することにより、世代管理が行われる。各ログファイルのサイズには上限がある。書き込まれる情報量が上限を超える場合、一番古い世代のログファイルに格納された情報の削除又は廃棄が行われる。該削除又は廃棄が行われたログファイルに新たに、情報が書き込まれる。図６に示されるフローチャートでは、２個のログファイル、つまりログファイルＡ２０６２、ログファイルＢ２０６４により世代管理が行われる。
【０１２２】
本携帯端末１００は、新たに、ログファイルに情報を書き込む際に、削除又は廃棄されるべきログファイルに不具合を含むログ情報が含まれるかどうかを判定する。削除又は廃棄されるべきログファイルに不具合を含むログ情報が含まれる場合、記憶デバイス２０８に、該不具合を含むログ情報を記憶デバイス２０８の不具合情報ありログファイル２０８２に格納する。
【０１２３】
ユーザにより携帯端末１００の操作が行われる（ステップＳ６０２）。
【０１２４】
ログ情報が出力される（ステップＳ６０４）。つまり、オペレーティングシステムとハードウェア資源との間のアクセス要求に応じて、ログとして、該アクセス要求に関する情報が出力される。例えば、キードライバー２１０からデバイス管理部２２２２へのアクセス要求に関する情報、タッチパネルドライバー２１４からデバイス管理部２２２２へのアクセス要求に関する情報、アプリケーション２３０ｎからファイルシステム管理部２２２４へのアクセス要求に関する情報、ログサービスからファイルシステム管理部２２２４へのアクセス要求に関する情報が出力される。該アクセス要求に関する情報は、フラッシュドライバー２１８により、記憶デバイス２０６のログファイルに書き込まれる。例えば、ログファイルＡ２０６２に書き込まれる。
【０１２５】
ログ情報には、日時、時刻、ドライバー名、メッセージ等の情報が含まれてもよい。具体的には、メッセージには、キーコードを表す情報、又は画面の座標を表す情報が含まれてもよい。
【０１２６】
例えば、キードライバー２１０から、フラッシュドライバー２１８に出力される情報として、（１）により表されるものが出力されてもよい。
【０１２７】
2010/01/07, 12:55:09, KYD, press and hold key[0×1F]      （１）
（１）において、「KYD」はドライバー名を表し、「press and hold key[0×1F] 」はメッセージを表す。
【０１２８】
また、例えば、タッチパネルドライバー２１４から、フラッシュドライバー２１８に出力される情報として、（２）により表されるものが出力されてもよい。
【０１２９】
2010/01/07, 12:55:09, TPD, tap panel[x:120 y:150]      （２）
（２）において、「TPD 」はドライバー名を表し、「tap panel[x:120 y:150]」はメッセージを表す。
【０１３０】
携帯端末１００は、ログファイルＡ２０６２のサイズは上限のサイズ以下であるかどうかを判定する（ステップＳ６０６）。つまり、ファイルシステム管理部２２２４は、ログファイルＡ２０６２に格納されたログ情報の総容量がログファイルＡ２０６２の容量の上限以下であるかどうかを判定する。
【０１３１】
ログファイルＡ２０６２のサイズが上限サイズを超えると判定された場合（ステップＳ６０６：ＮＯ）、携帯端末１００は、ログファイルＡ２０６２に格納されたログ情報に、不具合を含むログ情報が含まれているかどうかを判定する（ステップＳ６０８）。つまり、ファイル管理部２２２４は、記憶デバイス２０６に格納されているログファイルＡ２０６２を参照し、不具合を含むログ情報が含まれているかどうかを判定する。
【０１３２】
ログファイルＡ２０６２に不具合を含むログ情報が含まれると判定された場合（ステップＳ６０８：ＹＥＳ）、携帯端末１００は、該ログファイルＡ２０６２を不具合情報ありログファイル２０８２に格納する（ステップＳ６１０）。つまり、ファイルシステム管理部２２２４は、ログファイルＡ２０６２に不具合を含むログ情報が含まれると判定した場合、フラッシュドライバー２１８に、ログファイルＡ２０６２のサイズが上限サイズを超えること、ログファイルＡ２０６２に不具合情報が含まれることを通知する。フラッシュドライバー２１８と、フラッシュドライバー２２０との間で、記憶デバイス２０８に格納されている不具合情報ありログファイル２０８２に、該ログファイルＡ２０６２を格納する処理が行われる。不具合情報ありログファイル２０８２には、不具合を含むログ情報を格納するようにしてもよいし、ログファイルＡ２０６２に格納された全情報を格納してもよい。
【０１３３】
ログファイルＡ２０６２に不具合を含むログ情報が含まれないと判定された場合（ステップＳ６０８：ＮＯ）、又はログファイルＡ２０６２に格納されたログ情報を不具合情報ありログファイル２０８２に格納した場合（ステップＳ６１０）、携帯端末１００は、ログファイルＢ２０６４に格納されたログ情報を削除する（ステップＳ６１２）。つまり、ファイルシステム管理部２２２４は、記憶デバイス２０６に格納されたログファイルＢ２０６４に格納されたログ情報を削除する。
【０１３４】
携帯端末１００は、ログファイルＢ２０６４として、ログファイルＡ２０６２に含まれるログ情報を保存する（ステップＳ６１４）。
【０１３５】
携帯端末１００は、ログファイルＡ２０６２を新規に作成する（ステップＳ６１６）。
【０１３６】
ステップＳ６０６によりログファイルＡ２０６２のサイズが上限のサイズ以下であると判定された場合（ステップＳ６０６：ＹＥＳ）、又はステップＳ６１６によりログファイルＡ２０６２を、ログ情報を格納するためのファイルとして設定した場合、携帯端末１００は、ログファイルＡ２０６２にログ情報を書き込む（ステップＳ６１８）。つまり、ファイルシステム管理部２２２４は、トレースモード用キードライバー２１２からの押下げられたキーのコードを表す情報、トレースモード用タッチパネルドライバー２１６からの接触された位置の座標を表す情報、ファイルシステム管理部２２２４からのアプリケーション層、サービス／ミドル層からの情報をログ情報として、ログファイルＡに格納する。
【０１３７】
ステップＳ６０２に戻り、ユーザによる操作等に従って同様の処理が継続される。
【０１３８】
＜携帯端末の動作（その３）＞
図７は、携帯端末１００に対して、電源をオフにする操作がされた場合の処理が示される。
【０１３９】
携帯端末１００に対して、電源をオフにする操作が行われる（ステップＳ７０２）。
【０１４０】
携帯端末１００は、各種サービスを終了する（ステップＳ７０４）。
【０１４１】
携帯端末１００は、各種ドライバーをアンロードする（ステップＳ７０６）。
【０１４２】
携帯端末１００は、正常に終了する場合、前回正常終了フラグをオンにする（ステップＳ７０８）。つまり、各ドライバーは、正常に終了する場合には、記憶デバイス２０８に格納されるべき前回正常終了フラグをオンにするように、フラッシュドライバー２２０に命令する。
【０１４３】
携帯端末１００の電源がオフにされる（ステップＳ７１０）。
【０１４４】
本実施例によれば、前回の終了の際に正常に終了しなかった場合や、ユーザによる操作に従って、必要に応じてログ情報を蓄積できる。このため、記憶容量を増加させることなく、必要なログを収集できる。携帯端末１００により収集されたログを利用することにより、不具合の解析や、原因の究明の効率を向上させることができる。
【０１４５】
＜第２の実施例＞
＜携帯端末＞
本携帯端末１００のハードウェア構成は、図１に示される携帯端末と略同一である。
【０１４６】
＜携帯端末の機能＞
図８は、本携帯端末１００の一実施例を示す。図８には、主にソフトウェア構成が示される。
【０１４７】
図８に示される携帯端末１００は、デバイス層と、仮想化層と、ドライバー層と、オペレーティングシステムと、サービス層／ミドル層と、アプリケーション層とにより表される。
【０１４８】
オペレーティングシステム、サービス／ミドル層、アプリケーション層については、図２に示されるオペレーティングシステム、サービス／ミドル層、アプリケーション層と略同一である。
【０１４９】
本携帯端末１００では、仮想環境が実現される。該仮想環境では、ローダの起動の際に、デバイスドライバー２３２が初期化され、ログモードに設定される場合には、トレースモード用仮想ドライバー２３８が起動される。該トレースモード用仮想ドライバー２３８は、押下げられたキーのコードを表す情報をフラッシュドライバー２１８に出力する。さらに、該トレースモード用仮想ドライバー２３８は、接触された位置の座標を表す情報をフラッシュドライバー２１８に出力する。
【０１５０】
さらに、本携帯端末１００は、ハイパーバイザー２３４を起動する。ハイパーバイザー２３４は、ユーザにより操作されたデバイスに対応するドライバーを起動する。つまり、ハイパーバイザー２３４は、ユーザによりキー２０２の操作が行われた場合にはキードライバー２１０を起動する。また、ハイパーバイザー２３４は、ユーザによりタッチパネル２０４の操作が行われた場合にはタッチパネルドライバー２１４を起動する。
【０１５１】
＜携帯端末の動作＞
本携帯端末１００の動作については、図３、図６、及び図７と略同一である。
【０１５２】
＜携帯端末の起動処理の詳細＞
図９は、携帯端末１００の起動処理の詳細を示すフローチャートである。
【０１５３】
携帯端末１００の電源キーが押下げられる（ステップＳ９０２）。
【０１５４】
携帯端末１００は、CPU１０２を初期化する（ステップＳ９０４）。
【０１５５】
携帯端末１００は、ローダを起動する（ステップＳ９０６）。
【０１５６】
携帯端末１００は、メモリを初期化する（ステップＳ９０８）。つまり、ローダは、メモリを初期化する。
【０１５７】
携帯端末１００は、フラッシュROMを初期化する（ステップＳ９１０）。つまり、ローダは、フラッシュROMを初期化する。
【０１５８】
携帯端末１００は、ディスプレイを初期化する（ステップＳ９１２）。つまり、ローダは、ディスプレイを初期化する。
【０１５９】
携帯端末１００は、デバイスドライバー２３２を初期化する（ステップＳ９１４）。つまり、ローダは、デバイスドライバーを初期化する。
【０１６０】
携帯端末１００は、特定のキーが押下げられたかどうかを判定する（ステップＳ９１６）。つまり、デバイスドライバー２３２は、キー２０２の特定のキーが押下げられたかどうかを判定する。ローダにより、キー２０２の特定のキーが押下げられたかどうかが判定されてもよい。
【０１６１】
特定のキーが押下げられたと判定された場合（ステップＳ９１６：ＹＥＳ）、携帯端末１００は、前回正常終了フラグ２０８４をオフにする（ステップＳ９１８）。つまり、デバイスドライバー２３２は、キー２０２の特定のキーが押下げられたと判定した場合、記憶デバイス２０８の前回正常終了フラグ２０８４をオフにする。キー２０２の特定のキーが押下げられたと判定した場合、ローダにより、記憶デバイス２０８の前回正常終了フラグ２０８４がオフにされてもよい。
【０１６２】
ステップＳ９１６により特定のキーが押下げられたと判定されない場合（ステップＳ９１６：ＮＯ）、又はステップＳ９１８により前回正常終了フラグ２０８４がオフにされた場合、携帯端末１００は、前回正常フラグ２０８４がオンにされているかどうかを判定する（ステップＳ９２０）。つまり、デバイスドライバー２３２は、前回正常終了フラグ２０８４がオンにされているかどうかを判定する。ローダにより、前回正常終了フラグ２０８４がオンにされているかどうかが判定されてもよい。
【０１６３】
前回正常終了フラグがオンにされていないと判定された場合（ステップＳ９２０：ＮＯ）、携帯端末１００は、トレースモードフラグ２０８６をオンにする（ステップＳ９２２）。つまり、デバイスドライバー２３２は、トレースモードフラグ２０８６をオンにする。ローダにより、トレースモードフラグ２０８６がオンにされてもよい。
【０１６４】
さらに、携帯端末１００は、ログバックアップフラグ２０８８をオンにする（ステップＳ９２４）。つまり、デバイスドライバー２３２は、ログバックアップフラグ２０８８をオンにする。ローダにより、ログバックアップフラグ２０８８がオンにされてもよい。
【０１６５】
さらに、携帯端末１００は、前回正常終了フラグ２０８４をオフにする（ステップＳ９２６）。つまり、デバイスドライバー２３２は、前回正常終了フラグ２０８４をオフにする。ローダにより、前回正常終了フラグ２０８４がオフにされてもよい。
【０１６６】
前回正常終了フラグ２０８４がオンにされていると判定された場合（ステップＳ９２０：ＹＥＳ）、又はステップＳ９２６により前回正常終了フラグ２０８４がオフにされた場合、携帯端末１００は、トレースモードフラグ２０８６がオンであるかどうかを判定する（ステップＳ９２８）。つまり、デバイスドライバー２３２は、トレースモードフラグ２０８６がオンであるかどうかを判定する。ローダにより、トレースモードフラグ２０８６がオンであるかどうかが判定されてもよい。
【０１６７】
トレースモードフラグ２０８６がオンであると判定された場合（ステップＳ９２８：ＹＥＳ）、携帯端末１００は、トレースモード用仮想ドライバー２３８をロードする（ステップＳ９３０）。つまり、デバイスドライバー２３２は、トレースモードフラグ２０８６がオンであると判定した場合、トレースモード用仮想ドライバー２３８をロードする。ローダにより、トレースモードフラグ２０８６がオンであると判定された場合、トレースモード用仮想ドライバー２３８をロードするようにしてもよい。
【０１６８】
トレースモードフラグ２０８６がオフであると判定された場合（ステップＳ９２８：ＮＯ）、携帯端末１００は、仮想ドライバー２３６をロードする。つまり、デバイスドライバー２３２は、トレースモードフラグ２０８６がオフであると判定した場合、仮想ドライバー２３６をロードする。ローダにより、トレースモードフラグ２０８６がオフであると判定された場合、仮想ドライバー２３６がロードされてもよい。
【０１６９】
ステップＳ９３０によりトレースモード用仮想ドライバー２３８がロードされた場合、又はステップＳ９３２により仮想ドライバー２３６がロードされた場合、携帯端末１００は、ハイパーバイザーを起動する（ステップＳ９３４）。つまり、デバイスドライバー２３２は、ハイパーバイザーを起動する。ローダにより、ハイパーバイザーが起動されてもよい。
【０１７０】
携帯端末１００は、OSを起動する（ステップＳ９３６）。
【０１７１】
カーネルが初期化される（ステップＳ９３８）。つまり、OS２２２のデバイス管理部２２２２は、カーネルを初期化する。
【０１７２】
ファイルシステムが初期化される（ステップＳ９４０）。つまり、OS２２２のデバイス管理部２２２２は、ファイルシステムを初期化する。
【０１７３】
デバイスドライバーが初期化される（ステップＳ９４２）。つまり、OS２２２のデバイス管理部２２２２は、デバイスドライバーを初期化する。
【０１７４】
通信ドライバーが初期化される（ステップＳ９４４）。つまり、OS２２２のデバイス管理部２２２２は、通信ドライバーを初期化する。
【０１７５】
キードライバー２１０が初期化される（ステップＳ９４６）。つまり、OS２２２のデバイス管理部２２２２は、キードライバー２１０を初期化する。
【０１７６】
タッチパネル２０４が初期化される（ステップＳ９４８）。つまり、OS２２２のデバイス管理部２２２２は、タッチパネル２０４を初期化する。
【０１７７】
その他のデバイスが初期化される（ステップＳ９５０）。つまり、OS２２２のデバイス管理部２２２２は、その他のデバイスを初期化する。
【０１７８】
携帯端末１００は、サービスを初期化する（ステップＳ９５２）。
【０１７９】
キーパットが初期化される（ステップＳ９５４）。
【０１８０】
マウスパットが初期化される（ステップＳ９５６）。
【０１８１】
シェルが初期化される（ステップＳ９５８）。
【０１８２】
GUIが初期化される（ステップＳ９６０）。
【０１８３】
その他のサービスが初期化される（ステップＳ９６２）。
【０１８４】
起動処理が完了する（ステップS９６４）。
【０１８５】
本実施例によれば、仮想環境においても、前回の終了の際に正常に終了しなかった場合や、ユーザによる操作に従って、必要に応じてログ情報を蓄積できる。このため、記憶容量を増加させることなく、必要なログを収集できる。携帯端末１００により収集されたログを利用することにより、不具合の解析や、原因の究明の効率を向上させることができる。
【０１８６】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
オペレーティングシステムの制御の下にプログラムモジュールを実行する情報処理装置であって、
操作に関する情報を収集するログモードに設定するログモード設定部と、
前記オペレーティングシステムと、ハードウェア資源との間のアクセス要求に応じて、該アクセス要求に関する情報をログとして出力させるためのプログラムモジュールをロードするログモード制御部と、
該ログモード制御部によりロードされたプログラムモジュールに従って、前記アクセス要求に関する情報をログとして収集するログ収集部と
を有し、
前記ログモード制御部は、前記オペレーティングシステムの起動の際に、前記ログモード設定部によりログモードに設定されている場合に、前記プログラムモジュールをロードする、情報処理装置。
（付記２）
付記１に記載の情報処理装置において、
当該情報処理装置を休止状態に移行させる際に、当該情報処理装置が正常系の処理により休止状態に移行したことを表す動作履歴を保持する動作履歴保持部
を有し、
前記ログモード設定部は、前記動作保持部に動作履歴が保持されていない場合に、前記ログモードに設定する、情報処理装置。
（付記３）
付記２に記載の情報処理装置において、
ユーザによる所定の操作に従って、前記動作履歴保持部に保持されるべき動作履歴を無効化する動作履歴初期化部
を有し、
前記ログモード設定部は、前記動作保持部に、前記動作履歴初期化部により無効化されるべき動作履歴が保持されている場合、前記ログモードに設定する、情報処理装置。
（付記４）
付記１又は２に記載の情報処理装置において、
前記オペレーティングシステムと、前記ハードウェア資源との間の命令に応じて、該オペレーティングシステム又は該ハードウェア資源に該命令を実行させるための第１のプログラムモジュールと、
前記第１のプログラムモジュールにより前記命令を実行させる際に、前記オペレーティングシステムと、前記ハードウェア資源との間のアクセス要求に関する操作情報をログとして出力させるための第２のプログラムモジュールと
を格納する記憶部
を有し、
前記ログモード制御部は、前記オペレーティングシステムの起動の際にロードされるべき第１のプログラムモジュールを初期化する際に、前記ログモード設定部によりログモードに設定されている場合に、前記第２のプログラムモジュールをロードする、情報処理装置。
（付記５）
付記１又は２に記載の情報処理装置において、
前記オペレーティングシステムと、前記ハードウェア資源との間の命令に応じて、該オペレーティングシステム又は該ハードウェア資源に該命令を実行させるための第１のプログラムモジュールと、
前記第１のプログラムモジュールにより前記命令を実行させる際に、前記オペレーティングシステムと、前記ハードウェア資源との間のアクセス要求に関する操作情報をログとして出力させるための第２のプログラムモジュールと
を格納する記憶部
を有し、
前記ログモード制御部は、前記オペレーティングシステムの起動の際にロードされるべき第２のプログラムモジュールを初期化する際に、前記ログモード設定部によりログモードに設定されていない場合に、前記第２のプログラムモジュールをアンロードする、情報処理装置。
（付記６）
オペレーティングシステムの制御の下にプログラムモジュールを実行する情報処理装置におけるログ出力の制御方法であって、
操作に関する情報を収集するログモードに設定するログモード設定ステップと、
前記オペレーティングシステムと、ハードウェア資源との間のアクセス要求に応じて、該アクセス要求に関する情報をログとして出力させるためのプログラムモジュールをロードするログモード制御ステップと、
該ログモード制御ステップによりロードされたプログラムモジュールに従って、前記アクセス要求に関する情報をログとして出力するログ出力ステップと
を有し、
前記ログモード制御ステップは、前記オペレーティングシステムの起動の際に、前記ログモード設定ステップによりログモードに設定されている場合に、前記プログラムモジュールをロードする、ログ出力の制御方法。
（付記７）
付記１に記載の情報処理装置において、
前記ログモード設定部は、直近の動作において異常が検出された場合に、前記ログモードに設定する、情報処理装置。
（付記８）
付記１に記載の情報処理装置において、
前記ログモード設定部は、ユーザによる所定の操作に従って、前記ログモードに設定する、情報処理装置。
（付記９）
付記１に記載の情報処理装置において、
前記プログラムモジュールには、デバイスドライバーが含まれる、情報処理装置。
（付記１０）
付記１に記載の情報処理装置において、
前記プログラムモジュールには、仮想ドライバーが含まれる、情報処理装置。
（付記１１）
オペレーティングシステムの制御の下にプログラムモジュールを実行する携帯端末装置であって、
当該装置への操作に関する情報を収集する動作状態であるログモードに移行すべき状態にあるか否かを判定する、状態判定部と、
前記判定においてログモードとすべき状態にあることを判定した場合、前記オペレーティングシステムとハードウェア資源との間でのアクセス要求に応じて、当該アクセス要求に関する情報をログに出力する命令を有するプログラムモジュールを、前記オペレーティングシステムの起動処理においてロードさせる、ログモード制御部と、
を備えることを特徴とする携帯端末装置。
【符号の説明】
【０１８７】
１００  携帯端末
１０２  中央演算処理装置
１０４  記憶装置
１０６  入力装置
１０８  出力装置
１５０  バス
２０２  キー
２０４  タッチパネル
２０６  記憶デバイス
２０６２  ログファイルＡ
２０６４  ログファイルＢ
２０８  記憶デバイス
２０８２  不具合情報ありログファイル
２０８４  前回正常終了フラグ
２０８６  トレースモードフラグ
２０８８  ログバックアップフラグ
２１０  キードライバー
２１２  トレースモード用キードライバー
２１４  タッチパネルドライバー
２１６  トレースモード用タッチパネルドライバー
２１８  フラッシュドライバー
２２０  フラッシュドライバー
２２２  オペレーティングシステム
２２２２  デバイス管理部
２２２４  ファイルシステム管理部
２２４  キーパットサービス
２２６  マウスパットサービス
２２８  ログサービス
２３０ｎ（ｎは、ｎ＞０の整数）  アプリケーション
２３２  デバイスドライバー
２３４  ハイパーバイザー
２３６  仮想ドライバー
２３８  トレースモード用仮想ドライバー
【図１】
0005659892.tif 000002
【図２】
0005659892.tif 000003
【図３】
0005659892.tif 000004
【図４】
0005659892.tif 000005
【図５】
0005659892.tif 000006
【図６】
0005659892.tif 000007
【図７】
0005659892.tif 000008
【図８】
0005659892.tif 000009
【図９】
0005659892.tif 000010