JPH0410139A - 知識ベースを利用した動的バグ検出方式 - Google Patents

知識ベースを利用した動的バグ検出方式

Info

Publication number
JPH0410139A
JPH0410139A JP2113470A JP11347090A JPH0410139A JP H0410139 A JPH0410139 A JP H0410139A JP 2113470 A JP2113470 A JP 2113470A JP 11347090 A JP11347090 A JP 11347090A JP H0410139 A JPH0410139 A JP H0410139A
Authority
JP
Japan
Prior art keywords
execution
dynamic
knowledge base
target program
inference
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
JP2113470A
Other languages
English (en)
Inventor
Satoshi Tanaka
智 田中
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
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 NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP2113470A priority Critical patent/JPH0410139A/ja
Publication of JPH0410139A publication Critical patent/JPH0410139A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 C産業上の利用分野) 本発明は電子計算機ノステムにおける知識ベースを利用
した動的バグ検出方式に関するものである。
〔従来の技術] プログラムをコーディングする上では、コンパイラ等で
のシンタックスチエツクでは検出できないような、ハゲ
に結び付く一般的な実jテ手順の規則および各動作レベ
ルにおける禁止事項・注意事項等のさまざまなノウハウ
がある。
これらの規則等は複雑であり、人為的にチエツクするこ
とは困難であるため、知識ベースを利用したハゲ検出方
式が一部で採用されている。
従来、この種の知識ベースを利用したバグ検出方式とし
ては、−船釣な実行手順の規則および各動作レベルにお
ける禁止事項・注意事項等のノウハウを予め知識ベース
に登録し、その知識をもとに対象プログラムを静的に解
析し、誤り・矛盾等を検出するようにしていた。
〔発明が解決しようとする課題〕
上述した従来の知識ベースを利用した対象プログラムの
静的な解析方式では、コストもそれほどかからず、かつ
比較的に時間もかからずに処理が行えるという利点があ
ったが、検出できる/<グが制限されるという欠点があ
った。すなわち、静的な解析では、対象プログラムの処
理の手順に分岐命令がなく局所的で閉しているような箇
所に関しては解析が可能であるが、条件分岐命令を含む
ような複雑な実行手順の場合、実行されるパスの組み合
わせが膨大となり、対象プログラムの静的な解析では限
界が生し、解析不能となることがあった。
また、対象プログラムの各動作レベルでの禁止事項等の
検出においても、対象プログラムのあるステップがどの
動作レベルで動作しているかは、静的な解析で完全に把
握することは困難であり、判断が行えない場合もあった
本発明は上記の点シこ鑑み提案されたものであり、その
目的とするところは、検出できるハゲについての上記の
制限をなくし、従来の静的な解析方式ではハゲ検出が不
可能であった箇所に対してもハゲ検出が行える知識ベー
スを利用した動的ハゲ検出方式を提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するため、 知識ベースに格納された一般的な処理の実行手順および
各動作レベルにおける禁止事項等の動的動作に関する知
識と対象プログラムのソースコードとをもとに、動的動
作情報を得るために対象プログラムの実行を中断する箇
所を設定するブレークポイント設定手段と、 ブレークポイントで対象プログラムの実行を一時中断す
るプログラム実行中断手段と、対象プログラムの一時中
断時にそのブレークポイントでの動的動作情報を収集す
る動的動作情報収集手段と、 収集された動的動作情報を主記憶装置上のデータスタッ
クセグメントに格納する動的動作情報格納手段と、 データスタックセグメントに格納された動的動作情報お
よび知識ベースに登録されている正しい動作情報をもと
に、対象プログラムの動作に矛盾がないか推論を行い、
矛盾があれば原因を解析する推論実行手段と、 推論結果の出力・表示を行う推論結果出力手段とを備え
るようにしている。
〔作用〕
本発明の知識ベースを利用した動的バグ検出方式にあっ
ては、ブレークポイント設定手段が、知識ベースに格納
された一般的な処理の実行手順および各動作レベルにお
ける禁止事項等の動的動作に関する知識と対象プログラ
ムのソースコードとをもとに、動的動作情報を得るため
に対象プログラムの実行を中断する箇所を設定し、プロ
グラム実行中断手段がブレークポイントで対象プログラ
ムの実行を一時中断し、動的動作情報収集手段が対象プ
ログラムの一時中断時にそのブレークポイントでの動的
動作情報を収集し、動的動作情報格納手段が収集されカ
動的動作情報を主記憶装置上のデータスタックセグメン
トに格納し、推論実行手段が、データスタックセグメン
トに格納された動的動作情報および知識ベースに登録さ
れている正しい動作情報をもとに、対象プログラムの動
作に矛盾がないか推論を行い、矛盾があれば原因を解析
し、推論結果出力手段が推論結果の出力・表示を行う。
〔実施例〕
以下、本発明の実施例につき図面を参照して説明する。
第1図は本発明の知識ベースを利用した動的バグ検出方
式の一実施例を示す構成図であり、対象プログラム1が
バグ検出の対象となるプログラムである。
第1図において、本実施例は、対象プログラム1の各動
作レベルでの一般的な禁止事項・注意事項および対象プ
ログラム1の固有な実行処理手順等が格納されている知
識ベース2と、この知識ベース2を使用して対象プログ
ラム1の動的動作の矛盾の検出およびその原因を推論す
る推論実行処理装置3と、対象プログラム1の動的動作
情報を収集する動的動作情報収集処理装置4と、動的動
作情報収集処理装置4によって収集された動的動作情報
を格納しておくための主記憶装置5内のデータスタック
セグメント51とから構成されている。
更に、推論実行処理装置3は、知識ベース2の知識およ
び対象プログラム1のソースコードをもとに、対象プロ
グラム1の動的動作情報を得るためにプログラムを中断
する箇所を設定するブレークポイント設定手段31と、
データスタックセグメント51内に格納されている動的
動作情報と知識ベース2に登録されている正しい動作情
報とをもとに、対象プログラム1の動作に矛盾がないか
推論を行い、もし矛盾があればその原因を解析する推論
実行手段32と、推論結果の出力・表示を行う推論結果
出力手段33とを備えている。また、動的動作情報収集
処理装置4は、対象プログラムlの実行をブレークポイ
ントにおいて一時中断するプログラム実行中断手段41
と、対象プログラム1がブレークポイントを通過して実
行が中断したときに、そのブレークポイントでの動的動
作情報を収集する動的動作情報収集手段42と、その収
集された動的動作情報を主記憶装置5内のデータスタッ
クセグメント51に格納する動的動作情報格納手段43
とを備えている。
第2図は、第1図の実施例において、対象プログラム1
の誤り・矛盾を検出するまでの処理の流れを示している
以下、本発明の一実施例の動作として、゛ゲートをシャ
ット中には処理Aを実行してはならない°゛ という禁止事項の誤りを検出する例につき、第1図およ
び第2図を参照して説明する。
先ず、推論実行処理装置3内のブレークポイント設定手
段31は、知識ベース2内に格納されている上記の禁止
事項から、対象プログラムlの処理Aの箇所をブレーク
ポイントとして設定する。
(ステップS1)。
次いで、対象プログラム1が実行される(ステップS2
)。
対象プログラムIが処理Aのブレークポイントを通過し
たとき、動的動作情報収集処理装置4内のプログラム実
行中断手段41は対象プログラムlの実行を一時中断さ
せ(ステップS3)、動的動作情報収集手段42はその
時点の対象プログラム1の動作レベル等の動的動作情報
を収集しくステ、ブS4)、動的動作情報格納手段43
はその動的動作情報を主記t!j’J15内のデータス
タックセグメント51内に格納する(ステップS5)。
次いで、対象プログラム1の実行が全て終了したか否か
が判断され(ステップS6)、まだ終了していなければ
(ステップS6のNO)、ステップS2からステ、プS
6が繰り返される。
そして、対象プログラムIの実行が終了したならば(ス
テ、ブS6のYES) 、推論実行処理装置3内の推論
実行手段32はデータスタックセグメント51に格納さ
れている動的動作情報および知識ベース2内の禁止事項
をもとに、対象プログラムlの動作の誤り・矛盾を調べ
(ステ、プS7)、矛盾を検出したか否かを判断する(
ステップS8)。
今の例では、処理Aの実行がされた時点であるため、動
作レベルがゲートシャ7)中を示す動作情報であれば矛
盾が検出されることになる。
矛盾を検出巳た場合(ステップS8のYES)、知識ベ
ース2内の対象プログラム1の固有な知識をもとに、推
論実行手段32は矛盾の原因を推論する(ステ、プS9
)。また、矛盾を検出しなかった場合(ステップS8の
NO)は、原因の推論は行わない。
そして、最後に、推論結果出力手段33は矛盾の内容と
その原因とを出力する(ステ、プ510)。
〔発明の効果〕
以上説明したように、本発明の知識ベースを利用した動
的ハゲ検出方式にあっては、実際!、:対象プログラム
を実行させ、適当に設けたブレークポイントで実行を一
時中断させて、動的動作情報を取得し、知識ベースを用
いて動作の矛盾等を検出するようにしているため、従来
の静的な解析では対処できなかった、条件分岐命令を含
むような複雑な実行手順の場合も充分に対応できると共
に、動作レベルも確実に把握することが可能となり、ハ
ゲ検出の精度が大幅に高まるという効果がある。
また、実際にプログラムを実行させてハゲを検出する場
合、途中の処理に誤りがあり、それが直接異常終了とな
る場合はハゲの解析は容易であるが、ある処理の誤りが
直接異常終了の原因とはならず、その誤りが他の処理の
誤りを誘発し、最終的に異常となるケースが多く、この
ような場合、最初の誤りの箇所を見付けることは一般に
は容易ではない。しかし、本発明では、対象プログラム
の実行途中の動作が対象プログラムの一般的な処理の手
順や禁止事項等に違反していないかを、知識ベースを利
用して自動的に検出しているため、異常の箇所を早期に
発見することができ、ハゲの解析を容易に行えるもので
ある。
更に、いったん知識ベースに格納した規則等は、以後、
プログラムを実行する毎に矛盾検出で使用することがで
きるため、プログラムのデグレードチエツクとしての効
果も期待できる。
【図面の簡単な説明】
第1図は本発明の知識ベースを利用した動的ハゲ検出方
式の一実施例を示す構成図および、第2図はその処理を
示すフローチャートである。 図において、 l・・・・・・対象プログラム 2・・・・・・知識ベース 3・・・・・・推論実行処理装置 31・・・ブレークポイント設定手段 32・・・推論実行手段 33・・・推論結果出力手段 4・・・・・・動的動作情報収集処理装置41・・・プ
ログラム実行中断手段 42・・・動的動作情報収集手段 43・・・動的動作情報格納手段 5・・・・・・主記憶装置 51・・・データスタックセグメント

