JPH0193839A - プログラムの実行を測定する方法および装置 - Google Patents

プログラムの実行を測定する方法および装置

Info

Publication number
JPH0193839A
JPH0193839A JP63172488A JP17248888A JPH0193839A JP H0193839 A JPH0193839 A JP H0193839A JP 63172488 A JP63172488 A JP 63172488A JP 17248888 A JP17248888 A JP 17248888A JP H0193839 A JPH0193839 A JP H0193839A
Authority
JP
Japan
Prior art keywords
instruction
instructions
program
execution
measurement
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
JP63172488A
Other languages
English (en)
Inventor
Bruce W Bailey
ブルース ウィリアム ベイリー
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH0193839A publication Critical patent/JPH0193839A/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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Landscapes

  • Engineering & Computer Science (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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 光凱■背景 本発明は、コンピュータ・ソフトウェアのテスト・ツー
ル、より特定的にはどのプログラム・ステートメントが
実行されたかを判断する方法および装置に関わる。
ソフトウェアの品質保証における1つの重要な点は、テ
ストの包括性である。特別なツールによる援助が無いと
、“範囲”すなわちテスト・ケースが走行する時にどの
プログラム命令が実行されるかを正確に判断することは
、不可能でないまでも困難である。従って、どのテスト
・ケースを走行させ、いつテスト・ケースの開発を停止
するかを知ることが困難である。
先行技術においては、テスト・ケースの範囲を測定する
ために、主要なタイプのツールが2つ存在する。第一の
タイプのツールは、原始コードを、それがコンパイル(
編集)される以前に修正するためにプリプロセッサを用
いるものである。手続き呼出しコール(procedu
re call)が、個々のブロックの実行が完了した
かどうか追跡するために、プログラムのブロックの先頭
に挿入される。この方式にはいくつかの欠点がある。こ
れらのツールは言語に固有なものであるということ、す
なわちブリプロセッサを原始言語のシンタクスに適合さ
せなければならないということである。オブジェクト・
コードのサイズは、手続き呼出しによって変更可能であ
り、これによってプログラムの実行特徴を変更できる。
プログラムは測定用にプリプロセシング及び再コンパイ
ルし、次に製品の使用又は製品を解放するために復元ま
たは再コンパイルしなければならない。ブリプロセッサ
を使用すると、ステップが余分に必要とされるばかりで
なく、これらのツールが、O8(オペレーティング・シ
ステム)のコード及び時間にきびしいプログラムの測定
にたいして非実用的なものにしてしまう。
先行技術における第二のタイプの範囲測定用ツールは、
周期的にプログラム・カウンタの内容を読出し、更にど
れだけ時間を費やしたかに付いての統計を予め決定され
ているメモリ・アドレスのレンジ(範囲)内に累積する
サンプリング技法を用いる。プログラムのロード・マツ
プに適合することができるヒストグラムが開発される。
これらのツールは、プログラムの性能を評価するには有
用であるが、サンプリングを実行する関係上、どの命令
の実行が完了していないかに付いて判断するためには使
用することはできない。
ここで必要とされるものは、原始コードのプリプロセシ
ングを必要とせず、どのタイプのプログラム上でも使用
可能であり、更に既存のプログラム又はテストの組(3
uite)を修正する必要がない真の範囲測定ツールで
ある。
光皿■翌立 本発明は、先行技術に固有な短所を克服した上で更に、
どの命令の実行が完了し、どの命令の実行が未完了であ
るかを測定する範囲測定ツールを提供する。プリプロセ
シングもサンプリングも用いない。このツールは使いや
す(、更テスタの通常テスト環境モ実行することが可能
である。測定は、テスト後に解放されるプログラムの同
一の実行可能オブジェクト・コードを用いて実行される
異なったプログラム又は同じプログラムの複数のテスト
を同時に測定することが可能である。測定結果の出力を
、高水準言語の原始ステートメントに直接にマツピング
することが可能である。オブジェクト・コードのサイズ
は不変である。この測定ツールは、テストされたプログ
ラムの実行性能を著しく劣化させることはない。
本発明によれば、機械語水準の命令が測定用に選択され
、これら命令の個々が測定命令によって置き換えられる
。この絵、測定命令は割込み命令であることが好ましい
。このようにしてから、測定命令を含むプログラムが実
行される。測定命令が実行されると、測定された(置き
換えられた)命令は識別され、そしてこの測定済み命令
が実行されたことを表示する値が記憶される。次に、測
定済み命令は、測定命令をオリジナルな命令で置き換え
る事によって復元され、この復元された命令によって実
行が再開される。実行性能にたいする(経過時間に基づ
いて評イiされた)効果は最少であるが、この理由はこ
の置き換えが、たとえ選択された命令が何回も実行され
ようとも、これら選択された命令の個々にたいして1回
しか行われないからである。
本発明の1つの実施例においては、原始言語ステートメ
ントからコンパイルされた個々のブロックの第一の命令
が、測定用に選択される。これによってステートメント
水準の範囲測定がなされる。
選択された個々の命令は、区切り点命令によって置き換
えられ、これによってマスク不可能な割込みが発生され
る。複数のユーザが測定済みプログラムを使用できるよ
うに、測定プログラムはプログラムの重複コピー上で走
行される。測定の結果は、どの原始言語ステートメント
の実行が完了し、どの原始言語ステートメントの実行が
未完了であるかを表示する原始コードのマークアップさ
れた(marked−up)コピーのような様々な有用
な出力を発生させるために使用可能なビットマツプに記
憶される。これらの出力は、品質保証の努力の効率およ
び効果を大幅に増大させることが可能である。
しい  1のi なシ゛■ 好ましい実施例においては、本発明の方法は、“TAL
 ”言語で書かれたコンピュータ・プログラムによって
実用化され、“GURADIAN 90”というO3(
オペレーティング・システム)の制御下において“Ta
ndem”コンピュータや“Non5top ”コンピ
ュータ上で実行される。(“Tandem”、 ”TA
L” 。
Non5top  、  ”GUARDIAN 90 
″は、カリフォルニア、GupertinoのTand
emコンピュータ社の商標名である“TAL ”言語お
よびGUARDIAN 90”O8の参考マニュアル並
びに” Non5top ″システムの説明マニュアル
はTandemコンピュータ社に頼めば入手可能である
。)図面に関連して与えられる以下の詳述を読めば、普
通レベルの当業者は本発明を実施し使用することが可能
であろう。
C0VERは1セットのプログラム・モジュールであり
、そのあるものはC0VERコマンド・インタプリタ(
COVEROOM)中に存在し、更ニモニタ(CVRM
ON)中または(区切り点割込みハンドラ内の)O3中
に存在するものもある。著作権で保護されているプログ
ラム(一般に“C0VER”と呼ばれるが)用の原始コ
ード付録Aとしてそれと共に与えられている。以下の説
明において、付録中のページに対する参照は、フローチ
ャートのブロックにたいする参照と共に与えられる。
好ましい実施例は、ステートメントの範囲を測定する。
ステートメント範囲は、どの原始コードのステートメン
トが実行されたか(されていないか)の尺度である。他
のタイプの範囲(たとえば、機械語命令の実行尺度であ
るコード範囲)は、実際の測定がオブジェクト・コード
中の選択された機械語命令上で実行されるので、本発明
の範囲に含まれる。
図1を参照すると、本発明の好ましい実施例を実現する
コンピュータ・メモリ装置4の論理編成が、単純化され
たブロック図によって示されている。2つのプロセス制
御ブロック(PCB : Proces 5Contr
ol Block )  6及び7が示されている。こ
のコンピュータ・システムにおいては、最大256個の
生きている( ac t i ve) PCBが存在し
、その個々カ月つのプロセス、すなわちタスクを制御す
る。
1つのプロセスとは、単独のユーザに関連する1つのプ
ログラムをランニング呼出しく runninginv
ocation)をすることである。1つの単独プログ
ラムは、複数のユーザのために複数のプロセスを実行す
ることができる。PCBI  6には、プログラム・コ
ード・セグメント8を示すポインタ6a及びデータ領域
9を示すポインタ6bが含まれている。PCB2 7に
は、初期状態においては(すなわち、C0VER測定が
開始する以前)コード・セグメント8を示す(点線の矢
印)ポインタ7a及びデータ領域11を示すポインタ7
bが含まれている。C0VERプログラム12は、エネ
イブルになると、範囲ルーチン制御ブロック(CRCB
: CoνerRoutine Control Bl
ock) 14を設立する。C0VERルーチンは、成
る特定のプロセス(1’lN)にたいして測定を始動す
る時には、そのプロセス用の範囲PINデータ・ブロッ
ク(CPDB:Cover PIN DataBloc
k) 16を設立し、CPDBアドレスをCRCB内に
存在する256個のポインタ14a中に書込む。すると
C0VERは、コード・セグメント8のコピー10を作
成し、コード・セグメント8を示すポインタ及びコピー
10をCPDB16中に退避する。
C0VERは、コード・コピー10内の選択されたロケ
ーションに存在する測定起動命令(measureme
n t−causing 1nstruction )
挿入し、測定結果を記憶するためのビットマツプ18を
設立し、更にコピー10を示す1つのポインタをPCB
27のポインタ7a中に記憶する。システムはコピー1
0を実行する。
C0VERは、成る特定のCPU(Central P
rocessingUnit:中央処理装置)のシステ
ムのオペレータによって、複数のユーザがそのCPU上
で測定機能を呼び出すことが可能になる以前にエネイブ
ルされる。(この実施例は複数のCPUを持つシステム
において実施される。)システム・オペレータは、成る
特定のCPUにたいして測定を許可するためにεNAB
LEコマンドを発行する。図2を参照すると、ENAB
LEコマンド(A−663−4)に反応してC0VER
が動作する様子がフローチャート20によって図示され
ている。ブロック22(A−123)において、範囲ル
ーチン制御ブロック(CRCB:Cover Rout
ine Control Block )用にメモリが
割り当てられる。CRCBデータ構造の形式(form
at)を表1  (A−296−7)に示す。ブロック
24(A−123)において、CRCBメモリ空間はロ
ック(lock) され、これによってメモリ常駐とな
り、絶対アドレス指定が可能となる。CRCBブロック
26(A−123)において初期化される。CRCBは
(ゼロに)クリアされ、次に検査機構(verif 1
er)(この実施例においては“CovR”および他の
見出し欄(header field)が設定される。
ブロック28(A−123)において、CRCBのアド
レスは、メモリ (グローバル・ポインタ)中の予め決
定された固定のロケーションに記憶される。グローバル
・ポインタのアドレスは、区切り点割込みハンドラも含
み、O3の知るところとなる。これでCDVERはエネ
イブル状態となり、ユーザは測定を実施できる。
[ VERIFIER″ CovR” VER3ION XCVRN  PIN privEnabled MemoryRati。
TraceBuffer Files  to Measure  (0:127
)Control by PIN CO:255)測定
は次のように実行される。プログラム” COVERC
OM”を走行されテC0VERD 77 )’を呼出す
。1つのプロセスの測定を開始するために、測定される
プロセスを識別するプロセス識別番号(Process
 Identification Number :P
IN ”)と共に、” MEASURE ″コマンドを
発行する。図3を参照すると、肝へ5UREコマンド(
A−541)に反応するC0VERの動作が、フローチ
ャート30によって図示されている。ブロック32(Δ
−543)においては、C0VERがエネイブルされて
いるかどうかを判断するために1つのテストを実行する
メモリ内のグローバル・ポインタの予め決定されたロケ
ーションのアドレスが読出される。もしそのアドレスが
ゼロでなければ、C0VERはエネイブルされる。もし
C0VII!Rがエネイブルされないと、どの測定も実
行不可能であり、プログラムは(ブロック34)に存在
し、この旨をユーザに、エラー・メツセージで知らせる
C0VERがエネイブルされた場合には、ブロック36
 (A−543−4)において、指定されたプロセスに
対して進行中の測定があるかどうかを判断するために1
つのテストが実行される。(1つのプロセスに対しては
一時に1つの測定しか許可されない。)表1から分かる
ように、CRCB中には、256個のControlB
yPin欄(1つのCPU上におけるあり得るプロセス
の個々に対して1つずつ)からなる配列がある。前記の
プロセスが測定中であるときは、個々の欄にCover
 PIN Data Block (範囲ピンのデータ
・ブロック)を示すポインタが1つ含まれる。1つのプ
ロセスが測定中でない場合には、そのPINに対応する
欄はゼロである。このようにして、リクエストされたプ
ロセスのエントリ (entry)がゼロでない場合に
は、ブロック38の所にC0VERプログラムが存在し
、ユーザにその旨をエラー・メツセージで知らせる。リ
クエストされたプロセスのエントリがゼロである場合に
は、C0VERプログラムは測定を始動する。
ブロック40において、CPDB(Cover Pin
 DataBlock  :範囲ピンのデータ・ブロッ
ク)がリクエストされたプロセス用に設立され、アドレ
スがこのプロセスのCRCB ControlByPi
nエントリ中に書込まれる。(こうする代わりに、C0
VERがエネイブルされた時に、Cover Pin 
Data Blocksを設立してもよいが、この場合
には、1つのPINに対して測定が進行中であるかどう
かを表示するために、状態欄が使用される。)表II(
A−296)にCPDBの形式を示す。ブロック42 
(A−125)において、プログラム・コードのセグメ
ントの番号が、このプロセス用のPCB中のcode、
seg41i’lから読出され、UC,SEG欄にある
CPDB中に書込まれる。
(プログラムはメモリのセグメントの境界上で開始され
るので、セグメント番号はコードの開始アドレスに等し
い。プログラム・カウンタは、オフセットをセグメント
中に測定する。)ブロック44(A−126、A−68
6)において、メモリの1ブロツクがプログラム・コー
ドのコピー用に割り当てられる。ブロック46  (A
−687)においては、メモリは、それが測定の全期間
にわたっていつでもアドレス指定可能であることを確実
にするためにブロック“ロック”される。
l工 S ta te Eversaved Save  Vol DC,Seg UC,CopySeg UC,Name υC,Timestamp DCoSpaceCount UC,5pace 5ize UC,Bitmap Ptr。
ブロック48 (A−686)において、プログラム・
コードは、割り当てられたメモリ・ブロック中にコピー
される。ブロック50  (A−687)においては、
このメモリ・ブロックのセグメント番号がロケーション
UC,CopySegに存在するCPDB中に書込まれ
る。ブロック52  (A−116−7)においては、
メモリは“ビットマツプ”(bitmap)用に獲得さ
れ(そしてロックダウンされる)。ビットマツプは、プ
ロセスの測定の結果を記憶するために使用される。ビッ
トマツプ中の個々のビットは、オブジェクト・コード中
の1ワード(2バイト・ワードであり、命令長である)
に対応している。ビットマツプはゼロに初期化され、そ
のアドレスはUC,Bitmap、Ptr @に存在す
るCPDB中に記憶される。
ここで、測定される機械語命令が選択される。
” ’1nspec’記号3オプションによってTan
deIrlコンパイラ上でコンパイルされたプログラム
には、コンパイルされた個々の原始言語ステーとメント
の最初の機械語コード命令を示す“ステートメント・ス
タータ”のリストが含まれる。(“In5pect”は
、Tandemコンピュータ社の商標である。)この実
施例のステートメント範囲のために、これらのステート
メントを開始する機械語命令が、測定されるべき命令の
セット(集合)として選択される。
他の実施例においては、他の手段を用いて、測定済み命
令を選択してもよい。例えば、命令を、オブジェクト・
ファイル中のデータから区別できるのであれば、全ての
コード命令を選択(コード・カバー)してもよい。
ブロック54 (A−157−9)においては、ステー
トメント・スタータは読出され、測定命令はステートメ
ント開始機械語コード命令の代わりに書込まれる。この
実施例においては、区切り点命令は測定命令として使用
される。このコンピュータ・システムにおいて、区切り
点命令は、割込みを発生させて、O3中に存在する対応
する割込みハンドラに制御を返す。他の実施例において
は、SVC<スーパバイザ呼出し)または無効なOPコ
ード(operation code)を持った命令の
ような他の測定命令が使用されることもある。サブルー
チン呼出しも使用されることがあるが、O3の内部から
測定を実行するためには、マスク不可能な割り込み発生
命令を使用することが好ましい。
ブロック56(A−128)においては、コード・コピ
ー(LIC,CopySeg)のセグメント番号は、こ
のプロセス用のPCB中の、code、seg欄に書込
まれる。PCB中に存在するこの欄は、プロセスを実行
するために使用されるプログラムのセグメント番号であ
り、これはオリジナルなコード・セグメント番号がそこ
からUC,segにコピーされる欄と同一である。UC
,segはこのようにして、“オリジナルな”コードの
アドレスを記憶し、PCBはコード・コピーのアドレス
を持つ。これによって、システムは、区切り点によって
コード・コピーを使用して、このプロセスを実行する。
他のプロセスにおいては、コピーにたいして測定が発生
している時に、無修正のオリジナル・コードが使用され
ることもある。
コード・コピーが命令を実行するので、その命令が選択
されたものである時はいつでも、区切り点命令が最初に
実行される。これによって区切り点命令が発生される。
図4を参照すると、区切り点命令の効果がフローチャー
ト62によって図示されている。ブロック64(A−8
4)において、区切り点割込みハンドラがC0VER手
続きを呼び出す。ブロック66(A−86)においては
、C0VERがエネイブルされているかどうかを判断す
るために、テストを1つ実行する。これは1、CRCB
アドレスが記憶されているグローバル・ポインタを読み
出し更にアドレスがゼロでないかどうかを判断すること
によって実行される。C0VERがエネイブルされてい
ない場合は、呼び出されたプログラムは“標準”割込み
ハンドラに戻る(ブロック68)。C0VERがエネイ
ブルされていると、ブロック70(A−86)において
、割込まれた走行環境がアドレス指定可能となる。次に
ブロック72(A−86)において、割込まれたプロセ
スが測定済みプロセスであるかどうかを判断するために
、テストを実行する。
割込まれたPCBのPINはグローバル・メモリから読
出され、CRCB内を索引し、これによってこのPIN
のCPDBを示すゼロでないアドレス・ポインタが存在
するかどうかを判断する。このPINのポインタがゼロ
である場合には、このプロセスは測定中ではなく、制御
はブロック74から標準割込みハンドラに戻される。こ
のPINのポインタがゼロでない場合には、CPDB中
の5TATE  (状態)欄がチエツクされる。この欄
で、測定が実際に走行中であるかないかを表示する。(
プログラムの実行中および区切り点が挿入されている間
に、状態(stab6)欄がこの中間状態を表示するた
めに使用される。) プロセス測定中であれば、ブロック76(A−86)に
おいて、ビットマツプ中の適切なビットが、命令の実行
が完了したことを表示するために設定される。割込まれ
た(測定された)命令に対応するビットは、次のように
発見される。割込まれた命令を、プログラム環境レジス
タ中のプログラム・カウンタを読出して、割込みを掛け
た区切り点命令用のセグメント中にオフセットを(ワー
ドで)獲得する事によって識別する(このワード・オフ
セットは、CPDB中に(UC,BitmapPtrの
所に)記憶されているビットマツプの開始アドレスから
のビット・オフセットとして使用される)。このオフセ
ットの所に存在するビットは対応する測定済み命令の実
行を表示するために“1”に設定される。
ビットがビットマツプ中に設定されると、コード・コピ
ー中の区切り点命令が、実行されるべき実効命令(ブロ
ック78、A−87)に置き換え・ られる。プログラ
ム・カウンタからのオフセットは、CPDB内にあるU
C,Seg411中のセグメント番号に連結される。下
位の“0”が1つ(命令中にゼロ・バイトのオフセット
を表示するために)付は加えられ、これで命令のアドレ
ス幅は32ビツトとなる。コード・コピー中の命令のア
ドレスは、CPDB中のUC,copy、seg欄およ
びプログラム・カウンタからのオフセットを使用するこ
とによって、同様の方法で獲得される。オリジナルのプ
ログラムからの測定済み命令は、実行用のコード・コピ
ー中にコピーされ、区切り点命令を置き換える。
ブロック80(A−88)において、制御が、実効命令
を実行するためにプログラムに戻される。
この実施例においては、区切り点命令は、デバッグ(虫
とり)にも使用される。従って、区切り点命令を実効命
令に置き換える以前に、テストを実行してデバッグ用の
区切り点が設定されたかどうか判断する。もしデバッガ
(debugger)に区切り点があれば、C0VER
はオリジナルのコード中に区切り点を発見する。区切り
点のテーブルには、デバッグの区切り点によって置き換
えられた命令が記憶される。C0VERは、コピー中の
区切り点を置き換えるためにこの区切り点テーブル中の
命令を使用する。制御は、プログラムにではなく割込み
ハンドラに戻る。割込みハンドラはこの区切り点のデバ
ッグ・ルーチンを実行する。(このルーチンは、この実
施例がデバッガが使用したと同じ区切り点命令を使用す
るというそれだけの理由で必要とされるということが理
解されるだろう。他の実施例においては、−意な割込み
発生命令を使用することが可能である、すなわち平行デ
バッキング(concurrent debuggin
g)を禁止することが可能である。) ビットマツプ・データを退避させるために、ユーザはい
かなる点においても5AVEコマンドを発行できる。図
5を参照すると、5AVEコマンドに反応してC0VE
Rが動作する様子がフローチャート88に図示されてい
る。ブロック90(A−12)において、指定されたP
INのビットマツプはメモリ中の別のロケーションにコ
ピーされる。ブロック92(A−23)において、ビッ
トマツプを退避するために1つのディスク・ファイルが
作成される。次にブロック94(A−23)においては
、見出しが、測定済みプロセスのCPDB中のデータを
使用して、測定済みプログラムの名前、その時間スタン
プ等と共にビットマツプ・ファイル中に書込まれる。次
にブロック96(A−23)において、ビットマツプは
このディスク・ファイルに書込まれる。CPDB中の@
eversaved ” 欄は、ビットマツプが退避さ
れたことを示すために更新される。
更に、1つのプロセスが終了した時、もしこのプロセス
の測定が完了していると、システム・モニタはビットマ
ツプのデータを退避する。
RESETコマンドは、退避動作の後でユーザ又はO3
が発行することが可能である。図6を参照すると、RE
SETコマンドに反応してプログラムが動作する様子が
フローチャート108に図示されている。ブロック11
0  (A−670−1)において、オリジナルのコー
ド・セグメントの番号がCPDB欄UC,SEG、から
PCB中にコピーされ、これによってコピーではなくオ
リジナル・コードが実行される。
ブロック112(A−130、A−698)において1
、コード・コピーのメモリ空間がアンロック(unlo
ck)される。ブロックl 14  (A−130、A
−689)においてメモリ空間が解放(割当て解除)さ
れ、ブロック116(A−130、A−140)におい
て、ビットマツプ空間が解放される。測定はこのように
して終了される。
図7を参照すると、DISABLEコマンドが図示され
ている。DISABLEコマンドはENABLEコマン
ドの逆の機能を実行する。ブロック122  (A−6
60)において、プログラムは、C0VERがエネイブ
ルされているかいないか、そしてもしされていない場合
にはそれが存在するかどうかを判断するためにテストを
実行する。ブロック126  (A−122)において
、CPDBのアドレスを含んでいるグローバル・ポイン
タにゼロが書込まれる。ブロック128(A−122)
においては、CRCBメモリがアンロック (unlo
ck) される。ブロック130(A−122)におい
ては、CRCBメモリ空間が解放される(割当て解除さ
れる)。
ビットマツプは様々な有用な出力を発生するために使用
される。
好ましい実施例において発生された1つの有用な出力レ
ポート(“MARKUP″)  (A−505−618
)は、図8に示されるような、印付けされた原始コード
のリストアツブである。実行されなかったステートメン
トには、アスタリスク(*)の印が付いている。もし2
つ以上のステートメントが同一行に存在すると、プラス
記号(+)が現れて、1つのステートメントの実行は完
了したが、他のステートメントは実行されていないこと
を示す。このレポートは、区切り点命令を挿入するのに
使用されたオブジェクト、ファイル中に存在する同一の
記号テーブルを用いて発生される。この記号テーブルは
、コンパイルされた原始ステ)メントが始まるオブジェ
クト・コード中にオフセットを表示する。これらの同一
なオフセット(ワードではなくビットで表されている)
は、ステートメント開始命令の実行が完了したかどうか
をテストするために、ピントマツプ中にインデックスす
るために使用される。
“DISPLAY ″コマンドは、測定済みプログラム
中の全てのステートメントの原始ファイルの行番号のり
ストアツブを表示する。予想外のステートメントは全て
、アスタリスク印によって示される。
個々の手続き及びプログラム全体にたいして、ステート
メント番号および実行されなかったステートメントの百
分率を示す統計が包含される。その1例を図9に示す。
別の有用なレポート(“5ORT”)  (A−614
−52)を図10に示す。このレポートは、予想外であ
るN個の連続ステートメントに関する全てのシーケンス
をレポートする(ここで、nはユーザ又はリクエストし
た人によって指定される)。ステートメント・スタータ
は読出され、ビットマツプと比較される。予想外の連続
ステートメントは、期待されているステートメントが検
出されるまでタリー (tally:記録)され、次に
新しいタリーが開始される。次にタリー(記録)が分類
される。
” 0RDER”レポート(A−555−75)を図1
1に示す。K個のテスト・ケースのセット(集合)が既
存すると、最高の範囲を”持つテストが最初に走行する
ように、全てのテスト・ケースを順序付けすると便利で
ある。この最高範囲のテストが実行されると、次のテス
ト・ケースは、それが範囲全体などにたいして最大のも
のを付は加えられるように選択される。これによって、
プログラムは最少の時間で最も広範囲のテストを受ける
ことになる。
最初にビットマツプが、原始コード・ステートメント・
スタータに対応するビットのみを含むように圧縮される
。もしプログラムがN個のステートメントを持っている
と、K個のテスト・ケース用の圧縮ビットマツプは、ビ
ット・マトリックスX (K、N)を形成する。図12
を参照すると、テスト・ケースを順序付けするためのア
ルゴリズムを疑似コードに変換したものが示されている
最初に、最大範囲を与えるテスト・ケースJが識別され
る。次に、残りのビットマツプの個々と残りの(K−1
)個のテスト・ケースの個々との論理和(内包的論理和
)を取り、最大の範囲を提供する組合せを検出する。次
に、これら2つのケースの組み合わされたビットマツプ
と残りの(K−2)個のケース等の個々との論理和を取
る。
ANDやXOR等の他のケーブル演算も、リクエストの
あり次第、指定されたビットマツプ上で実行される。論
理和(OR)及び排他的論理和(XOR)は、テスト・
ケースによって与えられた増分量を表示するために、ビ
ットマツプA及びB上で使用可能である。関数(Aor
B) XORAによって、テストAがカバーしていない
所のどこをテストBがカバーするかを判断する。AND
演算によって、全てのテスト・ケースによってテストさ
れたステートメントはどれであるかが示される。
要約すると、コンピュータ・プログラムの実行を測定す
る新規な技法を述べた。当業者には明らかなように、上
記の実施例は、本発明の範囲を逸脱することなしに修正
可能である。従って、本発明は添付フレイムにおいて限
定した以外は上記の記述に限定されるものではない。
本発明の実施態様として次のものがある。
1、選択された命令を測定命令と置き換えるステップ;
並びに、 測定命令の実行に反応して、選択された命令の実行が完
了したことを表示す為ステ・7プ;測定命令を選択され
た命令と置き換えるステップ;及び、 選択された命令を実行するステップを有することを特徴
とするコンピュータ・プログラムの命令の実行を測定す
る方法。
2、測定命令が割込み発生命令であることを特徴とする
上記第1項に記載の方法。
3、測定命令が区切り点命令であることを特徴とする上
記第2項に記載の方法。
4、測定命令が無効命令であることを特徴とする上記第
2項に記載の方法。
5、測定命令がサブルーチン呼出しであることを特徴と
する上記第1項に記載の方法。
6.1セットの命令をコンピュータ・プログラムから選
択するステップ; 選択された1セット(集合)の命令の個々を測定命令と
置き換えるステップ; プログラムを実行するステップ;並びに、個々の測定命
令の実行に反応して、実行された測定命令と置き換えら
れた、測定済み命令を識別するステップ; 測定済み命令の実行が完了したことを表示するステップ
; 測定命令を置き換えることによって、測定済み命令を復
元するステップ;及び、 復元された命令を実行するステップを有することを特徴
とする、コンピュータ・プログラムに存在する機械語水
準の命令の実行を測定する方法。
7、前記識別ステップに、実行済みの測定命令のプログ
ラム中におけるロケーションを探知するステップが含ま
れることを特徴とする上記第6項に記載の方法。
8、前記表示ステップに、プログラム中の探知されたロ
ケーションに対応する記憶ロケーションに、予め決定さ
れた値を記憶するステップが含まれることを特徴とする
上記第7項に記載の方法。
9、前記置き換えステップを実行する前にプログラムの
コピー(複製)を作るステップを更に有することを特徴
とする上記第6項に記載の方法。
10、  前記置き換えステップに、プログラムのコピ
ー内の選択された命令を置き換えるステップが含まれ、
更に前記実行ステップに、プログラムのコピーを実行す
るステップが含まれることを特徴とする上記第9項に記
載の方法。
11、前記復元ステップに、実行済み測定命令の、プロ
グラム・コピー内におけるロケーションを探知するステ
ップ、及びプログラム中の探知されたロケーションから
プログラム・コピー内の探知されたロケーションに命令
をコピーするステップが含まれることを特徴とする上記
第10項に記載の方法。
12、  前記選択ステップに、原始言語ステートメン
トのスタータ(starter)に対応して命令を選択
するステップが含まれることを特徴とする上記第6項に
記載の方法。
13、測定命令が割込み発生命令であることを特徴とす
る上記第6項に記載の方法。
14、測定命令が区切り点命令であることを特徴とする
上記第13項に記載の方法。
15、  測定命令が無効命令であることを特徴とする
上記第13項に記載の方法。
16、測定命令がサブルーチン呼出しであることを特徴
とする上記第6項に記載の方法。
17、  コンピュータ・プログラムのコピーを作るス
テップ; コンピュータ・プログラムから1セットの命令を選択す
るステップ; プログラム・コピー内の選択された命令の個々を割込み
発生命令と置き換えるステップ;選択された1セットの
命令に対応する1セットの記憶ロケーションを持つマツ
プ(写像)を初期化するステップ; プログラム・コピーを実行するステップ;並びに、 割込みに反応して、割込み命令のプログラム内における
ロケーションを探知するステップ;割込み命令と置き換
えられた命令に対応するマツプの記憶ロケーションに、
予め決定された値を記憶するステップ; プログラム中の探知されたロケーションに存在する命令
を、プログラム・コピー内の探知されたロケーションに
コピーすることによって復元するステップ;及び; 復元された命令を実行するステップを実行することを特
徴とする、コンピュータ・プログラム内に存在する機械
語水準の命令の実行を測定する方法。
18、命令の実行をする中央処理袋2 (cpu :C
entral Processing unit )を
少なくとも1つ持つコンピュータ用のコンピュータ・プ
ログラムの命令の実行を測定する装置であり、データ及
び命令を記憶するために、中央処理装置に結合されるメ
モリ手段; 選択された命令を測定命令と置き換えるための、前記メ
モリ手段に結合された手段;並びに、選択された命令の
実行を完了したことを表示するため; 測定命令を選択された命令と置き換えるため;及び、 選択された命令を実行するために、測定命令の実行に反
応して前記メモリ手段に結合された手段を有することを
特徴とする前記の装置。
19、測定命令が割込み発生命令であることを特徴とす
る上記第18項に記載の装置。
20、測定命令が区切り点命令であることを特徴とする
上記第19項に記載の装置。
21、測定命令が無効命令であることを特徴とする上記
第19項に記載の装置。
22、測定命令がサブルーチン呼出しであること・を特
徴とする上記第18項に記載の装置。
23、命令を実行する中央処理装置を少なくとも1つ持
つコンピュータ内の、コンピュータ・プログラム中の機
械語水準の命令の実行を測定する装置であり、 命令及びデータを記憶するための、中央処理装置に結合
されたメモリ手段; コンピュータ・プログラムから1セットの命令を選択す
るための、前記メモリ手段に結合される手段; 選択された1セットの命令の個々の測定命令と置き換え
るための、前記メモリ手段に結合された手段; プログラムを実行するための、前記メモリ手段に結合さ
れた手段;並びに、 実行された測定命令と置き換えられた測定済み命令を識
別するため; 測定済み命令の実行が完了したことを表示するため; 測定命令を交換することによって測定済み命令を復元す
るため;及び、 復元された命令を実行するための、個々の測定命令の実
行に反応する、前記メモリ手段に結合された手段を有す
ることを特徴とする前記の装置。
24、前記識別手段に、実行された測定命令の、プログ
ラム内におけるロケーションを探知する手段が含まれる
ことを特徴とする上記第23項に記載の装置。
25、  プログラム内の探知されたロケーションに対
応して、前記メモリ内の記憶ロケーションに、予め決定
された値を記憶する手段が前記表示手段に含まれること
を特徴とする上記第24項に記載の装置。
26、プログラムのコピーを作成するために、前記メモ
リに結合された手段を更に有することを特徴とする上記
第23項に記載の装置。
27、前記置き換え手段に、プログラム・コピー内の選
択された命令を置き換える手段が含まれ、更に前記実行
手段に、プログラム・コピーを実行する手段が含まれる
ことを特徴とする上記第26項に記載の装置。
28、実行された測定命令の、プログラム・コピー中に
おけるロケーションを探知する手段;及び プログラム内の探知されたロケーションからプログラム
・コピー内の探知されたロケーションに命令をコピーす
る手段が前記記憶手段に含まれることを特徴とする上記
第27項に記載の装置。
29、原始言語ステートメントのスタークに対応する命
令を選択する手段が、前記選択手段に含まれることを特
徴とする上記第23項に記載の装置。
30、測定命令が割込み発生命令であることを特徴とす
る上記第23項に記載の装置。
31、  測定命令が区切り点命令であることを特徴と
する上記第30項に記載の装置。
32、測定命令が無効命令であることを特徴とする上記
第30項に記載の装置。
33、測定命令がサブルーチン呼出しであることを特徴
とする上記第23項に記載の装置。
34、中央処理装置を少なくとも1つ持つコンピュータ
内の、コンピュータ・プログラム中の機械語水準の命令
の実行を測定する装置であり、命令及びデータを記憶す
るための、中央処理装置に結合されたメモリ手段; コンピュータ・プログラムのコピーを作成するための、
前記メモリ手段に結合された手段;コンピュータ・プロ
グラムから1セットの命令を選択するための、前記メモ
リ手段に結合された手段; プログラム・コピー内の選択された命令の個々を割込み
発生命令と置き換えるための、前記メモリ手段に結合さ
れた手段; 選択された命令のセットに対応する1セットの記憶ロケ
ーションを持つマツプを初期化するための、前記メモリ
手段に結合された手段;中央処理装置にプログラムのコ
ピーを実行させるための、前記メモリ手段に結合された
手段;並びに、 割込みされた命令の、プログラム中におけるロケーショ
ンを探知するため; 割込みされた命令と置き換えられた命令に対応するマツ
プ記憶ロケーションに、予め決定された値を記憶するた
め; プログラム中の探知されたロケーションに存在する命令
を、プログラム・コピー中の探知されたロケーションに
コピーすることによって復元するため;及び、 復元された命令を実行するための、割込みに反応し前記
メモリ手段に結合された手段;を有することを特徴とす
る前記の装置。
【図面の簡単な説明】
第1図は、好ましい実施例のコンピュータ・メモリ装置
のブロック図、第2図はENABLE関数の動作を示す
フローチャート、第3図はMEASIJRE関数の動作
を示すフローチャート、第4図は区切り点命令に反応し
てプログラムの動作する様子を示すフローチャート、第
5図は5AVE関数の動作を示すフローチャート、第6
図はRESET関数の動作を示すフローチャート、第7
図はDISABLE関数の動作を示すフローチャート、
第8図はl’1ARKUPのレポートの1例を示す図、
第9図はDISPLAYの出力の1例を示す図、第10
図は5ORTの出力の1例を示す図、第11図は0RD
ERの出力の1例を示す図、第12図は0RDERレポ
ートの発生に使用されるアルゴリズムを疑似コードで表
示したものを示す図である。 4・・・・・・コンピュータ・メモリ装置6.7・・・
・・・プロセス制御ブロック8・・・・・・プログラム
・コード・セグメント9.11・・・・・・データ領域 10・・・・・・コード・コピー 12・・・・・・C0VERプログラム14・・・・・
・範囲ルーチン制御ブロック16・・・・・・範囲PI
Nデータ・プロソク−〇− ょ エ63..J0.24B 特許庁長官 吉 1)文 毅 殿 1、事件の表示   昭和63年特許願第172488
号2、発明の名称   プログラムの実行を測定する方
法および装置 3、補正をする者 事件との関係  出願人 4、代理人 7、補正の内容    別紙のとおり

