JPH0833845B2 - ソフトウエア動作解析装置 - Google Patents

ソフトウエア動作解析装置

Info

Publication number
JPH0833845B2
JPH0833845B2 JP61020434A JP2043486A JPH0833845B2 JP H0833845 B2 JPH0833845 B2 JP H0833845B2 JP 61020434 A JP61020434 A JP 61020434A JP 2043486 A JP2043486 A JP 2043486A JP H0833845 B2 JPH0833845 B2 JP H0833845B2
Authority
JP
Japan
Prior art keywords
address
measurement
data
comparator
software
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
Application number
JP61020434A
Other languages
English (en)
Other versions
JPS61204749A (ja
Inventor
ケビン・エム・ホール
ダニエル・エイ・シユメルザ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPS61204749A publication Critical patent/JPS61204749A/ja
Publication of JPH0833845B2 publication Critical patent/JPH0833845B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus

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)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は高級言語で書かれたソフトウエアのデバッグ
等に有効なソフトウエア動作解析装置に関する。
〔従来技術およびその問題点〕
マイクロプロセッサを組込んでいる製品の数は増加し
つつある。これらの製品の開発費用のほとんどはマイク
ロプロセッサが実行するプログラムの試験とデバッギン
グとに関係している。また、得られる製品の性能は行わ
れる各種の設計上の選択とそれらのプログラムを書く際
に使用される技倆とによって大幅に変る。このプログラ
ミングはファームウェアかソフトウエアの形をなしてい
る。下記の説明に関するかぎり、相違点は決まっておら
ず、このようなプログラミングを今後は単にソフトウエ
アと呼ぶことにする。
その目的とする機能を達成するのに甚だしくソフトウ
エアに頼る新しい製品の開発サイクルにおいては、設計
者はその間に多様な測定用具(たとえば、エミュレー
タ、タイミング・アナライザ、論理状態アナライザ、な
ど)に頼って製品の性能を試験し、デバッグし且つ解析
する。本発明はソフトウエアの開発サイクルのほとんど
全ての段階において設計者に役立つもう一つの測定用具
となるものである。これはソフトウエアの性能評価試
験、デバッグ、および最適化に使用することができると
ともに、ソフトウエアが実時間で実行されている時に、
ソフトウエアの動作・性能の評価をその走行の邪魔をす
ることなしで行なうことができる。
従来は、プログラムの性能は次の二つの方法のいずれ
かで測定されてきた。一つはプログラム内「フック」に
よるものである。つまりこのフックが、存在するコード
のブロックを実行するごとに短いメッセージを打ち出す
ものである。もう一つは特別に設計した監視プログラム
によるもので、対象とされたコードの実行を監視し、実
行の持続時間を測定する。この二つの従来の方法の欠点
はこれらがでしゃばりで実時間演算に影響することであ
る。プログラム内フックを設けておくと被試験プログラ
ムが長くなってしまう。従って、完成したコードを限ら
れたメモリ空間に収容しなければならない場合にはこの
フックを除かなければならない。しかしながら、一旦除
いてしまうと、もはやコードの実行を監視するのに利用
することはできない。したがって、デバッグ作業ごとに
フックを再生しなければならない。これは困難で費用の
かかる仕事である。同様に、プログラムモニタは、1ラ
イン毎のトレーサであろうと、イベント・タイマであろ
うと、プログラムの実行時間の他に、それ自身の実行時
間がかかる。その結果、広範囲のモジュール相互作用に
わたり真の検出作業が必要な状況には充分には適してい
ない。これら従来の方法の他の短所は、行うべきそれぞ
れの測定に対してプログラムを作り上げなければなら
ず、これは時間がかかるとともにおそらくそれ自身でエ
ラーを生じやすいプログラミング作業である。
従来の方法は、CやPASCALのような高級言語で書かれ
たプログラムをデバッグしたり解析したりするには適し
ていないという別の欠点もある。この場合、プログラマ
はプログラムが書かれている言語とアナライザが動作す
る生の状態フローのレベルとの間の間隙をつなぐため幾
つかの階層間の翻訳を行わなければならない。その結
果、プログラマは試験やデバッグを行なっている間は、
元のプログラムが構想され実現されているものとは異な
る文脈で考えなければならないということになる。
〔発明の目的〕
本発明の目的は、実時間かつプログラムの動作に対し
て非干渉の測定を行うソフトウエア動作解装置を提供す
ることにある。また本装置により解析装置の解析ならび
にデバッグ支援能力と、解析すべきプログラムを構想し
実現したレベルとの間の不調和が大幅に減少される。
〔発明の概要〕
本発明の一実施例のソフトウエア解析装置は、三つの
レベルでソフトウエアの試験とデバッグの自動化を進め
る。三つのレベルとは、ソフトウエアの階層間の翻訳
(例えば、高級言語のコードとそのマシン・コードとの
対応をとること)を自動的に行なうこと、基本的な試験
とデバッグの測定を自動化すること、および一連の測定
を自動的に行なうことである。
データ収集パラメータは構文指向型ソフトキーを用い
て迅速且つ容易に入力される。プログラムのアセンブル
あるいはコンパイルによって生成されたシンボル・ラベ
ル・テーブルを用いて直接に測定対象を規定することが
できる。測定の構成には柔軟性があり、これにより多様
なアプリケーションからの要請にこたえている。本ソフ
トウエア解析装置には基本的な性能測定の能力があり、
モジュール/プログラムのタイミングとコード実行の仕
様を試験することができる。この性能測定能力は、基本
的なデバッグ・プロセスのためばかりではなく、ソフト
ウエアの信頼性を改良するための、ベリフィケーション
やバリデーションの支援にも重要である。タイミング測
定は、作業に重要な改良をもたらし、解析対象のシステ
ムを一層包括的に描写するという第三の局面がユーザー
にとって開けてくる。また、本発明のソフトウエア解析
装置で性能測定を行なうことにより、性能解析とコード
最適化の作業を行うことができる(例えば、タイミン
グ、事象発生、またはメモリ・スペースが仕様に合わな
ければ、それはバグである)。ソフトウエアのコードと
データを測定する能力があることによって、従来のデバ
ッグ及び解析パッケージに比較してプログラマの生産性
にかなりな改善をもたらす。これらの測定は高度に強化
された自動試験管理機能を介して行なうことができる。
これら測定値の正確度を改善し、不確実度を減らすこと
に対して極めて重要なものは、この解析を解析対象に影
響を与えず、且つ実時間で実行できるようにすることで
ある。これらの手段は使用しやすい形で実現されてユー
ザーに提示される。これはソフトウエアが構想され、設
計され、実現され、保守される方法と合致している。
本発明の、これらのおよび他の特徴は、実時間データ
収集と迅速且つ解析対象に影響を与えない測定を行うハ
ードウエアと、柔軟な諸特徴を有するソフトウエアを用
いて、ハードウエアとソフトウエアの実現の間で最適な
釣合のとれているハイブリッド設計によって達成され
る。
〔発明の実施例〕
第1図は本発明のソフトウエア解析装置を組込んだマ
イクロプロセッサ開発システムのブロック図である。本
システムには、CRT表示装置1に隣接して再定義可能な
ソフト・キーを一列有するキーボード1を備えている。
本システムは、またホスト・プロセッサ2、ホスト・メ
モリ4、および大容量記憶装置5(例えば、ハードディ
スク・ドライブ)を備えている。またいろいろなオプシ
ョンを取付けることができる。各オプションはBPCバス1
8を経由してホスト構成要素と接続している1枚あるい
はもっと多くのプリント基板を備えている。一般に各オ
プションはホストシステム内に既に設けられている管理
および測定システムに追加されるいくつかの関連ソフト
ウエアをも備えている。
マイクロプロセッサ開発システムに取付けることがで
きるオプションとしては、エミュレータ、クロス・コン
パイラ、ロジック・ステート・アナライザ、タイミング
・アナライザ、および本願発明の主題であるソフトウエ
ア動作解析装置がある。オプションはモジュール間バス
6を介して相互に接続れている。勿論、当業者には、本
発明は他の或る装置のオプションとして作られる必要は
なく、望むならば、完全な独立の測定装置として同様に
実現されることが理解されるであろう。それにもかかわ
らず、本発明は最初このようなオプションとして作られ
たので、便宜上この形で述べることにする。
本実施例においては、ソフトウエア動作解析装置は、
マイクロプロセッサ開発システム内に取付けられる3枚
のプリント基板といくつかの付属ソフトウエアとから構
成されている。マイクロプロセッサ開発システムとし
て、ヒューレット・パッカード社製モデル64000を用い
る本実施例においては、エミュレータのオプションも取
付けられていなければならない。この場合プラグイン式
のプリント基板の接続は、ターゲット・ソフトウエアが
エミュレータを用いて実行される際、ターゲット・シス
テムからの必要な信号がソフトウエア動作解析装置に自
動的に結合されるように配置されている。
勿論、ソフトウエア動作解析装置内に、信号収集及び
条件付け(Conditioning)回路の他に自分自身のプロー
ブをも設けることが同様に可能である。従って本装置
を、ターゲット・ソフトウエアを実行する任意のプロセ
ッサに直接取付けることができる。この直接接続は、柔
軟性に関してある利点を持っているのではあるが、エミ
ュレータへ自動的に結合する方式も、ターゲット・シス
テムのハードウエアの完成前であっても、ソフトウエア
性能解析を進めることができるという同等に魅力的な長
所を持っている。
一旦ソフトウエア動作解析装置が取付けられ、アクセ
スされると、各種の再定義可能な定義がCRT表示装置の
画面下部に現われる。これらの定義は一行の再定義可能
なソフトキーに関連している。これらのキーの助けを借
りてユーザーはマイクロプロセッサ開発システムおよび
所望の測定に関する各種オプション(特にソフトウエア
動作解析装置)に指令を与える。これは「誘導型構文
(directed syntax)」を用いて会話型プロセスにより
行われる。すなわち、管理および測定システムはユーザ
ーが各命令の構文中を先へ進むにつれて、ソフトキーの
定義を動的に変化する。このようにして、ユーザーに対
して、各場面において妥当な選択肢だけが提示される。
よって、いろいろな命令に対するパラメータの選択に際
し、自動的に指示され案内される。ユーザーからの命令
に応じて管理・測定システムは各種制御値をオプション
のプリント基板およびその他の場所にあるレジスタに書
込む。これにより、これらハードウエアの構成要素を、
選択したモードで動作するように且つ所望の測定を行う
ように構成する。
第2図は、ソフトウエア動作解析装置内の情報の流れ
を示す。ターゲット・システムからの信号はデータ入力
部11からエミュレーション・バス12を経由してソフトウ
エア動作解析装置に入る。この入力信号はターゲット・
システムからのアドレス、データおよび状態情報を含ん
でいる。32ビット幅のアドレスおよび状態信号は、動的
認識比較器13とアドレス認識比較器15と高速シーケンス
機能発生器31に送られる。16ビット幅のデータ信号はデ
ータ認識比較器17に送られる。アドレス信号、状態信
号、およびデータ信号はまた下に説明するように取込み
メモリ35にも送られて選択的に記憶される。
アドレス認識比較器15は、このソフトウエア解析装置
により、選択されたデバッグ解析作業を行なっていると
きに注目すべき事象、すなわち、特定のアドレスまたは
状態がユーザーが選定したものと一致した、あるいは選
定した範囲内に入ったということを示す、ターゲット・
システムからの信号を認識するようにプログラムするこ
とができる。同様にデータ認識比較器17はターゲット・
システムからのデータ信号が、予め選定されたものと一
致したか或いは、予め選定した範囲内に入ったことを認
識するようにプログラムすることができる。
アドレス認識比較器15およびデータ認識比較器17から
の出力は高水準資源発生器(high level resource gene
rator)19に送られる。高水準資源発生器19はいくつか
のもっと複雑な事象、すなわち、アドレス認識比較器15
およびデータ認識比較器17が認識した複数の事象の組合
せが発生したことを検出するようにプログラムすること
ができる。
アドレスおよびデータの各認識比較器と高レベル資源
発生器はこのようにして2つのレベルの事象認識論理を
与える。これにより、事象認識回路の柔軟性が増す。と
いうのは、低レベルの事象と要素事象の複合したものの
組合せを互いに別々にプログラムすることができるから
である。また、本構成によれば、一つの事象はアドレ
ス、状態、データの組合せとしてではなく、これらのも
ののうちの単一のもののストリームとして定義されるの
で、低レベル事象の認識をもっと簡単にプログラムする
こともできるようになる。別の利点は、高水準資源発生
器19の出力は比較的密度の高い情報を含んでいるので、
次の段階の認識論理をもっと複雑な解析を行うのに使用
することができるということである。
高水準資源発生器19の出力は、2つのシーケンサ、す
なわち、X測定機能発生器21とY測定機能発生器23とに
進む。これらの機能発生器は高水準資源発生器19の出力
により表わされる一連の事象の発生を検出するようにプ
ログラムすることができる。機能発生器21および23への
もう一つの入力はタイマ27と高速シーケンス機能発生器
31とから来るが、この動作を下に述べる。この別の入力
も認識すべき一連の事象を定義する際に利用することが
できる。
機能発生器21と23の出力は専用機能発生器25に送ら
れ、多数の動作機能のうちの任意のものを発生する。そ
れらの機能としては:スタート、タイマ・カウント、タ
イマ・ロード、生起(Occur)、カウント、記憶、スト
ップ、およびサーチ等がある。スタート機能は、測定エ
ピソード(つまり測定の開始から終りまでの区間、期
間)をスタートさせ、他の機能を使用可能にする。タイ
マ・カウントおよびタイマ・ロードはタイマ27を制御す
る。生起なる機能は高水準資源発生器19に対して選択さ
れた事象をカウントする事象生起カウンタ29への入力を
発生するのに使用される。カウント機能は、その出力を
取込みメモリ35に記憶させることができるフローティン
グ・カウンタ33への入力として、およびプログラム・ラ
インの実行をカウントするライン・カウンタ40への入力
として使用される。記憶機能は、取込みメモリ35に、現
在エミュレーション・バス12上に存在するアドレス・デ
ータ状態の情報、またこれに加えてフローティング・カ
ウンタ33の現在値および命令、コード・アドレス・レジ
スタ37の現在値を記憶させる。ストップ機能は測定エピ
ソードを終了させる。サーチ機能は、高レベルの事象を
サーチし、発見できたとき、他のアナライザのような、
ホストシステム内の外部装置に起動信号を送るのに使用
される。
今まで述べた事象認識システムの動作を要約すると、
低レベル事象の認識はアドレス認識比較器15とデータ認
識比較器17とにより行われ、高レベル事象の認識(複合
事象認識)は高水準資源発生器19で行われ、複合事象の
シーケンスは機能発生器21と23とで調べられて、ある機
能が専用機能発生器25でいつ実行されるべきかを決定す
る。タイマ27と事象生起カウンタ29とは専用機能発生器
25により制御され、高水準資源発生器19および測定機能
発生器21と23とへのフィールドバック入力を発生する。
第2図の左側に示す事象認識装置の部分は、動的認識
比較器13と高速シーケンス機能発生器31とから成る。こ
の部分は、動的に生成される変数(動的変数)に関する
事象を認識するために設けられている。典型的には、変
数には記憶装置のロケーションすなわちアドレスが割当
てられており、変数に関する活動はすべてそのアドレス
を注視することによりトレースすることができる。しか
しながら、或る高級言語、例えば、PASCALでは、ローカ
ル変数のアドレスとして、相対的なロケーション、例え
ばスタック・ポインタ(或いはフレーム・ポインタ)に
対する相対アドレスだけが割当てられる。このような動
的に生成される変数(以下、動的変数と称する)に関す
る活動を追跡するためには、アナライザは、スタックの
トップ(TOS)がどこにあるか、および、その変数がス
タック中のどの位置にあるかを追跡していなければなら
ない。
動的認識比較器13は、このような変数に対するアクセ
スとその変数が割当てられているスタック位置を表わし
ているターゲット・システムからの信号を認識するよう
に実時間でプログラムすることができる。高速シーケン
ス機能発生器31は動的認識比較器13からの出力信号を解
釈し、また、動的に生成された変数に割当てられたアド
レス範囲を有する動的比較器の少くとも一つをプログラ
ムしなおすように、プログラムすることができる。高速
シーケンス機能発生器31の出力はX、Y測定機能発生器
21、23、および専用機能発生器25に送られる。このよう
にして、動的認識比較器13が動的変数へのアクセスを検
出すると、高速シーケンス機能発生器31はエミュレーシ
ョン・バス12の現在の状態を取込みメモリ35に記憶させ
ることができる。
ステートメント・カウント回路40は、専用機能発生器
25、およびエミュレーション・バス12から受取った信号
に基いて、実行された高級言語のステートメントの数を
カウントする。
本実施例においては、ソフトウエア動作解析装置はホ
ストのマイクロプロセッサ開発システムに挿入される相
互に接続された3枚のプリント基板から構成されてい
る。第3A図ないし第3C図は夫々3枚のプリント基板上の
回路構成のブロック図を示している。
第3A図を参照すると、第一のプリント基板はエミュレ
ーション・バス・インタフェース41、アドレス認識比較
器15、データ認識比較器17、高水準資源発生器19、カウ
ント・マッパ43とライン・カウンタ45、クロック47、お
よび電源49を含んでいる。
エミュレーション・バス・インターフェース41はエミ
ュレータからの信号をソフトウエア動作解析装置に入力
するための入力ポートとなっている。エミュレータから
の信号はエミュレーション・バス12を介して本解析装置
全体にわたり適切な回路に分配される。
アドレス認識比較器15とデータ認識比較器17は32ビッ
トの比較器である。第4図は両認識比較器の構成要素の
概略ブロック図を示す。各認識比較器50の機能は、入力
データのパターンおよび範囲の認識を1、0、およびド
ントケア(don′t care)を用いて行う。プログラム・
ポート51で受取られる信号は32ビットのパターンと他の
制御信号である。この制御信号により、32ビットのパタ
ーンを認識比較器内の4個のレジスターの一つに振向け
る。各認識比較器には32ビット幅のレジスタが4個(上
限値レジスタ53、下限値レジスタ54、上限マスクレジス
タ55、および下限マスクレジスタ56)が設けられてい
る。これらレジスタはすべて、認識比較器動作中にその
全体動作を中断することなくロードできる。但し、アド
レス認識比較器15とデータ認識比較器17のマスク・レジ
スタ55と56は一般には測定を行う前にロードされ、測定
中は変らない。上限値レジスタ53と下限値レジスタ54、
および上限マスク・レジスタ55と下限マスク・レジスタ
56には、検知されるべきデータまたはアドレス事象の構
成がロードされる。すなわち、上限値、下限値レジスタ
53、54には比較用の境界値がロードされ、上限、下限マ
スク・レジスタには、ドント・ケア・ビット位置を示す
パターンがロードされる。エミュレータ・バスを経由し
てデータ入力ポート52から受取られた入力データ・パタ
ーンは、マスク・レジスタおよび数値レジスタにロード
されている構成と比較される。上限値レジスタと上限マ
スク・レジスタの出力は比較器58に送られて、入力値が
事象データ以下であること、或いは、事象データと全く
等しいことを、ドントケア・ビット位置を考慮に入れた
上で、検出する。下限値レジスタと下限マスク・レジス
タの出力は比較器57に送られて、入力値が事象データ以
上であること、或いは、事象データと全く等しいこと
を、ドントケア・ビット位置を考慮に入れた上で、検出
する。比較器57と58からの出力信号に基いて、出力機能
論理回路59は5通りの出力のうちの1つ、或いは、複数
のものを発生する。各出力は以下のことを示す:入力デ
ータが上限に等しい、上限以下である、下限以上であ
る、下限に等しい、上限と下限との間の範囲にある。こ
のように認識比較器は2つのモードで動作できる。第1
のモードは、範囲検出モードであり、入力データまたは
アドレスが予め選択した範囲内にあるか否かを検出す
る。第2のモードは、一致検出モードであり、入力デー
タまたはアドレスが予め選択したパターンと同じである
か否かを検出する。
本実施例では、6個のアドレス認識比較器が設けられ
ており、内2個はアドレス一致比較器、残り4個は、ア
ドレス範囲比較器として構成されている。また、データ
認識比較器も6個設けられており、内4個はデータ一致
比較器、残り2個はデータ範囲比較器として構成されて
いる。アドレス一致比較器の一つはターゲット・システ
ムでの命令コード・フェッチ状態を検知して出力信号を
発生するようにプログラムすることができる。
第3A図に示す構成要素の説明に戻ると、高水準資源発
生器19中には別に32ビット比較器が10個備えられてい
る。これらの比較器の構成と動作は第4図に示すアドレ
ス認識比較器15とデータ認識比較器17中に用いられてい
る比較器と同様である。高水準資源発生回路19の入力は
ターゲット・システムからの信号ではなく、認識比較器
15、17の出力である。高水準資源発生器19は認識比較器
15、17からの10個の出力の組合せを認識するようにプロ
グラムできるので、複合事象の定義を組立てることがで
きる。これら10個の出力は次のように分配される。X測
定機能発生器21に4個、Y測定機能発生器23に4個、X
測定機能発生器とY測定機能発生器との両方に2個。出
力信号は、高水準資源バス16を経由して、別のプリント
基板上にある機能発生器に送られる。
電源49は簡単なバック安定化スイッチング電源(buck
regulating switching power supply)であり、認識比
較器13、15および17の3.3V、3.3Aの電源を提供する。ク
ロック47は20MHzのクロックからの出力を2分周した10M
Hzのクロックである。クロック47の出力パルスはシステ
ム・バス14を経由して本解析装置内の各種カウンタに分
配される。
カウント・マッパ43とライン・カウンタ45は組合わさ
ってステートメント・カウント回路40を構成し、コード
・ラインまたは、単にラインと呼ばれる高級言語のステ
ートメントの実行(ステートメントに対応するオブジェ
クトコードの実行)をカウントする。高級言語の各ライ
ンは一般的に多くの低レベル言語の命令コードにコンパ
イルされるので、エミュレーション・バス上のデータは
これらの命令コードであり、低レベルの形態である。各
高級言語で書かれた各ラインに対応して生成される命令
コード列の命令コードだけをカウントしてそのラインの
実行回数をカウントすべきである。
カウント・マッパ43はマッピング用のRAMであり、エ
ミュレーション・バス12上に現れた命令のアドレスが与
えられる。これにより高水準言語で書かれたソース・コ
ード中の選択されたラインに対応する命令コード列の先
頭の命令コード・アドレスをライン・カウンタ45中のア
ドレスにマッピングする。このようなソース・コードの
ラインは255本まで指定できる。
ライン・カウンタ45は256語×12ビットRAMおよび読取
り・歩進・書込み回路とから構成されている。ライン・
カウンタ45が専用機能発生器25からカウント・イネーブ
ル信号を受取ると、カウント・マッパ43から受取ったア
ドレス位置の値を読取り、数値を1だけ増加し、増加し
た値を同じアドレス位置に書き戻す。このようにして測
定の終りには、高級言語ラインをカウントするように割
当てられたアドレス位置にそのラインの実行回数が入っ
ている。
第3A図に示すプリント基板に載っている回路はエミュ
レーション・バス12、システム・バス14および高水準資
源バス16を経由して第3B図に示すプリント基板上の回路
に接続されている。
次に第3B図を参照すると、第2のプリント基板に高速
シーケンサ221XおよびY測定機能発生器21および23、専
用機能発生器25、タイマ27、および事象生起カウンタ29
が載っている。
「X」および「Y」測定機能発生器21および23は、専
用機能発生器25と協同して動作し、高水準資源発生器19
からの一般目的出力信号を特殊目的の「専用」の機能に
変換する。発生する専用の機能は本解析装置の特定の手
順を制御するのに使用される。例えば、「記憶」機能に
より、現在のサイクルを取込みメモリに記憶させる。ま
た「タイマ・カウント」機能により、タイマ27が現在の
サイクルに対してカウント・イネーブルにされるか否か
を定める。
第5図はX測定機能発生器21およびY測定機能発生器
23の構成を示すブロック図を示している。X機能発生器
21はX発生器RAM61(深さ4K語×20ビットのマッパRA
M)、RAMのアドレス・バスに何を送るかを選択する12ビ
ットのマルチプレクサ63、および4ビットのラッチ65と
から構成されている。X発生器RAM61にはマルチプレク
サ63を介してマイクロプロセッサ39(第3C図)からのア
ドレス情報がロードされる。X発生器RAM61内のアドレ
スをプログラムすることにより、高水準資源発生器19か
らのどの出力がどの専用機能に影響を与えるかを定め
る。ラッチ65はX機能発生器21の中のシーケンスを作製
する手段となる。ラッチ65とX発生器RAM65との間のフ
ィードバック・パスによりラッチ65の状態を高水準資源
発生器19からの入力と同様にして使用できるようにな
る。例えば、RAM内に作り出された機能は高水準資源発
生器19からの入力およびラッチ65の出力の或る組合せに
対して「真」と定義されてよい。X発生器RAM61の出力
信号はラッチ65へのフィードバック・パスを経由して
「次の状態」を定義し、また専用機能発生器25への入力
信号を発生する。
Y測定機能発生器23は、Y発生器RAM62のワード長が2
0ビットではなく16ビットであることを除けば、X測定
機能発生器21と同じである。マルチプレクサ64とラッチ
66は、X測定機能発生器21内の対応する回路と同様に動
作する。Y発生器RAM62からの出力信号も専用機能発生
器25への入力信号を発生する。
専用機能発生器25はX発生器RAM61とY発生器RAM62か
らの出力信号と他の3つの特殊目的信号(高速シーケン
サ22からのストア信号、ストップ信号およびメモリ・フ
ル信号)を組合せて専用機能出力信号を発生する。
本解析装置の動的認識部は、第3B図で高速シーケンサ
22と記されており、更に詳細には第6図に示してある。
この動的認識部は3つの動的認識比較器13a、13b、およ
び13cと高速シーケンス機能発生器31とから構成されて
いる。高速シーケンサ22を用いれば、本解析装置は動的
変数を実時間でトレースすることができる。動的変数
は、ローカル変数或いは自動変数(automatic variabl
e)として多くの高級言語で使用されているものであ
り、永久的に割当てられたメモリ・アドレスを有してお
らず、変数がプログラム実行中に必要となったとき、普
通はスタック上に、アドレスが割当てられる。
これらの変数について実行前からわかっていること
は、このような変数を使うプロシージャあるいはブロッ
クについてのスタックの基準アドレスに対する相対アド
レスである。従って、一旦変数が生成されると、スタッ
ク基準アドレスを知ることができれば、そのアドレスが
定義される。この基準アドレス、すなわち「フック」
(フレーム・ポインタとも呼ばれる)は、プロシージャ
・コールがなされ、そのプロシージャの実行が始まると
最初に旧フレーム・ポインタとしてスタック上にプッシ
ュされる。従ってプロシージャへのエントリ後の最初の
ストア・アドレスを検出すれば、スタック・ポインタが
現在どこにあるかがわかる。また、このアドレスから、
スタック上のリターン・アドレスが入っているロケーシ
ョンの絶対アドレスも知ることができる。このリターン
・アドレスへのアクセスの検出により、現プロシージャ
からの脱出を知ることができる。
高速シーケンサ22はプロシージャへのエントリを注視
し、スタック基準アドレスを決定し、動的変数に対する
アドレス範囲を計算し、この変数が捨てられるまでこの
変数へのアクセスを検出するようにプログラムされる。
これを行うには、測定を開始する前に、一つの動的認
識比較器13aにこの変数を生成するプロシージャへのエ
ントリ・アドレスをロードし、もう一つの動的比較器13
bにスタック基準アドレスをロードする。高速シーケン
サ22には動的変数のアドレス範囲とリターン・アドレス
がストアされているロケーションのスタック基準アドレ
スに対するオフセット値がロードされる。
動的認識比較器13aがプロシージャへのエントリを検
出したことを示す信号を発生すると、高速シーケンス機
能発生器31は動的認識比較器13bによる「フック」動作
の監視を開始する。「フック」動作が始まると、高速シ
ーケンス機能発生器31は現在のエミュレーション・アド
レス(実際にはスタック位置)を獲得し、このアドレス
を記憶しているオフセット値に加えて動的変数の位置範
囲の上限および下限のアドレスを決定する。高速シーケ
ンス機能発生器31はこれらの境界アドレスを第3の動的
認識比較器13cにロードする。このようにして、第3の
動的認識比較器13cはトレースの変数がアクセスされる
と直ちに実時間で設定されて、その動的変数へのアクセ
スを検出して信号を出力できるようにされる。この変数
にアクセスすると直ちに、高速シーケンス機能発生器31
は専用機能発生器25への信号(F_STORE)を発生してス
トア機能をイネーブルし、取込みメモリ35に現在の状態
を記憶する。
高速シーケンス機能発生機31はまたフック・アドレス
と記憶しているリターン・アドレスのオフセットとから
スタック上でリターンアドレスが記憶されているロケー
ションのアドレスを計算する。高速シーケンス機能発生
器31はこのアドレスを動的認識比較器13bにロードする
ことにより、もはや必要のないスタック基準命令状態に
置換える。かくして、動的認識比較器13bはプロシージ
ャからすでに脱け出し、トレース中の変数がもはや有効
ではないことを示すように構成される。この時点で、こ
の変数のトレースが更に必要な場合は、上述の手順を再
度くり返し、この変数がその後生成されるとき変数に割
当てられた新しいアドレス範囲を決定する。
タイマ27は柔軟性のある24ビットのカウンタであり、
10MHzのクロック47からの、或いは、状態クロックから
の信号をカウントするようにプログラムすることができ
る。タイマ27は、測定前にリセットし、リセット後測定
の終りまで、事象または時間を単にカウントするように
することができる。そのかわりに、タイマ27の出力は、
高水準資源バスと同様にX測定機能発生器21とY測定機
能発生器23に送られるから、タイマ27に初期カウント値
をロードし、タイマ出力を用いてシーケンスを変え、状
態を記憶させるかあるいは、おそらく解析装置を停止さ
せることもできる。
事象生起カウンタ29は事象の生起をカウントする16ビ
ットのカウンタである。事象生起カウンタ29は測定前に
リセットし、リセット後測定中の事象の生起をカウント
することができる。また、或いは、タイマ27と同様、事
象生起カウンタ29に初期値をロードし、例えば、事象の
N番目の発生後、シーケンスを変更するかあるいは状態
を記憶させるのに使用することもできる。事象生起カウ
ンタ29の出力は高水準資源発生器19に与えられる。した
がって、認識比較器15および17からの出力と同様であ
る。
エミュレーション・バス12、システム・バス14および
高水準資源バス16により、第3B図のプリント基板は、第
3A図および第3C図のプリント基板と接続されている。
第3C図にブロック図の形で示してある第3のプリント
基板には、取込みメモリ35、フローティングポイント・
カウンタ33、命令コード・アドレス・レジスタ37、およ
びマイクロプロセッサ39が設けられている。
取込みメモリ35は幅96ビット、深さ4096語のRAMから
構成されている。測定中、取込みメモリ35は専用機能発
生器25からのストア機能信号が与えられると現在利用で
きるデータ・ブロックを記憶する。取込みメモリ35に記
憶されるデータの各ブロックは96ビットから成ってい
る。すなわち状態に8ビット、エミュレーション・バス
12からのアドレスおよびデータに夫々24ビットおよび16
ビット、命令コード・アドレス・レジスタ37からのデー
タに24ビット、フローティングポイント・カウンタ33か
らのデータに20ビット、およびフラグに4ビットが割当
てられる。
取込みメモリ35には情報を記憶するにあたって2つの
モード、すなわちシーケンシャル・アクセスとランダム
・アクセスがある。シーケンシャル・モードでは、メモ
リへのストアにあたってある固定位置に、最初のデータ
・ブロックを入れ、順次、次の場所に以降のデータ・ブ
ロックを入れる。シーケンシャル・モードは一般に測定
中に得られるデータを記憶するのに利用される。
ランダム・アクセスモードは、ラスト・アクセスと呼
ばれる測定に使用されるものである。この測定では選択
された事象の最近の生起に関するデータを記憶する。事
象は一般的には変数へのアクセスである。変数がアクセ
スされる回数は、取込みメモリの容量を超過することが
あるから、全てのアクセスを単に逐次記憶するのは効果
的でない。ランダム・アクセスモードでは、ある変数へ
のアクセスに関するデータはその変数への以前のアクセ
スのデータの上に重ねて書込まれる。トレースされるべ
き各変数はこのようにして、取込みメモリ35内にアドレ
ス位置を割当てられている。高水準資源発生器19は割当
てられたメモリ・アドレスを取込みメモリ35に対して出
力し、適正なアドレスに現在のエミュレーション・デー
タを記憶する。事象データは全て記憶されるが、不必要
な事象データはすべて、取込みメモリ35の中の、「廃
棄」ロケーションと名付けられた単独のアドレス位置に
記憶される。このようにして、測定の終りには、選択さ
れた各変数への最近のアクセスに関する情報がその変数
に割当てられたロケーションに記憶されている。
測定が完了すると、取込みメモリ35に記憶されている
データは、後処理とユーザーへのデータの表示のためマ
イクロプロセッサ39により取り出すことができる。
命令コード・アドレス・レジスタ37は現在エミュレー
ション・バス12にあるアドレス情報を一時的に貯えるこ
とができる8ビットのラッチ3個から構成されている。
命令コード・アドレス・レジスタ37は、命令コード読出
しがターゲット・システムにより行われている時点を検
出するようにプログラムされているアドレス認識比較器
からの信号を受取ると、現在のエミュレーョン・アドレ
スをラッチする。このようにして、命令コード・アドレ
ス・レジスタ37は最新の命令コード・アドレスをラッチ
している。
命令コード・アドレス・レジスタ37は現在の状態が取
込みメモリ35に記憶された後で更新される。従って、取
込メモリ35には現在のエミュレーション・アドレスと直
前の命令コード・アドレスが記憶される。現在のエミュ
レーョン・アドレスが命令コード・アドレスであるとき
は、この最新の命令コード・アドレスと直前の命令コー
ド・アドレスとが共に記憶される。これはある測定間で
のプログラムのフローを分類するのに役立てることがで
きる。
フローティング・ポイント・カウンタ33は、状態のカ
ウント用として、或いは10MHzのクロック47からのパル
スのカウント用のタイマとして、どちらのモードの測定
が今されているかに基いて、用いることができる。状態
が取込メモリ35に記憶されるときは必らずフローティン
グ・ポイント・カウンタの値も記憶される。
マイクロプロセッサ39はBPCバス18を介して、ソフト
ウエア動作解析装置とホスト・システムとのインターフ
ェースとなっている。マイクロプロセッサ39は取込みメ
モリ35に獲得された低レベルのデータをシンボル・テー
ブル等のコンパイラ・データベースにアクセスして、ユ
ーザに対して表示するに適する高級言語のソース・コー
ド上でのシンボル等に変換する。マイクロプロセッサ39
はデータ取込みには積極的に参加しないが、ユーザが指
定した測定を本解析装置内の他の構成要素を設定するの
に必要な構成に変換して測定を行なう。
本ソフトウエア動作解析装置をインストールするとき
には、ある制御用ソフトウエアをホスト・システムに取
込む。この制御用ソフトウエアは、本ソフトウエア動作
解析装置を操作するためキーボード等のデータ入力から
入力される各種命令を実行する。これらの命令が実行さ
れるにつれて、各種測定の制御用パラメータが現われ、
プリント基板上のマイクロプロセッサ39に移されて、そ
こで本ソフトウエア動作解析装置のハードウエア部品の
構成を決めたりその回路の動作を制御したりするのに使
用される。また、ターゲット・システムに関するあるコ
ンパライザラ・データベース情報も組込まれる。これは
高級言語のコード上で用いられたシンボルをアドレスに
またその逆方向に変換するのに使用される。
測定が完了すると直ちに、収集した生データはマイク
ロプロセッサ39に送られ、そこで後処理されて捕獲され
たデータ中の余計なものが除かれる。この後処理が終了
したデータは、ホスト・システムのプロセッサに送り返
され、そこでデータをまとめて、結果の各種表示をCRT
表示装置3に発生して処理を終了する。
マイクロプロセッサ39は第2図に描いたシステム要素
の各々とシステム・バス14により結合している。マイク
ロプロセッサ39は、実行すべき測定のパラメータを受取
った後、本ソフトウエア動作解析装置中の回路要素を下
に述べるように構成する。
測定において静的なアドレス、データあるいは状態情
報の検出が必要な場合には、マイクロプロセッサ39はア
ドレス認識比較器15およびデータ認識比較器17に適切な
設定値をロードする。マイクロプロセッサ39は高水準資
源発生器19を設定して、認識比較器15および17が検出し
た事象を複合した組合せ事象を定義する。マイクロプロ
セッサ39はまた、X、Y測定機能発生器21、23内のシー
ケンサの動作を調節して、専用機能発生器25が行うデー
タの高速実時間取込みを実行するのに必要な論理回路を
制御する。
動的に生成される変数の検知を必要とする測定に対し
て、マイクロプロセッサ39は動的認識比較器13に適切な
設定値をロードする。マイクロプロセッサ39はまた高速
シーケンス機能発生器31のシーケンスの動作を調節して
高速シーケンサが、実時間測定中動的認識比較器の動作
を制御できるようにし、動的に生成される変数のアドレ
スを、これらの変数が生成されそのロケーションが定義
されるとき比較器に「動作しながら(on the fly)」ロ
ードするようにする。
マイクロプロセッサ39はまた、カウント・マッパ43の
構成を定め、フローティング・ポイント・カウンタ33、
タイマ27、および事象生起カウンタ29を初期状態にす
る。
測定が完了すると、マイクロプロセッサ39は、必要な
ら取込みメモリ35に記憶されているデータとライン・カ
ウンタ45に記憶されているカウント・データをアンロー
ドする。次にマイクロプロセッサ39はデータを後処理し
て、プリフェッチされたが実行はされなかった命令のよ
うな無関係のデータを除き、低レベル・コードからのデ
ータを高級言語に関するデータに変換する。この変換は
ホスト・システムに入っているコンパイラ・データベー
ス情報を参照して行われる。最後に、マイクロプロセッ
サ39は測定から得られた後処理データをホスト・システ
ムに送りユーザに表示する。
測定 トレース測定と呼ばれる4つの測定は、本ソフトウエ
ア動作解析機が提供する高水準のソフトウエア・デバッ
グ動作の根幹を成している。モジュール・トレースおよ
びデータ・フロー・トレースは、比較的全域的な測定で
あり、プログラマにプログラマおよびデータの両フロー
をモジュール・レベルで概観できるようにしている。命
令トレースおよび、変数トレースは比較的局所的な測定
であり、命令の精密な実行順序を与えたり、或いは特定
の変数の値をアクセスされる毎に精密に与えたりする。
もう2つの測定、すなわちモジュール時間測定および命
令計数はソフトウエアをデバッグするときの他、プロシ
ージャの最適化や試験の役にも立つ。下に述べる測定は
本ソフトウエア動作解析装置の柔軟性のあるハードウエ
ア資源の測定能力の全範囲を網羅してはいないが、これ
らはソフトウエアデバッグの過程に中心となる測定を行
う際にこれらのハードウエア資源の効用を実証してい
る。
モジュール・トレース モジュール・トレース測定は指定されたモジュールへ
のエントリ(entry)とイグジット(exit)を捕えるこ
とによりプログラムの流れをトレースする。これはモジ
ュールが異なるプログラマにより書かれ、また異なる高
級言語で書かれてさえいる場合に特に有用である。全モ
ジュールがはじめから単一のソース・コード・ファイル
中に作られていた時には、モジュール・フロー・トレー
スにより、モジュールがどんな順序で呼出されたかが示
され、またおそらく問題箇所の大体の位置がわかる。
特定のモジュールを指定してトレースすることもでき
るし、或いは1つのソース・コード・ファイル内の全て
のモジュールをトレースすることもできる。1つのファ
イル内の「すべて」なる指定がされた場合は、一つのシ
ンボル(プロシージャあるいは変数)にする場合と同様
なやり方でカウントが行なわれる(後述)。同時にトレ
ースできるモジュールは最大4つの隣接せずにリンクさ
れたファイルに、または最大10個の隣接してリンクされ
たファイルに入っているものでもよい。
明確に指定された10個のモジュールをトレースするこ
とができるが、本実施例では別の制限がアドレス範囲比
較器の数により課せられる。ただし、モジュール・コー
ド上で隣接していなければ、4つだけしかトレースする
ことができない(なんとなれば範囲検出用の資源は4つ
しかないからである)。ファイル内の全てのモジュール
を指定すると、255までの異なるモジュールをトレース
することができる。「すべて」の指定を利用する、この
測定の最も一般的な設定では、ファイルあたり高々1つ
の範囲しか使用されないので、これは真の制限ではな
い。本解析装置はリカーシブ・コールを無限にトレース
できるとともに同じ1回の測定中に、PASCALで書かれた
モジュールとCで書かれたモジュールの両者をトレース
することができる。
本解析装置はモジュール・トレース測定を実時間モー
ドおよび非実時間モードのいずれでも実行することがで
きる。実時間モードでは、最大10個のファイル内のすべ
てのモジュールをトレースして、割込ルーチンをも含め
て、プログラムの流れを見ることができる。正確な時間
タグが表示され、これにより各モジュールで費された時
間がわかる。このようにして、以下の事項をすぐに知る
ことができる。モジュールが実行された順序;リカージ
ョンが起った時点;割込ルーチンが何回呼出されたか;
各モジュールでどれだけの時間が費されたか。これらは
すべて、問題箇所の大体所在をつき止めるのに有用な測
定である。これらの情報が予想とずれている場合には、
問題の局所化のため他の測定を行うことができる。
第7図は測定「trace modules PROC1、all FILE_A,PR
OC4」を行なう場合、本解析装置のハードウエア資源が
どのように使用されるかの一例を示している。範囲比較
器として構成されたアドレス認識比較器15と一致比較器
として構成されたデータ認識比較器17がモジュールのエ
ントリとモジュールのイグジットを検出するのに使用さ
れる。一致検出用のデータ認識比較器17は実際にエント
リとイグジットとを検出するものである。マイクロプロ
セッサ39はこれらの比較器を設定することによりデータ
・バス上のパターンに基いてモジュールの最初と最後の
命令を検出できるようにする。範囲検出用のアドレス認
識比較器15は、指定されたモジュール内のエントリおよ
びイグジットについてだけデータ取込が行なわれるよう
にするため、両者の検出に限定条件を与えるように設定
され使用される。
アドレス範囲は指定されたモジュールに関連するアド
レスの周りに設定される。この例では、たとえ、3つの
シンボルが指定されても、二つの範囲しか必要ではな
い。定義により1つのファイルの中のすべてのモジュー
ルは隣接しており、しかもPROC4がFILE_Aに隣接してリ
ンクされているからである。
最後に、低水準認識を行なう装置内資源の検出結果
は、高水準資源発生器19を設定することにより論理的に
組合わされるので、専用機能発生器25がエントリまたは
イグジットに関連するデータを取込メモリ35に記憶させ
る。プリフェッチを行なっている場合は、データを記憶
しても真のエントリではなかったということがある。マ
イクロプロセッサ39はデータを後処理してこれらの点を
ふるい分ける。
明示的に指定された10個のモジュールをトレースする
ことができるが、本実施例では別の制限がアドレス範囲
比較器の数により課せられる。ただし、モジュールが隣
接していない場合には、4つのモジュールしかトレース
することができない(範囲検出用の資源は4つしかない
からである)。ファイルの中のすべてのモジュールを指
定すると、255までの異なるモジュールをトレースする
ことができる。
データ・フロー・トレース データ・フロー・トレース測定はプロシージャのエン
トリ、イグジットでデータの値をトレースする。静的変
数と動的変数との両方をトレースすることができる。た
だし、ローカル変数および値渡し変数はプロシージャの
イクジットでは表示することができない。この時点では
それらが定義されていない(すなわち、これらが入って
いたスタックフレームが既に放棄されてしまった)から
である。無制限のリカーシブ・コールもトレースするこ
とができる。最大10個のシンボルが指定されているとし
て、1回の測定で最大3つの異なるモジュールをトレー
スすることができる。トレースされているデータは、エ
ミュレーション・バス上からは、モジュールのエントリ
およびイグジットではアクセスできないから、この測定
は非実時間モードで実行しなければならない。
データはプロシージャのエントリおよびイグジットで
見ることができ、モジュールで修正されたか否かがわか
る。重要な変数の値はリカーシブ・プロシージャの各レ
ベルで見ることができる。これはプロシージャが無限大
のリカージョンに陥っている場合に特に有用である。プ
ロシージャから脱け出す条件を発生する変数をトレース
することができるので、バグを迅速に見つけることがで
きる。
第8図はデータ・フロー・トレース測定において本解
析装置の資源がどのように使用されるかを示している。
先に説明したように、この測定では、解析装置がエミュ
レーション・バス12を流れない情報を必要とするため、
非実時間モードでしか行なうことができない。一致検出
比較器として構成されている3つのアドレス認識比較器
15が各モジュールに対して使用されるので、指定するこ
とができるモジュールの数が3つまでに制限されてい
る。各モジュールについて、マイクロプロセッサ39はエ
ントリ用に1つの一致検出比較器を、イグジット用に1
つの一致検出比較器を、更にユーザ・コードの終りにあ
ってモジュールのイグジットのアドレスの直前のアドレ
スを認識するため第3の一致検出比較器を設定する。な
お第3の一致検出比較器は、実際のイグジット(たとえ
ばRTS命令の実行)の直前でそのプロシージャの実行を
とめるために用いられる。RTS命令よりも何番地前の命
令フェッチを検出すべきかということは、プリフェッチ
を何バイト先まで行なうかによって定まる。
リカーシブ・ルーチンを取扱えるようにするには、ト
レースされているモジュールごとに3つの一致検出比較
器が必要である。一致検出比較器を、モジュール内で、
ただし、イグジットの前であって好ましくはユーザ・コ
ードの終りで現れるアドレスを探すように設定すれば、
すべてのプロシージャ・コールはその以前に発生してい
なければならないことになる。
一致検出比較器の1つが一致を検出すれば、専用機能
発生器は本解析装置を停止させ、指定された変数の値が
エミュレーション・メモリまたはターゲット・マシン中
メモリから読み出される。次いで解析装置とエミュレー
タが再始動される。
指定される変数の数について課されている唯一の制限
は、測定に入る上での10個のシンボルの制限である。勿
論、モジュールのエントリまたはイグジットにより、ス
コープ・ルールに基いて見えない変数をトレースするこ
とはできない。
ステートメント・トレース ステートメント・トレース測定は単独モジュール内の
ステートメントの流れをトレースする。ステートメント
はその実行の順に表示され、また変数値が表示される。
測定は実時間と非実時間との両方で実行することができ
る。ステートメントの範囲は、無制限とすることができ
るが、プロシージャ内のステートメント全部としてある
いはプロシージャ内の行番号で表現できる。ある範囲と
して定義することもできる。ドント・ケア指定もある。
この指定ではエミュレーション・バス上で発生したすべ
てのことをトレースする。これはいろいろなモジュール
のステートメントをトレースすることができる。非実時
間モードで測定を行なう利点は、動的変数をトレースで
きるということである。そうでない場合は、静的変数の
値だけを表示装置に示すことになる。ドント・ケアを使
用すれば、変数値は表示されない。また、時間タグが表
示されて、高級言語のステートメントごとに正確な実行
時間がわかる。
この測定は問題の所在がモジュール単位まで切分けら
れた段階で有用である。この場合の表示形態は、低レベ
ル・コードの状態表示と全く同様に、高級言語ステート
メントの実行順序を段階を追って見せてくれる。デバッ
グの過程は、モジュールの実行に関するすべての情報が
表示されるので、非常に高速化される。これはプログラ
ムとデータ・フローとの相互作用を観察するには非常に
有効な方法である。
命令トレースは実時間測定と非実時間測定の二つの測
定に分けることができる。実時間測定は、エミュレータ
は決して停止せず且つ記憶される情報はすべてエミュレ
ーション・バス12を流れるので、概念的にはあまり複雑
ではない。第9図はあるライン範囲またはプロシージャ
上で実時間でのステートメント・トレース測定を行う際
にアナラザの資源がどのように使用されるかの一例を示
したものである。マイクロプロセッサ39は範囲比較器と
して構成されている一つのアドレス認識比較器15を、指
定されたライン範囲の活動を検出して記憶用ウィンドウ
を開くべき時期を決定するように設定する。命令コード
・フェッチを検出するように設定されている特別のアド
レス認識比較器が、コードの実行を検出して信号を発生
するのに使用される。高水準資源発生器19は、これら2
つの信号のANDを取り真が得られたときウィンドウを開
きエミュレーション・バス12上を流れるデータがすべて
取込みメモリ35に記憶されるように設定される。範囲検
出器として構成されているアドレス認識比較器15によ
り、プログラムが指定されたライン範囲の外で実行が行
なわれていることが検出されると、記憶用ウィンドウは
閉じる。ドント・ケア指定をした場合の命令トレース測
定では、解析装置は単にウィンドウを常に開いておきな
がら測定を行なう。
非実時間命令トレース測定は、動的変数についての情
報を含むもっと多くの情報を集めるので、もっと複雑で
ある。実時間測定の場合と同様、測定ウィンドウを作る
ため、アドレス認識比較器15がトレースされるステート
メント範囲を検出するようにプログラムされるととも
に、もう1つのアドレス認識比較器が命令コード・フェ
ッチを検出するために使用される。他に、2つのアドレ
ス認識比較器を用いて、エントリ・ポイントおよびイグ
ジット・ポイントを認識するように設定される。プロシ
ージャへの入出が発生すると、本解析装置は専用機能発
生器25を用いてエミュレータを停止し、動的変数のロケ
ーションおよび値に関するデータを記憶する。
変数トレース 変数トレース測定により、ユーザはプログラムの実行
中指定された変数へのすべてのアクセスをトレースする
ことができる。この測定は実時間および非実時間の両方
で行なうことができる。両モードについて設定される特
徴は同じである。各測定で最大10ケの変数をトレースす
ることができるが、実行中はアドレス認識比較器15を使
用するので、トレースできる静的変数の数が減ることが
ある。所与のモジュール・ヘッダ(プロシージャ名)の
下にある最大10ケの動的変数をトレースすることができ
る。局所的デバッグの便宜のため、ソース・ラインの番
号が示される。データ・フロー・トレース測定で値が正
しくないことがわかった変数は、以後トレース測定を用
いてトレースすることができる。つまりこのような変数
への書込みと読出しとをすべて表示させる。したがって
プログラムがどこでおかしくなったかをつきとめるのは
簡単なことである。
変数トレースは実時間モードにおいても、第10図に示
すように、非実時間モードにおけると同じようにして動
作する。静的変数は比較的トレースしやすい。一致比較
器として構成されているアドレス認識比較器15はバイト
幅をもつ静的変数に使用され、範囲比較器として構成さ
れているアドレス範囲比較器はより長い変数、レコード
型変数、および配列に使用される。本解析装置では任意
の隣り合う変数について1つのアドレス認識比較器を使
用することもある。このような範囲がアクセスされる
と、アナライザの認識用論理回路は、専用機能発生器に
より、そのアドレスと値を取込みメモリ35に記憶させ
る。
動的変数も同様にしてトレースされる。ただし、動的
認識比較器の数が少いので、たとえ隣り合っていない場
合でも単一の動的比較器を用いてすべての変数へのアク
セスの検出を行なう。後処理によって、不必要なアクセ
スをマイクロプロセッサ39によりふるい分ける。動的変
数をトレースする上での困難はスタック・リファレンス
(たとえばTOSのアドレス)を知ること、およびこれら
動的変数のメモリ上における実際のアドレスを知ること
である。というのはこれらはプログラムが実行されるま
では決まっていないからである。
マイクロプロセッサ39は、当該動的変数を生成する
(つまりそのためのスタックフレームを生成する)プロ
シージャへのエントリを検出するように1つの動的一致
比較器を設定する。先に述べたとおり、モジュールへの
エントリ後に書かれる最初のデータは動的変数のスタッ
ク・リファレンスであり、これは高速シーケンス機能発
生器31により記憶される。このスタック・リファレンス
およびマイクロプロセッサ39がコンパイラのデータベー
スから発生した動的変数のオフセットを用いて、高速シ
ーケンス発生器31は動的変数のロケーション範囲を検出
し、これらのアドレスを他の動的認識範囲比較器13cに
ロードする。これはこれらの変数がユーザ・プログラム
により読出され、あるいは書込まれる前に行われる。動
的認識比較器13bはプロシージャに入った後に、最初の
データの書込みを認識するのに使用された。しかし、こ
の検出はプロシージャへのエントリ直後の1回だけしか
行なわれないので、次に別の設定値が再ロードされて、
プロシージャのリターン・アドレスが置かれているスタ
ック上のロケーションへのアクセスの検出を行なう。高
速シーケンス機能発生器31は、専用機能発生器25を用い
ることにより、一致検出を行なう比較器13bがリターン
・アドレスの読出しを検出するまで、2番目の比較器13
cに記憶されている範囲へのすべてのアクセスを取込み
メモリ35に記憶させる。リターン・アドレスの読出しの
後にはもはやこれらの動的変数は存在しない。そして上
述のシーケンスが再び始められる。
モジュール計時 各モジュールで消費する最小、最大、および平均の時
間を表示するモジュール計時測定を利用して最大4つの
モジュールについての計時を行なうことができる。被測
定時間には指定されたモジュールのエントリとそのモジ
ュールからのイグジットとの間のすべての時間が含ま
れ、サブルーチンの呼出しや割込みに費された時間も含
んでいる。リカーシブ・モジュール計時は255レベルの
深さまで本解析装置で処理される。測定は実時間と非実
時間の両方で実行することができる。
この測定はいろいろな場合に有用である。たとえば、
ある1つまたは複数のモジュールが指定の時間内に実行
されているか否かを見るため試験することができる。非
能率なモジュールを見分けて最適化することができる。
また、割込みがモジュールにおよぼす影響を調べること
ができる。表示装置はモジュールが計時された回数をも
示す。この回数の表示は測定の統計的精度を示す。
第11図はモジュール計時測定を行うのに本解析装置の
資源がどのように使われるかを示している。一致比較器
として構成されているアドレス認識比較器15は各モジュ
ール毎に2つが使用され、したがって最大4つのモジュ
ールをトレースすることができる。これらの一致比較器
はマイクロプロセッサ39により各モジュールのエントリ
・ポイントおよびイグジット・ポイントを検出するよう
に設定される。エントリまたはイグジットが検出される
と、本解析装置の論理認識回路は、専用機能発生器25を
用いて、状態を取込みメモリ35に記憶させる。専用機能
発生器25はまた測定の始めにフローティング・ポイント
・カウンタ33を起動し、各イグジット・ポイントおよび
エントリ・ポイントにおける絶対時刻を記憶された状態
への時刻タグとして取込みメモリ35に記憶する。測定が
終了すると、マイクロプロセッサ39はこれらの時刻タグ
を使用して各モジュールで費された時間を求め、統計的
結果を得る。
ステートメント・カウント ステートメント・カウント測定とは、指定されたモジ
ュールあるいはライン範囲の中の各ステートメントが実
行された回数をカウントする。最大255個の命令の夫々
の実行回数をカウントすることができるが、それらの命
令は単一のモジュール内になければならない。カウンタ
は4094までカウントするが、次のカウントでオーバーフ
ローしてしまう。ただし、1ラインだけをトレースする
場合には、本解析装置はもっと長い20ビットの浮動小数
点容量のあるフローティング・ポイント・カウンタ33を
使用する。
この測定の主な利点はソフトウェア保証範囲試験(so
ftware coverage testing)の領域にある。ソフトウェ
ア開発過程中の試験段階において、ソフトウェアのすべ
ての部分を検討し終ったか否かを知ることは困難である
ことが非常に多い。たとえば或るブランチ命令が全く実
行されなかったり、あるいは、あるCASEラベルのついた
ステート群が全く実行されないことがある。ステートメ
ント・カウントはこの保証範囲を検証する迅速で簡単な
方法である。もしあるステートメントが決して実行され
ない場合には、他の試験を行って検討するか、あるいは
このステートメントを除去することができる。また、ル
ープ内のステートメントは既知の回数だけ実行されるは
ずであるから、ステートメント・カウントはループ・カ
ウンタの動作を確認する容易な方法である。
ステートメント・カウント測定では、他の測定に使用
されるものと同じアドレス認識比較器を使用するが、2,
3の専用ハードウェア、すなわちカウントマッパ43およ
びライン・カウンタ45をも使用する。本解析装置は1モ
ジュール内の255ラインをトレースすることができる
が、プログラムのこのトレースされる部分は、オブジェ
クト・コード上で4Kバイトの領域内に収ってなければな
らない。なんとなればカウントマッパ43が4Kを256へマ
ッピングするバケット・マッパであるからである。なお
「バケット」とは各ソースラインに対応するライン・カ
ウンタ45の中の12ビットの値を指す。測定は指定された
モジュールあるいはライン範囲の実行を検出するように
アドレス範囲比較器15を設定してカウント・イネーブル
信号を駆動することによって動作する。測定を実行する
前に、マイクロプロセッサ39は、コンパイラ・データベ
ース・ファイルに入っているライン番号情報を用いて、
カウント・マッパ43に必要なデータをロードする。測定
が行なわれると、与えられたライン番号に対応する最初
の機械コード命令が実行されるとき適切なカウンタある
いは「バケット」が歩進する。このようにして、多くの
機械語命(これらはループになっている場合さえあり、
多数回実行される)を含んでいる高級言語ステートメン
トの1回の実行により、そのステートメントに対応する
バケットが1だけ歩進する。
〔発明の効果〕
以上説明したように、本発明によれば、高級言語で書
かれたソフトウェアのデバッグ・特性測定等の効率を大
幅に向上させることができる。
【図面の簡単な説明】
第1図は本発明の一実施例を組込んでいるマイクロプロ
セッサ開発システムのブロック図、第2図は本発明の一
実施例のブロック図、第3A図ないし第3C図は本発明の一
実施例の構成部品のプリント基板上の回路のブロック
図、第4図ないし第6図は本発明の一実施例中の主要回
路のブロック図、第7図は本発明の一実施例によるモジ
ュール・トレースの説明図、第8図は本発明の一実施例
によるデータ・フロー・トレースの説明図、第9図は本
発明の一実施例によるステート・メントトレースの説明
図、第10図は本発明の一施例による変数トレースの説明
図、第11図は本発明の一実施例によるモジュールの計時
の説明図、第12図は本発明の一実施例によるステートメ
ント・カウントの説明図である。 11:データ入力部 12:エミュレーション・バス 13:動的認識比較器 15:アドレス認識比較器 17:データ認識比較器 19:高水準資源発生器 21:X測定機能発生器 23:Y測定機能発生器 25:専用機能発生器 27:タイマ 29:事象生起カウンタ 31:高速シーケンス機能発生器 33:フローティング・ポイント・カウンタ 35:取込みメモリ 37:命令コード・アドレス・レジスタ 40:ステートメント・カウント回路

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】以下の(a)ないし(c)を設け、被試験
    システム中のソフトウエアの実行に関するデータを取込
    むソフトウエア動作解析装置: (a)動的変数の生成を表す信号パターンが前記被試験
    システムから受信されたことを検出して前記動的変数の
    アドレスを決定する動的変数アドレス決定手段; (b)前記決定された動的変数のアドレスの情報が動的
    に設定され、当該アドレスへのアクセスを検出する動的
    変数アクセス判定手段; (c)前記動的変数アクセス判定手段による検出に応答
    して、前記被試験システムからの所定のデータをストア
    する取込みメモリ手段。
  2. 【請求項2】前記動的変数の生成を表す信号パターン
    は、プロシージャ・コール直後のスタックへの書込みを
    表す信号であることを特徴とする特許請求の範囲第1項
    記載のソフトウエア動作解析装置。
  3. 【請求項3】前記動的変数アドレス決定手段は前記信号
    パターンから前記スタック書込みのアドレスを検出する
    ことによって、スタック・ポインタの現在位置を検出す
    ることを特徴とする特許請求の範囲第2項記載のソフト
    ウエア動作解析装置。
