説明

情報処理装置、コマンド実行方法、及びプログラム

【課題】コマンドがエラー終了したときに、エラー要因を特定するための時間を削減する。
【解決手段】実行形式ファイルを生成するコマンドを実行する情報処理装置において、エラー要因記録ファイル330は、コマンドを実行してエラーが発生した場合、コマンド実行中に出力されるエラー要因情報を予め記録する。コマンド受付部110が、コマンドを入出力部200から受け付け、コマンド実行部130が、コマンドを実行する。ログデータ出力部150は、コマンド実行部130からコマンドの実行中に出力されるメッセージを受け取り、メッセージを実行結果ログファイル310へ格納する。ログデータフィルタリング部190は、コマンド実行部130からコマンドの実行がエラー終了したことを通知されると、実行結果ログファイル310のメッセージを読み出し、エラー要因情報と一致するメッセージを抽出して入出力部200へ表示させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置でのコマンドの実行に関し、特に、コマンドを実行したときに発生するエラーを特定する手法に関する。
【背景技術】
【0002】
UNIX(登録商標)などの対話型のOS(Operating System)では、プログラムをコンパイル・リンクして実行形式ファイルを生成するコマンドとして、makeコマンドを使用することが多い。例えば、makeコマンドを使用して、数十〜数百程のファイルを一度にまとめる場合、画面に表示される結果のメッセージ量も膨大となり、メッセージが画面に収まりきれないことが生じる。メッセージ量が画面の表示範囲を超えると画面の表示領域から流れてしまっていた。その結果、makeコマンドがエラー終了し、膨大なメッセージが出力された場合、画面をスクロールして、エラー要因を探し出す必要があり、手間がかかっていた。
【0003】
このような問題に関して、例えば、特許文献1には、コマンドの実行履歴を採取するためのコマンド実行履歴ログ採取処理装置に関し、採取されたデータを効率的に利用できるようにする技術が開示されている。特許文献1では、入力したコマンドとその実行結果を、別々のログファイルに保存する。また、参照する際は、両ファイルを時系列にマージした形で参照する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許02683251号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の技術では、例えば、makeコマンドがエラー終了した時のエラー要因を特定したい場合、ユーザが、実行結果を保存したログファイルを開き、例えば、画面をスクロールしながら、エラー要因を探し出さなければならない。
このように、コマンドがエラー終了したときのエラー要因を特定する際に、膨大な時間を要するという問題があった。
【課題を解決するための手段】
【0006】
発明者らは、予め記録したエラー要因を用いて、コマンドの実行に伴って出力される多量のメッセージから、エラー要因と一致するメッセージを抽出することにより、エラー要因の特定に要する時間を削減できることを発見した。
【0007】
本発明に係る情報処理装置の一態様は、プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを実行する情報処理装置であり、エラー要因記録ファイル、コマンド受付部、コマンド実行部、実行結果ログファイル、ログデータ出力部、ログデータフィルタリング部を備える。
エラー要因記録ファイルは、コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を記録する。コマンド受付部は、コマンドを、入出力装置を介して受け付ける。コマンド実行部は、受け付けたコマンドを実行する。実行結果ログファイルは、前記コマンドの実行に伴って出力されるメッセージを格納する。ログデータ出力部は、前記メッセージを、前記コマンド実行部から受け取り、前記メッセージを前記実行結果ログファイルへ格納する。ログデータフィルタリング部は、前記コマンド実行部から前記コマンドの実行がエラー終了したことを通知されると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、抽出したメッセージを出力して前記入出力装置へ表示させる。
実行結果ログファイルに格納されたメッセージのうち、エラー要因と一致するメッセージを抽出する処理を実行するため、エラー要因に関連するメッセージのみを入出力装置に表示することができる。このため、ユーザがエラー要因を特定するメッセージを抽出する労力を削減することが可能になる。その結果、コマンドがエラー終了した場合に要するエラー要因特定の時間を削減することができる。
【0008】
また、本発明に係るコマンド実行方法の一態様は、プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法であり、前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録し、実行するコマンドを、入出力装置を介して受け付け、受け付けたコマンドを実行し、前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納し、前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、抽出したメッセージを前記入出力装置へ出力する。
【0009】
また、本発明に係るプログラムの一態様は、プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法を実現するプログラムであって、コンピュータに、前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録する処理と、実行するコマンドを、入出力装置を介して受け付ける処理と、受け付けたコマンドを実行する処理と、前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納する処理と、前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに記録されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出する処理と、抽出したメッセージを前記入出力装置へ出力する処理と、を実行させる。
【発明の効果】
【0010】
本発明によれば、コマンドがエラー終了したときに、エラー要因を特定するための時間を削減することが可能となる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態1に係る情報処理装置の構成例を示すブロック図である。
【図2】コマンド処理部の動作例を示すフローチャートである。
【図3】makeコマンドの入力画面の表示例を示す図である。
【図4】makeコマンドの実行結果の画面の表示例を示す図である。
【図5】エラー要因記録ファイルのフォーマットの構成例を示す図である。
【図6】エラー要因記録ファイルの記述例を示す図である。
【図7】実行結果ログファイルの検索を説明する図である。
【図8】エラー要因を含む行の抽出結果の表示例を示す図である。
【図9】エラー要因を含む行が表示された画面の表示例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
【0013】
本発明では、コマンドの実行に伴って出力される多量のメッセージを、予め記録したエラー要因を用いてフィルタリングすることによって、エラー要因の特定に要する時間を削減する。フィルタリンング機能を用いることにより、ユーザ自身がログファイルを開いて、エラー要因を探し出す作業を回避する。
【0014】
実施形態1.
図1は、実施形態1に係る情報処理装置の構成例を示すブロック図である。情報処理装置は、コマンド処理部100、入出力部(入出力装置)200、及び、記録部300を備える。
コマンド処理部100は、入出力部200を介してユーザが入力するコマンドを受け付け、受け付けたコマンドを実行する。加えて、コマンドを実行した結果等を記録部300へ格納する。コマンド処理部100は、コマンド受付部(コマンド受付機能)110、コマンド実行部(コマンド実行機能)130、ログデータ出力部(ログデータ出力機能)150、表示出力部(表示出力機能)170、及び、ログデータファイリング部(ログデータファイリング機能)190を備える。
【0015】
入出力部200は、ユーザとのインターフェースを司り、キーボード、マウスなどの入力装置と、画面などの出力装置とから構成される。入出力部200では、例えば、コマンド等が、キーボードを介してユーザから入力され、コマンドの実行に伴って出力されるメッセージやコマンド実行結果がコマンド処理部100によって画面に表示される。
記録部300は、記録領域であり、ハードディスクやRAM(Random Access Memory)やROM(Read Only Memory)などの記憶装置で構成される。図1の例では、記録部300として、実行結果ログファイル310とエラー要因記録ファイルとを含む。
【0016】
コマンド受付部110は、入出力部200を介してユーザから入力されたmakeコマンドを受け付ける。
コマンド実行部130は、受け付けたmakeコマンドを実行する。makeコマンドがエラー終了の場合、ログデータフィルタリング部190にエラーを通知する。
【0017】
表示出力部170は、makeコマンドの実行に伴って出力されるメッセージをコマンド実行部130から受け取り、入出力部200へ表示する。また、makeコマンドがエラー終了した場合、ログデータフィルタリング部190で抽出したエラー要因が含まれる行を含むメッセージを受け取り、入出力部200へ表示する。
【0018】
ログデータ出力部150は、makeコマンドの実行中に出力されるメッセージをコマンド実行部130から受け取り、実行結果ログファイルに保存する。
【0019】
ログデータフィルタリング部190は、実行結果ログファイル310に保存されたログデータ(メッセージ)と、エラー要因記録ファイル330に記録されたエラー要因情報とを読み込み、makeコマンドがエラー終了した時のエラー要因を抽出する。
【0020】
実施形態1では、コマンド処理部100をソフトウェアで実現することを前提として説明する。また、図1には明記していないが、コマンド処理部100は、CPU(Central Processing Unit)を備え、CPUの制御のもとで各機能を実現する処理を実行することを前提する。しかしながら、コマンド処理部100はソフトウェアで実現する場合に限られるものではない。例えば、組み込みシステムのように、ハードウェアとソフトウェアとの組合せにより実現してもよく、ハードウェア、ファームウェア、ソフトウェアのいずれか、あるいは、これらの二つ以上の組合せにより実現してもよい。
【0021】
実施形態1の動作:
次に、実施形態1の動作(コマンド実行方法)を、図1から9を参照して説明する。図2は、コマンド処理部100の動作例を示すフローチャートである。図3は、makeコマンドの入力画面の表示例を示す図である。図4は、makeコマンドの実行結果の画面の表示例を示す図である。図5は、エラー要因記録ファイルのフォーマットの構成例を示す図である。図6は、エラー要因記録ファイルの記述例を示す図である。図7は、実行結果ログファイルの検索を説明する図である。図8は、エラー要因を含む行の抽出結果の表示例を示す図である。図9は、エラー要因を含む行が表示された画面の表示例を示す図である。
【0022】
ユーザは、入出力部200からmakeコマンドを入力し、Enterキーを押す(図3)。
コマンド受付部110は、入力されたmakeコマンドを受け付ける(図2のS11)。コマンド実行部130は、受け付けたコマンドを実行する(図2のS12)。コマンド実行部130は、コマンド実行中に出力されるメッセージを、表示出力部170とログデータ出力部150とへ出力する。
【0023】
表示出力部170は、コマンド実行中にコマンド実行部130からメッセージを受け取り、受け取ったメッセージを、入出力部200に表示する(図4)。図4に示すように、画面には、入力したコマンドに加え、コマンドの実行に伴って出力されるメッセージが表示される。
同時に、ログデータ出力部150は、コマンド実行部130から受け取ったしメッセージを実行結果ログファイル310へ保存する。入出力部200に表示されたメッセージと、実行結果ログファイル310へ保存されるメッセージの内容は同一のものとする。
【0024】
コマンド実行部130は、makeコマンドの正常/エラー終了の判定を行う(図2のS13)。一般的なUNIX(登録商標)で装備されているShellの機能を使えば、makeコマンドの戻り値で正常終了かエラー終了を判定することができる。具体的には、戻り値が0で正常終了、0以外でエラー終了となる。
makeコマンドが正常終了の場合(図2のS14でNO)、コマンド実行部130は、何も処理をせず、コマンド実行を終了する。
エラー終了の場合(図2のS14でYES)、コマンド実行部130は、makeコマンドがエラー終了したことをログデータフィルタリング部190に通知する(図2のS15)。
【0025】
ログデータフィルタリング部190は、エラー終了の通知をコマンド実行部130から受けると、実行結果ログファイル310、及び、エラー要因記録ファイル330に保存されたエラー要因情報の読み込みを開始する(図2のS16)。ログデータフィルタリング部190は、実行結果ログファイル310から、ログデータ出力部150が実行結果ログファイル310に格納したメッセージを読み出す。また、ログデータフィルタリング部190は、エラー要因記録ファイル330からエラー要因の情報を読み出す。情報の読み出しは、一括して読み出す場合に限られず、読み出し動作(図2のS16)と検出動作(図2のS17)とを繰り返してもよい。
【0026】
エラー要因記録ファイル330は、図5に示すフォーマットに従って、エラー要因情報を保持する。具体的には、エラー要因記録ファイル330は、エラーID、エラー要因、フィルタON(フラグ)、の3つメンバで構成されるエラー要因情報を記録する。
エラーIDは、例えば、1からの通し番号を記述する。
エラー要因は、抽出したいエラー要因を文字列で記述する。
フィルタONは、フィルタリング機能の有効/無効を設定する。例えば、フィルタONの値として、値0は、エラー要因が無効に設定されことを意味し、値1は、エラー要因が有効に設定されることを意味する。
ログデータフィルタリング部190に保存する情報は、予めユーザが設定し、保存しておくことを前提とする。実際のエラー要因記録ファイルの記述例を、図6に示す。なお、このファイルの終了は、エラー要因をNULLにする。
【0027】
ログデータフィルタリング部190は、エラー要因記録ファイル330のエラー要因に、実行結果ログファイル310から読み出したメッセージと一致する文字列があるかを検出する(図2のS17)。このとき、ログデータフィルタリング部190は、エラー要因情報のエラーIDの先頭から順に、エラー要因の文字列が実行結果ログファイル310に格納されたメッセージと一致するか否かを検索する(図7)。一致する文字列がなければ(図2のS18でNO)、処理を終了する。
【0028】
実行結果ログファイルの中で、メッセージと一致するエラー要因が見つかった場合(図2のS18でYES)、実行結果ログファイル310からエラー要因が含まれる行(コマンド実行部130が一度に出力するメッセージの単位)を抽出する。図8に、エラーIDが2のエラー要因"No rule to make target"が、ログデータのメッセージ"make:*** No rule to make target 'CCC.o'"に含まれていることを検出した例を示す。
該当する行を抽出することで、ファイル名やオプション等が手がかりとなり、容易にエラー原因を特定することができる。図8では、ファイル名として、"'CCC.o'"が含まれているため、存在しないファイル名を特定することができる。
【0029】
加えて、ログデータフィルタリング部190は、フィルタONが0(フィルタリング機能が無効の場合)、該当するエラー要因の見つかっても、抽出しない。言い換えると、ログデータフィルタリング部190は、エラーIDの先頭から順番に、フィルタONにフィルタリング機能が有効(値1)と設定されているエラー要因を使用して、実行結果ログファイル310に格納されたメッセージを検索する。
【0030】
ログデータフィルタリング部190は、抽出した行を、表示出力部170へ受け渡し、表示出力部170は、受け取ったメッセージを入出力部200へ表示する(図2のS19)。もしくは、ログデータフィルタリング部190は、別のファイルを用意し、抽出したメッセージを保存してもよい。
図9では、"======== MAKE ERROR ========"以降にエラー要因を特定するメッセージを表示している。なお、図9では、説明上、コマンド入力の行も示しているが、表示するメッセージが多い場合には、後から表示されるメッセージが表示され、表示範囲を超えるメッセージは流れることになる。
【0031】
実施形態1のメカニズムおよび効果:
上述した機能を用いてmakeコマンドを実行した場合、フィルタリング機能により、実行結果からエラー要因を抽出し、表示することができる。これにより、ユーザ自身がエラー要因を探し出す手間が省ける。従って、makeコマンドがエラー終了した場合にエラー要因解析に要する時間を削減することが可能になる。
【0032】
その他の実施形態.
上記実施形態で説明したコマンド実行方法は、コンピュータに各手段を実行させるプログラムによって実現することができる。プログラムは、コンピュータ内のメモリにロードされ、CPUがプログラムの各命令を実行する。プログラムは、少なくとも次の処理をコンピュータに実行させる。(1)コマンドを実行してエラーが発生した場合、コマンドの実行中に出力されるエラー要因情報を予めエラー要因記録ファイル330に記録する処理。(2)実行するコマンドを、入出力部200を介して受け付ける処理。(3)受け付けたコマンドを実行する処理。(4)コマンドの実行中に出力されるメッセージを実行結果ログファイル310に格納する処理。(5)コマンドの実行がエラー終了すると、エラー要因記録ファイル330に記録されたエラー要因情報と、実行結果ログファイル310に保存されたメッセージとを読み出し、メッセージを検索してエラー要因情報と一致するメッセージを抽出する処理。(6)抽出したメッセージを入出力部200へ出力する処理。
【0033】
上述した各処理を図1に示す構成要素と対応づけると次のようになる。処理(1)は、予めユーザによって実施される。処理(2)は、コマンド実行部130が実施する機能に対応する。処理(3)は、コマンド実行部130が実施する機能に対応する。処理(4)は、ログデータ出力部150が実施する機能に対応する。処理(5)は、ログデータフィルタリング部190が実施する機能に対応する。処理(6)は、表示出力部170が実施する機能に対応する。
【0034】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0035】
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
【符号の説明】
【0036】
100 コマンド処理部
110 コマンド受付部
130 コマンド実行部
150 ログデータ出力部
170 表示出力部
190 ログデータファイリング部
200 入出力部
300 記録部
310 実行結果ログファイル
330 エラー要因記録ファイル