Claims (1)

  1. 【特許請求の範囲】 1、選択された命令を測定命令と置き換えるステップ;
    並びに、 測定命令の実行に反応して、選択された命令の実行が完
    了したことを表示するステップ;測定命令を選択された
    命令と置き換えるステップ;及び、 選択された命令を実行するステップを有することを特徴
    とするコンピュータ・プログラムの命令の実行を測定す
    る方法。 2、1セットの命令をコンピュータ・プログラムから選
    択するステップ; 選択された1セット(集合)の命令の個々を測定命令と
    置き換えるステップ; プログラムを実行するステップ;並びに、 個々の測定命令の実行に反応して、実行された測定命令
    と置き換えられた、測定済み命令を識別するステップ; 測定済み命令の実行が完了したことを表示するステップ
    ; 測定命令を置き換えることによって、測定済み命令を復
    元するステップ;及び、 復元された命令を実行するステップを有することを特徴
    とする、コンピュータ・プログラムに存在する機械語水
    準の命令の実行を測定する方法。 3、コンピュータ・プログラムのコピーを作るステップ
    ; コンピュータ・プログラムから1セットの命令を選択す
    るステップ; プログラム・コピー内の選択された命令の個々を割込み
    発生命令と置き換えるステップ;選択された1セットの
    命令に対応する1セットの記憶ロケーションを持つマッ
    プ(写像)を初期化するステップ; プログラム・コピーを実行するステップ;並びに、 割込みに反応して、割込み命令のプログラム内における
    ロケーションを探知するステップ;割込み命令と置き換
    えられた命令に対応するマップの記憶ロケーションに、
    予め決定された値を記憶するステップ; プログラム中の探知されたロケーションに存在する命令
    を、プログラム・コピー内の探知されたロケーションに
    コピーすることによって復元するステップ;及び; 復元された命令を実行するステップを実行することを特
    徴とする、コンピュータ・プログラム内に存在する機械
    語水準の命令の実行を測定する方法。 4、命令の実行をする中央処理装置(CPU:Cent
    ralProcessingunit)を少なくとも1
    つ持つコンピュータ用のコンピュータ・プログラムの命
    令の実行を測定する装置であり、 データ及び命令を記憶するために、中央処理装置に結合
    されるメモリ手段; 選択された命令を測定命令と置き換えるための、前記メ
    モリ手段に結合された手段;並びに、選択された命令の
    実行が完了したことを表示するため; 測定命令を選択された命令と置き換えるため;及び、 選択された命令を実行するために、測定命令の実行に反
    応して前記メモリ手段に結合された手段を有することを
    特徴とする前記の装置。 5、命令を実行する中央処理装置を少なくとも1つ持つ
    コンピュータ内の、コンピュータ・プログラム中の機械
    語水準の命令の実行を測定する装置であり、 命令及びデータを記憶するための、中央処理装置に結合
    されたメモリ手段; コンピュータ・プログラムから1セットの命令を選択す
    るための、前記メモリ手段に結合される手段; 選択された1セットの命令の個々を測定命令と置き換え
    るための、前記メモリ手段に結合された手段; プログラムを実行するための、前記メモリ手段に結合さ
    れた手段;並びに、 実行された測定命令と置き換えられた測定済み命令を識
    別するため; 測定済み命令の実行が完了したことを表示するため; 測定命令を交換することによって測定済み命令を復元す
    るため;及び、 復元された命令を実行するための、個々の測定命令の実
    行に反応する、前記メモリ手段に結合された手段を有す
    ることを特徴とする前記の装置。 6、中央処理装置を少なくとも1つ持つコンピュータ内
    の、コンピュータ・プログラム中の機械語水準の命令の
    実行を測定する装置であり、命令及びデータを記憶する
    ための、中央処理装置に結合されたメモリ手段; コンピュータ・プログラムのコピーを作成するための、
    前記メモリ手段に結合された手段;コンピュータ・プロ
    グラムから1セットの命令を選択するための、前記メモ
    リ手段に結合された手段; プログラム・コピー内の選択された命令の個々を割込み
    発生命令と置き換えるための、前記メモリ手段に結合さ
    れた手段; 選択された命令のセットに対応する1セットの記憶ロケ
    ーションを持つマップを初期化するための、前記メモリ
    手段に結合された手段;中央処理装置にプログラムのコ
    ピーを実行させるための、前記メモリ手段に結合された
    手段;並びに、 割込みされた命令の、プログラム中におけるロケーショ
    ンを探知するため; 割込みされた命令と置き換えられた命令に対応するマッ
    プ記憶ロケーションに、予め決定された値を記憶するた
    め; プログラム中の探知されたロケーションに存在する命令
    を、プログラム・コピー中の探知されたロケーションに
    コピーすることによって復元するため;及び、 復元された命令を実行するための、割込みに反応し前記
    メモリ手段に結合された手段; を有することを特徴とする前記の装置。