Claims (1)

  1. 【特許請求の範囲】 知識ベースに格納された一般的な処理の実行手順および
    各動作レベルにおける禁止事項等の動的動作に関する知
    識と対象プログラムのソースコードとをもとに、動的動
    作情報を得るために対象プログラムの実行を中断する箇
    所を設定するブレークポイント設定手段と、ブレークポ
    イントで対象プログラムの実行を一時中断するプログラ
    ム実行中断手段と、 対象プログラムの一時中断時にそのブレークポイントで
    の動的動作情報を収集する動的動作情報収集手段と、 収集された動的動作情報を主記憶装置上のデータスタッ
    クセグメントに格納する動的動作情報格納手段と、 データスタックセグメントに格納された動的動作情報お
    よび知識ベースに登録されている正しい動作情報をもと
    に、対象プログラムの動作に矛盾がないか推論を行い、
    矛盾があれば原因を解析する推論実行手段と、 推論結果の出力・表示を行う推論結果出力手段とを備え
    たことを特徴とする知識ベースを利用した動的バグ検出
    方式。
JP2113470A 1990-04-27 1990-04-27 知識ベースを利用した動的バグ検出方式 Pending JPH0410139A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2113470A JPH0410139A (ja) 1990-04-27 1990-04-27 知識ベースを利用した動的バグ検出方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2113470A JPH0410139A (ja) 1990-04-27 1990-04-27 知識ベースを利用した動的バグ検出方式