JP61020434A 1985-01-31 1986-01-31 ソフトウエア動作解析装置 Expired - Lifetime JPH0833845B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US699781 1985-01-31
US06/699,781 US4720778A (en) 1985-01-31 1985-01-31 Software debugging analyzer

Publications (2)

Publication Number Publication Date
JPS61204749A JPS61204749A (ja) 1986-09-10
JPH0833845B2 true JPH0833845B2 (ja) 1996-03-29

Family

ID=24810890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61020434A Expired - Lifetime JPH0833845B2 (ja) 1985-01-31 1986-01-31 ソフトウエア動作解析装置

Country Status (5)

Country Link
US (1) US4720778A (ja)
EP (1) EP0189848B1 (ja)
JP (1) JPH0833845B2 (ja)
DE (1) DE3687842T2 (ja)
HK (1) HK144594A (ja)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8602849A (nl) * 1986-11-11 1988-06-01 Philips Nv Inrichting voor het emuleren van een microcontroller, middels gebruik maken van een moedermicrocontroller en een dochtermicrocontroller, moedermicrocontroller, respektievelijk dochtermicrocontroller voor gebruik in zo een inrichting, geintegreerde schakeling voor gebruik in zo een dochtermicrocontroller en microcontroller bevattende zo een geintegreerde schakeling.
JPS63155336A (ja) * 1986-12-19 1988-06-28 Hitachi Ltd デ−タ処理装置
US4935881A (en) * 1987-04-14 1990-06-19 Jeffrey Lowenson Method and apparatus for testing missile systems
US5025364A (en) * 1987-06-29 1991-06-18 Hewlett-Packard Company Microprocessor emulation system with memory mapping using variable definition and addressing of memory space
US5127103A (en) * 1987-10-14 1992-06-30 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
US5050068A (en) * 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
DE3909775A1 (de) * 1989-03-21 1990-09-27 Siemens Ag Verfahren zur untersuchung eines digitalen datenstroms
US5201050A (en) * 1989-06-30 1993-04-06 Digital Equipment Corporation Line-skip compiler for source-code development system
US5325531A (en) * 1989-06-30 1994-06-28 Digital Equipment Corporation Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5465258A (en) * 1989-11-13 1995-11-07 Integrity Systems, Inc. Binary image performance evaluation tool
EP0455946A3 (en) * 1990-05-07 1992-10-28 International Business Machines Corporation System for debugging shared memory multiprocessor computers
JP3169597B2 (ja) * 1990-05-16 2001-05-28 エヌイーシーソフト株式会社 マルチタスク実行時間アカウント方法とその機構
JPH04148242A (ja) * 1990-10-08 1992-05-21 Fujitsu Ltd ロード・モジュール実行時トレース処理方法
CA2105055C (en) * 1993-01-05 1998-06-16 Jeffrey Scott Boston Window restoration methods for halted debuggee window applications
AU682869B2 (en) * 1993-05-10 1997-10-23 Thinking Software, Inc Method for minimizing uncertainty in computer software processes allowing for automatic identification of faults locations and locations for modifications due to new system requirements with introduction of an alternative form of the target process object code allowing for less recompilation and re-linkage processing
GB9320052D0 (en) * 1993-09-29 1993-11-17 Philips Electronics Uk Ltd Testing and monitoring of programmed devices
JPH10500787A (ja) * 1994-03-14 1998-01-20 グリーン・ヒルズ・ソフトウェア・インコーポレーテッド 高レベル言語プログラムの時間及び試験の最適化
FR2720173B1 (fr) * 1994-05-20 1996-08-14 Sgs Thomson Microelectronics Circuit intégré comprenant des moyens pour arrêter l'exécution d'un programme d'instructions quand une combinaison de points d'arrêt est vérifiée.
FR2721725B1 (fr) * 1994-06-23 1996-09-20 Matra Marconi Space France Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur.
US5649085A (en) * 1994-12-09 1997-07-15 International Business Machines Corporation Method and system for storing and displaying system operation traces with asynchronous event-pairs
US5748878A (en) * 1995-09-11 1998-05-05 Applied Microsystems, Inc. Method and apparatus for analyzing software executed in embedded systems
US5812850A (en) * 1995-11-13 1998-09-22 Object Technology Licensing Corp. Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5732210A (en) * 1996-03-15 1998-03-24 Hewlett-Packard Company Use of dynamic translation to provide fast debug event checks
US5764883A (en) * 1996-03-28 1998-06-09 Hewlett-Packard Co. System and method for checking for dynamic resource misuse in a computer program
US6052530A (en) * 1996-10-09 2000-04-18 Hewlett-Packard Co. Dynamic translation system and method for optimally translating computer code
US5946472A (en) * 1996-10-31 1999-08-31 International Business Machines Corporation Apparatus and method for performing behavioral modeling in hardware emulation and simulation environments
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
ATE243390T1 (de) * 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6044335A (en) * 1997-12-23 2000-03-28 At&T Corp. Productivity metrics for application software systems
US6106571A (en) * 1998-01-29 2000-08-22 Applied Microsystems Corporation Relocatable instrumentation tags for testing and debugging a computer program
US6658486B2 (en) * 1998-02-25 2003-12-02 Hewlett-Packard Development Company, L.P. System and method for efficiently blocking event signals associated with an operating system
WO2002013000A2 (de) 2000-06-13 2002-02-14 Pact Informationstechnologie Gmbh Pipeline ct-protokolle und -kommunikation
DE10081643D2 (de) * 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
DE69900405T2 (de) * 1999-08-06 2002-05-16 Agilent Technologies Inc Dynamische Ereigniserkennung
JP2001195281A (ja) * 2000-01-07 2001-07-19 Sony Corp システム監視装置
US7100152B1 (en) * 2000-01-31 2006-08-29 Freescale Semiconductor, Inc. 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
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US20070299993A1 (en) * 2001-03-05 2007-12-27 Pact Xpp Technologies Ag Method and Device for Treating and Processing Data
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
US7444531B2 (en) * 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
WO2005045692A2 (en) * 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7844796B2 (en) * 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
EP1402382B1 (de) * 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
AU2003214046A1 (en) * 2002-01-18 2003-09-09 Pact Xpp Technologies Ag Method and device for partitioning large computer programs
EP1483682A2 (de) * 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
WO2004088502A2 (de) * 2003-04-04 2004-10-14 Pact Xpp Technologies Ag Verfahren und vorrichtung für die datenverarbeitung
EP1518186A2 (de) * 2002-03-21 2005-03-30 PACT XPP Technologies AG Verfahren und vorrichtung zur datenverarbeitung
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) * 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
AU2003289844A1 (en) * 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US8386852B2 (en) * 2002-11-05 2013-02-26 Hewlett-Packard Development Company, L.P. Automated recording and replaying of software regression tests
US7222034B2 (en) * 2003-09-19 2007-05-22 Tektronix, Inc. In-circuit measurement of saturation flux density Bsat, coercivity Hc, and permiability of magnetic components using a digital storage oscilloscope
US20050144588A1 (en) * 2003-12-30 2005-06-30 Intel Corporation System and method for embedded processor firmware development
JP4494899B2 (ja) * 2004-07-29 2010-06-30 富士通株式会社 プロセッサデバッグ装置およびプロセッサデバッグ方法
US20090031104A1 (en) * 2005-02-07 2009-01-29 Martin Vorbach Low Latency Massive Parallel Data Processing Device
EP1720100B1 (de) * 2005-05-02 2007-07-18 Accemic GmbH & Co. KG Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
WO2007062327A2 (en) * 2005-11-18 2007-05-31 Ideal Industries, Inc. Releasable wire connector
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US7693257B2 (en) * 2006-06-29 2010-04-06 Accuray Incorporated Treatment delivery optimization
US20090158258A1 (en) * 2007-12-17 2009-06-18 James Gregory E Instrumentation information gathering system and method
US20090327809A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Domain-specific guidance service for software development
US20100272811A1 (en) * 2008-07-23 2010-10-28 Alkermes,Inc. Complex of trospium and pharmaceutical compositions thereof
JP2010244393A (ja) * 2009-04-08 2010-10-28 Renesas Electronics Corp パフォーマンス評価装置、及びパフォーマンス評価方法
US8990779B2 (en) * 2009-08-11 2015-03-24 Sap Se Response time measurement system and method
JP5901668B2 (ja) * 2013-02-28 2016-04-13 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited 静的解析中に発生した警告をグループ化するシステムおよび方法
US9594669B2 (en) * 2015-04-30 2017-03-14 International Business Machines Corporation Debug management using a counter

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59183443A (ja) * 1983-04-01 1984-10-18 Omron Tateisi Electronics Co デバツグ装置
JPS59221753A (ja) * 1983-06-01 1984-12-13 Hitachi Ltd サブル−チントレ−サ
JPS603031A (ja) * 1983-06-17 1985-01-09 Fuji Electric Co Ltd 情報処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338660A (en) * 1979-04-13 1982-07-06 Relational Memory Systems, Inc. Relational break signal generating device
US4511960A (en) * 1982-01-15 1985-04-16 Honeywell Information Systems Inc. Data processing system auto address development logic for multiword fetch
US4503495A (en) * 1982-01-15 1985-03-05 Honeywell Information Systems Inc. Data processing system common bus utilization detection logic
US4631701A (en) * 1983-10-31 1986-12-23 Ncr Corporation Dynamic random access memory refresh control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59183443A (ja) * 1983-04-01 1984-10-18 Omron Tateisi Electronics Co デバツグ装置
JPS59221753A (ja) * 1983-06-01 1984-12-13 Hitachi Ltd サブル−チントレ−サ
JPS603031A (ja) * 1983-06-17 1985-01-09 Fuji Electric Co Ltd 情報処理装置

