JP2007004793A - 組込型処理装置システム用コードカバレッジ測定方法及び装置 - Google Patents

組込型処理装置システム用コードカバレッジ測定方法及び装置 Download PDF

Info

Publication number
JP2007004793A
JP2007004793A JP2006168407A JP2006168407A JP2007004793A JP 2007004793 A JP2007004793 A JP 2007004793A JP 2006168407 A JP2006168407 A JP 2006168407A JP 2006168407 A JP2006168407 A JP 2006168407A JP 2007004793 A JP2007004793 A JP 2007004793A
Authority
JP
Japan
Prior art keywords
code
program
patch
instruction
breakpoint
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
JP2006168407A
Other languages
English (en)
Inventor
Thomas E Daley
エドワード デイリー トマス
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2007004793A publication Critical patent/JP2007004793A/ja
Pending legal-status Critical Current

Links

Images

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/366Software debugging using diagnostics
    • 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

【課題】高機能記憶処理装置の設計段階で、ソフトウェアのデバッグを高い柔軟性を持って実施できるツールが必要となるが高機能記憶処理装置内にそのデバッグ機能を持たせることは、限られた性能および容量の面から制約が多い。
【解決手段】高機能記憶処理装置内にブレークポイントを有する第1プログラム命令を用意する。機能、容量共に余裕のあるホストの中に第1プログラム命令のブレークポイントに対応するパッチコードを用意し、実行時にブレークポイントを識別するとパッチコードと置き換えて実行し、予想される結果と比較してソフトウェアの良否を判断する。
【選択図】図8

Description