JP63172488A 1987-07-10 1988-07-11 プログラムの実行を測定する方法および装置 Pending JPH0193839A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72811 1987-07-10
US07/072,811 US4910663A (en) 1987-07-10 1987-07-10 System for measuring program execution by replacing an executable instruction with interrupt causing instruction

Publications (1)

Publication Number Publication Date
JPH0193839A true JPH0193839A (ja) 1989-04-12

Family

ID=22109900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63172488A Pending JPH0193839A (ja) 1987-07-10 1988-07-11 プログラムの実行を測定する方法および装置

Country Status (5)

Country Link
US (1) US4910663A (ja)
EP (1) EP0307075B1 (ja)
JP (1) JPH0193839A (ja)
AU (1) AU618269B2 (ja)
DE (1) DE3854546T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205623A (ja) * 2008-02-29 2009-09-10 Nec Corp テキスト表示装置、テキスト表示方法及びプログラム
JP2012027912A (ja) * 2010-07-20 2012-02-09 General Electric Co <Ge> アプリケーションコードの実行通知に用いるシステム及び方法

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02199548A (ja) * 1988-11-09 1990-08-07 Asea Brown Boveri Ag 電算機系で作成されるオブジエクト・プログラムの時間経過を観察する方法とこの方法を実行する観測器具
US5134701A (en) * 1989-02-10 1992-07-28 Hewlett-Packard Co. Test apparatus performing runtime replacement of program instructions with breakpoint instructions for processor having multiple instruction fetch capabilities
US5050168A (en) * 1989-12-29 1991-09-17 Paterson Timothy L Test coverage analyzer
GB2258064B (en) * 1991-07-26 1995-07-12 Research Machines Plc Monitoring execution of a computer program to provide test coverage analysis
US5301312A (en) * 1991-08-21 1994-04-05 International Business Machines Corporation Method and system for utilizing benign fault occurrence to measure interrupt-blocking times
US6370589B1 (en) * 1992-10-15 2002-04-09 Siemens Aktiengesellschaft Process for performing at least one test on at least one of the objects of an object-oriented program capable of running in parallel on a computer
DE4315944A1 (de) * 1993-05-12 1994-11-17 Siemens Ag Verfahren zur maschinellen Überwachung des Ablaufs eines Programmsystems
US5495561A (en) * 1993-06-21 1996-02-27 Taligent, Inc. Operating system with object-oriented printing interface
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
US5758160A (en) * 1993-06-28 1998-05-26 Object Technology Licensing Corporation Method and apparatus for building a software program using dependencies derived from software component interfaces
US5519866A (en) * 1993-06-28 1996-05-21 Taligent, Inc. Method and apparatus of incrementally linking components of a modeled computer program
WO1995015529A1 (en) * 1993-12-01 1995-06-08 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US6253368B1 (en) * 1997-03-31 2001-06-26 International Business Machines Corporation Dynamically debugging user-defined functions and stored procedures
US6393490B1 (en) 1997-12-18 2002-05-21 Ian James Stiles Method and system for a programmatic feedback process for end-user support
US20040205704A1 (en) * 1999-12-27 2004-10-14 Miller Donald W. Transparent monitoring system and method for examining an executing program in real time
US7117435B1 (en) 2000-06-21 2006-10-03 Microsoft Corporation Spreadsheet fields in text
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7191394B1 (en) * 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
EP2458511A3 (en) * 2000-06-21 2014-08-13 Microsoft Corporation System and method for integrating spreadsheets and word processing tables
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US6874143B1 (en) 2000-06-21 2005-03-29 Microsoft Corporation Architectures for and methods of providing network-based software extensions
US7191430B2 (en) * 2001-09-24 2007-03-13 Hewlett-Packard Development Company, L.P. Providing instruction execution hints to a processor using break instructions
US7243340B2 (en) * 2001-11-15 2007-07-10 Pace Anti-Piracy Method and system for obfuscation of computer program execution flow to increase computer program security
JP4224250B2 (ja) * 2002-04-17 2009-02-12 パイオニア株式会社 音声認識装置、音声認識方法および音声認識プログラム
EP1387279B1 (en) * 2002-07-31 2008-05-14 Texas Instruments Inc. Cache coherency in a multi-processor system
US7062684B2 (en) * 2002-12-19 2006-06-13 International Business Machines Corporation Enabling tracing of a repeat instruction
US7650596B2 (en) * 2003-02-13 2010-01-19 Accurate Technologies Inc. Method for ECU calibration and diagnostics development
US8225293B2 (en) * 2003-02-13 2012-07-17 Accurate Technologies Inc. Method for supporting calibration parameters in an ECU
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7275216B2 (en) 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) * 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7516145B2 (en) 2003-03-31 2009-04-07 Microsoft Corporation System and method for incrementally transforming and rendering hierarchical data files
US7168035B1 (en) 2003-06-11 2007-01-23 Microsoft Corporation Building a view on markup language data through a set of components
US7197515B2 (en) * 2003-06-30 2007-03-27 Microsoft Corporation Declarative solution definition
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US7581177B1 (en) 2003-08-01 2009-08-25 Microsoft Corporation Conversion of structured documents
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7318063B2 (en) 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US7831979B2 (en) * 2004-04-28 2010-11-09 Agere Systems Inc. Processor with instruction-based interrupt handling
US7496837B1 (en) 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
US7568101B1 (en) 2004-05-13 2009-07-28 Microsoft Corporation Digital signatures with an embedded view
US7409518B2 (en) * 2004-05-21 2008-08-05 International Business Machines Corporation Method for improving disk space allocation
US7281018B1 (en) 2004-05-26 2007-10-09 Microsoft Corporation Form template data source change
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US20060074933A1 (en) * 2004-09-30 2006-04-06 Microsoft Corporation Workflow interaction
US7516399B2 (en) 2004-09-30 2009-04-07 Microsoft Corporation Structured-document path-language expression methods and systems
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7712022B2 (en) * 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7584417B2 (en) * 2004-11-15 2009-09-01 Microsoft Corporation Role-dependent action for an electronic form
US7721190B2 (en) * 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7509353B2 (en) 2004-11-16 2009-03-24 Microsoft Corporation Methods and systems for exchanging and rendering forms
US7904801B2 (en) * 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7437376B2 (en) 2004-12-20 2008-10-14 Microsoft Corporation Scalable object model
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7725834B2 (en) * 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US7673228B2 (en) * 2005-03-30 2010-03-02 Microsoft Corporation Data-driven actions for network forms
US8010515B2 (en) * 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US20070006166A1 (en) * 2005-06-20 2007-01-04 Seagate Technology Llc Code coverage for an embedded processor system
US7543228B2 (en) 2005-06-27 2009-06-02 Microsoft Corporation Template for rendering an electronic form
US8200975B2 (en) * 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US20070036433A1 (en) * 2005-08-15 2007-02-15 Microsoft Corporation Recognizing data conforming to a rule
US7613996B2 (en) * 2005-08-15 2009-11-03 Microsoft Corporation Enabling selection of an inferred schema part
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7779343B2 (en) 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents
US8510596B1 (en) * 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US8099559B2 (en) * 2007-09-11 2012-01-17 International Business Machines Corporation System and method for generating fast instruction and data interrupts for processor design verification and validation
US8019566B2 (en) * 2007-09-11 2011-09-13 International Business Machines Corporation System and method for efficiently testing cache congruence classes during processor design verification and validation
US7992059B2 (en) 2007-09-11 2011-08-02 International Business Machines Corporation System and method for testing a large memory area during processor design verification and validation
US8006221B2 (en) 2007-09-11 2011-08-23 International Business Machines Corporation System and method for testing multiple processor modes for processor design verification and validation
US20090070570A1 (en) * 2007-09-11 2009-03-12 Shubhodeep Roy Choudhury System and Method for Efficiently Handling Interrupts
US20090083616A1 (en) * 2007-09-25 2009-03-26 Microsoft Corporation Ubiquitous electronic forms
US8265606B2 (en) * 2008-10-09 2012-09-11 Microsoft Corporation Targeted advertisements to social contacts
US9003367B2 (en) * 2009-05-11 2015-04-07 International Business Machines Corporation Specific debug trace collecting
US8769497B2 (en) 2010-07-20 2014-07-01 General Electric Company System and method for use in indicating execution of application code
US8645912B2 (en) 2010-08-31 2014-02-04 General Electric Company System and method for use in replaying software application events
US9069900B2 (en) * 2013-03-28 2015-06-30 Intel Mobile Communications GmbH Method for determining whether a machine code instruction of a machine code program is executed in the machine code program
US10540180B2 (en) * 2014-12-07 2020-01-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Reconfigurable processors and methods for collecting computer program instruction execution statistics
AU2017285429B2 (en) 2016-06-16 2022-03-31 Virsec Systems, Inc. Systems and methods for remediating memory corruption in a computer application
WO2022174246A1 (en) * 2021-02-10 2022-08-18 Microchip Technology Incorporated Trap sub-portions of computer-readable instructions and related systems, methods, and apparatuses
US11200151B1 (en) 2021-03-12 2021-12-14 Sas Institute Inc. Graphical user interface and debugger system for selecting and testing alterations to source code for software applications
CN113392006B (zh) * 2021-06-17 2022-07-12 浪潮思科网络科技有限公司 一种使用capsys监控自动化测试日志的方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5750058A (en) * 1980-09-10 1982-03-24 Usac Electronics Ind Co Ltd Debugging method by instruction exchange
JPS5854456A (ja) * 1981-09-28 1983-03-31 Fujitsu Ltd 被デバツグ・プログラム・デバツグ制御方式

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3509541A (en) * 1967-04-04 1970-04-28 Bell Telephone Labor Inc Program testing system
US3551659A (en) * 1969-05-05 1970-12-29 Charles O Forsythe Method for debugging computer programs
US3707725A (en) * 1970-06-19 1972-12-26 Ibm Program execution tracing system improvements
DE2432024A1 (de) * 1974-07-03 1976-01-22 Siemens Ag Verfahren zum betrieb einer datenverarbeitungsanlage
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
US4080650A (en) * 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint
US4231106A (en) * 1978-07-13 1980-10-28 Sperry Rand Corporation Performance monitor apparatus and method
JPS5886648A (ja) * 1981-11-18 1983-05-24 Mitsubishi Electric Corp トレ−ス装置
EP0087064A3 (en) * 1982-02-18 1986-12-10 Hewlett-Packard Company Program debugging method and system
US4511961A (en) * 1982-04-16 1985-04-16 Ncr Corporation Apparatus for measuring program execution
US4462077A (en) * 1982-06-24 1984-07-24 Bell Telephone Laboratories, Incorporated Trace facility for use in multiprocessing environment
JPS593651A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
US4635193A (en) * 1984-06-27 1987-01-06 Motorola, Inc. Data processor having selective breakpoint capability with minimal overhead

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5750058A (en) * 1980-09-10 1982-03-24 Usac Electronics Ind Co Ltd Debugging method by instruction exchange
JPS5854456A (ja) * 1981-09-28 1983-03-31 Fujitsu Ltd 被デバツグ・プログラム・デバツグ制御方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205623A (ja) * 2008-02-29 2009-09-10 Nec Corp テキスト表示装置、テキスト表示方法及びプログラム
JP2012027912A (ja) * 2010-07-20 2012-02-09 General Electric Co <Ge> アプリケーションコードの実行通知に用いるシステム及び方法

