(57)【要約】【課題】コマンドがエラー終了したときに、エラー要因を特定するための時間を削減する。【解決手段】実行形式ファイルを生成するコマンドを実行する情報処理装置において、エラー要因記録ファイル３３０は、コマンドを実行してエラーが発生した場合、コマンド実行中に出力されるエラー要因情報を予め記録する。コマンド受付部１１０が、コマンドを入出力部２００から受け付け、コマンド実行部１３０が、コマンドを実行する。ログデータ出力部１５０は、コマンド実行部１３０からコマンドの実行中に出力されるメッセージを受け取り、メッセージを実行結果ログファイル３１０へ格納する。ログデータフィルタリング部１９０は、コマンド実行部１３０からコマンドの実行がエラー終了したことを通知されると、実行結果ログファイル３１０のメッセージを読み出し、エラー要因情報と一致するメッセージを抽出して入出力部２００へ表示させる。【選択図】図１
2013033371.tif 000002
【特許請求の範囲】
【請求項１】
プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを実行する情報処理装置であって、
前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を記録するエラー要因記録ファイルと、
コマンドを、入出力装置を介して受け付けるコマンド受付部と、
受け付けたコマンドを実行するコマンド実行部と、
前記コマンドの実行に伴って出力されるメッセージを格納する実行結果ログファイルと、
前記メッセージを、前記コマンド実行部から受け取り、前記メッセージを前記実行結果ログファイルへ格納するログデータ出力部と、
前記コマンド実行部から前記コマンドの実行がエラー終了したことを通知されると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、抽出したメッセージを出力して前記入出力装置へ表示させるログデータフィルタリング部と、を備える情報処理装置。
【請求項２】
前記エラー要因記録ファイルは、エラー要因情報と、前記エラー要因情報を抽出の対象とするか否かを示すフラグとを含み、
前記ログデータファイリング部は、前記フラグが抽出の対象に設定されている場合、前記エラー要因情報と一致するメッセージを出力することを特徴とする請求項１記載の情報処理装置。
【請求項３】
プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法であって、
前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録し、
実行するコマンドを、入出力装置を介して受け付け、
受け付けたコマンドを実行し、
前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納し、
前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、
読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、
抽出したメッセージを前記入出力装置へ出力するコマンド実行方法。
【請求項４】
プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法を実現するプログラムであって、
コンピュータに、
前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録する処理と、
実行するコマンドを、入出力装置を介して受け付ける処理と、
受け付けたコマンドを実行する処理と、
前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納する処理と、
前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出する処理と、
抽出したメッセージを前記入出力装置へ出力する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置でのコマンドの実行に関し、特に、コマンドを実行したときに発生するエラーを特定する手法に関する。
【背景技術】
【０００２】
ＵＮＩＸ（登録商標）などの対話型のＯＳ（Operating System）では、プログラムをコンパイル・リンクして実行形式ファイルを生成するコマンドとして、ｍａｋｅコマンドを使用することが多い。例えば、ｍａｋｅコマンドを使用して、数十〜数百程のファイルを一度にまとめる場合、画面に表示される結果のメッセージ量も膨大となり、メッセージが画面に収まりきれないことが生じる。メッセージ量が画面の表示範囲を超えると画面の表示領域から流れてしまっていた。その結果、ｍａｋｅコマンドがエラー終了し、膨大なメッセージが出力された場合、画面をスクロールして、エラー要因を探し出す必要があり、手間がかかっていた。
【０００３】
このような問題に関して、例えば、特許文献１には、コマンドの実行履歴を採取するためのコマンド実行履歴ログ採取処理装置に関し、採取されたデータを効率的に利用できるようにする技術が開示されている。特許文献１では、入力したコマンドとその実行結果を、別々のログファイルに保存する。また、参照する際は、両ファイルを時系列にマージした形で参照する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許０２６８３２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、例えば、ｍａｋｅコマンドがエラー終了した時のエラー要因を特定したい場合、ユーザが、実行結果を保存したログファイルを開き、例えば、画面をスクロールしながら、エラー要因を探し出さなければならない。
このように、コマンドがエラー終了したときのエラー要因を特定する際に、膨大な時間を要するという問題があった。
【課題を解決するための手段】
【０００６】
発明者らは、予め記録したエラー要因を用いて、コマンドの実行に伴って出力される多量のメッセージから、エラー要因と一致するメッセージを抽出することにより、エラー要因の特定に要する時間を削減できることを発見した。
【０００７】
本発明に係る情報処理装置の一態様は、プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを実行する情報処理装置であり、エラー要因記録ファイル、コマンド受付部、コマンド実行部、実行結果ログファイル、ログデータ出力部、ログデータフィルタリング部を備える。
エラー要因記録ファイルは、コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を記録する。コマンド受付部は、コマンドを、入出力装置を介して受け付ける。コマンド実行部は、受け付けたコマンドを実行する。実行結果ログファイルは、前記コマンドの実行に伴って出力されるメッセージを格納する。ログデータ出力部は、前記メッセージを、前記コマンド実行部から受け取り、前記メッセージを前記実行結果ログファイルへ格納する。ログデータフィルタリング部は、前記コマンド実行部から前記コマンドの実行がエラー終了したことを通知されると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、抽出したメッセージを出力して前記入出力装置へ表示させる。
実行結果ログファイルに格納されたメッセージのうち、エラー要因と一致するメッセージを抽出する処理を実行するため、エラー要因に関連するメッセージのみを入出力装置に表示することができる。このため、ユーザがエラー要因を特定するメッセージを抽出する労力を削減することが可能になる。その結果、コマンドがエラー終了した場合に要するエラー要因特定の時間を削減することができる。
【０００８】
また、本発明に係るコマンド実行方法の一態様は、プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法であり、前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録し、実行するコマンドを、入出力装置を介して受け付け、受け付けたコマンドを実行し、前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納し、前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、抽出したメッセージを前記入出力装置へ出力する。
【０００９】
また、本発明に係るプログラムの一態様は、プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法を実現するプログラムであって、コンピュータに、前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録する処理と、実行するコマンドを、入出力装置を介して受け付ける処理と、受け付けたコマンドを実行する処理と、前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納する処理と、前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに記録されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出する処理と、抽出したメッセージを前記入出力装置へ出力する処理と、を実行させる。
【発明の効果】
【００１０】
本発明によれば、コマンドがエラー終了したときに、エラー要因を特定するための時間を削減することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態１に係る情報処理装置の構成例を示すブロック図である。
【図２】コマンド処理部の動作例を示すフローチャートである。
【図３】ｍａｋｅコマンドの入力画面の表示例を示す図である。
【図４】ｍａｋｅコマンドの実行結果の画面の表示例を示す図である。
【図５】エラー要因記録ファイルのフォーマットの構成例を示す図である。
【図６】エラー要因記録ファイルの記述例を示す図である。
【図７】実行結果ログファイルの検索を説明する図である。
【図８】エラー要因を含む行の抽出結果の表示例を示す図である。
【図９】エラー要因を含む行が表示された画面の表示例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【００１３】
本発明では、コマンドの実行に伴って出力される多量のメッセージを、予め記録したエラー要因を用いてフィルタリングすることによって、エラー要因の特定に要する時間を削減する。フィルタリンング機能を用いることにより、ユーザ自身がログファイルを開いて、エラー要因を探し出す作業を回避する。
【００１４】
実施形態１．
図１は、実施形態１に係る情報処理装置の構成例を示すブロック図である。情報処理装置は、コマンド処理部１００、入出力部（入出力装置）２００、及び、記録部３００を備える。
コマンド処理部１００は、入出力部２００を介してユーザが入力するコマンドを受け付け、受け付けたコマンドを実行する。加えて、コマンドを実行した結果等を記録部３００へ格納する。コマンド処理部１００は、コマンド受付部（コマンド受付機能）１１０、コマンド実行部（コマンド実行機能）１３０、ログデータ出力部（ログデータ出力機能）１５０、表示出力部（表示出力機能）１７０、及び、ログデータファイリング部（ログデータファイリング機能）１９０を備える。
【００１５】
入出力部２００は、ユーザとのインターフェースを司り、キーボード、マウスなどの入力装置と、画面などの出力装置とから構成される。入出力部２００では、例えば、コマンド等が、キーボードを介してユーザから入力され、コマンドの実行に伴って出力されるメッセージやコマンド実行結果がコマンド処理部１００によって画面に表示される。
記録部３００は、記録領域であり、ハードディスクやＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）などの記憶装置で構成される。図１の例では、記録部３００として、実行結果ログファイル３１０とエラー要因記録ファイルとを含む。
【００１６】
コマンド受付部１１０は、入出力部２００を介してユーザから入力されたｍａｋｅコマンドを受け付ける。
コマンド実行部１３０は、受け付けたｍａｋｅコマンドを実行する。ｍａｋｅコマンドがエラー終了の場合、ログデータフィルタリング部１９０にエラーを通知する。
【００１７】
表示出力部１７０は、ｍａｋｅコマンドの実行に伴って出力されるメッセージをコマンド実行部１３０から受け取り、入出力部２００へ表示する。また、ｍａｋｅコマンドがエラー終了した場合、ログデータフィルタリング部１９０で抽出したエラー要因が含まれる行を含むメッセージを受け取り、入出力部２００へ表示する。
【００１８】
ログデータ出力部１５０は、ｍａｋｅコマンドの実行中に出力されるメッセージをコマンド実行部１３０から受け取り、実行結果ログファイルに保存する。
【００１９】
ログデータフィルタリング部１９０は、実行結果ログファイル３１０に保存されたログデータ（メッセージ）と、エラー要因記録ファイル３３０に記録されたエラー要因情報とを読み込み、ｍａｋｅコマンドがエラー終了した時のエラー要因を抽出する。
【００２０】
実施形態１では、コマンド処理部１００をソフトウェアで実現することを前提として説明する。また、図１には明記していないが、コマンド処理部１００は、ＣＰＵ（Central Processing Unit）を備え、ＣＰＵの制御のもとで各機能を実現する処理を実行することを前提する。しかしながら、コマンド処理部１００はソフトウェアで実現する場合に限られるものではない。例えば、組み込みシステムのように、ハードウェアとソフトウェアとの組合せにより実現してもよく、ハードウェア、ファームウェア、ソフトウェアのいずれか、あるいは、これらの二つ以上の組合せにより実現してもよい。
【００２１】
実施形態１の動作：
次に、実施形態１の動作（コマンド実行方法）を、図１から９を参照して説明する。図２は、コマンド処理部１００の動作例を示すフローチャートである。図３は、ｍａｋｅコマンドの入力画面の表示例を示す図である。図４は、ｍａｋｅコマンドの実行結果の画面の表示例を示す図である。図５は、エラー要因記録ファイルのフォーマットの構成例を示す図である。図６は、エラー要因記録ファイルの記述例を示す図である。図７は、実行結果ログファイルの検索を説明する図である。図８は、エラー要因を含む行の抽出結果の表示例を示す図である。図９は、エラー要因を含む行が表示された画面の表示例を示す図である。
【００２２】
ユーザは、入出力部２００からｍａｋｅコマンドを入力し、Ｅｎｔｅｒキーを押す（図３）。
コマンド受付部１１０は、入力されたｍａｋｅコマンドを受け付ける（図２のＳ１１）。コマンド実行部１３０は、受け付けたコマンドを実行する（図２のＳ１２）。コマンド実行部１３０は、コマンド実行中に出力されるメッセージを、表示出力部１７０とログデータ出力部１５０とへ出力する。
【００２３】
表示出力部１７０は、コマンド実行中にコマンド実行部１３０からメッセージを受け取り、受け取ったメッセージを、入出力部２００に表示する（図４）。図４に示すように、画面には、入力したコマンドに加え、コマンドの実行に伴って出力されるメッセージが表示される。
同時に、ログデータ出力部１５０は、コマンド実行部１３０から受け取ったしメッセージを実行結果ログファイル３１０へ保存する。入出力部２００に表示されたメッセージと、実行結果ログファイル３１０へ保存されるメッセージの内容は同一のものとする。
【００２４】
コマンド実行部１３０は、ｍａｋｅコマンドの正常／エラー終了の判定を行う（図２のＳ１３）。一般的なＵＮＩＸ（登録商標）で装備されているＳｈｅｌｌの機能を使えば、ｍａｋｅコマンドの戻り値で正常終了かエラー終了を判定することができる。具体的には、戻り値が０で正常終了、０以外でエラー終了となる。
ｍａｋｅコマンドが正常終了の場合（図２のＳ１４でＮＯ）、コマンド実行部１３０は、何も処理をせず、コマンド実行を終了する。
エラー終了の場合（図２のＳ１４でＹＥＳ）、コマンド実行部１３０は、ｍａｋｅコマンドがエラー終了したことをログデータフィルタリング部１９０に通知する（図２のＳ１５）。
【００２５】
ログデータフィルタリング部１９０は、エラー終了の通知をコマンド実行部１３０から受けると、実行結果ログファイル３１０、及び、エラー要因記録ファイル３３０に保存されたエラー要因情報の読み込みを開始する（図２のＳ１６）。ログデータフィルタリング部１９０は、実行結果ログファイル３１０から、ログデータ出力部１５０が実行結果ログファイル３１０に格納したメッセージを読み出す。また、ログデータフィルタリング部１９０は、エラー要因記録ファイル３３０からエラー要因の情報を読み出す。情報の読み出しは、一括して読み出す場合に限られず、読み出し動作（図２のＳ１６）と検出動作（図２のＳ１７）とを繰り返してもよい。
【００２６】
エラー要因記録ファイル３３０は、図５に示すフォーマットに従って、エラー要因情報を保持する。具体的には、エラー要因記録ファイル３３０は、エラーＩＤ、エラー要因、フィルタＯＮ（フラグ）、の３つメンバで構成されるエラー要因情報を記録する。
エラーＩＤは、例えば、１からの通し番号を記述する。
エラー要因は、抽出したいエラー要因を文字列で記述する。
フィルタＯＮは、フィルタリング機能の有効／無効を設定する。例えば、フィルタＯＮの値として、値０は、エラー要因が無効に設定されことを意味し、値１は、エラー要因が有効に設定されることを意味する。
ログデータフィルタリング部１９０に保存する情報は、予めユーザが設定し、保存しておくことを前提とする。実際のエラー要因記録ファイルの記述例を、図６に示す。なお、このファイルの終了は、エラー要因をＮＵＬＬにする。
【００２７】
ログデータフィルタリング部１９０は、エラー要因記録ファイル３３０のエラー要因に、実行結果ログファイル３１０から読み出したメッセージと一致する文字列があるかを検出する（図２のＳ１７）。このとき、ログデータフィルタリング部１９０は、エラー要因情報のエラーＩＤの先頭から順に、エラー要因の文字列が実行結果ログファイル３１０に格納されたメッセージと一致するか否かを検索する（図７）。一致する文字列がなければ（図２のＳ１８でＮＯ）、処理を終了する。
【００２８】
実行結果ログファイルの中で、メッセージと一致するエラー要因が見つかった場合（図２のＳ１８でＹＥＳ）、実行結果ログファイル３１０からエラー要因が含まれる行（コマンド実行部１３０が一度に出力するメッセージの単位）を抽出する。図８に、エラーＩＤが２のエラー要因"No rule to make target"が、ログデータのメッセージ"make:*** No rule to make target 'CCC.o'"に含まれていることを検出した例を示す。
該当する行を抽出することで、ファイル名やオプション等が手がかりとなり、容易にエラー原因を特定することができる。図８では、ファイル名として、"'CCC.o'"が含まれているため、存在しないファイル名を特定することができる。
【００２９】
加えて、ログデータフィルタリング部１９０は、フィルタＯＮが０（フィルタリング機能が無効の場合）、該当するエラー要因の見つかっても、抽出しない。言い換えると、ログデータフィルタリング部１９０は、エラーＩＤの先頭から順番に、フィルタＯＮにフィルタリング機能が有効（値１）と設定されているエラー要因を使用して、実行結果ログファイル３１０に格納されたメッセージを検索する。
【００３０】
ログデータフィルタリング部１９０は、抽出した行を、表示出力部１７０へ受け渡し、表示出力部１７０は、受け取ったメッセージを入出力部２００へ表示する（図２のＳ１９）。もしくは、ログデータフィルタリング部１９０は、別のファイルを用意し、抽出したメッセージを保存してもよい。
図９では、"======== MAKE ERROR ========"以降にエラー要因を特定するメッセージを表示している。なお、図９では、説明上、コマンド入力の行も示しているが、表示するメッセージが多い場合には、後から表示されるメッセージが表示され、表示範囲を超えるメッセージは流れることになる。
【００３１】
実施形態１のメカニズムおよび効果：
上述した機能を用いてｍａｋｅコマンドを実行した場合、フィルタリング機能により、実行結果からエラー要因を抽出し、表示することができる。これにより、ユーザ自身がエラー要因を探し出す手間が省ける。従って、ｍａｋｅコマンドがエラー終了した場合にエラー要因解析に要する時間を削減することが可能になる。
【００３２】
その他の実施形態．
上記実施形態で説明したコマンド実行方法は、コンピュータに各手段を実行させるプログラムによって実現することができる。プログラムは、コンピュータ内のメモリにロードされ、ＣＰＵがプログラムの各命令を実行する。プログラムは、少なくとも次の処理をコンピュータに実行させる。（１）コマンドを実行してエラーが発生した場合、コマンドの実行中に出力されるエラー要因情報を予めエラー要因記録ファイル３３０に記録する処理。（２）実行するコマンドを、入出力部２００を介して受け付ける処理。（３）受け付けたコマンドを実行する処理。（４）コマンドの実行中に出力されるメッセージを実行結果ログファイル３１０に格納する処理。（５）コマンドの実行がエラー終了すると、エラー要因記録ファイル３３０に記録されたエラー要因情報と、実行結果ログファイル３１０に保存されたメッセージとを読み出し、メッセージを検索してエラー要因情報と一致するメッセージを抽出する処理。（６）抽出したメッセージを入出力部２００へ出力する処理。
【００３３】
上述した各処理を図１に示す構成要素と対応づけると次のようになる。処理（１）は、予めユーザによって実施される。処理（２）は、コマンド実行部１３０が実施する機能に対応する。処理（３）は、コマンド実行部１３０が実施する機能に対応する。処理（４）は、ログデータ出力部１５０が実施する機能に対応する。処理（５）は、ログデータフィルタリング部１９０が実施する機能に対応する。処理（６）は、表示出力部１７０が実施する機能に対応する。
【００３４】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００３５】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【００３６】
１００  コマンド処理部
１１０  コマンド受付部
１３０  コマンド実行部
１５０  ログデータ出力部
１７０  表示出力部
１９０  ログデータファイリング部
２００  入出力部
３００  記録部
３１０  実行結果ログファイル
３３０  エラー要因記録ファイル
【図１】
2013033371.tif 000003
【図２】
2013033371.tif 000004
【図３】
2013033371.tif 000005
【図４】
2013033371.tif 000006
【図５】
2013033371.tif 000007
【図６】
2013033371.tif 000008
【図７】
2013033371.tif 000009
【図８】
2013033371.tif 000010
【図９】
2013033371.tif 000011