Publications (1)

Publication Number Publication Date
JPH0410139A true JPH0410139A (ja) 1992-01-14

Family

ID=14613068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2113470A Pending JPH0410139A (ja) 1990-04-27 1990-04-27 知識ベースを利用した動的バグ検出方式

Country Status (1)

Country Link
JP (1) JPH0410139A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314765A (ja) * 1995-05-15 1996-11-29 Nec Corp デバッグ情報収集方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314765A (ja) * 1995-05-15 1996-11-29 Nec Corp デバッグ情報収集方式

Similar Documents

Publication Publication Date Title
US5778230A (en) Goal directed object-oriented debugging system
US9274923B2 (en) System and method for stack crawl testing and caching
CN109032927A (zh) 一种漏洞挖掘方法及装置
CA2030227C (en) Assembly language programming potential error detection scheme sensing apparent inconsistency with a previous operation
JPH09171460A (ja) 計算機の診断システム
JPH0410139A (ja) 知識ベースを利用した動的バグ検出方式
US20030018957A1 (en) Debugger monitor with anticipatory highlights
CN117574366A (zh) 一种基于应用层函数系统调用集的智能主动软件防护方法
JP4055197B2 (ja) プログラムに含まれる手続きの解析装置
JPH03113648A (ja) プログラムデバツグ方式
JPH03294934A (ja) 高級プログラム言語用デバッガ
JP4200534B2 (ja) データフロー異常検査装置
JPS63289654A (ja) プログラム分岐命令モニタ方式
JPH04342038A (ja) プログラム異常の解析方法
JPH06250889A (ja) データ処理システムにおける障害処理方式
JP2658982B2 (ja) 特定命令実行検出方式
JP2623554B2 (ja) ベクトル計算機における動的ベクトル診断方式
JPH02266440A (ja) 動的デバッグエキスパートシステム
JP3012618B1 (ja) 被検査プログラムのデバグ方法とそのデバグ方式
JPH01155438A (ja) コンパイラ試験方式
JPH03256137A (ja) 未設定変数検査、認識処理方法および装置
JPS5924355A (ja) ブランチトレ−スヒストリ処理方式
JPH0410098B2 (ja)
JPH0573365A (ja) バグ解析支援方式
JPS63226745A (ja) プロセツサシステム