JP2003203001A - ログ解析方法、ログ解析プログラム - Google Patents

ログ解析方法、ログ解析プログラム

Info

Publication number
JP2003203001A
JP2003203001A JP2001401926A JP2001401926A JP2003203001A JP 2003203001 A JP2003203001 A JP 2003203001A JP 2001401926 A JP2001401926 A JP 2001401926A JP 2001401926 A JP2001401926 A JP 2001401926A JP 2003203001 A JP2003203001 A JP 2003203001A
Authority
JP
Japan
Prior art keywords
event
log
occurrence
program
logs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001401926A
Other languages
English (en)
Inventor
Katsuhiko Ueki
克彦 植木
Wataru Okamoto
渉 岡本
Fumitaka Tamura
文隆 田村
Masayuki Hirayama
雅之 平山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001401926A priority Critical patent/JP2003203001A/ja
Priority to US10/329,397 priority patent/US6865508B2/en
Publication of JP2003203001A publication Critical patent/JP2003203001A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 対象プログラム記述や実行順序以外の事項の
違いを考慮して、デバッグに有益な情報を提供するログ
解析方法、プログラムを提供する。 【解決手段】 同一のプログラム1aを複数回(i=1
〜3)繰り返し実行することにより、発生したイベント
2a,2bを、実行回ごとに発生順序に従ってそれぞれ
記録された複数のログ1〜3を生成する。すべての発生
順序において記録されたイベントに関するプログラムの
記述(f,g)が複数のログ1〜3間で、各々、共通す
る場合、プログラムの記述及び該記述の実行の際に用い
られるデータ(引数)に基づいて、各イベントの発生確
率を、発生順序1〜3ごとに、計算する。そして、上記
発生確率に基づいて、各ログの特徴となるイベントに関
する情報を出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムの実行
により得られたログを解析する方法、プログラムに関す
る。
【0002】
【従来の技術】近年、ソフトウェア開発の分野におい
て、対象プログラムの動作確認やいわゆるデバッグ作業
のために、対象プログラムの実行動作により得られたロ
グを利用するケースが増加している。具体的には、記録
したイベントの情報からなるログを専用のビューアで表
示してデバッグ作業の一助とするようなログベースのデ
バッグ手法が普及してきている。
【0003】収集するログの例としては、オペレーティ
ングシステム(OS)を通じて一連のシステムコールの
発行履歴を記録したものであったり、ハードウェア(あ
るいはエミュレータ)により一連のメモリアクセスの履
歴を記録したものなどが挙げられる。これらにおいて、
システムコールやメモリアクセスがイベントに相当す
る。
【0004】対象プログラムの実行動作により得られた
ログを用いてデバッグを行う場合、従来では次の2つの
手法が知られている。
【0005】(1)1つの異常動作ログを丹念に調査し
てバグの原因を探す。
【0006】(2)正常動作した場合のログと異常動作
した場合のログとを比較して違いを探し出し、これを集
中的に調査する。
【0007】上記(1)については、ログ中においてど
の箇所を重点的に調査すれば良いかなどの指針が無いの
で、ログの量が増大すると、これに応じてデバッグ作業
にも手間がかかり、また熟練を要するという問題点があ
る。
【0008】上記(2)については、正常動作と異常動
作の単純な違いだけに着目すると、その着目すべき箇所
が多くなり過ぎて効率的なデバッグに繋がらないという
問題点がある。
【0009】そこで、対象プログラムの実行時において
発生した一連のイベントを記録した複数のログから特徴
的なログを抽出し、関連するプログラムのコードを優先
的に調査することにより、デバッグ効率の向上を実現す
る方式が提案されている(特願2001−060699
号、岡本渉、植木克彦他、“探針型デバッグ手法の提
案”、“信学技報、Vol.100,No186,pp1-8(2000-7)岡本
渉他、”探針型デバッグ手法の実現(1)−概要と評
価”62回情報処理全国大会2Z−2(2001-03)、田村
文隆他、“探針型デバッグ手法の実現(2)−アルゴリ
ズム”、62回情報処理全国大会2Z−2(2001-0
3)。
【0010】この提案では、対象プログラムの実行等に
おいて発生した一連のイベントの発生確率を計算して、
動作ログの特徴を抽出している。そして、デバッグ作業
者が、この動作ログの特徴となるイベントに関する情報
を精密に調べることにより、プログラムのデバッグ作業
を効率的なものとしている。
【0011】この際、従来技術では、イベントについて
は、デバッグ環境全体で予め定義されており、識別可能
な事象としている。そして、実行されるプログラム記述
の違い、実行順序の違いを考慮して、動作ログの特徴を
抽出している。
【0012】
【発明が解決しようとする課題】一方、対象プログラム
の実行時において、種々のデータのやりとりも行われて
おり、ログとしてデータを記録することも可能である。
このため、プログラム記述の違い、実行順序の違いに加
えて、データの違いも考慮して動作ログの特徴を抽出す
ることができれば、デバッグ作業に都合が良い。即ち、
プログラム記述や実行順序の違いを考慮しただけでは、
ログの特徴が抽出できない場合でも、データの違いを考
慮すれば、ログの特徴が抽出できる可能性がある。
【0013】この場合、データの違いをどのように考慮
するか重要となる。以下に例を用いて説明する。例え
ば、f、g、hは例えば、対象プログラムにおいて、実
行される関数とする。対象プログラムを実行した結果、
一連のイベントが発生し、動作ログが、上記イベントの
発生順序に従って、以下のように記録されたものとす
る。
【0014】ログ1:f(−2)g(10)h(14) ログ2:f(11)g(15)h(18) ログ2:f(12)g(16)h(19) ここで、かっこ内の数は、例えば、引数とする。引数を
データとして、データの違いを考慮して、ログの特徴を
考える場合、単純に各ログを比較しても、各イベントの
発生頻度が同じか、同程度となってしまい、ログの特徴
を抽出することが困難な場合がある。一方、データの違
いを考慮しない場合には、上述の例にように、プログラ
ム記述、実行順序が同一となっている(f、g、h)よ
うなときには、実際にバグがあっても、対処できない場
合もある。
【0015】また、対象プログラムの実行時において、
関数記述の実行で、メモリ領域にアクセスすることも考
えられる。このため、データの違いの場合と同様に、メ
モリ領域へのアクセスの違いも考慮してログの特徴を抽
出することができれば、デバッグ作業に都合が良い。
【0016】本発明はこのような事情を考慮してなされ
たものであり、対象プログラム記述や実行順序に加え、
これら以外の事項の違いを考慮して、対象プログラムの
デバッグに有益な情報を提供することができるログ解析
方法、プログラムを提供することを目的とする。
【0017】
【課題を解決するための手段】上記課題を解決するため
に、本発明は、同一のプログラムを複数回繰り返し実行
することにより、発生したイベントを、実行回ごとに発
生順序に従ってそれぞれ記録された複数のログを生成
し、すべての発生順序において記録されたイベントに関
するプログラムの記述が前記複数のログ間で、各々、共
通する場合、前記プログラムの記述及び該記述の実行の
際に用いられるデータに基づいて、前記各イベントの発
生確率を、前記発生順序ごとに、計算し、前記発生確率
に基づいて、各ログの特徴となるイベントに関する情報
を出力することを特徴とするものである。
【0018】また、本発明は、前記発生確率に基づい
て、発生頻度の低さを示す稀少度を計算し、前記稀少度
に基づいて、各ログの特徴となるイベントに関する情報
を出力することもできる。
【0019】また、本発明は、前記複数のログをそれぞ
れ構成するイベントに基づいて、イベントを前記発生順
序で記録したイベント列を生成し、前記イベント列のイ
ベントと、前記各ログを構成するイベントとをそれぞれ
比較し、比較結果に基づいて、前記複数のログをそれぞ
れ変換ログに変換し、前記イベントに関する前記プログ
ラムの記述に基づいて、前記各イベントの発生確率を前
記発生順序ごとに計算し、計算された発生確率に基づい
て、発生頻度の低さを示す稀少度を計算し、計算された
稀少度に基づいて、変換ログの特徴が存在するか否かを
判定する判定する。そして、前記判定による判定結果に
基づいて、前記プログラムの記述及び該記述の実行の際
に用いられるデータに基づいて、前記各イベントの発生
確率を、前記発生順序ごとに、計算することが好まし
い。
【0020】また、本発明は、プログラムの実行により
発生した一連のイベントが発生順序に従って、記録され
たログを解析する際に、前記イベントに関するプログラ
ム記述の実行の際に参照可能であるメモリ領域を指定
し、前記指定されたメモリ領域に対する参照処理を伴う
か否かに基づいて、各イベントを分類し、参照処理を伴
うメモリ領域ごとに、分類されたイベントを、発生順序
に従って、記録した複数の分類ログを生成し、前記各分
類ログをそれぞれ構成するイベントに基づいて、イベン
トを前記発生順序で記録したイベント列を生成し、前記
イベント列のイベントと、前記各分類ログを構成するイ
ベントとをそれぞれ比較し、比較結果に基づいて、前記
各分類ログをそれぞれ変換ログに変換し、前記イベント
に関するプログラムの記述に基づいて、前記各イベント
の発生確率を前記発生順序ごとに、計算し、前記発生確
率に基づいて、発生頻度の低さを示す稀少度を計算し、
前記稀少度に基づいて、各変換ログの特徴となるイベン
トに関する情報を出力することを特徴とするものであ
る。
【0021】この際、前記メモリ領域を指定として、イ
ベントに関する所定のプログラム記述の実行の際に参照
されるメモリ領域に対して指定することができる。ま
た、前記メモリ領域を指定として、領域の大きさが共通
する複数のメモリ領域に対して指定することもできる。
【0022】また、本発明は、計算された各イベントの
発生確率に基づいて、各変換ログの特徴度をそれぞれ計
算し、前記各変換ログの特徴度を出力することもでき
る。
【0023】
【発明の実施の形態】図1は、本発明の第1の概念を説
明するための図である。この図を用いて、本発明の第1
概念を説明する。
【0024】本発明の第1のログ解析方法は、先ず、同
一のプログラム(プログラム1a)を複数回(3回)繰
り返し実行することにより、発生したイベント(イベン
ト2a,2b等)を、実行回(i=1〜3)ごとに発生
順序に従ってそれぞれ記録された複数のログ(ログ1,
ログ2、ログ3)を生成するステップを有する。
【0025】そして、ログ解析方法は、すべての発生順
序(発生順序1,2,3..)において記録されたイベ
ントに関するプログラムの記述(f、g等)が前記複数
のログ間で、各々、共通する場合、前記プログラムの記
述及び該記述の実行の際に用いられるデータ(fやgの
引数、(10)、(20)等)に基づいて、前記各イベ
ント(イベント2a,2b等)の発生確率を、前記発生
順序(発生順序1,2,3)ごとに、計算するステップ
を有する。
【0026】そして、ログ解析方法は、前記発生確率に
基づいて、各ログの特徴となるイベントに関する情報
(ログ2,発生順序2番目のイベント、発生確率15
%)を出力するステップを有する。上述した概念に基づ
いて、本発明の実施の形態1について説明する。
【0027】また、図2は、本発明の第2の概念を説明
するための図である。本発明に係るログ解析方法は、プ
ログラム(3a)の実行により発生した一連のイベント
(4a,4b,4c等)が発生順序に従って、記録され
たログ(5)を解析するログ解析方法であって、前記イ
ベントに関するプログラム記述の実行の際に参照可能で
あるメモリ領域(a1,a2,a3)を指定するステッ
プと、指定されたメモリ領域(a1,a2,a3)に対
する参照処理を伴うか否かに基づいて、各イベントを分
類するステップと、参照処理を伴うメモリ領域(a1,
a2,a3)ごとに、分類されたイベント(4a,4
b,4c等)を、発生順序に従って、記録した複数の分
類ログ(分類ログ1、分類ログ2、分類ログ3)を生成
するステップと、前記各分類ログ(分類ログ1、分類ロ
グ2、分類ログ3)をそれぞれ構成するイベント(f
(a1)、g(a1)、h(a1)、f(a2)、g
(a2)、h(a2)、f(a3)、g(a
3)...)に基づいて、イベントを所定の順序で記録
した所定のイベント列(6)を生成するステップと、所
定のイベント列のイベントと、前記各分類ログを構成す
るイベントとをそれぞれ比較し、比較結果に基づいて、
前記各分類ログ(分類ログ1、分類ログ2、分類ログ
3)をそれぞれ変換ログ(変換ログ1、変換ログ2、変
換ログ3)に変換するステップと、前記イベントに関す
るプログラムの記述(f、g等)に基づいて、前記各イ
ベントの発生確率を前記発生順序ごとに、計算するステ
ップと、前記発生確率に基づいて、発生頻度の低さを示
す稀少度を計算するステップと、前記稀少度に基づい
て、各ログの特徴となるイベントに関する情報(変換ロ
グ3,発生順序3番目のイベント、発生確率33%)を
出力するステップとを有する。上述した概念に基づい
て、本発明の実施の形態2について説明する。
【0028】実施の形態1. (ログ解析装置の構成)図3は、実施の形態1であるロ
グ解析装置の構成を示すブロック図である。本装置は、
デバッグの対象プログラム(以下、対象プログラム)の
動作により出力されたログを入力し、デバッグ作業者
(ユーザ)から与えられた種々の指定条件に応じて、ロ
グを解析して、ログの特徴となる情報を出力する装置で
ある。
【0029】ログ解析装置は、作業者がログを入力する
入力部10と、複数のログを生成するログ生成部11
と、イベント列生成部12と、ログ変換部13と、イベ
ント発生確率計算部14と、稀少度計算部15と、稀少
度判定部16と、出力部17とを有する。
【0030】入力部10には、対象プログラムの実行時
において成立した一連のイベントが発生順序に従って、
記録されたログが入力される。ここで、対象プログラム
の種別、数量等は任意であり、実行環境も任意である。
【0031】ログを準備するための対象プログラムの実
行は、図示しないデバッガによる。イベントの収集・記
録処理は、デバッガに組み込まれ、或いはデバッガとは
別構成で協調動作する「トレーサ」により行なわれる。
トレーサは対象プログラムの実行動作を追跡し、そのデ
バッグ実行動作単位(シーケンス)ごとに、成立(発
生)した一連のイベントを発生順序に従ってログとして
記録する。
【0032】ログ生成部11は、入力部10により入力
されたログから、複数のログを生成する。例えば、同一
のプログラムを複数回繰り返し実行することにより、発
生したイベントを発生順序に従って記録されたログが入
力部10に入力された場合、ログ生成部11は、入力さ
れたログに基づいて、発生したイベントを実行回ごとに
発生順序に従ってそれぞれ記録された複数のログを生成
する。
【0033】イベント列生成部12は、ログ生成部11
により生成された複数のログのイベントの傾向に基づい
て、イベントを発生順序で記録したイベント列を生成す
る。
【0034】ログ変換部13は、イベント列生成部12
により生成されたイベント列を用いることで、ログ生成
部11により生成された複数のログについて変換処理を
行うことにより、複数の変換ログを生成する。具体的な
処理は後述する。
【0035】イベント発生確率計算部14は、前記イベ
ントに関するプログラムの記述に基づいて、各イベント
の発生確率を発生順序ごとに計算する。詳細な処理は後
述する。
【0036】稀少度計算部15は、イベント発生確率計
算部14により計算された各イベントについての発生確
率に基づいて、各イベントについての稀少度を計算す
る。稀少度とは、そのイベントが発生したこと、あるい
は発生しなかったことがどれだけ珍しい現象であるかを
示す。例えば、稀少度の値が大きくなるほどそのイベン
トは(発生又は非発生が)珍しいということになる。本
実施形態はこのような稀少度の値をログ特徴の根拠とし
ている。
【0037】稀少度判定部16は、稀少度計算部15に
より計算された稀少度に基づいて、変換ログの特徴が存
在するか否かを判定する。
【0038】出力部17は、稀少度判定部16により特
徴が存在すると判定された場合には、変換ログの特徴と
なるイベントに関する情報を出力する。例えば、この情
報として、変換ログ名、変換ログの内容、上述したイベ
ントの発生順序、発生確率、稀少度等が出力される。
【0039】また、ログ解析装置は、データ値分類部1
8を有する。データ値分類部18は、稀少度判定部16
により特徴が存在しないと判断された場合、イベントに
関するプログラムの記述の実行の際に用いられるデータ
に基づいて、各イベントについて、それぞれ、所定の分
類基準に従って、分類情報を生成する。そして、データ
値分類部18は、各イベントに対して、生成された分類
情報を付与する。
【0040】そして、上述したイベント発生確率計算部
14は、イベントに関するプログラムの記述と、与えら
れた分類情報に基づいて、イベントの発生確率を発生順
序ごとに計算する。具体的な処理については、後述す
る。
【0041】そして、上述した稀少度計算部15は、計
算された発生確率に基づいて、発生頻度(又は非発生頻
度)の低さを示す稀少度を計算する。上述した稀少度判
定部16は、稀少度計算部15により計算された稀少度
に基づいて、ログの特徴が存在するか否かを判定する。
上述した出力部17は、計算された稀少度に基づいて、
各ログの特徴となるイベントに関する情報を出力する。
【0042】(ログ解析方法)図4は、上述した構成を
有するログ解析装置を用いたログ解析方法を説明するた
めのフローチャート図である。
【0043】この対象プログラムについては、本実施の
形態では、特に限定しない。このため、どのような言語
で上記対象プログラムを記載した場合にも適用できる
が、本実施の形態では、その一例として、図6に示すよ
うなC言語で記載された対象プログラムを実行させた場
合のログの解析方法を具体例として用いながら、説明す
る。
【0044】図6に示すプログラムでは、関数main 内
で、関数f と関数k を、引数が0, 4,8, 12, 16 の5 通
りで呼び出している。関数f と関数kはともに、関数g
及び関数h を使い、テーブルprice とテーブルfee のデ
ータを参照しながら、tax 値を計算している。即ち、同
一プログラムを複数回(引数が0, 4, 8, 12, 16 )繰り
返して実行している。
【0045】ここで、上述したように、f、g、h、k
は対象プログラムの記述(関数記述)である。これらの
関数は、実行時に参照した引数と関連づけられている。
そして、イベントとは、デバッグ環境全体で予め定義さ
れているものであり、識別可能な事象をいう。例えば、
マウスが押されたとか、キー操作がされた等の事象であ
る。そして、イベントが発生するためには、イベントご
とにプログラム記述が必要であり、イベントの発生によ
り、プログラム記述が実行され、必要に応じて引数デー
タが参照される。
【0046】イベントの記録の仕方には種々の仕方があ
るが、本明細書では、その一例として、発生したイベン
トに関連する情報であるプログラムの記述や引数等を用
いて記録することにより、イベントを記録する場合につ
いて説明する。
【0047】以下、上記イベントが記録されていること
は、イベントに関する情報(プログラム記述や引数等)
が記録されていることをいう。先ず、ステップS10で
は、作業者は、対象プログラムの動作により出力された
ログを入力部10により入力する。例えば、図に示すプ
ログラムを複数回繰り返し実行する(main関数のi
を0、4,8,12,16に変えて実行)ことにより、
発生したイベントを発生順序ごとに記録したログがデバ
ッグから出力されたとする。この場合には、作業者は、
上記ログを入力部10により入力する。
【0048】ステップS15では、ログ生成部11は、
入力されたログから複数のログを生成する。この処理に
ついて具体的に説明する。上記ログが入力部10により
入力された場合を考える。ログ生成部11は、上記ログ
に基づいて、各イベントを、実行回(i=0、4,8,
12,16)ごとに発生順序に従って、それぞれ記録さ
れた複数のログを生成する。このようにして生成された
複数のログを図7に示す。図7において、実行回1(i
=0)のとき発生したイベントを発生順序に従って、記
録したログをログ1としている。同様にして、実行回2
〜5のとき発生したイベントを発生順序に従って、記録
したログをログ2〜5としている。
【0049】ステップS20では、イベント列生成部1
2は、複数のログ中のイベントの傾向に基づいて、イベ
ントを発生順序で記録したイベント列を生成する。
【0050】具体的には、イベント列生成部12は、複
数のログ中のイベントに関する情報(関数記述等)の傾
向に基づいて、イベントに関する情報(関数記述等)を
発生順序で記録したイベント列を生成する。
【0051】この処理について、図を用いて具体的に説
明する。図7に示すように、各ログ(ログ1〜5)にお
いては、各イベントがその発生順序で記録されている。
そして、例えば、これらの複数のログは出力部17に送
られ、出力部17から出力される。これにより、作業者
は、複数のログ中のイベントの傾向がわかる。そして、
作業者は、例えば、入力部10により、イベントに関す
るプログラム関数記述を上記発生順序で記録されたイベ
ント列(f g h g h g h g h k g h g h g h gh)を指定
し、上記イベント列を生成する旨を入力する。
【0052】なお、イベント列は、後述する変換ログに
変換するための基準となるものであるが、変換された変
換ログの特徴が判定できるようにできれば、イベント列
の指定の仕方については、特に本実施の形態では、限定
しない。
【0053】そして、入力されたイベント列の生成の旨
に基づいて、イベント列生成部12は、イベント列を生
成する。イベント列生成部12により生成されたイベン
ト列と、上記複数のログは、ログ変換部13へ送られ
る。
【0054】ステップS30では、ログ変換部13は、
生成されたイベント列のイベント(イベントに関する情
報)と、各ログを構成するイベント(イベントに関する
情報)とをそれぞれ比較し、比較結果に基づいて、各ロ
グをそれぞれ変換ログに変換する。図7に示す複数のロ
グを用いた具体的な処理を以下に示す。
【0055】ログ変換部13は、発生順序ごとに、イベ
ント列の各イベントに関するプログラム記述と、各ログ
の各イベントに関するプログラム記述とを比較する。そ
して、ログ変換部13は、記述が一致する場合には、そ
の記述を用いて変換ログのイベントに関する情報とす
る。そして、ある発生順序で、ログ中にイベントが記録
されていない場合には、その旨を示す情報を変換ログの
イベントに関する情報とする。
【0056】例えば、ログ1の発生順序2番目のイベン
トに関する関数記述はgである。一方、イベント列の発
生順序2番目のイベントに関する関数記述は、gであ
る。このため、ログ変換部13は、変換ログ1の発生順
序2番目のイベントに関する情報として、gを用いる。
【0057】例えば、あるログの発生順序n番目のイベ
ントが記録されておらず、イベント列の発生順序n番目
のイベントに関する関数記述がfである場合には、ログ
変換部13は、上記あるログの変換ログの発生順序n番
目のイベントに関する情報として、例えば、−マークを
用いる。
【0058】ログ変換部13は、上記変換処理により、
イベントに関する情報を発生順序に従って記録すること
により、変換ログを生成する。
【0059】ログ1〜5について上述のようにして変換
処理した変換ログを図8に示す。図7に示す各ログにつ
いては、イベント列のイベントに関する関数記述が全て
記録されているので、ログ変換部13は、各ログに対す
る変換ログとして、f g h gh g h g h k g h g h g h g
hを生成する。
【0060】一方、例えば、ログ5の代わりに、f g h
g h g h g ( )g h g h g h g hのように途中で関数
kを用いたイベントが発生していないようなログ5Xが
存在する場合には、各ログに対する変換ログは、図9に
示すようになる。
【0061】なお、ログ変換部13による変換処理は、
他にも種々の方法があり、本実施の形態では、上述の方
法に特に限定しない。そして、ログ変換部13により生
成された各変換ログは、イベント発生確率計算部14へ
送られる。また、ログ変換部13は、各変換ログの内容
を、図示しないレジスタ等に保持しておく。
【0062】ステップS40では、イベント発生確率計
算部14は、イベントに関するプログラムの記述に基づ
いて、各イベントの発生確率を発生順序ごとに計算す
る。この各イベントとは、上記イベント列に記録された
各イベントである。
【0063】イベント発生確率計算部14は、ログ変換
部13が生成した各変換ログのイベントに関する情報を
全て参照し、各発生順序において、イベントが発生した
か否かを調べる。そして、イベント発生確率計算部14
は、各発生順序において、イベントの発生確率を計算す
る。この発生確率は、ある発生順序において、イベント
が発生する確率を示すので、この発生確率や後述する稀
少度により、イベントの発生が珍しいか否かを判断でき
る。
【0064】図8を用いて説明する。図8においては、
イベント列の発生順序1番目の関数fを用いたイベント
(以下、イベントfという)が発生している変換ログ数
は、5つであり、当該イベントfの発生確率は、5(イ
ベントfが発生している変換ログ数)/5(全ての変換
ログ数)となる。このようにして、イベント列の全ての
発生順序について、イベントの発生確率を計算した結果
を図10に示す。図10に示すように、各イベントの発
生確率は、すべて1となる。
【0065】なお、例えば、図9に示すように、変換ロ
グ5でなく、変換ログ5Xが用いられている場合には、
イベント列の発生順序10番目のイベントkが発生して
いるのは、5つの変換ログ中4つであり、発生順序10
番目のイベントkの発生確率は、4/5となる。このよ
うにして、図9の場合の変換ログに対して、イベント列
の全ての発生順序について、イベントの発生確率を計算
した結果を図11に示す。そして、各イベントの発生確
率は、稀少度計算部15に送られる。また、イベント発
生確率計算部14は、各イベントの発生確率を、図示し
ないレジスタ等に保持しておく。
【0066】ステップS50では、稀少度計算部15
は、イベント発生確率計算部14により計算された各イ
ベントについての発生確率に基づいて、イベントの発生
頻度の低さ又はイベントの非発生の頻度の低さを示す稀
少度を計算する。
【0067】ここで、イベントの稀少度とは、そのイベ
ントが発生したこと、発生しなかったことが、どれだけ
珍しい現象であるかを示す。稀少度の定義の仕方には、
種々の方法があり、本実施の形態では、特に限定しな
い。ここでは、その一例として、以下に示す式により、
稀少度を定義し、稀少度の値が大きくなるほどそのイベ
ントは(発生又は非発生)が珍しいということとする。
【0068】ある発生順序におけるイベントの発生確率
をpとしたとき、そのイベントが発生したことがどれだ
け珍しいかを示す稀少度R1(発生頻度の低さ)は、そ
のイベントの発生確率をpとして、例えば、以下の式で
与えられる。
【0069】R1=−log(p) ここで、logは自然対数である。
【0070】一方、ある発生順序におけるイベントの発
生確率をpとしたとき、そのイベントが発生していない
ことがどれだけ珍しいかを示す稀少度R2(非発生頻度
の低さ)は、そのイベントの発生確率をpとして、例え
ば、以下の式で与えられる。
【0071】R2=−log(1−p) ここで、logは自然対数である。
【0072】そして、稀少度計算部15は、変換ログに
おいて、発生順序ごとに、イベントが発生している場合
には、稀少度R1を計算し、イベントが発生していない
場合には、稀少度R2を計算する。これらの計算結果
は、変換ログ、発生順序と対応づけられる。このように
して図8に示す複数の変換ログに対して、稀少度を計算
した結果を図12に示す。図に示すように、変換ログ1
〜5の全ての発生順序に対して、稀少度は、0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 と、全て0 となる。
【0073】一方、図9に示す複数の変換ログに対し
て、稀少度を計算した結果を図13に示す。図に示すよ
うに、稀少度は、変換ログ1〜4の全ての発生順序に対
して 00 0 0 0 0 0 0 0 0 0.1 0 0 0 0 0 0 0 となる
が、変換ログ5Xの全ての発生順序に対しては、0 0 0
0 0 0 0 0 0 0 0.7 0 0 0 0 0 0 0 となる。変換ログ及
び発生順序と対応づけられた稀少度は、稀少度判定部1
6に送られる。
【0074】ステップS60では、稀少度判定部16
は、稀少度計算部15により計算された各イベントの稀
少度に基づいて、各変換ログの特徴が存在するか否かを
判定する。存在する場合には、ステップS120へ移行
する。存在しない場合には、ステップS70へ移行す
る。
【0075】図8に示す変換ログ1〜5の場合について先
ず説明する。稀少度判定部16は、各変換ログの発生順
序に対して、計算された稀少度は、図12に示すよう
に、全て0であるので、各イベントが発生した頻度は高
く、各イベントが発生したことは、あまり珍しくないと
いうことになる。この場合には、稀少度判定部16は、
各変換ログの特徴は存在しないと判定する。
【0076】これに対して、図9に示す変換ログ(1,
2,3,4,5X)の場合について考える。この場合、
各変換ログにおいては、発生順序10番目以外の稀少度
は、0である。一方、発生順序10番目の稀少度は、変
換ログ1〜4は、0.1であり、変換ログ5Xについて
は、0.7である。稀少度の高い値をもつ変換ログが存
在するので、稀少度判定部16は、変換ログの特徴があ
ると判定し、変換ログ5Xの発生順序10番目のイベン
トkが発生しなかったことが特徴と判定する。
【0077】特徴があると判定した場合には、稀少度判
定部16は、変換ログ5Xの特徴(変換ログ5Xの発生
順序10番目のイベントkが発生しなかったこと)の旨
を出力部17へ送る。また、稀少度判定部16は、ログ
変換部13から、上記変換ログ(5X)の内容を読み出
し、出力部17へ送る。また、稀少度判定部16は、上
記変換ログの特徴となる発生順序(10番目)のイベン
ト(イベントk)の発生確率をイベント発生確率計算部
14から読み出し、出力部17へ送る。また、稀少度判
定部16は、上記変換ログの特徴となる発生順序(10
番目)のイベント(イベントk)の稀少度も出力部17
へ送る。
【0078】ステップS120にて、出力部17は、変
換ログ名、変換ログの内容、発生順序、イベント、発生
確率(又は非発生確率)、稀少度等を出力する。
【0079】例えば、上述の場合には、出力部17は、
稀少度判定部16から送られてきた情報(変換ログ5X
の特徴(変換ログ5Xの発生順序10番目のイベントk
が発生しなかったこと)の旨、変換ログ(5X)の内
容、上記変換ログ(5X)の特徴となる発生順序(10
番目)、その発生順序のイベント(イベントk)の発生
確率、稀少度)を出力する。
【0080】稀少度判定部16は、変換ログの特徴が存
在しないと判断した場合には、その旨をデータ値分類部
18に知らせる。
【0081】ステップS70では、データ値分類部18
は、稀少度判定部16により特徴が存在しないと判定さ
れた場合、イベントに関するプログラムの記述の実行の
際に用いられるデータに基づいて、各イベントについ
て、それぞれ、所定の分類基準に従って、分類情報を生
成する。そして、データ値分類部18は、各イベントに
対して、生成された分類情報を付与する。
【0082】図7を用いて具体的に説明する。データ値
分類部18は、所定の分類基準として、例えば、引数の
データ値が0以上であるか0未満であるかの基準に従っ
て、分類情報を生成する。例えば、データ値分類部18
は、図7に示すログ1の発生順序5番目のイベント発生
に用いられる関数hの引数値70は、0以上であるの
で、0以上である旨を示す分類情報(+マーク)を生成
する。そして、データ値分類部18は、その分類情報を
ログ1の発生順序5番目のイベント発生に用いられる関
数hに与える。
【0083】同じようにして、データ値分類部18は、
ログ3の発生順序9番目のイベント発生に用いられる関
数hの引数値−10は、0未満であるので、0未満であ
る旨を示す分類情報(−マーク)を生成する。そして、
データ分類部は、その分類情報をログ3の発生順序9番
目のイベント発生に用いられる関数hに与える。
【0084】このようにして、各イベントの発生に用い
られる関数に分類情報を与えた後のログ結果を図14に
示す。
【0085】なお、分類基準については、ログ特徴が存
在するような分類基準であれば本実施の形態では、特に
限定しない。例えば、データ値を統計処理した結果に基
づいて、分類基準を定めたり、プログラムのソースコー
ドを用いた境界値分析等を用いることで、分類基準を定
めることも可能である。また、複数の分類基準を設定
し、データ値分類部18は、複数の分類基準に従って、
分類情報を生成することも可能である。
【0086】そして、データ値分類部18は、分類情報
が与えられた各ログをイベント発生確率計算部14に送
る。なお、データ値分類部18は、分類情報が与えられ
た各ログを、図示しないレジスタ等に保持しておく。ス
テップS80では、イベント発生確率計算部14は、イ
ベントに関するプログラムの記述(f、g、h、k)
と、与えられた分類情報(+、−)に基づいて、イベン
トの発生確率を発生順序ごとに計算する。
【0087】図14を用いて説明する。図14におい
て、イベント発生確率計算部14は、発生順序1番目の
イベントの発生確率を以下のように計算する。即ち、分
類情報+が与えられた関数fを用いたイベント(以下、
イベントf+という)が発生しているログ数は、5つで
あり、当該イベントf+の発生確率は、5(イベントf
+が発生しているログ数)/5(全ログ数)となる。
【0088】一方、発生順序9番目のイベントの発生確
率を以下のように計算する。即ち、分類情報+が与えら
れた関数hを用いたイベント(以下、イベントh+とい
う)が発生しているログ数は、4つであり、当該イベン
トh+の発生確率は、4(イベントh+が発生している
ログ数/5(全てのログ数)となる。
【0089】このようにして、全ての発生順序につい
て、各イベントの発生確率を計算すると、図15に示す
ようになる。イベント発生確率計算部14は、各イベン
トの発生確率を稀少度計算部15に送る。なお、イベン
ト発生確率計算部14は、各イベントの発生確率を図示
しないレジスタ等に保持しておく。ステップS90で
は、稀少度計算部15は、イベント発生確率計算部14
により計算された各イベントについての発生確率に基づ
いて、発生頻度の低さ又は非発生の頻度の低さを示す稀
少度を計算する。イベントの稀少度R1,R2は、例え
ば、ステップS50で示した式で表せる。
【0090】例えば、図14に示すようなログ1、2,
4,5において、発生順序(1〜18)において、イベ
ントが発生した場合には、稀少度R1、イベントが発生
しなかった場合には、稀少度R2を計算すると、図16
に示すように、発生順序に対して、稀少度は、0 0 0 0
0 0 0 0 0.1 0 0 0 0 0 0 0 0 0 となる。
【0091】一方、ログ3において、発生順序(1〜1
8)において、イベントが発生した場合には、稀少度R
1、イベントが発生しなかった場合には、稀少度R2を
計算すると、図16に示すように、発生順序に対して、0
0 0 0 0 0 0 0 0 0 0.7 0 00 0 0 0 0 となる。計算さ
れた各稀少度は、ログ及び発生順序と対応づけられて、
稀少度判定部16に送られる。
【0092】ステップS100では、稀少度判定部16
は、稀少度計算部15により計算された各イベントの稀
少度に基づいて、各ログの特徴が存在するか否かを判定
する。存在する場合には、ステップS120へ移行す
る。存在しない場合には、ステップS110へ移行す
る。
【0093】図14に示すログ1〜5の場合について説明
する。各ログにおいては、発生順序9番目以外の稀少度
は、0である。一方、発生順序9番目の稀少度は、ログ
1、2,4,5は、0.1であり、ログ3については、
0.7である。ログ3の発生順序9番目の稀少度は高い
ので、稀少度判定部16はログの特徴があると判定し、
ログ3の発生順序9番目のイベントh+が発生しなかっ
たことが特徴と判定する。
【0094】特徴があると判定した場合には、稀少度判
定部16は、ログ3の特徴(ログ3の発生順序9番目の
イベントh+が発生しなかったこと)の旨を出力部17
へ送る。また、稀少度判定部16は、データ値分類部1
8から、分類情報が与えられたログ3の内容を読み出
し、出力部17へ送る。また、稀少度判定部16は、ロ
グ3の特徴となる発生順序(9番目)のイベント(イベ
ントh+)の発生確率をイベント発生確率計算部14か
ら読み出し、出力部17へ送る。また、稀少度判定部1
6は、上記ログ3の特徴となる発生順序(9番目)のイ
ベント(イベントh+)の稀少度も出力部17へ送る。
【0095】なお、特徴がないと判定された場合には、
その旨が出力部17に送られる。
【0096】ステップS110では、出力部17は、特
徴がない旨を出力する。これにより、作業者は、別のロ
グを入力したり、分類基準を変更する旨を入力する等の
動作を行うことになる。
【0097】ステップS120にて、出力部17は、ロ
グ名、ログの内容、発生順序、イベント、発生確率(又
は非発生確率)、稀少度等を出力する。
【0098】例えば、上述の場合には、出力部17は、
稀少度判定部16から送られてきた情報(ログ3の特徴
(ログ3の発生順序9番目のイベントh+が発生しなか
ったこと)の旨、ログ(3)の内容、上記ログ3の特徴
となる発生順序(9番目)、その発生順序のイベント
(イベントh+)の発生確率、稀少度)を出力する。
【0099】これにより、ログを精査する作業者に有益
なデバッグ支援情報が提供される。作業者は、上述した
特徴を考慮してログ3の精査を行えばよいという指針を
得ることができ、デバッグ作業を効率的に行うことがで
きる。例えば、作業者は、ログ3について、9番目のイ
ベントh+が発生しなかったことから、ログ3に関する
プログラム実行において、イベント発生に関する関数の
うち、発生順序9番目に登場する関数hの引数に0未満
のデータ値が用いられることに関して、デバッグ作業を
行えば、デバッグを解消できる可能性が高く、デバッグ
作業を効率的に行える。
【0100】なお、ログを解析する第1の処理として、
以下のステップS10からS60までの処理では、デー
タ値(引数値)を考慮しないで、ログ解析を行う。関数
の違いや、その関数の実行順序(イベントの発生順序)
の違いをデータの違いに優先して考慮してログ解析を行
うことで、ログの特徴を正しく抽出できるからである。
【0101】(作用効果)本実施の形態によれば、先
ず、イベントに関するプログラム記述に基づいて、発生
順序ごとに、イベントの発生確率や稀少度を計算し、発
生順序ごとに、イベントの発生、発生しないことが珍し
い(特徴的か)を判定して、変換ログの特徴が存在する
か否かを判定する。そして、特徴が存在すれば、その特
徴となるイベントに関する情報が出力される。
【0102】このように、本実施の形態では、先ず、プ
ログラム記述の実行の際に用いられるデータを考慮しな
いで、計算された稀少度に基づいて、変換ログの特徴が
存在するか否かを判定し、特徴が存在しない場合でも、
再度、入力するログを考えたり、ログの解析方法を考え
たりせず、以下のようにして効率的にログを解析するこ
とができる。
【0103】即ち、上記特徴が存在しない場合でも、イ
ベントに関するプログラムの記述及び該記述の実行の際
に用いられるデータに基づいて、前記各イベントの発生
確率を、前記発生順序ごとに、計算し、発生確率又は稀
少度に基づいて、各ログの特徴となるイベントに関する
情報を出力することができる。このため、プログラム記
述やイベント発生順序(プログラム記述実行順序)に加
えて、データも考慮して、発生確率や稀少度を計算し、
これらの発生確率や稀少度に基づいて、ログ特徴を抽出
することができるので、プログラム記述や発生順序を考
慮してもログ特徴が抽出できない場合でも、速やかに、
ログ特徴を抽出することが可能となる。
【0104】従って、従来技術に比べて、作業者にとっ
て一層デバッグ作業に効率的なログ解析装置、方法を提
供することが可能となる。
【0105】(実施の形態1の変形例1)なお、ログ解
析装置は、すべての発生順序において記録されたイベン
トに関するプログラム記述が上記複数のログ間で共通す
るか否かを判定する判定部(図示せず)を設けるように
してもよい。
【0106】そして、ステップS10の後、判定部(図
示せず)が、複数のログについて、上記判定を行い、共
通する場合(例えば、図7のケースのような場合であっ
て、複数のログ1〜5において、すべての発生順序1〜
18でプログラム記述(f、g等)が共通している場合
である)には、ステップS10からステップS60の処
理を行わず、ステップS70からS120の処理を行う
ようにしてもよい。この場合には、プログラム記述だけ
を考慮してログ解析しても、ログの特徴が抽出できない
からである。一方、共通しない場合には、ステップS2
0からS60の処理を行うようにする。
【0107】(実施の形態1の変形例2)ログ解析装置
は、特徴度計算部(図示せず)を設けても良い。特徴度
計算部は、計算された各イベントの発生確率に基づい
て、各ログ(変換ログ等)の特徴度を計算することがで
きる。
【0108】上述のフローチャート図においては、例え
ば、ステップS80で各イベントについての発生確率に
ついて計算した後、以下の処理を行うようにしてもよ
い。
【0109】即ち、各イベントについての発生確率が特
徴度計算部へ送られる。特徴度計算部は、各ログの発生
順序に対して、イベントが発生している場合には、イベ
ントの発生確率を、イベントが発生していない場合に
は、1−発生確率(非発生確率)を与えたマトリックス
を生成する(図17)。
【0110】そして、特徴度計算部は、図17に示すよ
うに、各ログごとに、各発生順序に与えられた発生確率
又は非発生確率を乗算することで、特徴度を計算する。
【0111】例えば、図17のような場合では、ログ
1,2、4,5は、0.8であるのに対して、ログ3は
0,2となる。このため、この特徴度が出力されれば、
ログ3が特徴ログと作業者が判断できる。
【0112】同様に、上述のフローチャート図におい
て、ステップS40で各イベントについての発生確率に
ついて計算した後、上記特徴度計算部による各変換ログ
の特徴度の計算を行って、その特徴度が出力部17によ
り出力されるようにしても良い。
【0113】また、特徴計算部は、計算された各稀少度
に基づいて、各ログの特徴度を計算することも可能であ
る。
【0114】上述のフローチャート図においては、例え
ば、ステップS90で各稀少度について計算した後、以
下の処理を行うようにしてもよい。
【0115】図18を用いて具体的に説明する。稀少度
計算部15により計算された各稀少度が特徴度計算部へ
送られる。特徴度計算部は、各ログごとに、各発生順序
に与えられた稀少度を加算することで、特徴度を計算す
る。
【0116】例えば、図18のような場合では、ログ
1,2、4,5は、0.1であるのに対して、ログ3は
0,7となる。このため、この特徴度が出力されれば、
ログ3が特徴ログと作業者が判断できる。
【0117】同様に、上述のフローチャート図におい
て、ステップS50で各イベントについての発生確率に
ついて計算した後、上記特徴度計算部による各変換ログ
の特徴度の計算を行って、その特徴度が出力部17によ
り出力されるようにしても良い。
【0118】このような特徴度計算部による計算結果を
用いれば、ログの特徴を速やかに作業者が知ることがで
きる。
【0119】実施の形態2.実施の形態2では、プログ
ラムの記述や実行順序を考慮してもログ特徴が抽出でき
ない場合でも、メモリ領域への参照も考慮して、ログ解
析を行うことで、ログ特徴を抽出するログ解析装置、方
法を提供することを目的としている。
【0120】図19は、実施の形態2であるログ解析装
置の構成を示す図である。図において、実施の形態1の
構成と同一構成については同一符号を付してその説明を
省略する。実施の形態2のログ解析装置の構成におい
て、実施の形態1のログ解析装置の構成と異なる点は、
以下の点にある。
【0121】ログ解析装置は、ログ生成部11を有せ
ず、領域指定部20、ログ分類部21、分類ログ生成部
22、特徴度計算部19を有する。
【0122】領域指定部20を用いて、イベント発生に
用いられるプログラム記述の実行の際に参照可能である
メモリ領域を作業者が指定する。例えば、作業者が対象
プログラム中で用いられている配列変数を指定する。こ
れは、その配列変数のメモリ領域に対して、どのような
関数が実行の際に参照したかについて、ログとして記録
される。このため、例えば、所定の配列変数にバグがあ
りそうだという情報を予め取得している場合には、作業
者は、上記配列変数を領域指定部20を用いて指定する
ことで、後述するログ解析により、デバッグ作業に有効
な情報が得られる可能性があるからである。
【0123】ログ分類部21は、指定されたメモリ領域
に対する参照処理を伴うか否かに基づいて、各イベント
を分類する。
【0124】分類ログ生成部22は、参照処理を伴うメ
モリ領域ごとに、分類されたイベントを、発生順序に従
って、記録した複数の分類ログを生成する。具体的な処
理は後述する。
【0125】特徴計算部は、稀少度計算部15により計
算された各稀少度に基づいて、各ログの特徴度を計算す
る。 (ログ解析方法)図20は、上述したログ解析装置を用
いたログ解析方法を示すフローチャート図である。本実
施の形態では、一例として、図21に示すようなC言語
で記載された対象プログラムを実行させた場合に得られ
るログの解析方法を具体例として用いながら、説明す
る。
【0126】上記対象プログラムにおいては、関数main
から、関数init、clean、calc をそれぞれ12 回(i=1
〜12)、3 回(i=4,8,12)、4 回(i=3,6,
9、12)呼び出している。本プログラムでは、関数in
it、関数cleanがあるメモリ領域を参照した場合、その
メモリ領域に対して、関数calcは参照してはいけない
のだが、i=12 の時にvals〔12〕のメモリ領域に対し
て参照してしまっている。以下、このバグを見つけるの
に有効な情報をログ特徴として出力する処理を具体例と
して用いながら、実施の形態2のログ解析方法について
説明する。
【0127】先ず、実施の形態1で示すステップS10
で、作業者は、対象プログラムの実行により発生した一
連のイベントが発生順序に従って、記録されたログを入
力部10により入力する。図21に示す対象プログラム
を実行した結果のログを図22に示す。実行結果とし
て、このようなログしか得られなかった場合、又は予
め、所定の配列変数への参照段階にバグがありそうだと
いう情報を取得していたような場合には、その旨を作業
者が入力部10により入力する。これにより、上記その
旨が各部に送られ、上述した実施の形態1の処理ではな
く、以下のような処理が行われる。このようなログに対
しては、従来技術や、実施の形態1のログ解析方法では
ログ特徴を抽出できないからである。
【0128】ステップS200では、作業者は、プログ
ラム中で用いられている所定の配列変数の領域(以下、
単に配列変数という)を領域指定部20を用いて、指定
する。
【0129】図22に示すログが得られたような場合に
は、例えば、作業者は、領域指定部20を用いて配列変
数vals[1]〜[12](プログラムにおいてどの関数や記述
コードも共通に参照できるグローバル配列変数) を指
定する。指定された全ての配列変数及び入力されたログ
は、ログ分類部21へ送られる。
【0130】ステップS210では、ログ分類部21
は、各イベントの発生にあたって、領域指定部20によ
り指定された配列変数に対する参照処理を伴うか否かに
基づいて、ログ中の各イベントを分類する。図22を用
いて説明する。
【0131】例えば、配列変数vals[1]の参照処理を伴
うイベントに関するプログラム記述は、init;vals[1]
であり、配列変数vals[2]の参照処理を伴うイベントに
関するプログラム記述は、init;vals[2]であり、配列
変数vals[3]の参照処理を伴うイベントに関するプログ
ラム記述は、init;vals[3]、calc;vals[3]であ
り、...のようにして、ログ分類部21は、参照して
いる配列変数vals[i](i=1から12)に基づいて、
各イベントを分類する。
【0132】ステップS220では、分類ログ生成部2
2は、分類されたイベントを、発生順序に従って、記録
した複数の分類ログを生成する。
【0133】図22を用いて具体的に説明する。分類ロ
グ生成部22は、ステップS210にて分類された各イ
ベントに基づいて、配列変数vals[1]の参照処理を伴う
イベントに関するプログラム記述を、発生順序に従っ
て、記録したログである分類ログ1を生成する。同様に
して、分類ログ生成部22は、配列変数vals[2]の参照
処理を伴うイベントに関するプログラム記述を、発生順
序に従って、記録したログである分類ログ2を生成す
る。このようにして、分類ログ生成部22は、複数の分
類ログ1〜12を生成する(図23)。そして、分類ロ
グ生成部22は、生成した複数の分類ログをログ変換部
13へ送る。
【0134】ステップS230では、ログ変換部13
は、各分類ログを、それぞれ、変換ログに変換する。
【0135】先ず、分類ログ生成部22から複数の分類
ログがログ変換部13へ送られると、ログ変換部13
は、イベント列生成部12に対して、所定のイベント列
を生成するように指示する。イベント列生成部12は、
分類ログ生成部22により生成された複数の分類ログの
イベント(イベントに関する情報)の傾向に基づいて、
イベント列を生成する。例えば、図23のような場合に
は、イベント列生成部12は、各分類ログに記録されて
いるイベントに関するプログラム記述を発生順序に記録
したイベント列(init;vals,clean;v
als,calc;vals)を生成する。
【0136】ログ変換部13は、発生順序ごとに、イベ
ント列の各イベントに関するプログラム記述と、各分類
ログの各イベントに関するプログラム記述とを比較す
る。そして、ログ変換部13は、記述が一致する場合に
は、その記述を用いて変換ログのイベントに関する情報
とする。そして、ある発生順序で、分類ログ中にイベン
トが記録されていない場合には、その旨を示す情報を変
換ログのイベントに関する情報とする。
【0137】例えば、分類ログ1の記録順序1番目のイ
ベントに関する記述はinit;valsであり(配列
数は考慮しない)、イベント列の発生順序1番目のイベ
ントに関する記述は、init;valsである。この
ため、ログ変換部13は、変換ログ1の発生順序1番目
のイベントに関する情報として、init;valsを
用いる。
【0138】また、例えば、分類ログ1の記録順序2番
目のイベントが記録されておらず、イベント列の発生順
序2番目のイベントに関する記述は、clean;va
lsである場合には、ログ変換部13は、例えば、変換
ログ1の発生順序2番目のイベントに関する情報とし
て、イベントは存在しない旨を示す−マークを用いる。
【0139】また、分類ログ3の記録順序2番目のイベ
ントに関する記述はcalc;valsである場合、イ
ベント列の発生順序2番目のイベントに関する記述cl
ean;valsとは一致しないが、イベント列の発生
順序3番目のイベントに関する記述calc;vals
と一致するので、ログ変換部13は、変換ログ3の発生
順序3番目のイベントに関する情報として、calc;
valsを用いる。この場合、ログ変換部13は、変換
ログ3の発生順序2番目のイベントに関する情報とし
て、イベントは存在しない旨を示す−マークを用いる。
【0140】このような変換規則に従って、ログ変換部
13が、分類ログ1〜5についてそれぞれ変換処理した
変換ログ1〜5を図24に示す。
【0141】なお、ログ変換部13による変換処理は、
他にも種々の方法があり、本実施の形態では、上述の方
法に特に限定しない。生成された各変換ログはイベント
発生確率計算部14に送られる。また、ログ変換部13
は、各変換ログの内容は、図示しないレジスタ等に保持
しておく。
【0142】ステップS240では、イベント発生確率
計算部14は、イベントに関する前記プログラムの記述
に基づいて、各イベントの発生確率を発生順序ごとに計
算する図24を用いて説明する。図24においては、イ
ベント列の発生順序1番目のinit;valsを用い
たイベント(以下、イベントinit)が発生している
変換ログ数は、12つであり、当該イベントinitの
発生確率は、12(イベントが発生している変換ログ
数)/12(全ての変換ログ数)となる。イベント列の
発生順序2番目のclean;valsを用いたイベン
ト(以下、イベントclean)が発生している変換ロ
グ数は、3つであり、当該イベントの発生確率は、3
(イベントが発生している変換ログ数)/12(全ての
ログ変換数)となる。
【0143】イベント列の発生順序3番目のcalc;
valsを用いたイベント(以下、イベントcalc)
が発生している変換ログ数は、4つであり、当該イベン
トの発生確率は、4(イベントが発生している変換ログ
数)/12(全ての変換ログ数)となる。
【0144】このようにして計算された各イベントの発
生確率を図25に示す。計算された各イベントの発生確
率は、稀少度計算部15へ送られる。なお、イベント発
生確率計算部14は、各イベントの発生確率を、図示し
ないレジスタ等に保持しておく。
【0145】ステップS250では、稀少度計算部15
は、イベント発生確率計算部14により計算された各イ
ベントについての発生確率に基づいて、発生頻度の低さ
又は非発生の頻度の低さを示す稀少度を計算する。
【0146】例えば、図24に示すような変換ログ1〜
12において、発生順序(1〜3)において、ステップ
S50と同様にして、イベントが発生した場合には、稀
少度R1、イベントが発生しなかった場合には、稀少度
R2を計算すると、変換ログ1〜12の全ての発生順序
(1〜3)に対して、稀少度は、図26に示す結果とな
る。計算された各稀少度は、変換ログ及び発生順序と対
応づけられて、稀少度判定部16に送られる。
【0147】ステップS255では、稀少度判定部16
は、稀少度計算部15により計算された各イベントの稀
少度に基づいて、各変換ログの特徴が存在するか否かを
判定する。存在する場合には、ステップS257へ移行
する。存在しない場合には、ステップS260へ移行す
る。
【0148】存在する場合には、ステップS257に
て、変換ログの特徴となるイベントに関する情報が出力
部17にて出力される。ここで、特徴となるイベントに
関する情報は、実施の形態1の場合と同様に、各部から
稀少度判定部16を介して、出力部17に送られる。
【0149】図26の場合には、特徴といえる稀少度
(値の大きな稀少度)と、特徴といえない稀少度(値の
小さな稀少度)が同等の割合で混在しているので、例え
ば、稀少度判定部16は、特徴が存在しないと判定す
る。存在しない場合には、稀少度判定部16は、その旨
と、ログ及び発生順序と対応づけられた稀少度とを特徴
度計算部19へ送る。
【0150】ステップS260では、特徴度計算部19
は、計算された各稀少度に基づいて、各ログの特徴度を
計算する。
【0151】図26を用いて具体的に説明する。稀少度
計算部15により計算された各稀少度が特徴度計算部1
9へ送られる。なお、特徴度計算部19には、ログ変換
部13から全ての変換ログの内容が送られ、イベント発
生確率計算部14から各イベントの発生確率も送られ
る。
【0152】特徴度計算部19は、例えば、各ログごと
に、各発生順序に与えられた稀少度の総和をとること
で、特徴度を計算する。例えば、図26のような場合で
は、変換ログ1の特徴度は、0(発生順序1の稀少度)
+0.12(発生順序2の稀少度)+0.17(発生順
序3の稀少度)=0.29となる。このようにして計算
された、すべての変換ログ1〜12の特徴を図27に示
す。特徴度計算部19は、計算された各特徴度のうち、
最大の特徴度を有する変換ログ、変換ログの内容、発生
順序における稀少度、特徴度を出力部17に送る。
【0153】図27に示す場合には、変換ログ12の特
徴度が1.08と他の変換ログの特徴度と比較して高い
ので、変換ログ12に関する情報が出力部17に送られ
る。
【0154】ステップS265では、出力部17では、
最大の特徴度を有する変換ログに関する情報(最大の特
徴度を有する変換ログ名、上記変換ログの特徴度、変換
ログの内容(ログに記録されているイベント)、各発生
順序の稀少度等)が出力される。なお、最大の特徴度を
有する変換ログが存在しない場合(全ての変換ログの特
徴度が0のような場合)には、出力部17に、特徴度計
算部からすべての変換ログに関する情報が送られ、出力
部17で、すべての変換ログに関する情報が出力される
ようにしてもよい。
【0155】これにより、ログを精査する作業者に有益
なデバッグ支援情報が提供される。作業者は、上述した
特徴を考慮して変換ログ12の精査を行えばよいという
指針を得ることができ、デバッグ作業を効率的に行うこ
とができる。
【0156】なお、領域指定部207 では、vals[1]〜v
als[12] までの領域を指定したが、代わりに関数calc
で参照されるvals[i] を指定して、vals[3]、vals[6]、
vals[9]、vals[12] の領域を指定することも可能であ
る。例えば、ステップS265で、最大の特徴度が他の
特徴度と比較して、差が少ないような場合や、全ての特
徴度の値が同じような場合には、ステップS200で、
作業者は、別の配列領域を指定し、上述の処理(ステッ
プS200からS265)を行うことも可能である。
【0157】また、実施の形態1の変形例2と同じよう
にして、特徴度計算部19は、計算された各イベントの
発生確率に基づいて、各変換ログの特徴度を計算するこ
ともできる。例えば、特徴度計算部19は、各変換ログ
の発生順序に対して、イベントが発生している場合に
は、イベントの発生確率を、イベントが発生していない
場合には、1−発生確率(非発生確率)を与えたマトリ
ックスを生成する(図28)。
【0158】そして、特徴度計算部19は、実施の形態
1の変形例2と同様にして、各変換ログごとに、各発生
順序に与えられた発生確率又は非発生確率を乗算するこ
とで、特徴度を計算する。そして、計算された特徴度の
うち、最小の特徴度の変換ログに関する情報を出力部1
7に出力するようにしてもよい。
【0159】また、実施の形態1と同様に、全ての発生
順序において、記録されたイベントに関するプログラム
記述が複数の分類ログ間で各々共通する場合には、メモ
リ領域に格納されたデータを考慮し、ステップS70か
らステップS120の処理を行うことも可能である。
【0160】(作用効果)本実施の形態では、発生した
イベントに関するプログラム記述の実行の際に参照可能
であるメモリ領域を指定し、参照処理を伴うメモリ領域
ごとに、分類されたイベントを、発生順序に従って、記
録した複数の分類ログを生成する。そして、分類ログが
変換ログに変換された後、前記イベントに関するプログ
ラムの記述に基づいて、前記各イベントの発生確率を前
記発生順序ごとに、計算して、発生確率又は稀少度に基
づいて、各変換ログの特徴となるイベントに関する情報
を出力することができる。このため、プログラム記述や
イベント発生順序(プログラム記述実行順序)に加え
て、メモリ領域に対する参照処理も考慮して、発生確率
や稀少度を計算し、これらの発生確率や稀少度に基づい
て、ログ特徴を抽出することができるので、プログラム
記述や発生順序を考慮してもログ特徴が抽出できない場
合でも、速やかに、ログ特徴を抽出することが可能とな
る。
【0161】従って、従来技術に比べて、作業者にとっ
て一層デバッグ作業に効率的なログ解析装置、方法を提
供することが可能となる。
【0162】(実施の形態2の適用例1)適用例1で
は、領域指定部20による指定として、イベントに関す
る所定プログラム記述の実行の際に参照されるメモリ領
域に対する指定を作業者が行った場合について以下に説
明する。
【0163】領域指定部20を用いて作業者は、イベン
ト発生に用いられる所定のプログラム記述の実行の際に
参照されるメモリ領域を指定する。例えば、対象プログ
ラム中で用いられている所定の関数の引数として用いら
れる変数を指定する。このように指定するのは、以下の
理由のためである。即ち、その変数のメモリ領域に対し
て、どのような関数記述等が参照したかについて、ログ
として記録される。このため、所定関数の引数として用
いられる変数の使い方にバグがありそうだという情報を
予め取得している場合には、作業者は、上記変数を領域
指定部20を用いて指定することで、後述するログ解析
により、ログ特徴が抽出できる可能性が高くなるからで
ある。
【0164】(ログ解析方法)上述した適用例1に係る
ログ解析装置を用いたログ解析方法について、以下に説
明する。
【0165】先ず、作業者は、プログラムの実行により
出力されたログを取得する。例えば、対象プログラムと
して、図29に示すプログラムについて考える。本プロ
グラムでは、class A 型の変数a1 とa3 に関し、変数a1
については関数mainと関数gで参照しており、変数a3
については関数main で参照している。また、class A型
の変数a2 を関数f と関数gで参照している。
【0166】対象プログラム実行時にトレーサ等により
記録されたログを図30に示す。このログにおいては、
イベント発生に用いられるプログラム記述と、その記述
の実行時に参照したメモリ領域と、メモリ領域に格納し
たデータ値が発生順序に従って、記録されている。例え
ば、発生順序3番目のイベントに関する記録は、「a1.h
eight = 10;a1:0x10010, a1.height:0x10010 = 10」で
ある。ここで、3番目のイベントの発生にあたって、プ
ログラム記述「a1.height = 10;」を実行したこと、先
頭アドレスが0x10010 である変数a1 を参照したこと
と、先頭アドレスが0x10010 であるa1.height にデータ
値10 を格納したことが記録されている。
【0167】適用例1に係るログ解析方法について、図
20に示すフローチャート図を用いて以下に説明する。
【0168】ステップS200では、作業者は、プログ
ラム中で用いられている所定の変数の領域(以下、単に
変数という)を領域指定部20を用いて、指定する。
【0169】図30に示すログが得られたような場合に
おいて、作業者は、例えば、関数gの引数であるA 型の
変数「&a」を指定した場合について考える。図29に示
すプログラムでは、関数gの引数であるA 型の変数は、
ログ中の内容(g(a1); a1:0x10010、g(a2); a2:0x1002
0)から変数a1,a2であるとわかるので、作業者
は、領域指定部20を用いて、変数領域a1:0x10010、変
数領域a2:0x10020を指定する。
【0170】なお、作業者が「g(&a)」を指定するこ
とで、自動的に変数a1,a2を指定できるようにして
もよい。即ち、領域指定部20に、ログ内容が送られ
る。そして、作業者のg(&a)の指定に基づいて、領域
指定部20は、ログ内容を探索して、変数領域a1:0x100
10、変数領域a2:0x10020を指定するようにしてもよ
い。
【0171】指定された全ての変数及び入力されたログ
は、ログ分類部21へ送られる。
【0172】ステップS210では、ログ分類部21
は、各イベントの発生にあたって、領域指定部20によ
り指定された変数に対する参照処理を伴うか否かに基づ
いて、ログ中の各イベントを分類する。図30を用いて
説明する。
【0173】例えば、ログにおいて、変数a1の参照処
理を伴うイベントに関するプログラム記述は、図に示す
A a1、a1.height、a1.width、g(a1)、area=a1.hei
ght*a1.widthであり、また、変数a2の参照処理を伴
うイベントに関するプログラムの記述は、A a2、a2.h
eight、a2.width、g(a2)、area=a2.height*a2.wi
dthであるようにして、ログ分類部21は、変数a1、
a2への参照処理に基づいて、各イベントを分類する。
【0174】ステップS220では、分類ログ生成部2
2は、分類されたイベントを、発生順序に従って、記録
した複数の分類ログを生成する。
【0175】図30を用いて具体的に説明する。分類ロ
グ生成部22は、ステップS210にて分類された各イ
ベントに対して、変数a1の参照処理を伴うイベントに
関するプログラム記述を、発生順序に従って、記録した
ログである分類ログ1を生成する。同様にして、分類ロ
グ生成部22は、分類ログ2を生成する。生成された複
数の分類ログの一例を図31、図32に示す。分類ログ
の形態としては、いずれの形態でもよい。そして、分類
ログ生成部22は、生成した複数の分類ログをログ変換
部13へ送る。
【0176】そして、以下、ステップS230以下の処
理が行われる。各処理の方法は、実施の形態2で説明し
たとおりである。
【0177】この際、イベントの識別にあたっては、デ
ータ値の違いは考慮しない。
【0178】図32に示す場合では、ステップS230
にて、イベント列をA a、a.height、a.width、g、area
=a.height*a.widthとし、実施の形態2で示したよう
に、分類ログを変換ログに変換し、各イベントの発生確
率や稀少度を計算し、ログの特徴を出力するようにして
もよい。図32の場合には、全てのイベントの発生確率
は、1なので、S260では、すべての変換ログの特徴
度は、0となり、出力部17にすべての変換ログに関す
る情報が出力されても、作業者は、変換ログの特徴はな
いと判断できる。
【0179】その後、実施の形態1のように、引数(a
1,a2)のデータ値を考慮して、ステップS70以下
の処理を行うようにしてもよい。
【0180】なお、ステップS220の後、各分類ログ
の内容を出力部17により出力させ、プログラム記述上
の特徴の有無を出力させるようにしてもよい。
【0181】(実施の形態2の適用例2)適用例2で
は、領域指定部20による指定として、領域の大きさが
共通する複数のメモリ領域に対する指定を作業者が行っ
た場合について以下に説明する。
【0182】領域指定部20により作業者は、領域の大
きさが共通する複数のメモリ領域を指定することができ
る。例えば、整数型変数領域、文字型変数領域等を指定
することができる。ここでは、一例として、class A
型変数領域を指定した場合について考える。
【0183】(ログ解析方法)上述した適用例2に係る
ログ解析装置を用いたログ解析方法について、以下に説
明する。
【0184】先ず、作業者は、プログラムの実行により
出力されたログを取得する。対象プログラム、プログラ
ム実行時に記録されたログは、適用例1の場合と同じも
のを考える。
【0185】適用例2に係るログ解析方法について、図
20に示すフローチャート図を用いて以下に説明する。
【0186】ステップS200では、作業者は、プログ
ラム中で用いられている所定の変数の領域(以下、単に
変数という)を領域指定部20を用いて、指定する。
【0187】図30に示すログが得られたような場合に
は、作業者は、例えば、class A型変数領域を指定し
た場合について考える。図29に示すプログラムでは、
class A 型の変数は、ログ中の内容(A a1; a1:0x10
010、A a2; a2:0x10020、A a3; a2:0x10030、)
から変数a1,a2,a3であるとわかるので、作業者
は、領域指定部20を用いて、変数領域a1:0x10010、変
数領域a2:0x10020,変数領域a3:0x10030を指定す
る。
【0188】なお、適用例1と同じく、作業者が「clas
s A型」を指定することで、自動的に変数a1,a2、
a3を指定できるようにしてもよい。即ち、領域指定部
20に、ログ内容が送られる。そして、作業者の指定に
基づいて、領域指定部20は、ログ内容を探索して、変
数領域a1:0x10010、変数領域a2:0x10020,変数領域a
3:0x10030,を指定するようにしてもよい。
【0189】指定された全ての変数及び入力されたログ
は、ログ分類部21へ送られる。
【0190】ステップS210では、ログ分類部21
は、各イベントの発生にあたって、領域指定部20によ
り指定された変数に対する参照処理を伴うか否かに基づ
いて、ログ中の各イベントを分類する。図30を用いて
説明する。
【0191】図30に示すログにおいて、変数a1の参
照処理を伴うイベントに関するプログラム記述は、図に
示すA a1、a1.height、a1.width、g(a1)、area=a
1.height*a1.widthであり、また、変数a2の参照処理
を伴うイベントに関するプログラムの記述は、A a2、a
2.height、a2.width、g(a2)、area=a2.height*a
2.widthであり、変数a3の参照処理を伴うイベントに
関するプログラムの記述は、A a3、a3.height、area
=a3.height*a3.widthであるようにして、ログ分類部
21は、変数a1、a2、a3への参照処理に基づい
て、各イベントを分類する。
【0192】ステップS220では、分類ログ生成部2
2は、分類されたイベントを、発生順序に従って、記録
した複数の分類ログ(1〜3)を生成する。生成された
複数の分類ログの一例を図33、図34に示す。分類ロ
グの形態としては、いずれの形態でもよい。そして、分
類ログ生成部22は、生成した複数の分類ログをログ変
換部13へ送る。
【0193】そして、以下、ステップS230以下の処
理が行われる。各処理の方法は、実施の形態2で説明し
たとおりである。
【0194】この際、イベントの識別にあたっては、デ
ータ値の違いは考慮しない。
【0195】図34に示す場合では、ステップS230
にて、イベント列をA a、a.height、a.width、g、area
=a.height*a.widthとし、実施の形態2で示したよう
に、分類ログを変換ログに変換し、各イベントの発生確
率や稀少度を計算し、ログの特徴を出力するようにして
もよい。図の場合には、稀少度判定部16により、変換
ログの特徴が存在すると判断される(又は出力部17に
より変換ログ3の特徴度が最大である旨が出力され
る)。即ち、作業者は、変換ログ3で、a.width
を用いたイベントと、gを用いたイベントが非発生なの
が珍しいことがわかる。
【0196】そして、作業者は、変換ログ3を調べ、g
を用いたイベントが非発生なのは、areaを計算するの
に、関数gを使わずに、メイン関数の中で計算している
ので、プログラミングに間違いはないと判断する。一
方、作業者は、a.widthを用いたイベントが発生
していないのは、areaを計算するのに、heightの
値しか設定されていないので、プログラミングに間違い
があると判断できる。
【0197】なお、ステップS220の後、各分類ログ
を出力部17により出力させ、プログラム記述上の特徴
の有無を出力させるようにしてもよい。
【0198】(実施の形態2の変形例)なお、稀少度判
定部16は、ログの特徴を判定する場合に、所定の基準
値に従って、ログの特徴が存在するか否かを判定するこ
とも可能である。この所定の基準値は、作業者が入力部
10により入力することで、稀少度判定部16が保持す
るようにできる。例えば、図20に示すステップS25
5では、所定の基準値0.6以上である稀少度を有する
ログが存在する場合には、ログの特徴と判定することも
可能である。
【0199】また、ログ解析装置は、ソート部を設ける
ようにしてもよい。即ち、ソート部は、稀少度計算部1
5により計算された稀少度のうち、上記所定の基準値を
超える稀少度が複数あるような場合には、稀少度の高い
順にソートする。そして、ソート部は、ソートした稀少
度の高い順に、イベントに関する情報を出力部17に出
力させるようにしてもよい。これにより、作業者は、ソ
ートされた順にデバッグの作業を行うことができ、デバ
ッグ作業の効率化が図れる。
【0200】また、ソート部は、特徴度計算部により計
算された各特徴度のうち、所定の基準値を超える特徴度
が複数あるような場合には、特徴度の高い順にソートす
ることも可能である。そして、ソート部は、ソートした
特徴度の高い順にログに関する情報を出力部17に出力
させるようにしてもよい。
【0201】(ログ解析プログラムの実施の形態)な
お、上記ログ解析方法で説明したステップは、コンピュ
ータで、ログ解析プログラムを実行することで実現でき
る。
【0202】このコンピュータの構成を図35に示す。
コンピュータは、種々のデータ等、ログ解析プログラム
1,ログ解析プログラム2を格納するハードディスク1
00と、ハードディスク100から読み出したデータや
CPU130による演算結果を一時的に格納するメモリ
120と、種々の演算処理を行うCPU130と、所定
のデータを入出力する入出力部110と、これらのデバ
イスを相互に接続するバス140とを有する。
【0203】以下、ログ解析プログラム1,ログ解析プ
ログラム2の場合に分けて説明する。
【0204】(ログ解析プログラム1)入出力部110
は、所定のデータを入出力するものであり、例えば、デ
ータの内容を表示するディスプレイ装置、各種のデータ
をキー操作により入力するためのキーボードやマウス、
データ情報を印字するプリンタ装置等の入出力デバイス
があげられる。
【0205】入出力部110は、入力部110a及び出
力部110bの機能を有する。作業者は、入力部110
aを用いて、図示しないデバッガから出力されたログを
入力する。出力部110bは、各イベントの発生確率又
は稀少度に基づいて、各ログや各変換ログの特徴となる
イベントに関する情報を出力する。
【0206】CPU130は、ハードデスク100にイ
ンストールされたログ解析プログラム1を実行すること
により、種々の処理部として機能するものである。
【0207】具体的には、CPU130は、同一のデバ
ッグ対象プログラム(以下、対象プログラム)を複数回
繰り返し実行することにより、発生したイベントを、実
行回ごとに発生順序に従ってそれぞれ記録された複数の
ログを生成するログ生成部130gと、上記複数のログ
をそれぞれ構成するイベントに基づいて、イベントを前
記発生順序で記録したイベント列を生成するイベント列
生成部130aと、前記イベント列のイベントと、前記
各ログを構成するイベントとをそれぞれ比較し、比較結
果に基づいて、前記複数のログをそれぞれ変換ログに変
換するログ変換部130bと、前記イベントに関する前
記対象プログラムの記述に基づいて、前記各イベントの
発生確率を前記発生順序ごとに計算するイベント発生確
率計算部130cと、計算された発生確率に基づいて、
発生頻度の低さを示す稀少度を計算する稀少度計算部1
30dと、計算された稀少度に基づいて、変換ログの特
徴が存在するか否かを判定する稀少度判定部130eと
して機能する。
【0208】また、CPU130は、データ値分類部1
30iの機能も有する。
【0209】データ値分類部130iは、稀少度判定部
130eにより特徴が存在しないと判断された場合、イ
ベントに関するプログラムの記述の実行の際に用いられ
るデータに基づいて、各イベントについて、それぞれ、
所定の分類基準に従って、分類情報を生成する。そし
て、データ値分類部130iは、各イベントに対して、
生成された分類情報を付与する。
【0210】そして、上述したイベント発生確率計算部
130cは、イベントに関するプログラムの記述と、与
えられた分類情報に基づいて、イベントの発生確率を発
生順序ごとに計算する機能も有する。そして、上述した
稀少度計算部130dは、計算された発生確率に基づい
て、発生頻度の低さを示す稀少度を計算する機能も有す
る。上述した稀少度判定部130eは、稀少度計算部1
30dにより計算された稀少度に基づいて、ログの特徴
が存在するか否かを判定する機能も有する。
【0211】上記構成を有するコンピュータのハードウ
ェアにインストールされたログ解析プログラム1は、本
実施の形態では、以下の手順により実行することができ
る。
【0212】先ず、作業者は、対象プログラムの動作に
より出力されたログを入力部110aにより入力する。
すると、入力部110aにより入力された旨がバス14
0を介して(以下、バスを介しては省略する)CPU1
30に送られる。CPU130は、ハードウェア100
からログ解析プログラム1を読み出し解読することで、
上述したCPU130の各部の機能を実行可能な状態に
設定する。
【0213】次に、CPU130(ログ生成部130
g)は、入力されたログから複数のログを生成する。具
体的には、入力されたログは、CPU130に送られ
る。CPU130(ログ生成部130g)は、入力され
たログに基づいて、同一の対象プログラムを複数回繰り
返し実行することにより、発生したイベントを、実行回
ごとに発生順序に従ってそれぞれ記録された複数のログ
を生成する。
【0214】次に、CPU130(イベント列生成部1
30a)は、ログ生成部130gにより生成された複数
のログ中のイベントの傾向に基づいて、イベントを発生
順序で記録したイベント列を生成する。
【0215】次に、CPU130(ログ変換部130
b)は、生成されたイベント列のイベント(イベントに
関する情報)と、各ログを構成するイベント(イベント
に関する情報)とをそれぞれ比較し、比較結果に基づい
て、各ログをそれぞれ変換ログに変換する。
【0216】次に、CPU130(イベント発生確率計
算部130c)は、イベントに関する対象プログラムの
記述に基づいて、各イベントの発生確率を発生順序ごと
に計算する。
【0217】次に、CPU130(稀少度計算部130
e)は、イベント発生確率計算部130cにより計算さ
れた各イベントについての発生確率に基づいて、イベン
トの発生頻度の低さ又はイベントの非発生の頻度の低さ
を示す稀少度を計算する。
【0218】次に、CPU130(稀少度判定部130
e)は、稀少度計算部130dにより計算された各イベ
ントの稀少度に基づいて、各変換ログの特徴が存在する
か否かを判定する。
【0219】存在すると判定された場合には、その旨が
出力部110bに送られる。出力部110bは、各変換
ログの特徴となるイベントに関する情報を出力する。
【0220】一方、存在しないと判定された場合には、
CPU130(データ値分類部130i)は、イベント
に関する対象プログラムの記述の実行の際に用いられる
データに基づいて、各イベントについて、それぞれ、所
定の分類基準に従って、分類情報を生成する。そして、
データ値分類部130iは、各イベントに対して、生成
された分類情報を付与する。
【0221】次に、CPU130(イベント発生確率計
算部130c)は、イベントに関する対象プログラムの
記述と、与えられた分類情報に基づいて、イベントの発
生確率を発生順序ごとに計算する。
【0222】次に、CPU130(稀少度計算部130
d)は、イベント発生確率計算部130cにより計算さ
れた各イベントについての発生確率に基づいて、発生頻
度の低さ又は非発生の頻度の低さを示す稀少度を計算す
る。
【0223】次に、CPU130(稀少度判定部130
e)は、稀少度計算部130dにより計算された各イベ
ントの稀少度に基づいて、各ログの特徴が存在するか否
かを判定する。
【0224】存在しない場合には、その旨が出力部11
0bに送られ、出力部110bは、特徴がない旨を出力
する。
【0225】一方、存在する場合には、CPU130
は、ログの特徴となるイベントに関する情報を出力部1
10bに送り、出力部110bは、送られた情報を出力
する。
【0226】なお、CPU130は、すべての発生順序
において記録されたイベントに関するプログラム記述が
上記複数のログ間で共通するか否かを判定する判定部
(図示せず)の機能を有するようにしてもよい。
【0227】そして、作業者によるログ入力の後、CP
U130(判定部)が、複数のログにおいて、それぞ
れ、上記判定を行い、共通する場合には、CPU(デー
タ値分類部130i)による分類情報の生成処理以降の
処理を行うようにしてもよい。一方、共通しない場合に
は、CPU130がログ生成部130gによる処理から
稀少度判定部130eによる判定処理を行うようにして
もよい(図4のステップS15からステップS60)。
【0228】また、CPU130は、計算された各イベ
ントの発生確率に基づいて、各変換ログの特徴の程度を
示す特徴度を計算する特徴度計算部130jの機能も有
するようにしてもよい。CPU130(特徴度計算部1
30j)は、計算された各イベントの発生確率に基づい
て、各ログの特徴度を計算する。CPU130(特徴度
計算部130j)は計算した各ログの特徴度を出力部1
10bへ送る。出力部110bは、各変換ログの特徴度
を出力する。
【0229】このような本実施の形態に係るログ解析プ
ログラムによれば、対象プログラム記述やイベント発生
順序(対象プログラム記述実行順序)に加えて、データ
も考慮して、発生確率や稀少度を計算し、これらの発生
確率や稀少度に基づいて、ログ特徴を抽出することがで
きるので、対象プログラム記述や発生順序を考慮しても
ログ特徴が抽出できない場合でも、速やかに、ログ特徴
を抽出することが可能となるという作用効果を奏するロ
グ解析装置、ログ解析方法を汎用コンピュータで容易に
実現することができる。
【0230】(ログ解析プログラム2)入出力部110
は、入力部110a及び出力部110bの機能を有す
る。作業者は、入力部110aを用いて、図示しないデ
バッガから出力されたログを入力する。
【0231】ここで、入出力部110は、イベントに関
する対象プログラム記述の実行の際に参照可能であるメ
モリ120の領域を指定する領域指定部110cの機能
を有する。
【0232】作業者は、入出力部110(領域指定部1
10)を用いて、イベントに関する所定の対象プログラ
ム記述の実行の際に参照されるメモリ120の領域や、
領域の大きさが共通する複数のメモリ120の領域を指
定することができる。
【0233】出力部110bは、各イベントの発生確率
又は稀少度に基づいて、各ログや各変換ログの特徴とな
るイベントに関する情報を出力する。また、出力部11
0bは、特徴度計算部130jにより計算された各変換
ログの特徴度を出力する。
【0234】CPU130は、領域指定部110cによ
る指定入力により、指定されたメモリ領域に対する参照
処理を伴うか否かに基づいて、各イベントを分類するロ
グ分類部130fと、参照処理を伴うメモリ領域ごと
に、分類されたイベントを、発生順序に従って、記録し
た複数の分類ログを生成する分類ログ生成部130h
と、各分類ログをそれぞれ構成するイベントに基づい
て、イベントを発生順序で記録したイベント列を生成す
るイベント列生成部130aと、イベント列のイベント
と、前記各分類ログを構成するイベントとをそれぞれ比
較し、比較結果に基づいて、前記各分類ログをそれぞれ
変換ログに変換するログ変換部130bと、イベントに
関する対象プログラムの記述に基づいて、各イベントの
発生確率を前記発生順序ごとに、計算するイベント発生
確率計算部130cと、発生確率に基づいて、発生頻度
の低さを示す稀少度を計算する稀少度計算部130dの
機能を有する。
【0235】また、CPU130は、計算された各イベ
ントの発生確率に基づいて、各変換ログの特徴度を示す
特徴度をそれぞれ計算する特徴度計算部130jの機能
を有する。
【0236】上記構成を有するコンピュータのハードウ
ェア100にインストールされたログ解析プログラム2
は、本実施の形態では、以下の手順により実行すること
ができる。
【0237】先ず、作業者は、対象プログラムの動作に
より出力されたログを入力部110aにより入力する。
すると、入力部110aにより入力された旨がバス14
0を介して(以下、バスを介しては省略する)CPU1
30に送られる。CPU130は、ハードウェア100
からログ解析プログラム2を読み出し、上述したCPU
130の各部の機能を実行可能な状態に設定する。
【0238】次に、作業者は、対象プログラム中で用い
られている所定の変数の領域を入出力部110(領域指
定部110c)を用いて、入力(指定)する。
【0239】次に、CPU130(ログ分類部130
f)は、各イベントの発生にあたって、領域指定部11
0cにより指定された変数に対する参照処理を伴うか否
かに基づいて、ログ中の各イベントを分類する。
【0240】次に、CPU130(分類ログ生成部13
0h)は、分類されたイベントを、発生順序に従って、
記録した複数の分類ログを生成する。
【0241】次に、CPU130(ログ変換部130
b)は、各分類ログを、それぞれ、変換ログに変換す
る。このCPU130の処理について、以下に詳細に説
明する。
【0242】先ず、ログ変換部130bは、イベント列
生成部130aに、所定のイベント列を生成するように
指示する。イベント列生成部130aは、ログ生成部1
30gにより生成された複数のログのイベント(イベン
トに関する情報)の傾向に基づいて、イベント列を生成
する。
【0243】ログ変換部130bは、発生順序ごとに、
イベント列の各イベントに関する対象プログラム記述
と、各ログの各イベントに関する対象プログラム記述と
を比較する。そして、ログ変換部130bは、記述が一
致する場合には、その記述を用いて変換ログのイベント
に関する情報とする。そして、ある発生順序で、ログ中
にイベントが記録されていない場合には、その旨を示す
情報を変換ログのイベントに関する情報とする。
【0244】次に、CPU130(イベント発生確率計
算部130c)は、イベントに関する前記対象プログラ
ムの記述に基づいて、各イベントの発生確率を発生順序
ごとに計算する。
【0245】次にCPU130(稀少度計算部130
d)は、イベント発生確率計算部130cにより計算さ
れた各イベントについての発生確率に基づいて、発生頻
度の低さ又は非発生の頻度の低さを示す稀少度を計算す
る。
【0246】次にCPU130(稀少度判定部130
e)は、稀少度計算部130dにより計算された各イベ
ントの稀少度に基づいて、各変換ログの特徴が存在する
か否かを判定する。
【0247】存在する場合には、CPU130は変換ロ
グの特徴となるイベントに関する情報を出力部110b
に送り、上記情報を出力するように指示する。出力部1
10bは、上記情報を出力する。
【0248】存在しない場合には、CPU130(特徴
度計算部130j)は、計算された各稀少度に基づい
て、各ログの特徴度を計算する。計算された各ログの特
徴度は出力部110bに送られ、上記特徴度を出力する
ように、CPU130は出力部110bに対して指示す
る。出力部110bは、各ログの特徴度を出力する。
【0249】なお、CPU130(特徴度計算部130
j)は、計算された各イベントの発生確率に基づいて、
各変換ログの特徴度を計算することもできる。
【0250】このような本実施の形態に係るログ解析プ
ログラムによれば、対象プログラム記述やイベント発生
順序(対象プログラム記述実行順序)に加えて、イベン
ト発生時のメモリ領域への参照も考慮して、発生確率や
稀少度を計算し、これらの発生確率や稀少度に基づい
て、ログ特徴を抽出することができるので、対象プログ
ラム記述や発生順序を考慮してもログ特徴が抽出できな
い場合でも、速やかに、ログ特徴を抽出することが可能
となるという作用効果を奏するログ解析装置、ログ解析
方法を汎用コンピュータで容易に実現することができ
る。
【0251】なお、上述したログ解析プログラム1,2
は、それぞれ、別々の構成として説明したが、1つのプ
ログラムとして、実現するようにしてもよい。
【0252】また、ログ解析プログラムは、記録媒体に
記録することができる。この記録媒体は、図36に示す
ように、例えば、フロッピー(登録商標)ディスク40
0、コンパクトディスク500、ICチップ600、カ
セットテープ700等があげられる。このようなログ解
析プログラムを記録した記録媒体によれば、ログ解析プ
ログラムの保存、運搬、販売等を容易に行うことができ
る。
【0253】なお、この発明の実施の形態で例示した構
成は一例であって、それ以外の構成を排除する趣旨のも
のではなく、例示した構成の一部を他のもので置き換え
たり、例示した構成の一部を省いたり、例示した構成に
別の機能あるいは要素を付加したり、それらを組み合わ
せたりすることなどによって得られる別の構成も可能で
ある。また、例示した構成と論理的に等価な別の構成、
例示した構成と論理的に等価な部分を含む別の構成、例
示した構成の要部と論理的に等価な別の構成なども可能
である。また、例示した構成と同一もしくは類似の目的
を達成する別の構成、例示した構成と同一もしくは類似
の効果を奏する別の構成なども可能である。
【0254】また、この発明の実施の形態で例示した各
種構成部分についての各種バリエーションは、適宜組み
合わせて実施することが可能である。
【0255】また、この発明の実施の形態は、個別装置
としての発明、関連を持つ2以上の装置についての発
明、システム全体としての発明、個別装置内部の構成部
分についての発明、またはそれらに対応する方法の発明
等、種々の観点、段階、概念またはカテゴリに係る発明
を包含・内在するものである。
【0256】従って、この発明の実施の形態に開示した
内容からは、例示した構成に限定されることなく発明を
抽出することができるものである。
【0257】
【発明の効果】以上説明したように、本発明によれば、
プログラム記述やイベント発生順序(プログラム記述実
行順序)に加えて、データやメモリ領域への参照も考慮
して、発生確率や稀少度を計算し、これらの発生確率や
稀少度に基づいて、ログ特徴を抽出することができるの
で、プログラム記述や発生順序を考慮してもログ特徴が
抽出できない場合でも、速やかに、ログ特徴を抽出する
ことが可能となる。
【0258】従って、従来技術に比べて、作業者にとっ
て一層デバッグ作業に効率的なログ解析方法、プログラ
ムを提供することが可能となる。
【図面の簡単な説明】
【図1】本発明の第1概念を説明するための図である。
【図2】本発明の第2概念を説明するための図である。
【図3】実施の形態1に係るログ解析装置の構成を示す
図である。
【図4】実施の形態1のログ解析方法を説明するための
フローチャート図である。
【図5】実施の形態1のログ解析方法を説明するための
フローチャート図である。
【図6】実施の形態1のログ解析方法を説明するための
対象プログラムの一例である。
【図7】実施の形態1のログ生成部により生成された複
数のログの一例を示す図である。
【図8】実施の形態1であるログ変換部により変換され
た複数の変換ログの一例を示す図である。
【図9】実施の形態1であるログ変換部により変換され
た複数の変換ログの一例を示す図である。
【図10】実施の形態1であるイベント発生確率計算部
により計算された発生確率を、発生順序及びイベントと
対応づけて示す図である。
【図11】実施の形態1であるイベント発生確率計算部
により計算された発生確率を、発生順序及びイベントと
対応づけて示す図である。
【図12】実施の形態1である稀少度計算部により計算
された稀少度を、発生順序及び変換ログと対応づけて示
す図である。
【図13】実施の形態1である稀少度計算部により計算
された稀少度を、発生順序及び変換ログと対応づけて示
す図である。
【図14】実施の形態1であるデータ値分類部により分
類情報が与えられた各ログの記録内容を示す図である。
【図15】実施の形態1であるイベント発生確率計算部
により計算された発生確率を、発生順序及びイベントと
対応づけて示す図である。
【図16】実施の形態1である稀少度計算部により計算
された稀少度を、発生順序及びログと対応づけて示す図
である。
【図17】実施の形態1の変形例2の特徴度計算部の計
算処理を説明するための補足図である。
【図18】実施の形態1の変形例2の特徴度計算部の計
算処理を説明するための補足図である。
【図19】実施の形態2に係るログ解析装置の構成を示
す図である。
【図20】実施の形態2のログ解析方法を説明するため
のフローチャート図である。
【図21】実施の形態2のログ解析方法を説明するため
の対象プログラムの一例である。
【図22】実施の形態2のログ解析方法の説明で用いる
対象プログラムを実行した結果得られたログの記録内容
を示す図である。
【図23】実施の形態2の分類ログ生成部により生成さ
れた複数の分類ログを示す図である。
【図24】実施の形態2のログ変換部により得られた複
数の変換ログを示す図である。
【図25】実施の形態2であるイベント発生確率計算部
により計算された発生確率を、発生順序及びイベントと
対応づけて示す図である。
【図26】実施の形態2である稀少度計算部により計算
された稀少度を、発生順序及び変換ログと対応づけて示
す図である。
【図27】実施の形態2の特徴度計算部により計算され
た各変換ログの特徴度を示す図である。
【図28】実施の形態2の特徴度計算部による計算処理
を説明するための補足図である。
【図29】実施の形態2の適用例1のログ解析方法を説
明するための対象プログラムの一例である。
【図30】実施の形態2の適用例1のログ解析方法の説
明で用いる対象プログラムを実行した結果得られたログ
の記録内容を示す図である。
【図31】実施の形態2の適用例1の分類ログ生成部に
より生成された複数の分類ログを示す図である。
【図32】実施の形態2の適用例1の分類ログ生成部に
より生成された複数の分類ログを示す図である。
【図33】実施の形態2の適用例2の分類ログ生成部に
より生成された複数の分類ログを示す図である。
【図34】実施の形態2の適用例2の分類ログ生成部に
より生成された複数の分類ログを示す図である。
【図35】実施の形態1,2におけるログ解析プログラ
ムをインストールしたコンピュータの構成を示す図であ
る。
【図36】実施の形態1,2におけるログ解析プログラ
ムを格納した記録媒体を示した図である。
【符号の説明】
1a,3a 対象プログラム、2a,2b,4a,4
b,4c イベント、5ログ、6 イベント列、10,
110a 入力部、11,130g ログ生成部、1
2,130a イベント列生成部、13,130b ロ
グ変換部、14,130c イベント発生確率計算部、
15,130d 稀少度計算部、16,130e 稀少
度判定部、17,110b 出力部、18,130i
データ値分類部、19,130j 特徴度計算部、2
0,110c 領域指定部、21,130f ログ分類
部、22,130h 分類ログ生成部、100 ハード
ディスク、100a,100b ログ解析プログラム、
110 入出力部、120 メモリ、130 CPU、
140 バス、400 フロッピーディスク、500コ
ンパクトディスク、600 ICチップ、700 カセ
ットテープ
フロントページの続き (72)発明者 田村 文隆 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 平山 雅之 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5B042 GA21 GC08 HH30 LA24 MA08 MA14 MC40

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 同一のプログラムを複数回繰り返し実行
    することにより、発生したイベントを、実行回ごとに発
    生順序に従ってそれぞれ記録された複数のログを生成す
    る生成ステップと、 すべての発生順序において記録されたイベントに関する
    プログラムの記述が前記複数のログ間で、各々、共通す
    る場合、前記プログラムの記述及び該記述の実行の際に
    用いられるデータに基づいて、前記各イベントの発生確
    率を、前記発生順序ごとに、計算する計算ステップと、 前記発生確率に基づいて、各ログの特徴となるイベント
    に関する情報を出力する出力ステップとを有することを
    特徴とするログ解析方法。
  2. 【請求項2】 前記発生確率に基づいて、発生頻度の低
    さを示す稀少度を計算するステップと、 前記稀少度に基づいて、各ログの特徴となるイベントに
    関する情報を出力するステップとを有することを特徴と
    する請求項1に記載のログ解析方法。
  3. 【請求項3】 前記複数のログをそれぞれ構成するイベ
    ントに基づいて、イベントを前記発生順序で記録したイ
    ベント列を生成するステップと、 前記イベント列のイベントと、前記各ログを構成するイ
    ベントとをそれぞれ比較し、比較結果に基づいて、前記
    複数のログをそれぞれ変換ログに変換するステップと、 前記イベントに関する前記プログラムの記述に基づい
    て、前記各イベントの発生確率を前記発生順序ごとに計
    算するステップと、 計算された発生確率に基づいて、発生頻度の低さを示す
    稀少度を計算するステップと計算された稀少度に基づい
    て、変換ログの特徴が存在するか否かを判定する判定ス
    テップを有し、 前記判定ステップによる判定結果に基づいて、前記計算
    ステップが行われることを特徴とする請求項1又は2に
    記載のログ解析方法。
  4. 【請求項4】 プログラムの実行により発生した一連の
    イベントが発生順序に従って、記録されたログを解析す
    るログ解析方法であって、 前記イベントに関するプログラム記述の実行の際に参照
    可能であるメモリ領域を指定する指定ステップと、 前記指定されたメモリ領域に対する参照処理を伴うか否
    かに基づいて、各イベントを分類するステップと、 参照処理を伴うメモリ領域ごとに、分類されたイベント
    を、発生順序に従って、記録した複数の分類ログを生成
    するステップと、 前記各分類ログをそれぞれ構成するイベントに基づい
    て、イベントを前記発生順序で記録したイベント列を生
    成するステップと、 前記イベント列のイベントと、前記各分類ログを構成す
    るイベントとをそれぞれ比較し、比較結果に基づいて、
    前記各分類ログをそれぞれ変換ログに変換するステップ
    と、 前記イベントに関するプログラムの記述に基づいて、前
    記各イベントの発生確率を前記発生順序ごとに、計算す
    るステップと、 前記発生確率に基づいて、発生頻度の低さを示す稀少度
    を計算するステップと、 前記稀少度に基づいて、各変換ログの特徴となるイベン
    トに関する情報を出力するステップとを有することを特
    徴とするログ解析方法。
  5. 【請求項5】 前記指定ステップにおける指定は、イベ
    ントに関する所定のプログラム記述の実行の際に参照さ
    れるメモリ領域に対するものであることを特徴とする請
    求項4に記載のログ解析方法。
  6. 【請求項6】 前記指定ステップにおける指定は、領域
    の大きさが共通する複数のメモリ領域に対するものであ
    ることを特徴とする請求項4に記載のログ解析方法。
  7. 【請求項7】 計算された各イベントの発生確率に基づ
    いて、各変換ログの特徴度をそれぞれ計算するステップ
    と、 前記各変換ログの特徴度を出力するステップとを有する
    ことを特徴とする請求項3乃至6に記載のログ解析方
    法。
  8. 【請求項8】 コンピュータに、 同一のプログラムを複数回繰り返し実行することによ
    り、発生したイベントを、実行回ごとに発生順序に従っ
    てそれぞれ記録された複数のログを生成する生成ステッ
    プと、 すべての発生順序において記録されたイベントに関する
    プログラムの記述が前記複数のログ間で、各々、共通す
    る場合、前記プログラムの記述及び該記述の実行の際に
    用いられるデータに基づいて、前記各イベントの発生確
    率を、前記発生順序ごとに、計算する計算ステップと、 前記発生確率に基づいて、各ログの特徴となるイベント
    に関する情報を出力する出力ステップとを有する処理を
    実行させるためのログ解析プログラム。
  9. 【請求項9】 請求項8に記載のプログラムであって、
    前記発生確率に基づいて、発生頻度の低さを示す稀少度
    を計算するステップと、 前記稀少度に基づいて、各ログの特徴となるイベントに
    関する情報を出力するステップとを有する処理を実行さ
    せるためのログ解析プログラム。
  10. 【請求項10】 前記複数のログをそれぞれ構成するイ
    ベントに基づいて、イベントを前記発生順序で記録した
    イベント列を生成するステップと、 前記イベント列のイベントと、前記各ログを構成するイ
    ベントとをそれぞれ比較し、比較結果に基づいて、前記
    複数のログをそれぞれ変換ログに変換するステップと、 前記イベントに関する前記プログラムの記述に基づい
    て、前記各イベントの発生確率を前記発生順序ごとに計
    算するステップと、 計算された発生確率に基づいて、発生頻度の低さを示す
    稀少度を計算するステップと計算された稀少度に基づい
    て、変換ログの特徴が存在するか否かを判定する判定ス
    テップを有する処理を実行させるためのログ解析プログ
    ラムであって、 前記判定ステップによる判定結果に基づいて、前記計算
    ステップが行われることを特徴とする請求項8又は9に
    記載のログ解析プログラム。
  11. 【請求項11】 プログラムの実行により発生した一連
    のイベントが発生順序に従って、記録されたログを解析
    するログ解析プログラムであって、コンピュータに、 前記イベントに関するプログラム記述の実行の際に参照
    可能であるメモリ領域を指定する指定ステップと、 前記指定されたメモリ領域に対する参照処理を伴うか否
    かに基づいて、各イベントを分類するステップと、 参照処理を伴うメモリ領域ごとに、分類されたイベント
    を、発生順序に従って、記録した複数の分類ログを生成
    するステップと、 前記各分類ログをそれぞれ構成するイベントに基づい
    て、イベントを前記発生順序で記録したイベント列を生
    成するステップと、 前記イベント列のイベントと、前記各分類ログを構成す
    るイベントとをそれぞれ比較し、比較結果に基づいて、
    前記各分類ログをそれぞれ変換ログに変換するステップ
    と、 前記イベントに関するプログラムの記述に基づいて、前
    記各イベントの発生確率を前記発生順序ごとに、計算す
    るステップと、 前記発生確率に基づいて、発生頻度の低さを示す稀少度
    を計算するステップと、 前記稀少度に基づいて、各変換ログの特徴となるイベン
    トに関する情報を出力するステップとを有する処理を実
    行させるためのログ解析プログラム。
  12. 【請求項12】 前記指定ステップにおける指定は、イ
    ベントに関する所定のプログラム記述の実行の際に参照
    されるメモリ領域に対するものであることを特徴とする
    請求項11に記載のログ解析プログラム。
  13. 【請求項13】 前記指定ステップにおける指定は、領
    域の大きさが共通する複数のメモリ領域に対するもので
    あることを特徴とする請求項11に記載のログ解析プロ
    グラム。
  14. 【請求項14】 請求10乃至13に記載のログ解析プ
    ログラムであって、計算された各イベントの発生確率に
    基づいて、各変換ログの特徴度をそれぞれ計算するステ
    ップと、 前記各変換ログの特徴度を出力するステップとを有する
    処理を実行させるためのログ解析プログラム。
JP2001401926A 2001-12-28 2001-12-28 ログ解析方法、ログ解析プログラム Pending JP2003203001A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001401926A JP2003203001A (ja) 2001-12-28 2001-12-28 ログ解析方法、ログ解析プログラム
US10/329,397 US6865508B2 (en) 2001-12-28 2002-12-27 Log analysis method and recording medium storing log analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001401926A JP2003203001A (ja) 2001-12-28 2001-12-28 ログ解析方法、ログ解析プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004291683A Division JP2005025786A (ja) 2004-10-04 2004-10-04 ログ解析方法、ログ解析プログラム

Publications (1)

Publication Number Publication Date
JP2003203001A true JP2003203001A (ja) 2003-07-18

Family

ID=19189894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001401926A Pending JP2003203001A (ja) 2001-12-28 2001-12-28 ログ解析方法、ログ解析プログラム

Country Status (2)

Country Link
US (1) US6865508B2 (ja)
JP (1) JP2003203001A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155064A (ja) * 2004-11-26 2006-06-15 Ricoh Co Ltd 情報処理装置及び同装置に用いるプログラム
WO2018110327A1 (ja) * 2016-12-12 2018-06-21 日本電気株式会社 異常識別システム、方法及び記録媒体
WO2021250750A1 (ja) * 2020-06-08 2021-12-16 日本電信電話株式会社 パターン抽出装置、パターン抽出方法及びプログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
US8312435B2 (en) 2000-12-26 2012-11-13 Identify Software Ltd. (IL) System and method for conditional tracing of computer programs
US7386839B1 (en) * 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US8032866B1 (en) 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
TWI263915B (en) * 2004-04-02 2006-10-11 Hon Hai Prec Ind Co Ltd System and method for logging event of telecommunications devices
US7444197B2 (en) 2004-05-06 2008-10-28 Smp Logic Systems Llc Methods, systems, and software program for validation and monitoring of pharmaceutical manufacturing processes
US7799273B2 (en) 2004-05-06 2010-09-21 Smp Logic Systems Llc Manufacturing execution system for validation, quality and risk assessment and monitoring of pharmaceutical manufacturing processes
US7827539B1 (en) 2004-06-25 2010-11-02 Identify Software Ltd. System and method for automated tuning of program execution tracing
US20070250546A1 (en) * 2006-04-25 2007-10-25 Dietmar Muhlhausser Burn log files
JP2011002870A (ja) * 2009-06-16 2011-01-06 Hitachi Ltd ウェブアプリケーションの操作性評価・改善方法およびウェブシステム
US8996458B2 (en) * 2009-12-23 2015-03-31 Sybase, Inc. High volume, high speed adaptive data replication
WO2011111599A1 (ja) * 2010-03-11 2011-09-15 日本電気株式会社 障害分析ルール抽出装置、障害分析ルール抽出方法、及び記憶媒体
US8938720B2 (en) * 2010-11-30 2015-01-20 Sap Se Trace visualization for object oriented programs
JP6332277B2 (ja) * 2013-09-24 2018-05-30 日本電気株式会社 ログ分析システム、障害原因分析システム、ログ分析方法、および、プログラムを記憶する記録媒体
US9348739B2 (en) * 2014-07-10 2016-05-24 International Business Machines Corporation Extraction of problem diagnostic knowledge from test cases
US20230032143A1 (en) * 2020-02-25 2023-02-02 Nec Corporation Log generation apparatus, log generation method, and computer readable recording medium
US11782877B1 (en) * 2022-05-17 2023-10-10 Bank Of America Corporation Search technique for noisy logs and resulting user interfaces displaying log entries in ranked order of importance
CN117742783B (zh) * 2024-02-19 2024-06-07 成都九洲电子信息系统股份有限公司 用于软件系统的日志数据跨语言自动记录方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320234A (ja) 1997-05-21 1998-12-04 Hitachi Ltd ソフトウェアの自動テスト方法
CA2407775C (en) * 2000-05-04 2007-09-25 The Procter & Gamble Company Computer apparatuses and processes for analyzing a system having false start events
US6564170B2 (en) * 2000-12-29 2003-05-13 Hewlett-Packard Development Company, L.P. Customizable user interfaces
JP2002259168A (ja) * 2001-03-05 2002-09-13 Toshiba Corp ログ特徴を抽出する装置、方法、およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155064A (ja) * 2004-11-26 2006-06-15 Ricoh Co Ltd 情報処理装置及び同装置に用いるプログラム
WO2018110327A1 (ja) * 2016-12-12 2018-06-21 日本電気株式会社 異常識別システム、方法及び記録媒体
JPWO2018110327A1 (ja) * 2016-12-12 2019-10-24 日本電気株式会社 異常識別システム、方法及びプログラム
WO2021250750A1 (ja) * 2020-06-08 2021-12-16 日本電信電話株式会社 パターン抽出装置、パターン抽出方法及びプログラム

Also Published As

Publication number Publication date
US6865508B2 (en) 2005-03-08
US20030125904A1 (en) 2003-07-03

Similar Documents

Publication Publication Date Title
JP2003203001A (ja) ログ解析方法、ログ解析プログラム
Bruegge et al. Generalized path expressions: A high level debugging mechanism
US7003781B1 (en) Method and apparatus for correlation of events in a distributed multi-system computing environment
US5787275A (en) Identifying multiple level class relationships in an object oriented system using icons and lines to represent class relationships
US5590330A (en) Method and system for providing a testing facility in a program development tool
Kapser et al. Aiding comprehension of cloning through categorization
JPH08320789A (ja) 事象を効率的に処理するための方法及びシステム
JPH0683598A (ja) ジョブフロー仕様書自動作成方法
US6330714B1 (en) Method and computer program product for implementing redundant lock avoidance
JP3997495B2 (ja) ソフトウェア解析装置及びソフトウェア解析方法
US7036045B2 (en) Method and system for isolating exception related errors in Java JVM
JP2005338987A (ja) 例外テスト支援プログラム及び例外テスト支援装置
JP2005025786A (ja) ログ解析方法、ログ解析プログラム
EP2587380A1 (en) Runtime environment and method for non-invasive monitoring of software applications
JP4055197B2 (ja) プログラムに含まれる手続きの解析装置
JP2002259168A (ja) ログ特徴を抽出する装置、方法、およびプログラム
KR100428712B1 (ko) 멀티 태스크 프로그램의 논스톱 디버깅을 위한트레이스포인트 설정 방법
Sarraga Static data flow analysis of PL/I programs with the PROBE system
JPH08249193A (ja) プログラムの言語仕様範囲の検査方式
JP3137075B2 (ja) マルチタスクプロセスにおけるプロセス生成方法及びプロセス生成装置
JPH03242727A (ja) 計算機システムの新旧交換時における移行システム
JP3165105B2 (ja) プログラムのトレーサ、コンパイラ及びリンカー
JP2005316707A (ja) プログラム類型化方法
JP3305782B2 (ja) ソフトウェア標準化方法およびソフトウェア生産物の解析方法
JPH07114463A (ja) オブジェクト指向分析設計支援装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20041207