JP4630489B2 - ログ比較デバッグ支援装置および方法およびプログラム - Google Patents
ログ比較デバッグ支援装置および方法およびプログラム Download PDFInfo
- Publication number
- JP4630489B2 JP4630489B2 JP2001164701A JP2001164701A JP4630489B2 JP 4630489 B2 JP4630489 B2 JP 4630489B2 JP 2001164701 A JP2001164701 A JP 2001164701A JP 2001164701 A JP2001164701 A JP 2001164701A JP 4630489 B2 JP4630489 B2 JP 4630489B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- partial
- logs
- value
- normalized
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、対象プログラムの実行によって発生した一連のイベントが記録(トレース)されたログを利用してデバッグ作業を支援する装置および方法およびプログラムに関する。
【0002】
【従来の技術】
プログラム中に含まれる誤りを正す作業(「デバッグ」)をプログラマー等が行なう際には、これを支援するデバッガが利用される。デバッガは、デバッグ作業者からの指示に従って対象プログラムを起動し、その実行を制御する。いわゆるデバッグ実行の過程において、デバッグに有益な各種情報を表示することができる。
【0003】
デバッグには幾つかの手法が知られている。最近では、プログラムの動作確認やデバッグ作業のために動作ログを使用する場合が増えてきており、例えばログベースのデバッグ手法が普及してきている。この手法では、システムコール発行の履歴をOSにより記録し、メモリアクセスの履歴をハードウェア又はエミュレータにより記録し、これらの集合としてのイベント情報(ログ)を専用のビューアを用いて表示する。この表示をデバッグ作業の一助としている。
【0004】
ログを用いてデバッグを行う場合、一つのログを詳細に調査してバグの原因を突き止める手法のほかに、正常動作した場合のログと異常動作した場合のログとを比較して相違部分を探し出し、かかる相違部分を集中的に調査することでバグの原因を突き止める手法がある。
【0005】
ところで、このようなログ比較に基づくデバッグでは、不適当なログを選択して比較を行なってしまうと相違部分が多く見つかり過ぎて調査範囲が拡大し、デバッグ効率が著しく低下してしまう。そこで、できるだけ似た挙動を示すログをデバッグ作業者が選択し、比較に用いるようにしている。
【0006】
本来ならば、プログラムの動作の意味が考慮され、類似ログが選択されるべきである。しかし従来の手法は、ログ同士の構成内容を単に比較して最も似ているログを選択するだけのものである。このためループの繰り返し回数が最も近いものが選択される場合があるなど、必ずしも効率的ではない。
【0007】
【発明が解決しようとする課題】
本発明は上記事情を考慮してなされたものであり、その目的は、ログ比較に有益な部分ログを得ることができ、ログベースのデバッグ作業の効率向上に寄与する装置および方法およびプログラムを提供することにある。
【0008】
【課題を解決するための手段】
上記課題を解決し目的を達成するために本発明は次のように構成されている。
【0009】
本発明に係るログ比較デバッグ支援装置は、対象プログラムの実行により発生した一連のイベントが記録されたログを入力し、ログ比較を行なってデバッグを支援するログ比較デバッグ支援装置において、入力された前記ログから複数の部分ログを生成する部分ログ生成部と、前記部分ログを連結して主ログを生成する主ログ生成部と、前記主ログを正規化の規準として前記部分ログを正規化することにより正規化ログを生成する正規化ログ生成部と、前記正規化ログ生成部により生成された正規化ログのそれぞれについて、前記イベントの発生及び不発生の特徴度合いを示す特徴値を算出する特徴値算出部と、所定の部分ログと他の部分ログとの組み合わせにおいて、該部分ログ同士の類似度を前記特徴値に基づく所定の演算により算出する類似度算出部と、を具備することを特徴とする。
【0010】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
(第1実施形態)
図1は、本発明の第1実施形態に係るログ比較デバッグ支援装置の概略構成を示すブロック図である。図1に示すように本装置は、条件指定部1、部分ログ生成部2、主ログ生成部4、正規化ログ生成部5、ログ特徴値算出部6、ログ類似度算出部8、ログ選択部9、ログ表示部10、部分ログ指定部11から構成されている。本装置は、準備された動作ログLを本実施形態のログ比較デバッグ支援装置に与え、およびデバッグ作業者12が条件指定部1及び部分ログ指定部11を介してログ比較に係る条件等を指定すると、ログの類似情報をログ表示部10に表示するものである。
【0011】
動作ログLは、図示しない対象プログラムの実行によって発生した一連のイベントが記録されたものである。対象プログラムの種別、数量等は任意であり、実行環境も任意である。例えば対象プログラムの一部がシミュレータにより置き換えられていたり、対象プログラムが制御するハードウェアの一部又は全部がエミュレータにより置き換えられていてもよい。
動作ログLを準備するための対象プログラムは、図示しないデバッガにより実行される。イベントの収集・記録処理は、デバッガに組み込まれ、或いはデバッガとは別構成で協調動作する「トレーサ」により行なわれる。
本発明でいう「イベント(事象)」は、デバッグ環境全体で予め定義されるものである。かかるイベントの定義に沿って、トレーサは対象プログラムの実行動作を追跡し、対象プログラムのデバッグ実行動作(シーケンス)時に、発生(成立)した一連のイベントを動作ログLに記録する。
【0012】
図2は、本実施形態に係るログ比較デバッグ支援装置の大まかな処理の流れを示す図である。以下、第1実施形態では、対象プログラムの実行によって発生した一連のイベントが記録された動作ログLの一例として、以下3つの動作ログ1〜3が与えられた場合を考える。
動作ログ1:abcgh
動作ログ2:acfgh
動作ログ3:abcdeghacgh
a〜hはそれぞれ、ログを構成する識別可能なイベントであり、その並びがイベントの発生順序を表すものである。
【0013】
先ず、図2のステップS0において、デバッグ作業者(ユーザ)12は、ログ比較条件として、部分ログの先頭及び末尾のイベントを指定し、及び該イベント間に挟まれたイベント列の少なくとも一部を抽出するための抽出規則を指定する(条件指定部1)。
具体的には例えば、部分ログの先頭及び末尾のイベントが、それぞれイベントaからイベントhまでと指定され、また、イベントaとイベントhとの間に挟まれたイベント列の抽出規則として「全てのイベントを抽出する」という規則がログ比較条件として指定されたとする。ここで、「全てのイベント」とは、部分ログとして切り出すイベントの種類を限定しない、ということを意味する。
【0014】
ステップS1において、部分ログ生成部2は、動作ログLを入力し、ステップS0において指定されたログ比較条件に従って、動作ログLから複数の部分ログを生成する。ここでは、動作ログ1〜3から、先頭及び末尾のイベントすなわちイベントa及びhにより挟まれたイベント列を部分ログとして切り出す。
【0015】
結果として、次に示すように、上記動作ログ1から部分ログA、動作ログ2から部分ログB、動作ログ3から部分ログCおよび部分ログDの計4つのログが切り出される。
部分ログA:(a)bcg(h)
部分ログB:(a)cfg(h)
部分ログC:(a)bcdeg(h)
部分ログD:(a)cg(h)
なお、部分ログA〜Dのそれぞれにおいて、先頭及び末尾のイベント(すなわちイベントa及びh)は各部分ログ間で共通であるから、各々の部分ログから便宜的に削除しておく。
【0016】
次にステップS2において、主ログ生成部4は部分ログ生成部2により生成された部分ログA〜Dを、所定の結合アルゴリズムに従い、不要な重複イベントを除外しながら結合することにより主ログを生成する。なお主ログの生成を、当該第1実施形態のように部分ログ(動作ログL)に基づいて生成するのではなく、後述する第2実施形態のように、動作ログLとは異質のデータであるソース(原始)プログラムを展開処理することにより生成してもよい。
【0017】
第1実施形態では、次に示すように部分ログA〜Dの結合処理がなされ、その結合結果を主ログとする。
A: bcg
A+B: bcfg
(A+B)+C: bcfdeg
((A+B)+C)+D: bcfdeg
生成された主ログは、条件指定部1において指定されたログ比較条件に対応する正規化規準として参照される。
【0018】
次にステップS3において、正規化ログ生成部5は、ステップS2において生成された主ログに基づき、部分ログA〜Dを正規化する。すなわち、正規化ログ生成部5は、部分ログA〜Dのそれぞれを、主ログ生成部3から得られた主ログと比較し、主ログの構成要素イベントが当該部分ログに存在する場合には1、存在しない場合には0が設定されたビット列を生成する。これを正規化ログとする。
当該第1実施形態において、部分ログA〜Dそれぞれの正規化ログは、次のようになる。
主ログ: bcfdeg
正規化ログA:(110001)
正規化ログB:(011001)
正規化ログC:(110111)
正規化ログD:(010001)
次にステップS4において、特徴値算出部6は正規化ログA〜Dのそれぞれに含まれるイベントについて、イベントの発生又は不発生の特徴度合いを示す特徴値を算出する。計算にあたっては、一つの正規化ログ(例えばログA)のうちの一つのイベントの特徴値の計算のために、他の正規化ログ(例えばログB乃至D)が参照される。
【0019】
より詳しくは、各正規化ログの各イベントの正規化値について、
(1)かかる正規化値が1である場合(イベント発生)は、他の正規化ログにおいて正規化値が0の値を持つ(イベント不発生)ログの数を集計し、その値を特徴値とする。このログ特徴の値が高ければ、当該イベントの発生(成立)は特徴的といえる。
(2)正規化値が0の値である場合(イベント不発生)は、他の正規化ログにおいて正規化値が1の値を持つ(イベント発生)ログの数を集計し、その値を0から引いた値を特徴値とする。この場合、ログ特徴の絶対値が高ければ、当該イベントの不発生(不成立)は特徴的といえる。
たとえば、正規化ログAのイベントbについて、その正規化値は1であって、該イベントの正規化値が0であるものは正規化ログBとDであるから、正規化ログAのイベントbのログ特徴を示す値は2となる。また、正規化ログAのイベントfについて、その正規化値は0であって、且つこの場合、該イベントの正規化値が1であるものは正規化ログBの一つだけであるから、正規化ログAのイベントfのログ特徴の値は0から1を引いて−1となる。
正規化ログA〜Dそれぞれのログ特徴値(配列)A〜Dは、次の通りとなる。
なお、図3はこれをグラフ化したものである。
特徴値A:( 2,0,−1,−1,−1,0)
特徴値B:(−2,0, 3,−1,−1,0)
特徴値C:( 2,0,−1, 3, 3,0)
特徴値D:(−2,0,−1,−1,−1,0)
次にステップS5において、類似度算出部8は、ある部分ログと他の部分ログとの全ての組み合わせ(AB,AC,AD,BC,BD,CD)において、部分ログ同士の類似度を特徴値A〜Dに基づく内積演算により算出する。内積演算の値が大きいほど、その部分ログ同士は他の組よりも類似度が高いものと判定する。例えば部分ログAとBとの比較(組み合わせ)において、これら部分ログそれぞれの特徴値AとBとの内積演算は次の通りとなる。
上記全ての組み合わせについて演算を行なった結果は次の通りとなる。
AB=−5
AC=−1
AD=−1
BC=−13
BD= 3
CD=−9
ステップS6に示すように、デバッグ作業者12が部分ログ指定部11を介して比較対象の元となる部分ログを指定すると、部分ログ選択部9は、該指定部分ログと類似度の高い部分ログを、類似度算出部8により算出された類似度に基づき選択する。例えばデバッグ作業者12が、部分ログ指定部11を介して部分ログD指定したとすると、ステップS7においてログ選択部9は、部分ログDに最も類似する部分ログとして部分ログBを選択する。
【0020】
そしてステップS8において、ログ表示部9は、部分ログBと部分ログDとを、好ましくは両者の相違部分を強調して表示する。なお、部分ログBに類似する部分ログを、その類似度順に並べ替えて表示してもよい。
【0021】
なお、部分ログ指定部11を備えない構成を採る場合には、上記全ての組み合わせについてその類似度を表示すればよい。この場合、類似度順に並べ替えて表示しても良い。
【0022】
以上説明したように、第1実施形態に係るログ比較デバッグ支援装置は、正規化ログ同士を単純に比較するのではなく、主ログの構成要素イベント(本実施形態では「bcfdeg」)それぞれの発生及び不発生の特徴度合いを示す特徴値A〜Dを算出し、該特徴値の内積演算に基づいているので、稀に発生する(もしくは稀にしか欠けない)イベントを共通に含むことが重視された類似判定を行なうことができる。
【0023】
部分ログAとD,BとDを比べると、いずれも1イベントの相違しかない。しかし、AとDの違いである1番目のイベント「b」と、BとDの違いである3番目のイベント「f」とを比べると、1番目のイベントがBとDで共通であることの方が、3番目のイベントがAとDで共通であることよりも稀(特徴的)である。つまり、発生又は不発生が特徴的なイベントを共通に含むことが重視された類似度判定を行なうことができる。
【0024】
したがって、動作ログLのデータ量が大きくなってデバッグ調査の範囲が拡大するような場合であっても、着目箇所に関する基準の部分ログを指定するだけで、これに類似しログ比較に有益な部分ログを容易に得ることができ、プログラム動作理解を含めたログベースのデバッグ作業の効率向上に寄与する。
【0025】
(第2実施形態)
次に、本発明の第2実施形態を説明する。
図4は、本発明の第2実施形態に係るログ比較デバッグ支援装置の概略構成を示すブロック図である。当該第2実施形態は、対象プログラムのソースコードを基準としたログ比較を行なうデバッグ支援装置に関するものであり、第1実施形態よりも動作ログLの構成内容が現実的である。
【0026】
また、第2実施形態の装置は、主ログ生成部7がデバッグ対象のプログラムのソースコード7を入力し、該ソースコードを展開処理して主ログを生成する点で第1実施形態とは異なる。他の構成要素については第1実施形態のものと同様である。
【0027】
第2実施形態の大まかな処理の流れは、第1実施形態と同様である。以下、図5に示すプログラム7の実行時のログとして、動作ログA〜Hからなるものが得られたとして説明する。図6に動作ログDを、図7に動作ログEを示し、他の動作ログについては図示省略する。
【0028】
先ず、デバッグ作業者(ユーザ)12は、ログ比較条件として、図5に示されているソースプログラム中に記述されているmain関数を対象関数として指定する。また、ソースプログラムの展開パラメータとして、該main関数内における関数の再帰呼び出しの記述を4段階まで展開し、及びループ構文を3回まで展開する旨を表すパラメータを指定する。また、main関数内における代入文、コメント、および空白行の記述は無視(主ログにおいて削除)する旨の指定も行なう。
【0029】
これにより主ログ生成部4は、対象プログラムのソースコード7を入力し、該ソースコードにおけるmain関数の記述部分を切り出し、条件指定部1により指定された展開パラメータに従って展開し、その展開結果を主ログとして生成する。これにより生成された主ログを図8に示す。図8から分かるように、再帰呼び出しに係る関数「makeValueString(...)」は4段階にわたって展開記述されている。
【0030】
部分ログ生成部2は条件指定部1に与えられた展開パラメータに従い、動作ログA〜Hのそれぞれから、指定関数としてのmain関数につき、その実行開始から終了までを部分ログとして切り出す。なお、図6に示された動作ログD、及び図7に示された動作ログEは、共にmain関数実行部分に対応するログであるから、そのまま部分ログとなる。また、図示していないが、動作ログD及びE以外の動作ログ(A,B,C,F,G,H)については、それぞれ1つのmain関数の実行ログを含むものと仮定して説明する(これらの正規化ログについては図10に示す)。
【0031】
正規化ログ生成部5は、部分ログ生成部2から得られた部分ログと、主ログ生成部4から得られた主ログとを対応させ、主ログの構成要素イベントが当該部分ログに存在する場合には1、存在しない場合には0が設定されたビット列を生成する。これを正規化ログとする。動作ログDの部分ログのプログラム記述に対応した正規化の内容を図9に示す。また、当該第2実施形態における部分ログA〜Hそれぞれの正規化ログの一覧を図10に示す。
【0032】
ログ特徴値算出部5は、正規化ログ生成部5により生成された正規化ログに基づき、第1実施形態で行ったものと同様の演算を行って特徴値(配列)A〜Hを算出する。特徴値A〜Hの一覧を図11に示す。
【0033】
ログ類似度算出部8は、ログ特徴値算出部5により算出された特徴値A〜Hに基づき、第1実施形態で行なったものと同様の内積処理を行って類似度を算出する。部分ログA〜Hの全ての組み合わせについて算出した類似度の一覧を図12に示す。
【0034】
ここで、部分ログ指定部11により、デバッグ作業者12が比較の基準となるログとして部分ログDを選択したとする。ログ選択部9は、ログ類似度算出部8により算出された類似度に基づき、部分ログ指定部11により指定された部分ログDに最も類似する部分ログとして、類似度が最大値「470」となる部分ログHを選択する。
【0035】
第2実施形態によれば、第1実施形態と同様に、主ログの構成要素イベント(本実施形態では関数呼び出し、ループ、スイッチなどの構文記述である)それぞれの発生及び不発生の特徴度合いを示す特徴値A〜Hを算出し、該特徴値の内積演算に基づいているので、稀に発生する(もしくは稀にしか欠けない)イベントを共通に含むことが重視された類似判定を行なうことができる。
【0036】
(第3実施形態)
次に、本発明の第3実施形態を説明する。
第3実施形態は、第1実施形態の変形例に係る。第1実施形態において説明した特徴値と類似度の計算を、以下のように行ってもよい。すなわち、第1実施実施形態において作成された正規化ログに対して、ステップS4にて、それぞれ特徴値を計算する。
【0037】
第1実施実施形態とは別に、ここでは、イベント発生時にはイベントの発生確率をイベントの非発生時には非発生確率を特徴値として与えるようにする。
【0038】
主ログ: bcfdeg
正規化ログA:(110001)
正規化ログB:(011001)
正規化ログC:(110111)
正規化ログD:(010001)
例えば、イベントbは正規化ログAとCとで発生しており、正規化ログBとDでは発生していない。従って、イベントbの発生確率は0.5であり、非発生確率についても同じく0.5となる。よって、イベントbの発生時も非発生時も特徴値を0.5とする。
【0039】
同様に、イベントfは正規化ログBでのみ発生しており、イベントfの発生確率は0.25であり、非発生確率は0.75となる。よって、イベントfの発生の特徴値を0.25に、非発生時の特徴値を0.75とする。
【0040】
これをまとめると、各ログの特徴値は
特徴値A: (0.5, 1, 0.75, 0.75, 0.75, 1)
特徴値B: (0.5, 1, 0.25, 0.75, 0.75, 1)
特徴値C: (0.5, 1, 0.75, 0.25, 0.25, 1)
特徴値D: (0.5, 1, 0.75, 0.75, 0.75, 1)
となる。
【0041】
次に、ステップS5において、類似度算出部8は、ある部分ログと他の部分ログとのすべての組み合わせにおいて、部分ログ同士の類似度を特徴値A〜Dに基づいて算出する。
【0042】
ここでは、各イベントの特徴値の対数の絶対値を求め、組み合わせた部分ログの両方でイベントが発生した場合、および両方ともイベントが発生しなかった場合に加算を行ない、片方でのみイベントが発生した場合には減算を行なうことで類似度を計算する。
【0043】
例えば、部分ログAとBとの組では、イベントfの比較から得られる類似度は、部分ログAでは発生し、Bでは発生していないことから、-|log(0.75)|-|log(0.25)|となる。
イベントdの比較では、部分ログA、Bともにイベントが発生していないことから、+|log(0.75)|+|log(0.75)|となる。
同様に計算を行えば、部分ログAとBの類似度ABは次の通りとなる。
【0044】
上記すべての組み合わせについて演算を行った結果は次の通りとなる。
【0045】
AB = −1.18
AC = −0.6
AD = 0.15
BC = −2.775
BD = 0.375
CD = −1.8
以上説明した第3実施形態によれば、部分ログBとDとの組み合わせにおいて0.375という値が得られており、これらが最も類似度が高いということがわかる。つまり、第1実施形態と同等の作用効果を得ることができる。なお、第3実施形態を上述した第2実施形態に適用しても良い。
【0046】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
例えば、部分ログの特徴値を内積や確率によって求めたが、これらに代わる他のアルゴリズムが用いられてもよい。部分ログを自動生成しないで直接的に入力してもよい。また、部分ログの結合やソースプログラムを参照した主ログの自動生成を行なわず事前に用意された主ログを直接的に入力するように構成してもよい。この場合、適切な部分ログ及び主ログを準備する手数がかかるものの、ログ比較に有益な情報が得られるという発明の作用効果を得ることができる。
【0047】
【発明の効果】
以上説明したように本発明によれば、比較的多数の動作ログによりデータ量が大きくなってデバッグ調査の範囲が拡大するような場合であっても、着目箇所に関する基準の部分ログを指定するだけで、これに類似しログ比較に有益な部分ログを容易に得ることができ、プログラム動作理解を含めたログベースのデバッグ作業の効率向上に寄与する。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るログ比較デバッグ支援装置の概略構成を示すブロック図
【図2】実施形態に係るログ比較デバッグ支援装置の大まかな処理の流れを示す図
【図3】第1実施形態に係る正規化ログA〜Dそれぞれのログ特徴値A〜Dを示すグラフ
【図4】本発明の第2実施形態に係るログ比較デバッグ支援装置の概略構成を示すブロック図
【図5】第2実施形態に係る対象プログラムのソースコードを示す図
【図6】第2実施形態に係る対象プログラムの実行時のログの一例を示す図
【図7】第2実施形態に係る対象プログラムの実行時のログの他の例を示す図
【図8】第2実施形態に係る対象(ソース)プログラムに基づき生成された主ログを示す図
【図9】第2実施形態に係る動作ログDの部分ログのプログラム記述に対応した正規化の内容を示す図
【図10】第2実施形態に係る部分ログA〜Hそれぞれの正規化ログの一覧を示す図
【図11】第2実施形態に係る部分ログA〜Hそれぞれの特徴値の一覧を示す図
【図12】第2実施形態に係る部分ログA〜Hの全ての組み合わせについて算出した類似度の一覧を示す図
【符号の説明】
1…条件指定部
2…部分ログ生成部
4…主ログ生成部
5…正規化ログ生成部
6…ログ特徴値算出部
7…対象プログラム(のソースコード)
8…ログ類似度算出部
9…ログ選択部
10…ログ表示部
11…部分ログ指定部
12…デバッグ作業者(ユーザ)
Claims (20)
- 対象プログラムの実行により発生した一連のイベントが記録されたログを入力し、ログ比較を行なってデバッグを支援するログ比較デバッグ支援装置において、
入力された前記ログから複数の部分ログを生成する部分ログ生成部と、
前記複数の部分ログを重複イベントを除外しながら結合することにより主ログを生成する主ログ生成部と、
前記主ログに含まれるイベントが前記複数の部分ログにも含まれるか否かを表す正規化ログを生成する正規化ログ生成部と、
前記正規化ログのそれぞれについて、前記イベントの発生及び不発生の特徴度合いを示す特徴値を算出する特徴値算出部と、
発生及び不発生が特徴的なイベントを部分ログ同士が共に含む場合に該部分ログ同士の類似度がより大きな値を取るように、該部分ログ同士の類似度を、対応する正規化ログ同士の前記特徴値を用いた演算により算出する類似度算出部と、を具備することを特徴とするログ比較デバッグ支援装置。 - 前記部分ログ生成部が生成すべき部分ログにおけるイベント列の先頭および終端のイベント及び、該イベント間に挟まれたイベント列を前記部分ログ生成部が前記ログから抽出するための抽出規則を指定する条件指定部をさらに具備することを特徴とする請求項1に記載のログ比較デバッグ支援装置。
- 前記複数の部分ログのそれぞれに対応する正規化ログは、前記主ログに含まれるイベント毎に、該イベントが部分ログにも含まれる場合には第1の値を取り、含まれない場合には第2の値を取る正規化値を表しており、
前記特徴値算出部は、
前記正規化ログに含まれるイベント毎に、
(1)前記正規化値が前記第1の値であるならば、他の正規化ログにおいて前記第2の値を取る正規化値の数を第1の要素値とし、
(2)前記正規化値が前記第2の値であるならば、他の正規化ログにおいて前記第1の値を取る正規化値の数を0から引いた値を第2の要素値とし、
前記第1の要素値又は前記第2の要素値を要素とする配列を前記特徴値として算出することを特徴とする請求項1又は2のいずれか一項に記載のログ比較デバッグ支援装置。 - 前記類似度算出部は、前記正規化ログの前記特徴値の内積演算により前記部分ログの組み合わせにおける類似度を算出することを特徴とする請求項1乃至3のいずれか一項に記載のログ比較デバッグ支援装置。
- 前記特徴値算出部は、前記イベントの発生又は非発生確率を前記特徴値として計算することを特徴とする請求項1乃至3のいずれか一項に記載のログ比較デバッグ支援装置。
- 前記類似度算出部は、前記正規化ログ特徴値の対数絶対値を加減算することにより前記部分ログの組み合わせにおける類似度を算出することを特徴とする請求項5に記載のログ比較デバッグ支援装置。
- 前記部分ログの一つを指定する指定部と、
前記指定部により指定された部分ログに類似する他の部分ログを前記類似度算出部により算出された類似度に基づいて選択する選択部と、をさらに具備することを特徴とする請求項1乃至6のいずれか一項に記載のログ比較デバッグ支援装置。 - 対象プログラムの実行により発生した一連のイベントが記録された動作ログを入力し、ログ比較を行なってデバッグを支援するログ比較デバッグ支援装置において、
入力された前記動作ログから複数の部分ログを生成する部分ログ生成部と、
前記対象プログラムのソースプログラムを展開処理して主ログを生成する主ログ生成部と、
前記主ログに含まれるイベントが前記複数の部分ログにも含まれるか否かを表す正規化ログを生成する正規化ログ生成部と、
前記正規化ログのそれぞれについて、前記イベントの発生及び不発生の特徴度合いを示す特徴値を算出する特徴値算出部と、
発生及び不発生が特徴的なイベントを部分ログ同士が共に含む場合に該部分ログ同士の類似度がより大きな値を取るように、該部分ログ同士の類似度を、対応する正規化ログ同士の前記特徴値を用いた演算により算出する類似度算出部と、を具備することを特徴とするログ比較デバッグ支援装置。 - 前記主ログ生成部は、前記ソースプログラムにおける特定関数に相当する記述を展開し、かかる展開結果を前記主ログとして生成する展開部を具備することを特徴とする請求項8に記載のログ比較デバッグ支援装置。
- 前記展開部は、前記特定関数に含まれる関数呼び出し及びループを含む特定構文の記述を展開することを特徴とする請求項9に記載のログ比較デバッグ支援装置。
- 前記部分ログ生成部が生成すべき部分ログにおけるイベント列の先頭および終端のイベント及び該イベント間に挟まれたイベント列を前記部分ログ生成部が前記動作ログから抽出するための抽出規則を指定する条件指定部をさらに具備することを特徴とする請求項8乃至10のいずれか一項に記載のログ比較デバッグ支援装置。
- 前記複数の部分ログのそれぞれに対応する正規化ログは、前記主ログに含まれるイベント毎に、該イベントが部分ログにも含まれる場合には第1の値を取り、含まれない場合には第2の値を取る正規化値を表しており、
前記特徴値算出部は、
前記正規化ログに含まれるイベント毎に、
(1)前記正規化値が前記第1の値であるならば、他の正規化ログにおいて前記第2の値を取る正規化値の数を第1の要素値とし、
(2)前記正規化値が前記第2の値であるならば、他の正規化ログにおいて前記第1の値を取る正規化値の数を0から引いた値を第2の要素値とし、
前記第1の要素値又は前記第2の要素値を要素とする配列を前記特徴値として算出することを特徴とする請求項8乃至11のいずれか一項に記載のログ比較デバッグ支援装置。 - 前記類似度算出部は、前記正規化ログの特徴値の内積演算により前記部分ログの組み合わせにおける類似度を算出することを特徴とする請求項8乃至12のいずれか一項に記載のログ比較デバッグ支援装置。
- 前記特徴値算出部は、前記イベントの発生又は非発生確率を前記特徴値として計算することを特徴とする請求項8乃至12のいずれか一項に記載のログ比較デバッグ支援装置。
- 前記類似度算出部は、前記正規化ログ特徴値の対数絶対値を加減算することにより前記部分ログの組み合わせにおける類似度を算出することを特徴とする請求項14に記載のログ比較デバッグ支援装置。
- 前記部分ログの一つを指定する指定部と、
前記指定部により指定された部分ログに類似する他の部分ログを前記類似度算出部により算出された類似度に基づいて選択する選択部と、をさらに具備することを特徴とする請求項8乃至15のいずれか一項に記載のログ比較デバッグ支援装置。 - 対象プログラムの実行により発生した一連のイベントが記録されたログを入力し、
入力された前記ログから部分ログ生成部が複数の部分ログを生成し、
前記複数の部分ログを主ログ生成部が重複イベントを除外しながら結合することにより主ログを生成し、
前記主ログに含まれるイベントが前記複数の部分ログにも含まれるか否かを表す正規化ログを正規化ログ生成部が生成し、
前記正規化ログのそれぞれについて、前記イベントの発生及び不発生の特徴度合いを示す特徴値を特徴値算出部が算出し、
発生及び不発生が特徴的なイベントを部分ログ同士が共に含む場合に該部分ログ同士の類似度がより大きな値を取るように、該部分ログ同士の類似度を、対応する正規化ログ同士の前記特徴値を用いた演算により類似度算出部が算出することを特徴とするログ比較デバッグ支援方法。 - 対象プログラムの実行により発生した一連のイベントが記録された動作ログを入力し、
入力された前記動作ログから複数の部分ログを部分ログ生成部が生成し、
前記対象プログラムのソースプログラムを主ログ生成部が展開処理して主ログを生成し、
前記主ログに含まれるイベントが前記複数の部分ログにも含まれるか否かを表す正規化ログを正規化ログ生成部が生成し、
前記正規化ログのそれぞれについて、前記イベントの発生及び不発生の特徴度合いを示す特徴値を特徴値算出部が算出し、
発生及び不発生が特徴的なイベントを部分ログ同士が共に含む場合に該部分ログ同士の類似度がより大きな値を取るように、該部分ログ同士の類似度を、対応する正規化ログ同士の前記特徴値を用いた演算により類似度算出部が算出することを特徴とするログ比較デバッグ支援方法。 - 対象プログラムの実行により発生した一連のイベントが記録されたログを入力する手順と、
入力された前記ログから複数の部分ログを生成する手順と、
前記複数の部分ログを重複イベントを除外しながら結合することにより主ログを生成する手順と、
前記主ログに含まれるイベントが前記複数の部分ログにも含まれるか否かを表す正規化ログを生成する手順と、
前記正規化ログのそれぞれについて、前記イベントの発生及び不発生の特徴度合いを示す特徴値を算出する手順と、
発生及び不発生が特徴的なイベントを部分ログ同士が共に含む場合に該部分ログ同士の類似度がより大きな値を取るように、該部分ログ同士の類似度を、対応する正規化ログ同士の前記特徴値を用いた演算により算出する手順と、をコンピュータに実行させることを特徴とするログ比較デバッグ支援プログラム。 - 対象プログラムの実行により発生した一連のイベントが記録された動作ログを入力する手順と、
入力された前記動作ログから複数の部分ログを生成する手順と、
前記対象プログラムのソースプログラムを展開処理して主ログを生成する手順と、
前記主ログに含まれるイベントが前記複数の部分ログにも含まれるか否かを表す正規化ログを生成する手順と、
前記正規化ログのそれぞれについて、前記イベントの発生及び不発生の特徴度合いを示す特徴値を算出する手順と、
所定の部分ログと他の部分ログとの組み合わせにおいて、該部分ログ同士の類似度を前記特徴値に基づく所定の演算により算出する手順と、をコンピュータに実行させることを特徴とするログ比較デバッグ支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001164701A JP4630489B2 (ja) | 2000-05-31 | 2001-05-31 | ログ比較デバッグ支援装置および方法およびプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000-163792 | 2000-05-31 | ||
JP2000163792 | 2000-05-31 | ||
JP2001164701A JP4630489B2 (ja) | 2000-05-31 | 2001-05-31 | ログ比較デバッグ支援装置および方法およびプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002055853A JP2002055853A (ja) | 2002-02-20 |
JP2002055853A5 JP2002055853A5 (ja) | 2008-07-17 |
JP4630489B2 true JP4630489B2 (ja) | 2011-02-09 |
Family
ID=26593127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001164701A Expired - Fee Related JP4630489B2 (ja) | 2000-05-31 | 2001-05-31 | ログ比較デバッグ支援装置および方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4630489B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099249A (ja) * | 2004-09-28 | 2006-04-13 | Fujitsu Ltd | 障害管理装置および障害管理方法 |
JP4845001B2 (ja) * | 2004-11-26 | 2011-12-28 | 株式会社リコー | 情報処理装置及び同装置に用いるプログラム |
WO2012124018A1 (ja) | 2011-03-11 | 2012-09-20 | 富士通株式会社 | 情報処理装置、情報処理方法、および情報処理プログラム |
JP6988827B2 (ja) * | 2016-12-12 | 2022-01-05 | 日本電気株式会社 | 異常識別システム、方法及びプログラム |
WO2018122889A1 (ja) | 2016-12-27 | 2018-07-05 | 日本電気株式会社 | 異常検出方法、システムおよびプログラム |
KR101964412B1 (ko) * | 2018-12-12 | 2019-04-01 | 주식회사 모비젠 | 이동통신데이터 처리시스템의 이상로그 발생을 진단하는 방법 및 그 시스템 |
JP7103392B2 (ja) * | 2020-08-25 | 2022-07-20 | 日本電気株式会社 | 異常検出方法、システムおよびプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07160533A (ja) * | 1993-12-10 | 1995-06-23 | Mitsubishi Electric Corp | デバッグツール |
JPH09305442A (ja) * | 1996-05-14 | 1997-11-28 | Mitsubishi Electric Corp | 作業支援システム |
JPH103464A (ja) * | 1996-06-14 | 1998-01-06 | Fuji Facom Corp | プロセス状態認識方法、プロセス状態認識装置及びデータ蓄積装置並びに学習装置 |
-
2001
- 2001-05-31 JP JP2001164701A patent/JP4630489B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07160533A (ja) * | 1993-12-10 | 1995-06-23 | Mitsubishi Electric Corp | デバッグツール |
JPH09305442A (ja) * | 1996-05-14 | 1997-11-28 | Mitsubishi Electric Corp | 作業支援システム |
JPH103464A (ja) * | 1996-06-14 | 1998-01-06 | Fuji Facom Corp | プロセス状態認識方法、プロセス状態認識装置及びデータ蓄積装置並びに学習装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2002055853A (ja) | 2002-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7089536B2 (en) | Computer system and method for aiding log base debugging | |
US6658649B1 (en) | Method, apparatus and article of manufacture for debugging a user defined region of code | |
US8312436B2 (en) | Automated software testing system | |
US7096458B2 (en) | Method and apparatus to create and compare debug scenarios of a computer process | |
US7937622B2 (en) | Method and system for autonomic target testing | |
US7178135B2 (en) | Scope-based breakpoint selection and operation | |
US7089535B2 (en) | Code coverage with an integrated development environment | |
US20030131342A1 (en) | Debugger with activity alert | |
JP2005302028A (ja) | プログラムを計装するプローブ最適化のための方法およびシステム | |
JPH02272645A (ja) | プログラム・デバツグ支援方法 | |
JP6253521B2 (ja) | プログラム可視化装置、プログラム可視化方法、及びプログラム可視化プログラム | |
JP4630489B2 (ja) | ログ比較デバッグ支援装置および方法およびプログラム | |
JP2000112784A (ja) | プログラムテスト支援装置及びプログラムテスト支援プログラムを記録した記録媒体 | |
CN111460235A (zh) | 图谱数据的处理方法、装置、设备及存储介质 | |
JP3182111B2 (ja) | プログラムテスト支援装置 | |
AU2005200513B2 (en) | Data processing system | |
US20220350730A1 (en) | Test data generation apparatus, test data generation method and program | |
WO2019225366A1 (ja) | 画面判別装置、画面判別方法及びプログラム | |
JP2005338987A (ja) | 例外テスト支援プログラム及び例外テスト支援装置 | |
JPH11224186A (ja) | ソフトウェア解析装置及びソフトウェア解析方法 | |
US20030188296A1 (en) | Conditional debug monitors | |
US20030188225A1 (en) | Extended "run to" function | |
JP7265144B2 (ja) | 改修箇所抽出プログラム、改修箇所抽出方法、及び改修箇所抽出装置 | |
CN113238967A (zh) | 测试案例的生成方法及装置 | |
GB2397905A (en) | Method for automatically generating and ordering test scripts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080530 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080530 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101019 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |