JPS61198340A - パスカバレツジ測定方式 - Google Patents

パスカバレツジ測定方式

Info

Publication number
JPS61198340A
JPS61198340A JP60039302A JP3930285A JPS61198340A JP S61198340 A JPS61198340 A JP S61198340A JP 60039302 A JP60039302 A JP 60039302A JP 3930285 A JP3930285 A JP 3930285A JP S61198340 A JPS61198340 A JP S61198340A
Authority
JP
Japan
Prior art keywords
instruction
branch
program
load module
path coverage
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
JP60039302A
Other languages
English (en)
Inventor
Masao Ochiai
落合 正雄
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 JP60039302A priority Critical patent/JPS61198340A/ja
Priority to EP86102066A priority patent/EP0199009A3/en
Priority to US06/833,595 priority patent/US4742466A/en
Publication of JPS61198340A publication Critical patent/JPS61198340A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の技術分野] この発明は、プログラム中に存在するバス(実行経路)
の内、どの程度が既に通過しているかを測定するパスカ
バレッジ測定方式に関する。
[発明の技術的背Ill 従来、この種のパスカバレッジ測定方式では、まずコン
パイラにより、プログラム中の全バス(即ちプログラム
のフロ〜において分岐により発生するバスの全て)に割
込みを発生する特殊な命令が埋込まれる。そして、この
特殊な命令の実行による割込み発生時に、割込み処理ル
ーチンにより対応するバス(即ちその命令を含むバス)
の通過が認識され、通過率が測定される。この通過率の
多少は、プログラムのテスト完了状況の目安となる。
[背景技術の問題点] しかし、従来のパスカバレッジ測定方式では、上記埋込
まれた命令の実行時にソフトウェア(割込み処理ルーチ
ン)の介在があるため、プログラムの処理速度が低下す
る問題があった。このため従来は、リアルタイムシステ
ムで実際の業務を行ないながらパスカバレッジ測定を行
なうことが困難であった。
[発明の目的] この発明は上記事情に鑑みてなされたものでその目的は
、パスカバレッジ測定に伴うオーバヘッドが著しく減少
でき、もって実環境下でのパスカバレッジ測定を可能と
するパスカバレッジ測定方式を提供することにある。
[発明の概要] この発明では、分岐したか、或は分岐せずに通過したか
を示す情報が設定されるフラグ部を有する条件付き分岐
命令を含むロードモジュールを生成する手段と、上記ロ
ードモジュールを実行可能な形態のプログラムとして主
記憶装置にローディングする手段と、上記主記憶装置か
ら命令を取出して解釈実行する解釈実行手段とが設けら
れる。
この解釈実行手段は、主記憶装置から取出した命令が上
記条件付き分岐命令である場合に、分岐条件の判断結果
に応じて同分岐命令の上記フラグ部の情報を書換えるよ
うに構成されている。また、この発明では、上記プログ
ラムまたはその一部が上記主記憶装置から追出されると
きに、同プログラムまたはその一部を上記ロードモジュ
ールに書戻す手段が更に設けられ、プログラム実行後の
ロードモジュールにパスカバレッジ洞室結果が得られる
ようになっている。
[発明の実施例] 以下、この発明の一実施例を第1図(a)。
(b)および第2図(a)、(b)を参照して説明する
第1図(a)において、11はパスカバレッジ測定対象
となるソースプログラム、12はコンパイラである。コ
ンパイラ12はソースプログラム11を翻訳してオブジ
ェクトプログラム13を生成する。この際、コンパイラ
12は、条件付き分岐を必要とする箇所に第1図(b)
に示すフォーマットの条件付き分岐命令を設定する。こ
の分岐命令は、条件付き分岐命令の種別を示すオペレー
ション・フィールド(以下01部と称する)21、およ
び分岐先のアドレスを示すアドレス・フィールド(以下
、ADR部と称する)22を有している。また上記条件
付き分岐命令は、更に、同命令の実行状況を示すフラグ
・フィールド(以下、FLAG部と称する)23を有し
ている。このFLAG部23部内3去に対応する分岐命
令が実行された際に分岐したことがあるか否かを示すB
ビット(BRANCHビット)と、過去に対応する分岐
命令が実行された際に分岐せずに通過した(下に抜けた
)ことがあるか否かを示すTビット(THROtJGH
ビット)との2ビツトから成る。BビットおよびTビッ
トは、初期状態において、即ち対応する命令(条件付き
分岐命令)の未実行状態において、いずれも110 I
+である。上記した条件付き分岐命令を含むオブジェク
トプログラム13は、実行可能な形態を成すようにリン
カ14により処理され、これによりロードモジュール1
5が生成される。
さて、プログラム実行時には、ロードモジュール15が
、実行可能なプログラムとしてO8(オペレーティング
システム)により主記憶装置16にローディングされる
。そして、CPUで実現される命令解釈実行部17によ
り、プログラムを構成する命令が主記憶装置16から逐
次取出され、解釈実行される。命令解釈実行部17は、
主記憶装置16から取出した命令が条件付き分岐命令の
場合、分岐条件の判断を行ない、その判断結果に応じて
同命令のFLAG部23部内3を更新する。即ち命令解
釈実行部17は、分岐することを判断した場合にはFL
AG部23部内3ットに論理゛1”を書込み、分岐しな
いことを判断した場合にはFLAG部23部内3ットに
論理“1”を書°込む(論理゛1°′書込み対象ビット
が既に論理“1パとなっている場合には、この書込み動
作は必ずしも必要でない)。
そして命令解釈実行部17は、FLAG部23部内3動
作の後、分岐あるいは下に抜ける(通過の)ための手続
きを行なう。
以上の動作から明らかなように、この実施例で適用され
る条件付き分岐命令のFLAG部23部内3応する命令
の過去の実行状況を示す。F LAG部23で示される
分岐命令実行状況は、次に列挙する■〜■のいずれかで
ある。
■ B=O,T=0の場合 初期状態、即ち対応する命令が未実行である。
■ B=O,T−1の場合 対応する命令を実行したことはあるが、分岐したことは
ない。
■ B−1,7−0の場合 対応する命令の実行により分岐したことはあるが、下に
抜けた(分岐しなかった)ことはない。
■ B=1.T=1の場合 対応する命令の実行により分岐したことも、下に扱けた
く分岐しなかった)こともある。
したがって、主記憶装置16にローディングされて実行
された(ロードモジュール15に対応する)プログラム
(中の全条件付き分岐命令の各FLAG部23)は、パ
スカバレッジ測定データを内蔵する。
主記憶装置16内のプログラムまたはその一部は、O8
の制御により必要に応じて主記憶装置16から追出され
る(アンロードされる)、このとき、この実施例では、
上記プログラムまたはその一部をロードモジュール15
に書戻し、(ブOグラムン実行後のロードモジュール1
8を得るようにしている。
したがって、再度プログラム実行を行ないたい場合には
、上記実行後のロードモジュール18を、ロードモジュ
ール15として主記憶装置16にローディングすること
になる。
この実施例では、ロードモジュール15を何回か実行し
た後に、パスカバレッジレポートツール19により上記
実行後のロードモジュール18を解析し、パスカバレッ
ジ状況の定量化を行なう。この解析の様子を第2図(a
)、(b)を参照して説明する。
今、パスカバレッジ解析対象となるプログラムの構造を
、条件付き分岐命令に着目して抽出した場合、第2図(
a)に示すようになっていたものとする。同図において
、記号○は条件付き分岐命令を示し、O内の数値は同命
令のFLAG部23の状B(即ち前記した分岐命令実行
状況)を示す。
パスカバレッジレポートツール19は、第2図(a)の
構造図を分析して各バスの通過の有無を判定する。この
判定結果を第2図(b)に示す。同図において、通過し
たことのあるバスは実線で示され、通過したことのない
バスは破線で示されている。
例えば■で示される分岐命令の箇所では、下に抜けるバ
スは実線で示され、分岐側のバスは破線で示される。こ
れに対して■で示される分岐命令の箇所では、下に抜け
るバスは破線で示され、分岐側のバスは実線で示される
。また、■で示される分岐命令の箇所では、下に抜ける
バスおよび分岐側のバス、いずれも実線で示される。
パスカバレッジレポートツール19は、上記のようにし
て全てのバスの実行状況を調べた後、その結果をパスカ
バレッジレポート20として出力する。
なお、前記実施例では、条件付き分岐命令のFLAG部
23が、BピットおよびTビットの2ビツトで構成され
ているものとして説明したが、例えば分岐回数を示す第
1のカウンタ部と、分岐せずに下に抜けた回数を示す第
2のカウンタ部で構成し、各バスの通過回数を記憶する
ようにしてもよい。こうすることにより、単なるパスカ
バレッジでなく、より一般的な動的解析が可能となる。
C発明の効果コ 以上詳述したようにこの発明によれば、次に列挙する作
用効果を奏することができる。
■ パスカバレッジ測定のためのソフトウェア(パスカ
バレッジ測定のための割込み処理ルーチンなど)の介在
がなく、しかもそのために必要となるFLAG部(フラ
グ部)に関するオーバヘッドが少ないので、リアルタイ
ムシステムで実際の業務を行ないながらパスカバレッジ
測定が行なえる。
■ 従来方式と異なって余分な命令の挿入がないため、
プログラムサイズの増加が殆んどない。
■ 条件付き分岐命令の実行状況を、ロードモジュール
自身が(各分岐命令のFLAG部に)記憶しているので
、同モジュールには、毎回のロ−トモジュールの実行結
果が累積されていく。このため、ロードモジュールが作
成されてからパスカバレッジ解析を行なうまでの間のロ
ードモジュールの全ての実行におけるパス通過を測定で
きる。
【図面の簡単な説明】
第1図(a)はこの発明の一実施例に係るパスカバレッ
ジ測定手順を示す図、第1図(b)は条件付き分岐命令
のフォーマットを示す図、第2図(a)は条件付き分岐
命令に着目した場合のプログラム構造の一例を示す図、
第2図(b)は第2図(a)におけるバス通過に関する
分析図である。 12・・・コンパイラ、14・・・リンカ、15・・・
ロードモジュール、16・・・主記憶装置、17・・・
命令解釈実行部、1B・・・実行後のロードモジュール
、23・・・FLAG部。 出願人代理人 弁理士 鈴 江 武 産業1図 (a)         (b) 第2r (a) 各 プロプラム 虫0 (b) プロプラム 虫口

Claims (1)

    【特許請求の範囲】
  1. 分岐したか、或は分岐せずに通過したかを示す情報が設
    定されるフラグ部を有する条件付き分岐命令を含むロー
    ドモジュールを生成する手段と、上記ロードモジュール
    を実行可能な形態のプログラムとして主記憶装置にロー
    ディングする手段と、上記主記憶装置から命令を取出し
    て解釈実行する解釈実行手段であって、同命令が上記条
    件付き分岐命令である場合に分岐条件の判断結果に応じ
    て同分岐命令の上記フラグ部の情報を書換える解釈実行
    手段と、上記プログラムまたはその一部が上記主記憶装
    置から追出されるときに、同プログラムまたはその一部
    を上記ロードモジュールに書戻す手段とを具備し、プロ
    グラム実行後のロードモジュールにパスカバレッジ測定
    結果を得るようにしたことを特徴とするパスカバレッジ
    測定方式。
JP60039302A 1985-02-28 1985-02-28 パスカバレツジ測定方式 Pending JPS61198340A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP60039302A JPS61198340A (ja) 1985-02-28 1985-02-28 パスカバレツジ測定方式
EP86102066A EP0199009A3 (en) 1985-02-28 1986-02-18 Path coverage measuring system in a programme
US06/833,595 US4742466A (en) 1985-02-28 1986-02-27 System for measuring path coverage represented by the degree of passage of execution paths in a program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60039302A JPS61198340A (ja) 1985-02-28 1985-02-28 パスカバレツジ測定方式

Publications (1)

Publication Number Publication Date
JPS61198340A true JPS61198340A (ja) 1986-09-02

Family

ID=12549323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60039302A Pending JPS61198340A (ja) 1985-02-28 1985-02-28 パスカバレツジ測定方式

Country Status (1)

Country Link
JP (1) JPS61198340A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6415836A (en) * 1987-07-10 1989-01-19 Mitsubishi Electric Corp Detection system for comprehensiveness of software test

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6415836A (en) * 1987-07-10 1989-01-19 Mitsubishi Electric Corp Detection system for comprehensiveness of software test

Similar Documents

Publication Publication Date Title
US4794522A (en) Method for detecting modified object code in an emulator
US4742466A (en) System for measuring path coverage represented by the degree of passage of execution paths in a program
JPH11232147A (ja) パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
JPH04503416A (ja) データフローマルチプロセサシステム
CN103729282B (zh) 一种用于从多个并联cpu追踪数据写入信号的方法和系统
US8898625B2 (en) Optimized storage of function variables
JPS61198340A (ja) パスカバレツジ測定方式
US20100088251A1 (en) Business Process Diagram (BPD) component analysis
US20180357149A1 (en) Emulation of target system using jit compiler and bypassing translation of selected target code blocks
US20040083088A1 (en) Analysis of the performance of a portion of a data processing system
CN109656868A (zh) 一种cpu与gpu之间的内存数据转移方法
US11386518B2 (en) Exception handler for sampling draw dispatch identifiers
JP2007094986A (ja) シミュレーション装置およびシミュレーション方法
JPH0646382B2 (ja) プリフェッチキュー制御方式
JP2721377B2 (ja) Basicプログラム圧縮方法
JPS61235985A (ja) ベクトルプロセツサ
US20130283244A1 (en) Debugging Extensible Markup Language
JPS59218567A (ja) アドレスオ−バラツプチエツク方式
JPS6367696B2 (ja)
JPS62254237A (ja) インタプリタ方式の分岐命令実行方式
JPH03132839A (ja) データ処理装置
JPH04134535A (ja) マルチタスクプログラムの例外情報採取機構
JPH01158541A (ja) プログラム走行ルートの収集方式
Arnott et al. Considerations in real-time signal processing under FORTRAN control
JPS61123942A (ja) マイクロプロセツサ用デバツク装置