Also Published As

Publication number Publication date
EP0307075A2 (en) 1989-03-15
DE3854546T2 (de) 1996-05-15
AU1879088A (en) 1989-01-12
US4910663A (en) 1990-03-20
EP0307075A3 (en) 1990-10-10
DE3854546D1 (de) 1995-11-09
AU618269B2 (en) 1991-12-19
EP0307075B1 (en) 1995-10-04

Similar Documents

Publication Publication Date Title
JPH0193839A (ja) プログラムの実行を測定する方法および装置
US7543279B2 (en) Method for simulating back program execution from a traceback sequence
Bell et al. Efficient dependency detection for safe Java test acceleration
US6430741B1 (en) System and method for data coverage analysis of a computer program
US5528753A (en) System and method for enabling stripped object software monitoring in a computer system
US7849450B1 (en) Devices, methods and computer program products for reverse execution of a simulation
US7185320B2 (en) System and method for processing breakpoint events in a child process generated by a parent process
CA2179553C (en) Determining dynamic properties of programs
US6634020B1 (en) Uninitialized memory watch
US6988263B1 (en) Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
US20090037887A1 (en) Compiler-inserted predicated tracing
US20060143596A1 (en) Program analyzing apparatus and testing apparatus, and analyzing method and program therefor
US6173395B1 (en) Mechanism to determine actual code execution flow in a computer
US6247146B1 (en) Method for verifying branch trace history buffer information
JPH0823837B2 (ja) サンプリング性能分析方法及び装置
Chen et al. Reversible debugging using program instrumentation
US6738778B1 (en) Method and apparatus for monitoring the execution of a program
CA2492367C (en) Data processing system
Schubert et al. Know your analysis: How instrumentation aids understanding static analysis
Schulz et al. A blast from the past: online time-travel debugging with bite
Chang et al. An Effective Parallel Program Debugging Approach Based on Timing Annotation
EP0657812A1 (en) System and method for monitoring library software
Barbacci et al. Specification, evaluation, and validation of computer architectures using instruction set processor descriptions
JPH04358232A (ja) 情報処理装置の機能試験方法
Okie et al. Implicit-specification errors and automatic, trace-based debugging