Also Published As

Publication number Publication date
EP0189848B1 (en) 1993-03-03
EP0189848A2 (en) 1986-08-06
DE3687842T2 (de) 1993-10-14
HK144594A (en) 1994-12-30
US4720778A (en) 1988-01-19
JPS61204749A (ja) 1986-09-10
DE3687842D1 (de) 1993-04-08
EP0189848A3 (en) 1988-10-19

Similar Documents

Publication Publication Date Title
JPH0833845B2 (ja) ソフトウエア動作解析装置
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
US6374369B1 (en) Stochastic performance analysis method and apparatus therefor
US5103394A (en) Software performance analyzer
Tsai et al. A noninterference monitoring and replay mechanism for real-time software testing and debugging
US6493868B1 (en) Integrated development tool
US4845615A (en) Software performance analyzer
US6247146B1 (en) Method for verifying branch trace history buffer information
EP0567722A2 (en) System for analyzing and debugging embedded software through dynamic and interactive use of code markers
US6173395B1 (en) Mechanism to determine actual code execution flow in a computer
US20020184615A1 (en) System and method for selectively and automatically modifying the source code of a computer program
US6820222B2 (en) Apparatus and method for processor power measurement in a digital signal processor using trace data and simulation techniques
JPH0844590A (ja) ソフトウエアシステムの選択テスト装置及びその方法
EP3387536B1 (en) Method and device for non-intrusively collecting function trace data
WO2000075746A2 (en) System and method for measuring temporal coverage detection
Ball et al. Using paths to measure, explain, and enhance program behavior
US20050102583A1 (en) Methodology for debugging RTL simulations of processor based system on chip
US20060048011A1 (en) Performance profiling of microprocessor systems using debug hardware and performance monitor
JPH096646A (ja) プログラムシミュレーション装置
Fryer The memory bus monitor: a new device for developing real-time systems
CN111008133A (zh) 粗粒度数据流架构执行阵列的调试方法及装置
Cornaglia et al. JIT-based context-sensitive timing simulation for efficient platform exploration
Grabner et al. Debugging of concurrent processes
CN110673878B (zh) 一种基于指令集模拟器的指令信息查询及执行调试方法
JPH02220145A (ja) プログラムトレース方式