本発明は一般的にソフトウェア・デバッグの分野に関わり、より詳細には分散型記憶システム内の高機能記憶処理装置のデバッグに関する。
コンピュータ・ネットワークは、業界標準アーキテクチャ(ISA)のデータ転送速度がインテル社製80386処理装置のデータ・アクセス速度に対応できなくなったとき増え始めた。ローカルエリア・ネットワーク(LAN)はネットワーク内にデータ記憶容量部を統合することにより記憶装置エリア・ネットワーク(SAN:storage area network)に進化した。使用者は機器とSAN内の機器で取り扱われる関連データとの統合により絶大な利益を実感しており、例えば直接装着された記憶装置では実現できないような大規模記憶装置の取り扱い能力、およびそれを管理可能なコストで実行することなどである。
更に最近の傾向は、データ記憶装置サブシステムを制御するためのネットワーク集中手法に向いている。すなわち、記憶装置が統合されたと同様に、記憶装置の機能を制御するシステムもまた個々のサーバから切り離されてネットワークの中に統合される。例えばホストベースのソフトウェアは、保守および管理タスクを高機能スイッチまたは特化されたネットワーク記憶装置サービス・プラットフォームに委ねることができる。アプライアンスベースのソリューションは、ソフトウェアをホスト内で実行する必要性を無くし、企業内に1つのノードとして設置されているコンピュータ内で動作する。いずれにしても、高機能ネットワーク・ソリューションはその様な事柄を、記憶装置割り当て処理ルーチン、バックアップ処理ルーチン、および耐故障性スキームとしてホストとは独立に集中化することが可能である。
高い機能をホストからネットワークへ移すことでこれらの幾つかの問題は解消されるが、その一方でソフトウェアおよび論理モジュールを実行するための組込型処理装置を使用することが必要である。これらの高機能記憶処理装置(intelligent storage processor)は二次記憶装置、例えばディスク・ドライブまたはテープ・ドライブとは独立して機能するので、これらは典型的に読み取り専用メモリ(“ROM”)の様な変更不能メモリが装着されている。恒久的に格納されるソフトウェア処理ルーチン(ファームウェアと呼ばれる)が高機能記憶処理装置の機能を制御する。
高機能記憶処理装置システムの複雑さが増大し市場の期待が、提供される製品に究極の柔軟性を要求するにつれて、今まで以上にファームウェア・エラーが作り出される可能性が高まる。これは組込型処理装置で実行されるソフトウェアのデバッグを、製品設計フェーズの初期段階における重要なステップに位置づける。しかしながら、高機能記憶処理装置の記憶容量が制限されているため、通常デバッグ用プログラムを処理装置の計算能力内で走らせることは不可能である。多くの対処方法はロジック・アナライザを組込型処理装置に接続して、出力を選択された入力と比較する手法を取っている。しかしながら、必要とされているのはソフトウェアが実行される行毎に詳細に追跡できる機能を使用者に与え、エラーの根本原因分からなくなるまで複合されてしまう前に実行エラーを指摘する、柔軟性に富むデバッグ・ツールである。このソリューションこそが本発明の実施例が目指すものである。
本発明の実施例は一般的にソフトウェアをデバッグするための装置および方法を対象とする。
幾つかの実施例において、ソフトウェア・コードカバレッジツール装置が高機能記憶処理装置用に提供されている。この装置はブレークポイント命令を含む、高機能記憶処理装置内で実行可能な第1プログラム命令を含む。プログラム命令のパッチセットがホストのメモリ部分に格納されている。ホスト内の第2プログラム命令はブレークポイント命令をこのパッチセットで置き換える。
幾つかの実施例の中でコードカバレッジを測定するための方法が提供されている。この方法は、その中にコードパッチが格納されているメモリを含むホストと通信する高機能記憶処理装置を提供する。この方法は更に、コードパッチを参照するブレークポイント命令を含む高機能記憶処理装置内で実行可能なプログラム・コードを提供する。この方法はプログラム・コードを高機能記憶処理装置上で実行し、実行ステップ中にブレークポイント命令を識別する。続いてこの方法はブレークポイント命令をプログラム・コード内のコードパッチで置き換える。
幾つかの実施例において、データ格納動作を制御するための高機能記憶処理装置と、この高機能記憶処理装置で実行されるソフトウェアのコードカバレッジを分析するための方法を含む記憶装置が提供されている。
本発明を特徴付けるこれらおよび種々のその他の特徴および長所は、以下の詳細な説明並びに関連図を参照することにより明らかとなろう。
図1は本発明の有用な実施例の図式的コンピュータ・システム100である。複数のホスト102が互いに、また同様に一対の高機能データ記憶サブシステム104(それぞれAおよびBと表されている)とネットワークまたはファブリック106を介して相互に作用し合っている。各々の高機能データ記憶サブシステム104は、好適にデータ記憶装置110、例えば独立ドライブの冗長化アレイ(RAID:redundant array of independent drive)として特徴付けられる1対のデータ記憶装置、上で動作する二重化冗長制御装置108(A1,A2およびB1,B2と表されている)を含む。制御装置108およびデータ記憶装置110は好適に耐故障性(フォールトトレランス)構造を使用し、これにより種々の制御装置108が並列、冗長リンクを使用し、システム100により格納された使用者データの少なくとも幾つかが、冗長化形式でデータ記憶装置110の少なくとも1つの組の中に格納されるようにしている。
更にAホスト・コンピュータ102およびA高機能データ記憶サブシステム104は第1サイトに物理的に設置可能であり、Bホスト・コンピュータ102およびB高機能データ記憶サブシステム104は第2サイトに物理的に設置可能であり、そしてCホスト・コンピュータ102は更に別の第3サイトに物理的に設置可能であると考慮されているが、それらは単に図示が目的でありこれに限定するものでは無い。分散型コンピュータ・システム上の全ての実体(entity)は何らかの型式のコンピュータ・ネットワークを介して接続されている。
図2は本発明の実施例に基づき構築された高機能データ記憶サブシステム104を図示する。棚114は複数の制御装置108を中間基板116と電気的に接続するように嵌め込むための空洞を定める。次に棚114はキャビネット(図示せず)の中に保持されている。一対の複数ディスク構成部品(MDA:multiple disc assembly)118が中間基板116の同一側で棚114に嵌め込まれている。中間基板116の反対側には、緊急用電源を供給する二重化バッテリー122、二重化交流電源装置124、および二重化インタフェース・モジュール126が接続されていている。好適にこれらの二重化構成部品はMDA118のいずれかのまたは両方と同時に動作するように構成されており、これにより構成部品故障時にバックアップ保護を提供する。
図3は、本発明の実施例に基づき構築された高機能データ記憶サブシステム104の線図である。制御装置108は冗長化高機能記憶処理装置(ISP)130と共に動作し、データの完全性の管理された信頼性を提供する。高機能記憶処理装置130は制御装置108内部、MDA118内部、または高機能データ記憶サブシステム104の何処かに存在することが可能である。管理された信頼性の特徴として、RAID方法のような信頼性の高いデータ記憶型式の使用を含む。管理された信頼性はまた、診断のスケジューリングおよびシステムの使用状況監視の基づく訂正処理ルーチンを含む。データ回復操作はデータのコピーおよび再構築のために実行される。此処で意図されている管理された信頼性機能のこれらおよびその他の特徴は、特許出願10/817,617、名称「管理された信頼性記憶システムと方法」、に開示されておりこれは本受託者に受託されていて、参照することで此処に組み入れられている。管理された信頼性のその他の特徴は予め定められた規則に関した予測故障指示に対する感応性を含み、これは例えば特許出願11/040,410、名称「分散型記憶システム内の予測故障からの決定論的予防回復」に開示されており、これは本受託者に受託されていて、参照することで此処に組み入れられている。
図4はその中に冗長化高機能記憶処理装置130が存在する高機能記憶処理装置回路基板132の概略図である。高機能記憶処理装置130はデータ記憶装置110とネットワークまたはファブリック106とのインタフェースを行う。各々の高機能記憶処理装置130は分類されたストレージ・サービス、例えばルーティング、容量管理、およびデータ移行および複製を管理できる。この高機能記憶処理装置130は基板132を、バス138で結合された2つのISPサブシステム134,136に分割する。ISPサブシステム134は「B」と表されるISP130を含み、これはファブリック106およびデータ記憶装置110にそれぞれリンク140,142で接続されている。ISPサブシステム134はまた、ポリシープロセッサ(policy processor)144も含み、これは実時間オペレーティング・システムを実行する。ISP134およびポリシープロセッサ144はバス146上で通信し、共にメモリ148と通信する。
図5は本発明の実施例に基づき構築されたISPサブシステム134の概略図である。ISP130は複数の機能制御装置コア(「FCC:functional controller core」150−160)を含み、これらはクロスポイントスイッチ(「CPS:cross point switch」)166メッセージ・クロスバー経由でリスト・マネージャ162,164と通信する。従って、制御装置(150−160)は各々CPSメッセージを指定された条件で生成し、そのメッセージを、CPS166を通してリスト・マネージャ162,164に送り、メモリ・モジュールへのアクセスそして/またはISP130動作を行う。同様にリスト・マネージャ162,164からの応答は、全ての制御装置(150−160)にCPS166を経由して通信可能である。図5の構成および関連する説明は図示が目的であって、意図されている本発明の実施例を制限するものではない。
ポリシープロセッサ144は所望の動作をISP130経由で実行するようにプログラム可能である。例えば、ポリシープロセッサ144はリスト・マネージャ162,164と通信可能であり、すなわちメッセージをCPS166経由で送受信する。ポリシープロセッサ144への応答は、メモリ148レジスタの読み取り割り込み信号として機能する。
図6−8は、本発明の実施例に基づき構築されたソフトウェア・コードカバレッジツール装置の図式的に表したものであり、高機能記憶処理装置130で実行されるソフトウェアのデバッグを行うものである。図6は好適にソフトウェアの形式の第1プログラム命令170を表し、これはポリシープロセッサ144から与えられ、(此処ではしばしば「ホスト」と呼ばれており、その中でポリシープロセッサ144はISP130の制御ホストとして機能している)そして高機能記憶処理装置130の中で実行される。この構成の中でホスト144は開発システムとして機能し、ISP130は対象システムとして機能している。第1プログラム命令170は、172の様な命令シーケンスを含み、これらはプログラムカウンタ176により順に実行される。第1プログラム命令170はまたブレークポイント命令178も含む。
ソフトウェア・コードカバレッジツールは更に、ホスト144のメモリ内に格納されている1つまたは複数のプログラム命令のパッチセット180を含む。プログラムカウンタ176がブレークポイント命令178を識別すると、プログラム命令のそれぞれのパッチセット180がホスト144から呼び出され、第1プログラム命令170に書き込まれてそれぞれのブレークポイント命令178を置き換える。
図8はホスト144の第2プログラム命令で実行される流れ図を図示し、本発明の実施例に基づきコードカバレッジを測定するための方法200を実行する。この方法はステップ202で開始され、此処で制御がホスト144から第1の組のプログラム命令170の中に与えられ、順に命令シーケンス172を通して進む。判定ブロック204において、ブレークポイント命令178がISP130で識別されたか否かの判定がなされる。好適に、ISP130は単独でブレークポイント命令178の発生を監視し、続いてホスト144に対してそのことを割り込みにより通知する。そうでなく、ブレークポイント命令178の発生が存在しない場合、ホスト144とISP130の間で通信の必要はない。判定ブロック204の判定が「no」の場合、最新命令シーケンス172がブロック206で実行され、制御はブロック202に戻り、此処でプログラムカウンタ176がインクリメントされる。しかしながらブロック204の判定が「yes」の場合、制御は第1プログラム命令170からホスト144へ渡される。ブロック208でパッチコード180がホスト144から読まれ、ブロック210でそのパッチコード180がソフトウェア・コード170に書き込まれて、ブレークポイント命令178を置き換える。ブロック212において、プログラムカウンタ176は先に記憶されていたブレークポイント命令178の開始アドレスに関してデクリメントされ、これによりブロック214においてパッチコード180を含むソフトウェア・コード170の部分が実行可能となる。
パッチコード180が実行された後、ホスト144は既存のISP130状態を予想される状態とブロック216で比較する。ブロック218で既存状態が予想通りであると判定されると、ソフトウェア実行エラーが検出されなかったことを意味し、制御はブロック202でソフトウェア170の制御に返される。そうでない場合、方法200はブロック220で終了し既存状態がソフトウェア170のデバッグのために使用される。
ホスト144はパッチコード180の成功した実行の記録を残し、コードカバレッジの分析の参照とすることができる。また、ホスト144がパッチコード180を、処理エラー検出を助けるために単一ステップで実行できれば、特に複数の分岐を個別に解析する際には有用であろう。
図6の図示された実施例は唯2つの個別ブレークポイント情報178エンティティーを示すのみであるが、これに代わる等価の実施例において3つ以上を採用することが可能である。「個別」とは逐次ブレークポイント178が1つまたは複数の命令シーケンス172で分離されていることを意味する。等価のこれに代わる実施例において、1つまたは複数の逐次命令シーケンス172、または全ての命令シーケンス172は複数のブレークポイント命令178を含むことが可能である。
纏めると、ソフトウェア・コードカバレッジツール装置(例えば144,130,200)が高機能記憶処理装置(例えば130)を制御するソフトウェアのデバッグ用に提供されている。このツールは高機能記憶処理装置内で実行可能なブレークポイント命令を含む第1プログラム命令を含む。プログラム命令のパッチセットがホスト(此処では「ポリシープロセッサ」と呼ぶ場合もある)を制御する高機能記憶処理装置のメモリ部分に格納されている。ホスト内の第2プログラム命令はブレークポイント命令をパッチセットで置き換える。
好適に第2プログラム命令はパッチセットを含む第1プログラム命令の部分を再実行する。第2プログラム命令は第1プログラム命令のパッチセット部分を再実行する際に、ブレークポイント命令の開始アドレスに関して、プログラムカウンタをデクリメントすることができる。
第1プログラム命令は複数の個別ブレークポイント命令を含むことが可能であり、ホストは同様に、それぞれのブレークポイント命令から参照される、対応する複数のパッチセットを含むことが可能である。第2プログラム命令は高機能記憶処理装置の状態を第1プログラム命令を特定のパッチセットと共に再実行した後に予想される状態と比較することが可能であり、確定的に制御を第1プログラム命令に返すことができる。
幾つかの実施例において、第2プログラム命令は制御を第1プログラム命令に返す際に、特定のパッチセットの実行がされたことを記録する。第2プログラム命令は更に単一ステップで第1プログラム命令の再実行を行える。
幾つかの実施例において、コードカバレッジを測定するための1つの方法が提供されている。この方法はその中にコードパッチ(例えば180)を格納するためのメモリを備えたホスト装置を提供することを含む。この方法は更に、高機能記憶処理装置内で実行可能でそのコードパッチを参照するブレークポイント命令(例えば178)を含む、好適にソフトウェアであるプログラム・コードを提供することを含む。この方法はプログラム・コード(例えば206)を高機能記憶処理装置内で実行し、その実行ステップ中にブレークポイント命令を識別する(例えば204)。これに応じてこの方法はブレークポイント命令をプログラム・コード内のコードパッチに置き換える(例えば210)。
好適に、この方法はコードパッチを含むプログラム・コードの一部を再実行することを含む。置き換えステップはプログラムカウンタを、コードパッチを再実行する際のブレークポイント命令の開始アドレスに関してデクリメントすること(例えば212)を含む。プログラム・コード・ステップは好適に複数の個別ブレークポイント命令を含み、ホストは同様にそれぞれのブレークポイント命令から参照される、対応する複数のコードパッチを含む。
この方法は更に高機能記憶処理装置の状態を、コードパッチを含むプログラム・コードの再実行後に予想される状態と比較し(例えば216)、確定的に制御をプログラム・コードに戻すこと(例えば218)を含む。比較ステップは制御をプログラム・コードに戻す際にコードパッチの実行が実行されたことを記録することを含むことができる。この比較ステップは更に、プログラム・コードの単一ステップ再実行を含むことができる。
幾つかの実施例において、記憶装置はデータ格納動作を制御する高機能記憶処理装置と、高機能記憶処理装置のプログラム・ステップを制御するソフトウェアのコードカバレッジを分析するための手段を含むように意図されている。コードカバレッジを分析するための手段は高機能記憶処理装置で実行されるプログラム・コード内にブレークポイントを格納することを特徴とする。コードカバレッジを分析するための手段は、ホスト装置内にコードパッチを格納することを特徴とする。コードカバレッジを分析するための手段は、特定ブレークポイントを対応するコードパッチで置き換えることを特徴とする。コードカバレッジを分析するための手段は、コードパッチを含むプログラム・コードの一部を再実行することを特徴とする。コードカバレッジを分析するための手段は、プログラム・コードのコードパッチ部分の再実行後に監視された高機能記憶装置の状態に関連して、プログラム・コードの実行を確定的に継続することを特徴とする。
本発明の種々の実施例の多くの特徴ならびに長所を上記の説明の中で、本発明の種々の実施例の詳細説明および機能と共に示してきたが、この詳細説明は図示のみであって、変更が詳細部において、特に構造ならびに部品の配列などを添付の特許請求の範囲で示されている言語の広い一般的意味で示されている本発明の原理の中で実施できることは理解されよう。例えば、個別の構成部品を個別の処理環境に応じて、本発明の精神および範囲から逸脱することなく変更できる。
更に、此処に説明された実施例はデータ記憶アレイを意図しているが、当業者には特許請求の主題がそれに限定されるものではなく、その他の種々の処理システムで特許請求されている発明の精神並びに範囲から逸脱することなく利用できることは理解されよう。
図1は本発明の有用な実施例の分散型コンピュータ・システムの図式的表現である。 図2は本発明の実施例に基づき構築された高機能データ記憶サブシステムの組立分解等角図である。 図3は図2の高機能データ記憶サブシステムの機能ブロック図である。 図4は図3の高機能データ記憶サブシステムの高機能記憶処理装置回路基板の機能ブロック図である。 図5は図4の高機能記憶処理装置回路基板の高機能記憶処理装置の機能ブロック図である。 図6は高機能記憶処理装置で実行される、ホストからのソフトウェア・コードの概略図である。 図7はホストのメモリ内に格納されている複数のコードパッチの概略図である。 図8は本発明の実施例に基づくコードカバレッジを分析するための方法で実行されるステップの流れ図である。
符号の説明
100 コンピュータ・システム
102 ホスト
104 高機能データ記憶サブシステム
106 ネットワークまたはファブリック
108 制御装置
110 データ記憶装置
114 棚
116 中間基板
118 MDA(複数ディスク構成部品)
122 二重化バッテリー
124 二重化交流電源装置
126 二重化インタフェース・モジュール
130 高機能記憶処理装置
132 基板
134,136 ISPサブシステム
140,142 リンク
144 ポリシープロセッサ(ホスト)
146 バス
148 メモリ
162,164 リスト・マネージャ
166 CPS
170 第1プログラム命令
172 命令シーケンス
176 プログラムカウンタ
178 ブレークポイント命令
180 プログラム命令のパッチセット

Claims (20)

  1. 高機能記憶処理装置用ソフトウェア・コードカバレッジツール装置であって:
    高機能記憶処理装置内で実行可能なブレークポイント命令を含む第1プログラム命令と;
    ホスト装置のメモリ部に格納されているプログラム命令のパッチセットと;
    ブレークポイント命令をパッチセットで置き換えるための、ホスト内の第2プログラム命令を含む、前記装置。
  2. 請求項1記載の装置において、第2プログラム命令がパッチセットを含む第1プログラム命令の一部を再実行する、前記装置。
  3. 請求項2記載の装置において、第1プログラム命令のパッチセット部分を再実行するために、第2プログラム命令がプログラムカウンタをブレークポイント命令の開始アドレスに関連してデクリメントする、前記装置。
  4. 請求項2記載の装置において、第1プログラム命令が複数の個別ブレークポイント命令を含み、ホストがそれぞれのブレークポイント命令から参照される、対応する複数のパッチセットを含む、前記装置。
  5. 請求項4記載の装置において、第2プログラム命令が高機能記憶処理装置の状態を、個々のパッチセットを具備した第1プログラム命令の再実行後に予想される状態と比較し、確定的に制御を第1プログラム命令に返す、前記装置。
  6. 請求項5記載の装置において、制御が第1プログラム命令に返された際に、第2プログラム命令が個別のパッチセットが実行されたことを記録する、前記装置。
  7. 請求項2記載の装置において、第2プログラム命令が第1プログラム命令の再実行を単一ステップで行う、前記装置。
  8. コードカバレッジ測定方法であって:
    高機能記憶処理装置を用意し;
    高機能記憶処理装置で実行可能で、ホスト内に格納されているコードパッチを参照するブレークポイント命令を含むプログラム・コードをホスト装置から提供し;
    そのプログラム・コードを高機能記憶処理装置内で実行し;
    実行ステップ中にブレークポイント命令を識別し;
    ブレークポイント命令をプログラム・コード内のコードパッチで置き換えることを含む、前記方法。
  9. 請求項8記載の方法において、置き換えステップがコードパッチを含むプログラム・コードの部分を再実行することを含む、前記方法。
  10. 請求項9記載の方法において、置き換えステップがコードパッチ再実行時のブレークポイント命令の開始アドレスに関連して、プログラムカウンタのデクリメントを含む、前記方法。
  11. 請求項8記載の方法において、プログラム・コードを提供するステップが、対応する複数のコードパッチを参照する複数の個別ブレークポイント命令を含む、前記方法。
  12. 請求項9記載の方法が更に高機能記憶処理装置の状態を、コードパッチを具備するプログラム・コード再実行後に予想される状態と比較し、確定的に制御をプログラム・コードに返すことを含む、前記方法。
  13. 請求項12記載の方法において、比較ステップが、制御がプログラム・コードに返された際にコードパッチが実行されたことを記録することを含む、前記方法。
  14. 請求項13記載の方法において、比較ステップがプログラム・コードの単一ステップ再実行を含む、前記方法。
  15. 記憶装置であって:
    データ格納動作を制御する高機能記憶処理装置と;
    高機能記憶処理装置で実行されるソフトウェアのコードカバレッジを分析するための手段を含む、前記装置。
  16. 請求項15記載の装置において、コードカバレッジを分析するための手段が、ブレークポイントを高機能記憶処理装置で実行されるプログラム・コード内に格納することを特徴とする、前記装置。
  17. 請求項16記載の装置において、コードカバレッジを分析するための手段が、コードパッチをホスト装置内に格納することを特徴とする、前記装置。
  18. 請求項17記載の装置において、コードカバレッジを分析するための手段が、特定ブレークポイントを対応するコードパッチで置き換えることを特徴とする、前記装置。
  19. 請求項18記載の装置において、コードカバレッジを分析するための手段が、コードパッチを含むプログラム・コードの一部を再実行することを特徴とする、前記装置。
  20. 請求項19記載の装置において、コードカバレッジを分析するための手段が、プログラム・コードのコードパッチ部分の再実行後に、高機能記憶処理装置の監視された状態に関連して、プログラム・コードの実行を確定的に継続することを特徴とする、前記装置。
JP2006168407A 2005-06-20 2006-06-19 組込型処理装置システム用コードカバレッジ測定方法及び装置 Pending JP2007004793A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/157,199 US20070006166A1 (en) 2005-06-20 2005-06-20 Code coverage for an embedded processor system

Publications (1)

Publication Number Publication Date
JP2007004793A true JP2007004793A (ja) 2007-01-11

Family

ID=37591369

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006168407A Pending JP2007004793A (ja) 2005-06-20 2006-06-19 組込型処理装置システム用コードカバレッジ測定方法及び装置

Country Status (2)

Country Link
US (1) US20070006166A1 (ja)
JP (1) JP2007004793A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010174891A (ja) * 2009-01-28 2010-08-12 Dspace Digital Signal Processing & Control Engineering Gmbh 制御装置を調整する方法および調整ユニット

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954926B2 (en) 2012-03-05 2015-02-10 Microsoft Corporation Code coverage detection with scriptable language unmodified source
CN104142887B (zh) * 2013-12-12 2016-12-14 腾讯科技(深圳)有限公司 一种数据挖掘方法和装置
US9454467B2 (en) 2013-12-12 2016-09-27 Tencent Technology (Shenzhen) Company Limited Method and apparatus for mining test coverage data
US20160335064A1 (en) * 2015-05-12 2016-11-17 Advanced Micro Devices, Inc. Infrastructure to support accelerator computation models for active storage
US11657068B2 (en) * 2017-12-15 2023-05-23 International Business Machines Corporation Efficient migration between asynchronous data replication technologies

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0225939A (ja) * 1988-07-15 1990-01-29 Hitachi Ltd テストカバレージ計測ツール
JPH05324395A (ja) * 1992-05-07 1993-12-07 Nec Corp プログラムのデバッグ装置
JP2002116926A (ja) * 2000-10-11 2002-04-19 Nec Corp プログラム処理装置およびプログラム処理方法
JP2002534736A (ja) * 1999-01-04 2002-10-15 イーエムシー コーポレイション オンラインでデバッグ及び追跡を行う装置及び方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
US4910663A (en) * 1987-07-10 1990-03-20 Tandem Computers Incorporated System for measuring program execution by replacing an executable instruction with interrupt causing instruction
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
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
US5495561A (en) * 1993-06-21 1996-02-27 Taligent, Inc. Operating system with object-oriented printing interface
US5519866A (en) * 1993-06-28 1996-05-21 Taligent, Inc. Method and apparatus of incrementally linking components of a modeled computer program
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
DE69435090T2 (de) * 1993-12-01 2009-06-10 Marathon Technologies Corp., Stow Rechnersystem mit Steuereinheiten und Rechnerelementen
US5581697A (en) * 1994-01-28 1996-12-03 Sun Microsystems, Inc. Method and apparatus for run-time error checking using dynamic patching
US5675803A (en) * 1994-01-28 1997-10-07 Sun Microsystems, Inc. Method and apparatus for a fast debugger fix and continue operation
US5533192A (en) * 1994-04-21 1996-07-02 Apple Computer, Inc. Computer program debugging system and method
EP0729097A1 (en) * 1995-02-07 1996-08-28 Sun Microsystems, Inc. Method and apparatus for run-time memory access checking and memory leak detection of a multi-threaded program
US5790397A (en) * 1996-09-17 1998-08-04 Marathon Technologies Corporation Fault resilient/fault tolerant computing
US5901225A (en) * 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US6263368B1 (en) * 1997-06-19 2001-07-17 Sun Microsystems, Inc. Network load balancing for multi-computer server by counting message packets to/from multi-computer server
US6279123B1 (en) * 1997-09-15 2001-08-21 Lucent Technologies, Inc. System for viewing and monitoring embedded processor operation
US6286114B1 (en) * 1997-10-27 2001-09-04 Altera Corporation Enhanced embedded logic analyzer
US6393490B1 (en) * 1997-12-18 2002-05-21 Ian James Stiles Method and system for a programmatic feedback process for end-user support
US6188975B1 (en) * 1998-03-31 2001-02-13 Synopsys, Inc. Programmatic use of software debugging to redirect hardware related operations to a hardware simulator
US6697773B1 (en) * 1998-05-19 2004-02-24 Altera Corporation Using assignment decision diagrams with control nodes for sequential review during behavioral simulation
US6240376B1 (en) * 1998-07-24 2001-05-29 Mentor Graphics Corporation Method and apparatus for gate-level simulation of synthesized register transfer level designs with source-level debugging
US6480818B1 (en) * 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6571359B1 (en) * 1999-12-13 2003-05-27 Intel Corporation Systems and methods for testing processors
US6557116B1 (en) * 1999-02-19 2003-04-29 Texas Instruments Incorporated Emulation suspension mode with frame controlled resource access
WO2000063893A1 (en) * 1999-04-21 2000-10-26 Seagate Technology Llc Servo processor code evaluation using a virtual disc drive
US6681384B1 (en) * 1999-12-23 2004-01-20 International Business Machines Corporation Multi-threaded break-point
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
US6708326B1 (en) * 2000-11-10 2004-03-16 International Business Machines Corporation Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence
US20020194540A1 (en) * 2001-05-04 2002-12-19 Hugo Cheung Method and system for non-intrusive dynamic memory mapping
US6862694B1 (en) * 2001-10-05 2005-03-01 Hewlett-Packard Development Company, L.P. System and method for setting and executing breakpoints
US7028129B2 (en) * 2001-12-28 2006-04-11 Intel Corporation Method and apparatus for converting an external memory access into a local memory access in a processor core
US6901581B1 (en) * 2002-10-02 2005-05-31 Eridon Corporation Method for software debugging via simulated re-execution of a computer program
US7124237B2 (en) * 2002-10-03 2006-10-17 Seagate Technology Llc Virtual machine emulation in the memory space of a programmable processor
US7647586B2 (en) * 2004-08-13 2010-01-12 Sun Microsystems, Inc. System and method for providing exceptional flow control in protected code through watchpoints

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0225939A (ja) * 1988-07-15 1990-01-29 Hitachi Ltd テストカバレージ計測ツール
JPH05324395A (ja) * 1992-05-07 1993-12-07 Nec Corp プログラムのデバッグ装置
JP2002534736A (ja) * 1999-01-04 2002-10-15 イーエムシー コーポレイション オンラインでデバッグ及び追跡を行う装置及び方法
JP2002116926A (ja) * 2000-10-11 2002-04-19 Nec Corp プログラム処理装置およびプログラム処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010174891A (ja) * 2009-01-28 2010-08-12 Dspace Digital Signal Processing & Control Engineering Gmbh 制御装置を調整する方法および調整ユニット
JP2010173633A (ja) * 2009-01-28 2010-08-12 Dspace Digital Signal Processing & Control Engineering Gmbh 制御装置を調整するための方法および操作ユニット

Also Published As

Publication number Publication date
US20070006166A1 (en) 2007-01-04

Similar Documents

Publication Publication Date Title
US8498967B1 (en) Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US7111084B2 (en) Data storage network with host transparent failover controlled by host bus adapter
US8566635B2 (en) Methods and systems for improved storage replication management and service continuance in a computing enterprise
US8839032B2 (en) Managing errors in a data processing system
JP5160085B2 (ja) ストレージ・デバイスの障害を予測するための装置、システム、および方法
US8473779B2 (en) Systems and methods for error correction and detection, isolation, and recovery of faults in a fail-in-place storage array
US8495413B2 (en) System and method for providing a computer standby node
US7137020B2 (en) Method and apparatus for disabling defective components in a computer system
US20060259815A1 (en) Systems and methods for ensuring high availability
US10467075B1 (en) Systems, devices and methods for predicting disk failure and minimizing data loss
JP5296878B2 (ja) 1つまたは複数の交換ユニットのテストを管理するために1つまたは複数の交換可能ユニットを含むコンピュータ化ストレージ・システムで使用するための方法、装置、およびプログラム(交換ユニットのテストを管理するために交換可能ユニットを含むコンピュータ化ストレージ・システム)
EP1810143A2 (en) System and method for network performance monitoring and predictive failure analysis
CN109189627B (zh) 一种硬盘故障监控检测方法、装置、终端及存储介质
JP2007004793A (ja) 組込型処理装置システム用コードカバレッジ測定方法及び装置
US20130132766A1 (en) Method and apparatus for failover and recovery in storage cluster solutions using embedded storage controller
TW202134881A (zh) 用以進行全快閃記憶體陣列伺服器的碟管理的方法與設備
US7003617B2 (en) System and method for managing target resets
CN109783280A (zh) 共享存储系统和共享存储方法
US20050044207A1 (en) Service processor-based system discovery and configuration
US7996707B2 (en) Method to recover from ungrouped logical path failures
WO2011051999A1 (ja) 情報処理装置及び情報処理装置の制御方法
JP2011076344A (ja) 情報処理装置,情報処理装置の制御方法および制御プログラム
US7392420B2 (en) Automated error recovery of a licensed internal code update on a storage controller
US7533297B2 (en) Fault isolation in a microcontroller based computer
US20140250319A1 (en) System and method for providing a computer standby node

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090619

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120508