JP2658065B2 - プログラムの評価方法 - Google Patents
プログラムの評価方法Info
- Publication number
- JP2658065B2 JP2658065B2 JP62180700A JP18070087A JP2658065B2 JP 2658065 B2 JP2658065 B2 JP 2658065B2 JP 62180700 A JP62180700 A JP 62180700A JP 18070087 A JP18070087 A JP 18070087A JP 2658065 B2 JP2658065 B2 JP 2658065B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- module
- execution
- executions
- segment
- 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 - Lifetime
Links
Description
【発明の詳細な説明】 <産業上の利用分野> この発明は、C言語等で書かれたプログラムの評価を
行う方法に関し、特に効率的な評価を実行することがで
きるプログラムの評価方法に関するものである。
行う方法に関し、特に効率的な評価を実行することがで
きるプログラムの評価方法に関するものである。
<従来技術> プログラムのデバックやテストおよび性能や信頼性の
評価方法の一つとして、プログラムを複数のセグメント
に分割し、プログラムを実行したときにこれらのセグメ
ントの実行回数を測定することが有効な方法として用い
られている。すなわち、プログラムはその内部で合流ま
たは分岐が無い単位であるセグメントに分割され、実行
される。このプログラムにはプログラムの実行中にその
セグメントを実行したかどうかを検出するプロープが仕
込まれ、このプロープにより各セグメントの実行回数が
測定される。プログラムは異なるデータあるいは条件の
下で多数回実行され、実行回数のデータが蓄積される。
この蓄積されたデータをもとにして各セグメントごとの
実行回数を表わしたものをプロファイルと呼び、性能ネ
ックの検出に使用される。また、1回以上実行されたセ
グメントの数とセグメントの総数の比をカバレジとよ
び、評価が充分であるかの指標とされる。すなわち、カ
バレジが低いと実行されていないセグメントが多く残っ
ていることになり、評価が不十分であることになる。カ
バレジを上げる為には種々の条件の下で評価を行う必要
があり、そのためには長い時間を要するのが普通であ
る。
評価方法の一つとして、プログラムを複数のセグメント
に分割し、プログラムを実行したときにこれらのセグメ
ントの実行回数を測定することが有効な方法として用い
られている。すなわち、プログラムはその内部で合流ま
たは分岐が無い単位であるセグメントに分割され、実行
される。このプログラムにはプログラムの実行中にその
セグメントを実行したかどうかを検出するプロープが仕
込まれ、このプロープにより各セグメントの実行回数が
測定される。プログラムは異なるデータあるいは条件の
下で多数回実行され、実行回数のデータが蓄積される。
この蓄積されたデータをもとにして各セグメントごとの
実行回数を表わしたものをプロファイルと呼び、性能ネ
ックの検出に使用される。また、1回以上実行されたセ
グメントの数とセグメントの総数の比をカバレジとよ
び、評価が充分であるかの指標とされる。すなわち、カ
バレジが低いと実行されていないセグメントが多く残っ
ていることになり、評価が不十分であることになる。カ
バレジを上げる為には種々の条件の下で評価を行う必要
があり、そのためには長い時間を要するのが普通であ
る。
<発明が解決すべき問題点> しかしながら、この様なプログラムの評価方法には次
のような問題点があった。すなわち評価の途中でバグが
発見されるとそのバグを修正し、また仕様の変更等があ
るとプログラムを変更しなければならない。プログラム
が変更されるとその構造が変わるのでセグメントの構成
も変化し、プログラムの変更以前と条件が異なってく
る。従ってプログラムの修正、変更がいかに微細であっ
てもそれまでのプロファイルは使用することが出来なく
なる為、改めて最初から評価をやり直す必要があった。
従ってもともと長い時間を要する評価がさらに長時間を
要することになり、能率的でないという欠点があった。
のような問題点があった。すなわち評価の途中でバグが
発見されるとそのバグを修正し、また仕様の変更等があ
るとプログラムを変更しなければならない。プログラム
が変更されるとその構造が変わるのでセグメントの構成
も変化し、プログラムの変更以前と条件が異なってく
る。従ってプログラムの修正、変更がいかに微細であっ
てもそれまでのプロファイルは使用することが出来なく
なる為、改めて最初から評価をやり直す必要があった。
従ってもともと長い時間を要する評価がさらに長時間を
要することになり、能率的でないという欠点があった。
<発明の目的> この発明の目的は、プログラムの評価が効率的に出来
るプログラムの評価方法を提供することにある。
るプログラムの評価方法を提供することにある。
<問題点を解決するための手段> 前記問題点を解決するために、本発明ではプログラム
をその内部で合流または分岐の無い複数のセグメントに
分割して、プログラムの実行時にこのセグメントの実行
回数を測定してこの実行回数により前記プログラムを評
価するプログラムの評価方法において、プログラムをサ
ブルーチン等の単位でモジュールに分割してこのモジュ
ールをさらにセグメントに分割し、プログラム修正また
は変更が行われたときに、モジュール構成およびモジュ
ール内のセグメント構成が変化しないモジュールについ
てはプログラムの修正または変更が行われる前に測定し
た当該モジュール内の各セグメントの実行回数をプログ
ラムの修正または変更を行った後に測定する実行回数に
加算するようにしたものである。また、プログラムが修
正または変更されたときに、プログラムの変更前に測定
した各セグメントの実行回数をプログラムの変更後に測
定した実行回数に加算するか否かをモジュール単位で指
定することが出来るようにしたものである。
をその内部で合流または分岐の無い複数のセグメントに
分割して、プログラムの実行時にこのセグメントの実行
回数を測定してこの実行回数により前記プログラムを評
価するプログラムの評価方法において、プログラムをサ
ブルーチン等の単位でモジュールに分割してこのモジュ
ールをさらにセグメントに分割し、プログラム修正また
は変更が行われたときに、モジュール構成およびモジュ
ール内のセグメント構成が変化しないモジュールについ
てはプログラムの修正または変更が行われる前に測定し
た当該モジュール内の各セグメントの実行回数をプログ
ラムの修正または変更を行った後に測定する実行回数に
加算するようにしたものである。また、プログラムが修
正または変更されたときに、プログラムの変更前に測定
した各セグメントの実行回数をプログラムの変更後に測
定した実行回数に加算するか否かをモジュール単位で指
定することが出来るようにしたものである。
<実施例> 第1図に本発明に係るプログラムの評価方法の一実施
例のブロック図を示す。プログラムはモジュール/セグ
メント分割器10でサブルーチンまたは関数を単位とする
モジュールに分割され、このモジュールはさらにその内
部に合流、分岐のないセグメントに分割される。この分
割された結果はプログラム実行イメージファイル11とモ
ジュール/セグメント構成情報12として格納され、また
プログラム13にロードされる。このプログラム13は実行
モニタ14の下で実行される。実行モニタ14はプログラム
13の実行を監視し、1回のプログラム実行における各セ
グメントの実行回数を実行情報バッファ15に格納する。
プログラム実行が終了すると実行モニタ14は加算器16を
起動して実行情報バッファ15の実行回数データを実行情
報累積ファイル17のデータに加算する。プログラム13は
種々の条件の下で多数回実行され、これらの実行におけ
る各セグメントの実行回数が実行情報累積ファイル17に
累積されていく。プログラムの修正、変更がなされると
モジュール/セグメント分割器10は新たなモジュール、
セグメントの割付けを行い、プログラム実行イメージフ
ァイル11およびモジュール/セグメント構成情報12に格
納する。実行モニタ14はプログラム更新チェック器18を
起動し、新たなプログラム実行イメージに基づいて新規
実行情報累積ファイル19を作成すると共に修正、変更し
た前後の割付けを比較し、継承禁止モジュール情報20を
作成する。すなわち、セグメントの個数が変化したモジ
ュールおよびモジュール名が変更されたモジュール、削
除されたモジュールを継承禁止モジュール情報20として
リストアップする。またユーザ指定継承禁止モジュール
情報21が作成される。ユーザ指定継承禁止モジュール21
は使用者が独自の判断で継承の禁止を宣言したモジュー
ルをリストアップしたものである。これら継承禁止モジ
ュール情報20、ユーザ指定継承禁止モジュール情報21は
継承器22に入力される。継承器22は実行情報累積ファイ
ル17に格納された各セグメントの実行回数のうち、継承
禁止モジュール情報20およびユーザ指定継承禁止モジュ
ール情報21にリストアップされていないモジュール内の
セグメントの実行回数データを新規実行情報累積ファイ
ル19にコピーする。継承禁止モジュール情報20およびユ
ーザ指定継承禁止モジュール情報21でリストアップされ
たモジュール内のセグメントの実行回数データはゼロと
される。プログラム実行イメージファイル11、モジュー
ル/セグメント構成情報12はプログラム13にロードさ
れ、また実行情報累積ファイル17は新規実行情報ファイ
ル19とおきかえられ、プログラム13の実行が再開されて
実行情報が累積される。
例のブロック図を示す。プログラムはモジュール/セグ
メント分割器10でサブルーチンまたは関数を単位とする
モジュールに分割され、このモジュールはさらにその内
部に合流、分岐のないセグメントに分割される。この分
割された結果はプログラム実行イメージファイル11とモ
ジュール/セグメント構成情報12として格納され、また
プログラム13にロードされる。このプログラム13は実行
モニタ14の下で実行される。実行モニタ14はプログラム
13の実行を監視し、1回のプログラム実行における各セ
グメントの実行回数を実行情報バッファ15に格納する。
プログラム実行が終了すると実行モニタ14は加算器16を
起動して実行情報バッファ15の実行回数データを実行情
報累積ファイル17のデータに加算する。プログラム13は
種々の条件の下で多数回実行され、これらの実行におけ
る各セグメントの実行回数が実行情報累積ファイル17に
累積されていく。プログラムの修正、変更がなされると
モジュール/セグメント分割器10は新たなモジュール、
セグメントの割付けを行い、プログラム実行イメージフ
ァイル11およびモジュール/セグメント構成情報12に格
納する。実行モニタ14はプログラム更新チェック器18を
起動し、新たなプログラム実行イメージに基づいて新規
実行情報累積ファイル19を作成すると共に修正、変更し
た前後の割付けを比較し、継承禁止モジュール情報20を
作成する。すなわち、セグメントの個数が変化したモジ
ュールおよびモジュール名が変更されたモジュール、削
除されたモジュールを継承禁止モジュール情報20として
リストアップする。またユーザ指定継承禁止モジュール
情報21が作成される。ユーザ指定継承禁止モジュール21
は使用者が独自の判断で継承の禁止を宣言したモジュー
ルをリストアップしたものである。これら継承禁止モジ
ュール情報20、ユーザ指定継承禁止モジュール情報21は
継承器22に入力される。継承器22は実行情報累積ファイ
ル17に格納された各セグメントの実行回数のうち、継承
禁止モジュール情報20およびユーザ指定継承禁止モジュ
ール情報21にリストアップされていないモジュール内の
セグメントの実行回数データを新規実行情報累積ファイ
ル19にコピーする。継承禁止モジュール情報20およびユ
ーザ指定継承禁止モジュール情報21でリストアップされ
たモジュール内のセグメントの実行回数データはゼロと
される。プログラム実行イメージファイル11、モジュー
ル/セグメント構成情報12はプログラム13にロードさ
れ、また実行情報累積ファイル17は新規実行情報ファイ
ル19とおきかえられ、プログラム13の実行が再開されて
実行情報が累積される。
第2図に実行情報累積ファイル17の構成を示す。プロ
グラムはコンパイルの単位でブロックに分けられ、各ブ
ロックはサブルーチン、関数の単位でモジュールに分け
られる。ファイルの最初にデフォルト情報領域サイズ、
デフォルト指定の数、デフォルト情報のデフォルトに関
するデータおよびlog情報が格納されている。これらの
情報は本発明には直接関係しないので、説明を省略す
る。次にプログラム名、プログラムの実行イメージの生
成日付、プログラムに含まれているブロックの数のプロ
グラム情報が格納されている。この生成日付とプログラ
ムの作成日付からプログラムが更新されたかどうかを判
断する。次に各ブロックに関するブロック情報が格納さ
れる。ブロック情報はブロックの数だけ作られる。ブロ
ック情報の中にはブロック名、モジュール数、モジュー
ル情報が含まれる。モジュール情報はモジュールの数だ
け作られる。モジュール情報の中にはモジュール名、セ
グメント数、各セグメントの実行回数が含まれる。また
ファイルの最後にはプロセスID番号が格納される。実行
回数の継承はモジュール単位で行なわれる。すなわち、
セグメント数が変化したモジュール、モジュール名が変
化したモジュールおよびユーザが指定したモジュールに
含まれるセグメントの実行回数の継承は禁止される。新
規実行情報累積ファイル19も同じ構成である。
グラムはコンパイルの単位でブロックに分けられ、各ブ
ロックはサブルーチン、関数の単位でモジュールに分け
られる。ファイルの最初にデフォルト情報領域サイズ、
デフォルト指定の数、デフォルト情報のデフォルトに関
するデータおよびlog情報が格納されている。これらの
情報は本発明には直接関係しないので、説明を省略す
る。次にプログラム名、プログラムの実行イメージの生
成日付、プログラムに含まれているブロックの数のプロ
グラム情報が格納されている。この生成日付とプログラ
ムの作成日付からプログラムが更新されたかどうかを判
断する。次に各ブロックに関するブロック情報が格納さ
れる。ブロック情報はブロックの数だけ作られる。ブロ
ック情報の中にはブロック名、モジュール数、モジュー
ル情報が含まれる。モジュール情報はモジュールの数だ
け作られる。モジュール情報の中にはモジュール名、セ
グメント数、各セグメントの実行回数が含まれる。また
ファイルの最後にはプロセスID番号が格納される。実行
回数の継承はモジュール単位で行なわれる。すなわち、
セグメント数が変化したモジュール、モジュール名が変
化したモジュールおよびユーザが指定したモジュールに
含まれるセグメントの実行回数の継承は禁止される。新
規実行情報累積ファイル19も同じ構成である。
第3図に実行の手順を示す。ユーザのソースプログラ
ムはまず実行解析用コンパイラCOにかけられる。この実
行解析用コンパイラCOは以下の4つの処理を実行する。
ムはまず実行解析用コンパイラCOにかけられる。この実
行解析用コンパイラCOは以下の4つの処理を実行する。
(1)実行解析のために実行を解析するプローブ関数を
ソースプログラムに自動的に挿入する。プローブ関数は
セグメントを感知するものであり、プログラムスター
ト、関数スタート、プログラム終了、関数終了、条件実
行ブロックの先頭、繰返し実行ブロックの先頭等に挿入
される。
ソースプログラムに自動的に挿入する。プローブ関数は
セグメントを感知するものであり、プログラムスター
ト、関数スタート、プログラム終了、関数終了、条件実
行ブロックの先頭、繰返し実行ブロックの先頭等に挿入
される。
(2)ユーザのソーステキストの行頭にプローブ番号を
示したデバッグ用リストを出力する。
示したデバッグ用リストを出力する。
(3)ユーザのソーステキストに改行や段付け処理を行
い、デバックしやすいフォーマットに変換したプリティ
プリントを出力する。
い、デバックしやすいフォーマットに変換したプリティ
プリントを出力する。
(4)コンパイルを行ってプローブ付きオブジェクトモ
ジュールを生成する。
ジュールを生成する。
次に実行解析用リンクCXによりタスクモジュール情
報、実行解析汎用モジュールと解析対象モジュールをリ
ンクし、実行解析用イメージを生成する。この実行解析
用イメージは実行解析ysdbによりその実行が解析され、
各セグメントの実行回数が実行情報累積ファイルに書き
こまれる。またプログラムが修正、変更されたときは新
規実行情報累積ファイルが生成され、所定のモジュール
内のセグメントの実行回数が継承される。
報、実行解析汎用モジュールと解析対象モジュールをリ
ンクし、実行解析用イメージを生成する。この実行解析
用イメージは実行解析ysdbによりその実行が解析され、
各セグメントの実行回数が実行情報累積ファイルに書き
こまれる。またプログラムが修正、変更されたときは新
規実行情報累積ファイルが生成され、所定のモジュール
内のセグメントの実行回数が継承される。
第4図にysdbの動作を示す。ysdbが起動されると実行
情報累積ファイルがあるかどうかが判定される。実行情
報累積ファイルが無いと新規実行情報累積ファイルが生
成され、実行情報累積ファイルがあるとプログラムが更
新されたかどうかが判定される。更新されたか否かはプ
ログラムおよび実行情報累積ファイル内の日付によって
行う。プログラムが変更されると新規実行情報累積ファ
イルが生成される。次に継承禁止モジュールを決定す
る。決定はユーザの指示によるものと固定的なものすな
わちモジュール内のセグメントの個数が変化したものお
よび前のモジュール/セグメント構成情報に存在しない
ものがある。ユーザの指示によるもの以外は非継承関数
名出力コマンドによって知ることが出来る。次に継承禁
止を決定したモジュール以外のモジュール内のセグメン
トの実行回数が新規実行情報累積ファイルにコピーされ
る。次に実行情報を収集し、実行情報累積ファイルに累
積する。また最初に実行情報累積ファイルが無くて新規
実行情報累積ファイルが作られたときおよびプログラム
の変更が無いときはただちに実行情報が収集され、実行
情報累積ファイルに累積される。実行情報の収集は評価
が終了するか、プログラムの修正、変更が行なわれるま
で行なわれる。
情報累積ファイルがあるかどうかが判定される。実行情
報累積ファイルが無いと新規実行情報累積ファイルが生
成され、実行情報累積ファイルがあるとプログラムが更
新されたかどうかが判定される。更新されたか否かはプ
ログラムおよび実行情報累積ファイル内の日付によって
行う。プログラムが変更されると新規実行情報累積ファ
イルが生成される。次に継承禁止モジュールを決定す
る。決定はユーザの指示によるものと固定的なものすな
わちモジュール内のセグメントの個数が変化したものお
よび前のモジュール/セグメント構成情報に存在しない
ものがある。ユーザの指示によるもの以外は非継承関数
名出力コマンドによって知ることが出来る。次に継承禁
止を決定したモジュール以外のモジュール内のセグメン
トの実行回数が新規実行情報累積ファイルにコピーされ
る。次に実行情報を収集し、実行情報累積ファイルに累
積する。また最初に実行情報累積ファイルが無くて新規
実行情報累積ファイルが作られたときおよびプログラム
の変更が無いときはただちに実行情報が収集され、実行
情報累積ファイルに累積される。実行情報の収集は評価
が終了するか、プログラムの修正、変更が行なわれるま
で行なわれる。
なお、このプログラムの評価方法は特定の言語の特質
を利用したものでは無いので、C言語だけでなく、FORT
RAN、BASIC、COBOL、PROLOG、LISP等の言語にも用いる
ことが出来る。
を利用したものでは無いので、C言語だけでなく、FORT
RAN、BASIC、COBOL、PROLOG、LISP等の言語にも用いる
ことが出来る。
<発明の効果> 以上実施例に基づいて具体的に説明したように、この
発明ではプログラムを複数のモジュールに分割し、この
モジュールをさらにセグメント分割して、修正または変
更が行なわれなかったモジュール内の各セグメントの実
行回数をプログラムの変更を行った後に測定した実行回
数に加算するようにした。そのため、継続的に実行情報
が累積出来るので、評価の為の時間を大幅に短くするこ
とが出来る。特にプログラムの修正、変更が小さい場合
に効果が大きい。
発明ではプログラムを複数のモジュールに分割し、この
モジュールをさらにセグメント分割して、修正または変
更が行なわれなかったモジュール内の各セグメントの実
行回数をプログラムの変更を行った後に測定した実行回
数に加算するようにした。そのため、継続的に実行情報
が累積出来るので、評価の為の時間を大幅に短くするこ
とが出来る。特にプログラムの修正、変更が小さい場合
に効果が大きい。
また、ユーザがプログラムの修正、変更前の実行回数
を修正、変更後の実行回数に加算するかをモジュール単
位で指定出来るようにしたので、加算してはいけないモ
ジュールの実行回数を加算することがなくなり、実行情
報の信頼性を高くすることが出来る。そのため、評価が
確実に行えるようになるという効果もある。
を修正、変更後の実行回数に加算するかをモジュール単
位で指定出来るようにしたので、加算してはいけないモ
ジュールの実行回数を加算することがなくなり、実行情
報の信頼性を高くすることが出来る。そのため、評価が
確実に行えるようになるという効果もある。
第1図は本発明に係るプログラムの評価方法の一実施例
を示すブロック図、第2図は実行情報累積ファイルの構
成を示す図、第3図は本発明の実行の手順を示す構成
図、第4図はysdbの動作を示すフローチャートである。 10……モジュール/セグメント分割器、11……プログラ
ム実行イメージファイル、14……実行モニタ、15……実
行情報バッファ、16……加算器、17……実行情報累積フ
ァイル、18……プログラム更新チェック器、19……新規
実行情報累積ファイル、20……継承禁止モジュール情
報、21……ユーザ指定継承禁止モジュール情報、22……
継承器。
を示すブロック図、第2図は実行情報累積ファイルの構
成を示す図、第3図は本発明の実行の手順を示す構成
図、第4図はysdbの動作を示すフローチャートである。 10……モジュール/セグメント分割器、11……プログラ
ム実行イメージファイル、14……実行モニタ、15……実
行情報バッファ、16……加算器、17……実行情報累積フ
ァイル、18……プログラム更新チェック器、19……新規
実行情報累積ファイル、20……継承禁止モジュール情
報、21……ユーザ指定継承禁止モジュール情報、22……
継承器。
フロントページの続き (72)発明者 平田 陽一郎 東京都武蔵野市中町2丁目9番32号 横 河電機株式会社内 (56)参考文献 特開 昭63−317851(JP,A)
Claims (2)
- 【請求項1】プログラムをその内部で合流または分岐の
無い複数のセグメントに分割し、プログラムの実行時に
前記セグメントの実行回数を測定してこの実行回数によ
り前記プログラムを評価するプログラムの評価方法にお
いて、 プログラムを、サブルーチンまたは関数を単位とするモ
ジュールに分割し、さらに各モジュールをその内部に合
流または分岐のないセグメントに分割し、 プログラムの修正または変更が行われたときに、モジュ
ール構成およびモジュール内のセグメント構成が変化し
ないモジュールについてはプログラムの修正または変更
が行われる前に測定した当該モジュール内の各セグメン
トの実行回数をプログラムの修正または変更を行った後
に測定する実行回数に加算するようにしたことを特徴と
するプログラムの評価方法。 - 【請求項2】各セグメントについて、プログラムが修正
または変更されたときに、プログラムの修正または変更
前に測定した各セグメントの実行回数をプログラムの修
正または変更後に測定する実行回数に加算するか否かを
モジュール単位で指定することが可能であるようにした
ことを特徴とする特許請求の範囲第1項記載のプログラ
ムの評価方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62180700A JP2658065B2 (ja) | 1987-07-20 | 1987-07-20 | プログラムの評価方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62180700A JP2658065B2 (ja) | 1987-07-20 | 1987-07-20 | プログラムの評価方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6423346A JPS6423346A (en) | 1989-01-26 |
JP2658065B2 true JP2658065B2 (ja) | 1997-09-30 |
Family
ID=16087783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62180700A Expired - Lifetime JP2658065B2 (ja) | 1987-07-20 | 1987-07-20 | プログラムの評価方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2658065B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07210424A (ja) * | 1994-01-14 | 1995-08-11 | Toshiba Corp | ソフトウェアテスト支援システム |
JP4840318B2 (ja) | 2007-09-28 | 2011-12-21 | トヨタ自動車株式会社 | 自動変速機の制御装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63317851A (ja) * | 1987-06-20 | 1988-12-26 | Fujitsu Ten Ltd | プログラム内容解析装置 |
-
1987
- 1987-07-20 JP JP62180700A patent/JP2658065B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS6423346A (en) | 1989-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11609840B2 (en) | Systems, methods, and devices for vertically integrated instrumentation and trace reconstruction | |
Gambi et al. | Practical test dependency detection | |
EP1130518B1 (en) | Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof | |
US5987250A (en) | Transparent instrumentation for computer program behavior analysis | |
US9535823B2 (en) | Method and apparatus for detecting software bugs | |
US4910663A (en) | System for measuring program execution by replacing an executable instruction with interrupt causing instruction | |
US20040268315A1 (en) | System and method for processing breakpoint events in a child process generated by a parent process | |
CA2179553C (en) | Determining dynamic properties of programs | |
US6311324B1 (en) | Software profiler which has the ability to display performance data on a computer screen | |
US7530057B2 (en) | Program code coverage | |
US20090248721A1 (en) | System And Method for Stack Crawl Testing and Caching | |
JPH11316696A (ja) | コンピュ―タプログラムをテストし、デバッグするための再配置可能計測タグ | |
US8448147B2 (en) | Heterogenic Coverage Analysis | |
JPH0748182B2 (ja) | プログラム・エラー検出方法 | |
Morgan et al. | Profiling large-scale lazy functional programs | |
JP2658065B2 (ja) | プログラムの評価方法 | |
US5956511A (en) | Program development support apparatus, program development support method, and storage medium therefor | |
Stratan et al. | Diagnosing Violations of Time-based Properties Captured in iCFTL | |
JPH06202905A (ja) | クリティカルスライス・プログラムデバッグシステム | |
Bran | Detecting software performance anti-patterns from profiler data | |
Jarvis et al. | The results of: profiling large-scale lazy functional programs | |
JPS62216047A (ja) | リグレツシヨン防止用テストケ−スの決定方式 | |
Hurst | A source language performance monitoring facility for the B1800 Modula Interpreter | |
Arora et al. | iProbe: A Lightweight User-Level Dynamic Instrumentation Framework | |
Schilling | Fail-safe programming in compiler optimization |