【特許請求の範囲】
【請求項1】
プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを実行する情報処理装置であって、
前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を記録するエラー要因記録ファイルと、
コマンドを、入出力装置を介して受け付けるコマンド受付部と、
受け付けたコマンドを実行するコマンド実行部と、
前記コマンドの実行に伴って出力されるメッセージを格納する実行結果ログファイルと、
前記メッセージを、前記コマンド実行部から受け取り、前記メッセージを前記実行結果ログファイルへ格納するログデータ出力部と、
前記コマンド実行部から前記コマンドの実行がエラー終了したことを通知されると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、抽出したメッセージを出力して前記入出力装置へ表示させるログデータフィルタリング部と、を備える情報処理装置。
【請求項2】
前記エラー要因記録ファイルは、エラー要因情報と、前記エラー要因情報を抽出の対象とするか否かを示すフラグとを含み、
前記ログデータファイリング部は、前記フラグが抽出の対象に設定されている場合、前記エラー要因情報と一致するメッセージを出力することを特徴とする請求項1記載の情報処理装置。
【請求項3】
プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法であって、
前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録し、
実行するコマンドを、入出力装置を介して受け付け、
受け付けたコマンドを実行し、
前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納し、
前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、
読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出し、
抽出したメッセージを前記入出力装置へ出力するコマンド実行方法。
【請求項4】
プログラムをコンパイル及びリンクして実行形式ファイルを生成するコマンドを情報処理装置で実行するコマンド実行方法を実現するプログラムであって、
コンピュータに、
前記コマンドを実行してエラーが発生した場合、前記コマンドの実行に伴って出力されるエラー要因情報を予めエラー要因記録ファイルに記録する処理と、
実行するコマンドを、入出力装置を介して受け付ける処理と、
受け付けたコマンドを実行する処理と、
前記コマンドの実行に伴って出力されるメッセージを実行結果ログファイルに格納する処理と、
前記コマンドの実行がエラー終了すると、前記エラー要因記録ファイルに記録されたエラー要因情報、及び、前記実行結果ログファイルに格納されたメッセージを読み出し、読み出したメッセージを検索して前記エラー要因情報と一致するメッセージを抽出する処理と、
抽出したメッセージを前記入出力装置へ出力する処理と、を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate