JP2003173270A - ソフトウェアデバッグ装置 - Google Patents

ソフトウェアデバッグ装置

Info

Publication number
JP2003173270A
JP2003173270A JP2001372247A JP2001372247A JP2003173270A JP 2003173270 A JP2003173270 A JP 2003173270A JP 2001372247 A JP2001372247 A JP 2001372247A JP 2001372247 A JP2001372247 A JP 2001372247A JP 2003173270 A JP2003173270 A JP 2003173270A
Authority
JP
Japan
Prior art keywords
information
hardware
dump
software
register
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
JP2001372247A
Other languages
English (en)
Inventor
Masahiro Ito
正博 伊藤
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2001372247A priority Critical patent/JP2003173270A/ja
Priority to US10/304,948 priority patent/US7188338B2/en
Publication of JP2003173270A publication Critical patent/JP2003173270A/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/3664Environments for testing or debugging software
    • 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

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)【要約】 【目的】 ハードウェアシミュレータから得られたダン
プ情報からソフトウェア設計者にとって必要な情報を抽
出して分かり易く表示することができるソフトウェアデ
バッグ装置を提供すること。 【構成】 入力装置から情報を入力し、中央演算処理装
置や周辺装置にて情報を処理し、出力装置にて情報を表
示するソフトウェアデバッグ装置において、ハードウェ
アシミュレータが作成したダンプ情報を取得する部分
と、そのダンプ情報を解析する部分と、その解析結果の
表示の制御を行う部分を設け、ソフトウェアがハードウ
ェアに対して操作を行ったときの情報とハードウェア自
身がI/Oレジスタの値を変化させたときの情報を区別
して表示する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードウェアシミ
ュレータを用いたソフトウェアのデバッグを行うデバッ
グ装置に関するものである。
【0002】
【従来の技術】近年のシステムLSI開発では、ハード
ウェア製造以前にその設計が正しいかどうかを検証する
ために、HDLやC言語等で記述されたハードウェアを
仮想化するシミュレーション・モデルを使ったシミュレ
ーションが行われる。このシミュレーションでは、 ハー
ドウェアのクロック単位で各信号ピンの波形や内部のレ
ジスタの値等をダンプすることによって、ハードウェア
内部で起こっているあらゆる情報を得ることができる。
そして、ハードウェア設計者は、このハードウェアシミ
ュレータから得られたダンプ情報に基づいて設計したハ
ードウェアの検証を行う。
【0003】このダンプ情報は、ハードウェアの検証に
役立つのと同様に、そのハードウェアを制御するソフト
ウェアのデバッグにも非常に役に立つ。なぜなら、通常
ソフトウェアのデバッグでは、得られるデバッグ情報に
限界があり、ハードウェアの詳細な情報をクロック単位
で得ることは非常に難しい。更に、制御するハードウェ
アの状態を知るために、わざわざデバッグ用の余分な処
理を追加する必要があり、ハードウェアに余分な動作を
させなければならないが、その必要もない。
【0004】
【発明が解決しようとする課題】しかしながら、ハード
ウェアシミュレータから得られるダンプ情報は、本来ハ
ードウェアを設計して検証することを第1の目的として
いるため、ハードウェアの検証には有効であるが、ソフ
トウェアのデバッグには必要でない情報も多く含まれ
る。
【0005】又、この情報を表示するツールも、信号波
形の表示等のハードウェア設計者向けに作られており、
ソフトウェア設計者にとって必要な情報を分かり易く表
示できていない。
【0006】本発明は上記問題に鑑みてなされたもの
で、その目的とする処は、ハードウェアシミュレータか
ら得られたダンプ情報からソフトウェア設計者にとって
必要な情報を抽出して分かり易く表示することができる
ソフトウェアデバッグ装置を提供することにある。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、入力装置から情報を入力し、中央演算処
理装置や周辺装置にて情報を処理し、出力装置にて情報
を表示するソフトウェアデバッグ装置において、ハード
ウェアシミュレータが作成したダンプ情報を取得する部
分と、そのダンプ情報を解析する部分と、その解析結果
の表示の制御を行う部分を設け、ソフトウェアがハード
ウェアに対して操作を行ったときの情報とハードウェア
自身がI/Oレジスタの値を変化させたときの情報を区
別して表示することを特徴とする。
【0008】
【発明の実施の形態】以下に本発明の実施の形態を添付
図面に基づいて説明する。
【0009】図1は本発明に係るソフトウェアデバッグ
装置の概略構成を示すブロック図である。
【0010】この装置は、パーソナルコンピュータやワ
ークステーション等のコンピュータにソフトウェアを格
納して構成される。コンピュータは、必要な情報を入力
するためのキーボードやマウス等のデバイスで構成され
る入力装置2及び情報を表示するためのCRT等のディ
スプレイで構成される出力装置3を備えている。
【0011】ハードウェアシミュレータ11は、HDL
やC言語等で記述されたハードウェアを仮想化するシミ
ュレーション・モデルを用いてシミュレーションを行
う。このシミュレーションにおいて、ハードウェアのク
ロック単位で各信号ピンの波形や内部のレジスタの値等
の情報がダンプ情報12として作成される。1はハード
ウェアシミュレータ11から得られるダンプ情報12を
解析し、出力装置3に表示するアプリケーションプログ
ラム全体を表し、ハードウェアシミュレータ11とはそ
れぞれ別々のプロセスとしてコンピュータ上で動作す
る。
【0012】このアプリケーションプログラム1は、表
示方法設定部4、表示制御部5、ダンプ情報解析部6、
ダンプ情報取得部7から構成されている。又、内部に記
憶されるデータとして、ソフトウェアがハードウェアに
対して操作を行ったときの情報記憶部8と、ハードウェ
ア自身がI/Oレジスタの値を変化させたときの情報記
憶部9を持つ。ダンプ情報取得部7は、ハードウェアシ
ミュレータ11によって作成されたダンプ情報12を読
み込む。ダンプ情報解析部6は、読み込んだダンプ情報
を解析し、ソフトウェアがハードウェアに対して操作を
行ったときの情報と、ハードウェア自身がI/Oレジス
タの値を変化させたときの情報に分類する。
【0013】表示方法設定部4は、出力装置3への表示
方法に対して、ユーザが指定する表示形式や必要な情報
の設定を行う。表示制御部5は、ソフトウェアがハード
ウェアに対して操作を行ったときの情報記憶部8と、ハ
ードウェア自身がI/Oレジスタの値を変化させたとき
の情報記憶部9に基づいて表示方法設定部4によって設
定されている表示形式で出力装置3に表示する。
【0014】次に、 この装置の動作を図2のフローチャ
ートを用いて説明する。
【0015】先ず、ハードウェアシミュレータ11を動
作させてダンプ情報12を作成する(ステップS1
1)。このとき、既にダンプ情報12が作成されている
のであれば、ハードウェアシミュレータ11を動作させ
る必要はない。最新の情報を使用するのであれば、必ず
ハードウェアシミュレータ11を動作させなければなら
ない。そして、ダンプ情報取得部7によりダンプ情報1
2が読み込まれる(ステップS12)。
【0016】もし、ダンプ情報取得部7がハードウェア
シミュレータ11と情報の通信を行うことができる場合
は、ダンプ情報を直接得ることができる。そのため、ハ
ードウェアシミュレータ11と協調動作しながらダンプ
情報を得て表示することも可能となる。
【0017】読み込まれた情報から、ダンプ情報解析部
6はソフトウェアがハードウェアに対して操作を行った
ときの情報を抽出する(ステップS13)。ソフトウェ
アがハードウェアに対しての操作の例として挙げられる
のが、CPUによるREAD/WRITEやDMAによ
るREAD/WRITE等である。これらの動作は、ダ
ンプ情報12に含まれる信号波形等の情報から識別する
ことができる。このように、ダンプ情報12をハードウ
ェアのクロック単位毎に解析し、これらの操作が行われ
たときのI/Oレジスタの値等の情報を抽出し、ソフト
ウェアがハードウェアに対して操作を行ったときの情報
記憶部8に蓄積していく。
【0018】更に、ダンプ情報解析部6は、ハードウェ
ア自身がI/Oレジスタの値を変化させたときの情報も
抽出する(ステップS14)。I/Oレジスタの値の変
化は、直前のクロック時における値と比較することによ
って識別することができる。このとき、ソフトウェアが
ハードウェアに対して操作を行っており、ステップS1
3で抽出した情報と重複する場合は除く。このように、
ダンプ情報12をハードウェアのクロック単位毎に解析
し、ハードウェア自身がI/Oレジスタの値を変化させ
たときのI/Oレジスタの値等の情報を抽出し、ハード
ウェア自身がI/Oレジスタの値を変化させたときの情
報記憶部9に蓄積していく。
【0019】次に、出力装置3へ情報を表示するときの
表示方法の設定を行う(ステップS15)。このステッ
プは、ユーザが表示方法を独自に指定したいときに行う
処理であり、初期設定のまま表示する方法で良いのであ
れば特にすることはない。
【0020】ユーザが表示方法を変更する場合、図3は
表示方法を設定するときに出力装置3に表示される設定
パネルの例を示す。ここでは、ユーザが入力装置2を用
いて設定情報を入力する。設定パネル21において、形
式の項目22は、表示するときにリストで表示するか波
形で表示するか等の表示形式を設定する。表示アクショ
ンの項目23は、表示する情報として、ハードウェア自
身がI/Oレジスタの値を変化させたときのものを表示
するかしないか、又、ソフトウェアがハードウェアに対
して操作を行ったときのもの(CPUによるREAD/
WRITEやDMAによるREAD/WRITE)を表
示するがしないかを設定する。表示レジスタの項目24
は、どのI/Oレジスタの値を表示するかを設定する。
例えば、図3に示す状態は、3つのレジスタ(レジスタ
A、レジスタB、レジスタC) の情報を、ハードウェア
自身がI/Oレジスタの値を変化させたとき及びソフト
ウェアがハードウェアに対して操作を行ったとき全ての
場合をリスト形式で表示する設定となっている。
【0021】最後に、出力装置3へ情報が表示される
(ステップS16)。表示制御部5は、表示方法設定部
4に設定されている方法(初期設定或はユーザ設定)
で、ソフトウェアがハードウェアに対して操作を行った
ときの情報記憶部8と、ハードウェア自身がI/Oレジ
スタの値を変化させたときの情報記憶部9に蓄積されて
いる情報を表示する。
【0022】図4は表示方法が前述の図3の状態で設定
されたときに出力装置3へ表示される例を示す図であ
る。
【0023】表示パネル31において、時間の列32
は、表示されている情報がいつのものかを表す。アクシ
ョンの列33は、表示されている情報がハードウェア自
身がI/Oレジスタの値を変化させたときのものである
か、又、ソフトウェアがハードウェアに対して操作を行
ったときのもの(CPUによるREAD/WRITEや
DMAによるREAD/WRITE)であるかを表す。
レジスタAの列34、レジスタBの列35、レジスタC
の列36は、それぞれのレジスタの値を表す。
【0024】例えば、時間(100)の行では、ハード
ウェア自身によりレジスタAが00000000から8
0000000に変化している。このとき、時間(0)
〜時間(99)までは全てレジスタAは0000000
0であるが、この情報も画面に表示することなく得るこ
とが可能である。又、時間(600)の行では、ソフト
ウェアによりCPUのWRITEが行われ、レジスタA
が80000000からFFFFFFFFに変化してい
る。これによってCPUのWRITE動作の確認にな
る。他にもDMAによる操作等も確認することができ
る。
【0025】
【発明の効果】以上の説明で明らかなように、本発明に
よれば、入力装置から情報を入力し、中央演算処理装置
や周辺装置にて情報を処理し、出力装置にて情報を表示
するソフトウェアデバッグ装置において、ハードウェア
シミュレータが作成したダンプ情報を取得する部分と、
そのダンプ情報を解析する部分と、その解析結果の表示
の制御を行う部分を設け、ソフトウェアがハードウェア
に対して操作を行ったときの情報とハードウェア自身が
I/Oレジスタの値を変化させたときの情報を区別して
表示するようにしたため、ハードウェアシミュレータか
ら得られたダンプ情報からソフトウェア設計者にとって
必要な情報を抽出して分かり易く表示することができる
という効果が得られる。
【図面の簡単な説明】
【図1】本発明に係るソフトウェアデバッグ装置の概略
構成を示すブロック図である。
【図2】本発明に係るソフトウェアデバッグ装置の動作
を示すフローチャートである。
【図3】表示方法を設定する設定パネルの例を示す図で
ある。
【図4】リスト形式でデバッグ情報を表示する場合の例
を示す図である。
【符号の説明】
1 アプリケーションプログラム 2 入力装置 3 出力装置 4 表示方法設定部 5 表示制御部 6 ダンプ情報解析部 7 ダンプ情報取得部 8,9 情報記憶部 11 ハードウェアシュミレータ 12 ダンプ情報 21 設定パネル 22 形式を設定する項目 23 表示アクションを設定する項目 24 表示レジスタを設定する項目 31 表示パネル 32 時間 33 アクション 34 レジスタA 35 レジスタB 36 レジスタC

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 入力装置から情報を入力し、中央演算処
    理装置や周辺装置にて情報を処理し、出力装置にて情報
    を表示するソフトウェアデバッグ装置において、 ハードウェアシミュレータが作成したダンプ情報を取得
    する部分と、そのダンプ情報を解析する部分と、その解
    析結果の表示の制御を行う部分を設け、ソフトウェアが
    ハードウェアに対して操作を行ったときの情報とハード
    ウェア自身がI/Oレジスタの値を変化させたときの情
    報を区別して表示することを特徴とするソフトウェアデ
    バッグ装置。
  2. 【請求項2】 ダンプ情報を取得する部分は、ハードウ
    ェアシミュレータと情報の通信を行うことができ、協調
    動作しながら直接ダンプ情報を取得することを特徴とす
    る請求項1記載のソフトウェアデバッグ装置。
  3. 【請求項3】 表示方法を設定する部分を備え、表示方
    法の変更を可能にすることを特徴とする請求項1又は2
    記載のソフトウェアデバッグ装置。
JP2001372247A 2001-12-06 2001-12-06 ソフトウェアデバッグ装置 Pending JP2003173270A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001372247A JP2003173270A (ja) 2001-12-06 2001-12-06 ソフトウェアデバッグ装置
US10/304,948 US7188338B2 (en) 2001-12-06 2002-11-27 Apparatus and method for debugging software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001372247A JP2003173270A (ja) 2001-12-06 2001-12-06 ソフトウェアデバッグ装置

Publications (1)

Publication Number Publication Date
JP2003173270A true JP2003173270A (ja) 2003-06-20

Family

ID=19181170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001372247A Pending JP2003173270A (ja) 2001-12-06 2001-12-06 ソフトウェアデバッグ装置

Country Status (2)

Country Link
US (1) US7188338B2 (ja)
JP (1) JP2003173270A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133836A (ja) * 2005-11-14 2007-05-31 Canon Inc シミュレーション装置及びシミュレーション方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047447B2 (en) * 2003-01-16 2006-05-16 Sun Microsystems, Inc. Method and system for postmortem object type identification
JP2005050124A (ja) * 2003-07-29 2005-02-24 Matsushita Electric Ind Co Ltd 特定周波数帯域のノイズを低減できるコンパイラ、およびコンピュータ装置
US7793229B1 (en) * 2003-12-19 2010-09-07 Unisys Corporation Recording relevant information in a GUI window of a panel dump browser tool
DE102004027033B4 (de) * 2004-03-15 2009-07-02 Dspace Digital Signal Processing And Control Engineering Gmbh Beeinflussungsgerät für Steuergeräte und Verfahren zur Beeinflussung eines Steuergeräts
KR100972488B1 (ko) * 2005-12-29 2010-07-26 엘지디스플레이 주식회사 레이저를 이용한 액정표시소자 절단장치 및 절단방법, 이를이용한 액정표시소자 제조방법
US20090063632A1 (en) * 2007-08-31 2009-03-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Layering prospective activity information
US8682982B2 (en) * 2007-06-19 2014-03-25 The Invention Science Fund I, Llc Preliminary destination-dependent evaluation of message content
US9374242B2 (en) 2007-11-08 2016-06-21 Invention Science Fund I, Llc Using evaluations of tentative message content
US8984133B2 (en) * 2007-06-19 2015-03-17 The Invention Science Fund I, Llc Providing treatment-indicative feedback dependent on putative content treatment
US20080320088A1 (en) * 2007-06-19 2008-12-25 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Helping valuable message content pass apparent message filtering
US20090063585A1 (en) * 2007-08-31 2009-03-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Using party classifiability to inform message versioning
US20090063631A1 (en) * 2007-08-31 2009-03-05 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Message-reply-dependent update decisions
US8479156B2 (en) * 2009-06-18 2013-07-02 National Instruments Corporation Providing target specific information for textual code at edit time
US9575871B2 (en) * 2012-09-04 2017-02-21 Salesforce.Com, Inc. System and method for dynamically debugging data in a multi-tenant database environment
US9474166B2 (en) 2012-12-21 2016-10-18 Canon Kabushiki Kaisha Printed wiring board, printed circuit board, and method for manufacturing printed circuit board
GB2554942B (en) * 2016-10-14 2018-11-21 Imagination Tech Ltd Verifying firmware binary images using a hardware design and formal assertions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5101494A (en) * 1986-09-26 1992-03-31 Bull Hn Information Systems Inc. System for producing memory maps by interpreting a descriptor file which identifies and describes the data structures present in memory
FR2704334B1 (fr) * 1993-04-22 1995-06-02 Bull Sa Outil de mise au point d'un système d'exploitation.
US6785873B1 (en) * 1997-05-02 2004-08-31 Axis Systems, Inc. Emulation system with multiple asynchronous clocks
US6061283A (en) * 1998-10-23 2000-05-09 Advantest Corp. Semiconductor integrated circuit evaluation system
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133836A (ja) * 2005-11-14 2007-05-31 Canon Inc シミュレーション装置及びシミュレーション方法

Also Published As

Publication number Publication date
US7188338B2 (en) 2007-03-06
US20040030960A1 (en) 2004-02-12

Similar Documents

Publication Publication Date Title
JP2003173270A (ja) ソフトウェアデバッグ装置
JP6213121B2 (ja) 設計支援プログラム、設計支援方法および設計支援装置
US7331039B1 (en) Method for graphically displaying hardware performance simulators
JP4182202B2 (ja) シミュレーション用カバレッジ算出装置及びシミュレーション用カバレッジ算出方法
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
JP2007226567A (ja) 回路シミュレータおよび回路シミュレーションプログラム
JP3472067B2 (ja) 設計支援装置
TW576999B (en) Flexible system simulation structure and interface thereof
JPH07253909A (ja) マイクロプログラム検証方法
JPH10240576A (ja) 検証装置および方法
JP2002041595A (ja) バックアノテーション装置およびその方法
JP4205525B2 (ja) 並列シミュレーション装置および並列シミュレーション方法
JPH07219980A (ja) テスト実行方式
JP2924080B2 (ja) 論理シミュレーション支援システム
JP3057192B2 (ja) 論理シミュレーション支援システム
JP3195088B2 (ja) シミュレーション装置
JPH11353206A (ja) テスト支援システム
JP2982418B2 (ja) 機能シミュレーション装置
JP2004145670A (ja) テストベンチ生成方法、テストベンチ生成装置、及びコンピュータプログラム
JP2006331212A (ja) 論理シミュレーション方法及びその装置
JPH1021271A (ja) 論理回路設計支援装置
JPH02284205A (ja) Pcのシミュレーション方式
JPH07141407A (ja) 論理シミュレータ及び論理シミュレーション方法
WO2003091951A1 (en) Method and computer program product for generation of bus functional models
JPH08220195A (ja) 検証用テストパタン設計方式