JP2001034504A - ソースレベルデバッガ - Google Patents
ソースレベルデバッガInfo
- Publication number
- JP2001034504A JP2001034504A JP11205178A JP20517899A JP2001034504A JP 2001034504 A JP2001034504 A JP 2001034504A JP 11205178 A JP11205178 A JP 11205178A JP 20517899 A JP20517899 A JP 20517899A JP 2001034504 A JP2001034504 A JP 2001034504A
- Authority
- JP
- Japan
- Prior art keywords
- data
- source
- pipeline
- instruction
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software 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)
- Advance Control (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
イプラインに残ったデータを表示できない等パイプライ
ンの内部状態を表示できないという課題があった。 【解決手段】 未処理命令解析部11は、パイプライン
に残ったデータが書き込まれるべきメモリ及び/又はレ
ジスタ、並びに変数を特定し、ユーザインタフェース部
12は、特定されたメモリ及び/又はレジスタ、並びに
変数の現在のデータを他のデータと区別して所定の形式
で表示する。
Description
理方式を採用したコンピュータ用のソースプログラムを
デバッグするためのソースレベルデバッガに関するもの
である。
動作を示すタイミングチャートである。ソースレベルデ
バッガを用いたシステムデバッグでは、ストップ、ステ
ップ、ブレークポイント等でソースプログラムの実行を
一時停止し、一時停止がかかった命令終了後のメモリ、
レジスタ、変数等の内容を表示する。図24に示すよう
に例えばブレークポイントを「ld24 r5、200
0」(ロード命令:メモリの2000番地の内容をレジ
スタR5にロードする)に設定した場合、ソースレベル
デバッガは、クロックサイクルCC5でプログラムの実
行を停止する。この結果、sub命令の書き込みステー
ジ、ld24命令のメモリアクセス及び書き込みステー
ジは未処理となり、メモリ2000番地の内容を読み取
りレジスタR5へ格納する前に、システム(プログラ
ム)の実行は停止される。このように、パイプライン構
造を持つマイクロプロセッサの場合、一時停止がかけら
れた時点で最後に実行された命令のデータがメモリ、レ
ジスタ、変数に格納されずにパイプラインに残ってしま
うことがある。
ッガによる命令の終了は、パイプラインの命令実行ステ
ージで行われるからであり、ストア命令、ロード命令等
が有する実行ステージ後のメモリ、レジスタ等へのデー
タ書き込みステージ(ライトバックステージ)が実行さ
れないからである。この結果、図24に示す例では、ソ
ースレベルデバッガのレジスタウィンドウでレジスタR
5の内容は「0」と表示される。なお、もしld24命
令において書き込みステージまで実行されると、レジス
タR5の内容は「FF」と表示される。
場合、一時停止する命令に来たとき、マイクロプロセッ
サに割り込みをかけることによりプログラムを一時停止
している。割り込みがかかったマイクロプロセッサで
は、実行中の命令がメモリ、レジスタ、変数、外部等に
データを書き込む必要がある場合、nop等の命令を自
動挿入することにより、ライトバックステージまで進め
ることができる。図24に示した例では、クロックサイ
クルCC7まで進めてレジスタR5の内容を取得する。
この結果、ソースレベルデバッガは命令終了後のメモ
リ、レジスタ、変数等の内容を表示することができる。
しかしながら、ICEでは、nop命令等の自動挿入を
行うことによりクロックサイクルを進めるので、パイプ
ラインの内容(内部状態)を保持したままプログラムの
実行を一時停止することができない。図24に示した例
では、ld24命令で一時停止するとld24命令以降
のxor命令が実行されずに、パイプラインの内容が崩
れてしまうこととなる。
ジ中にDMA転送が生じた場合と比較するとパイプライ
ンの内容にずれが生じるので、従来のソースレベルデバ
ッガは実システムと全く同じ動作でのデバッグはできな
い。なお、命令セットシミュレータの場合、動作単位が
命令(アセンブリ)レベルであるので、パイプラインの
動きまでシミュレートすることはできない。
ク)ベースのシミュレータの場合、パイプラインの内容
を保持したままプログラムを一時停止することができる
が、メモリ等の内容はパイプラインに保持されたままで
あり、ソースレベルデバッガはパイプラインの内容即ち
パイプラインに残ったデータを表示することはできな
い。
バッガは以上のように構成されているので、プログラム
を一時停止又は終了した際に、パイプラインに残ったデ
ータを表示できない等パイプラインの内部状態を表示で
きないという課題があった。それ故、プログラム開発者
等のユーザは一時停止された命令が最後まで実行される
ことにより表示されたであろう内容を把握することがで
きず実システムの状態を把握できないという課題があっ
た。
クロプロセッサのキャッシュメモリの内容とキャッシュ
メモリに取り込まれているメモリの内容とが一致してい
るのか否かを把握することできるユーザインタフェース
を備えていないという課題があった。
テップ実行等によって命令単位でソースプログラムを実
行してデバッグを行えるが、サイクル(クロック)単位
でソースプログラムをステップ実行しブレークポイント
を設定することができず、実システムのクロックレベル
でのデバッグを行えないという課題があった。
めになされたもので、ソースプログラムを一時停止又は
終了した際に、パイプラインの内部状態を表示できるソ
ースレベルデバッガを得ることを目的とする。
ユーザにキャッシュメモリの内容とキャッシュメモリに
取り込まれているメモリの内容とが一致しているのか否
かを把握させることが可能なソースレベルデバッガを得
ることを目的とする。
単位でソースプログラムをデバッグするソースレベルデ
バッガを得ることを目的とする。
ベルデバッガは、ソースプログラムの実行を一時停止又
は終了した際に、パイプライン中の命令の未処理ステー
ジを解析し、パイプラインの内部状態に関する情報を取
得する未処理命令解析手段と、この未処理命令解析手段
により得られたパイプラインの内部状態に関する情報を
所定の形式で表示する表示手段とを備えたものである。
未処理命令解析手段が、パイプラインに残ったデータが
書き込まれるべきメモリ及び/又はレジスタ、並びに変
数を特定し、表示手段が、特定されたメモリ及び/又は
レジスタ、並びに変数の現在のデータ即ちソースプログ
ラムの実行を一時停止又は終了した際のデータを他のデ
ータと区別して所定の形式で表示するものである。
特定されたメモリ及び/又はレジスタ、並びに変数の現
在のデータを他のデータを表示するものとは異なる色又
はフォントで表示するものである。
特定されたメモリ及び/又はレジスタ、並びに変数の現
在のデータを点滅させるか又は文字飾りを施して表示し
他のデータと区別するものである。
未処理命令解析手段が、表示手段による表示とともに、
さらに所定の音を発生させるものである。
未処理命令解析手段が、パイプラインにデータが残って
いるデータを直接そのデータソースであるメモリ及び/
又はレジスタから取得し、表示手段が、上記メモリ及び
/又はレジスタ、並びに変数に書き込まれる上記データ
を他のデータと区別して所定の形式で表示するものであ
る。
メモリ及び/又はレジスタ、並びに変数に書き込まれる
データを他のデータを表示するものとは異なる色又はフ
ォントで表示するものである。
メモリ及び/又はレジスタ、並びに変数に書き込まれる
データを点滅させるか又は文字飾りを施して表示し他の
データと区別するものである。
特定されたメモリ及び/又はレジスタ、並びに変数の現
在のデータ即ちソースプログラムの実行を一時停止又は
終了した際のデータも併せて表示するものである。
ソースプログラムの実行を一時停止又は終了した際に、
パイプライン中の命令の未処理ステージを解析し、未処
理の上記命令がパイプラインにデータを残したままであ
るか否かを判定する未処理命令解析手段と、この未処理
命令解析手段によりデータがパイプラインに残っている
と判定された命令を他の命令と区別して所定の形式で表
示する表示手段とを備えたものである。
未処理命令解析手段によりパイプラインにデータを残し
ていると判定された命令を他の命令を表示するものとは
異なる色又はフォントで表示するものである。
未処理命令解析手段によりパイプラインにデータを残し
ていると判定された命令を点滅させるか又は文字飾りを
施して表示し他の命令と区別するものである。
未処理命令解析手段が、表示手段による表示とともに、
さらに所定の音を発生させるものである。
ソースプログラムの実行を一時停止又は終了した際に、
メモリの一部の内容が取り込まれているキャッシュメモ
リの内容が上記メモリの上記一部の内容と一致している
か否かを判定するキャッシュ内容チェック手段と、この
キャッシュ内容チェック手段の判定結果に基づき、不一
致の部分を一致している部分と区別して上記メモリの内
容を表示する表示手段とを備えたものである。
不一致の部分を一致している部分を表示するものとは異
なる色又はフォントで表示するものである。
不一致の部分を点滅させるか又は文字飾りを施し一致し
ている部分と区別して表示するものである。
少なくとも不一致の部分については、キャッシュメモリ
の内容についても併せて表示するものである。
ソースプログラムをサイクル(クロック)単位で実行す
るサイクルステップ実行手段と、対話形式でユーザに上
記サイクルステップ実行手段の起動を可能とすべく所定
の表示画面を表示する表示手段とを備えたものである。
サイクルステップ実行手段を起動するためのボタン、プ
ルダウンメニュー、ポップアップメニュー、コマンドラ
イン入力のためのウィンドウのうちの少なくともいずれ
か1つを含む表示画面を表示するものである。
サイクル単位でのブレークポイントを以前に一時停止し
たサイクルから数えた相対サイクル、及び起動時から数
えた絶対サイクルでの指定を可能にする一時停止条件設
定手段を備えたものである。
説明する。 実施の形態1.図1はこの発明の実施の形態1によるソ
ースレベルデバッガの構成を示すブロック図である。図
において、1はパイプライン制御方式を用いたコンピュ
ータのソースプログラムをデバッグするソースレベルデ
バッガ、11は命令単位のステップ実行、ブレークポイ
ント等の実行によってプログラムが一時停止又は終了し
たとき、パイプラインの未処理(未実行)ステージにお
ける命令を解析し、その命令に関するデータ(以下更新
データと称する)がパイプラインに残っているか否かを
判定し、パイプラインの残った更新データが書き込まれ
るべきメモリ及び/又はレジスタ、並びに変数を特定
し、この特定した結果をパイプラインの内部状態に関す
る情報として送出する未処理命令解析部(未処理命令解
析手段)、12は未処理命令解析部11からのパイプラ
インの内部状態に関する情報に基づき、メモリ及び/又
はレジスタ、並びに変数に書き込まれるべき更新データ
がパイプラインに残っている場合にはその旨をユーザに
知らせるべく、パイプラインの内部状態を所定の形式で
表示する表示画面を形成するユーザインタフェース部
(表示手段)、2はユーザインタフェース部12により
得られた表示画面を表示する表示装置である。
明の実施の形態1によるソースレベルデバッガの動作を
示すフローチャートであり、図3(a)〜3(c)はこ
の発明の実施の形態1によるソースレベルデバッガのユ
ーザインタフェース部12により生成されたメモリウィ
ンドウ、レジスタウィンドウ、変数ウィンドウの一例を
示す図である。
を実行しブレークポイントを「ld24 r5、200
0」(ロード命令:メモリの2000番地の内容をレジ
スタR5にロードする)に設定した場合を例に説明す
る。この例では、ソースレベルデバッガ1は、ブレーク
ポイントが設定されたロード命令の実行ステージを実行
するクロックサイクルCC5でソースプログラムの実行
を停止する。この結果、図24に示す例では、sub命
令の書き込みステージ、ld24命令のメモリアクセス
及び書き込みステージは未実行(未処理)となり、メモ
リ2000番地の内容を読み取りレジスタR5へ格納す
る前に、システム(ソースプログラム)の実行は停止さ
れる。これは、上記したように、ソースレベルデバッガ
1による命令の終了は、パイプライン処理の命令実行ス
テージで行われるからであり、ストア命令、ロード命令
等の実行ステージ後のメモリ、レジスタ等へのデータ書
き込みステージ(ライトバックステージ)は実行されな
い。この結果、図24に示す例では、ブレークポイント
ではレジスタR5の内容は「0」である。しかしなが
ら、実際にld24命令において書き込みステージまで
実行されたならばレジスタ5の内容は「FF」となるは
ずである。
位のステップ実行、ブレークポイント等の実行によって
ソースプログラムが一時停止又は終了したとき、ステッ
プST21において、パイプラインの命令実行ステージ
からライトバックステージに未処理の命令が残っている
か否か、即ちパイプラインに更新データが残っているか
否かを判定する。もし命令が残っているならば、未処理
命令解析部11は、ステップST22において、シミュ
レータの実行イベントであるサイクル(クロック)を止
めることにより一時停止中のパイプラインの内部状態を
確保する。未処理命令解析部11はさらに、ステップS
T23において、未処理ステージに残っている各命令の
解析を行い、各命令がロード命令であるかストア命令で
あるかを判定するとともに、パイプラインに残っている
更新データが書き込まれるべきメモリ又はレジスタ、並
びに変数を特定する。勿論、この場合、ロード命令、ス
トア命令以外の命令であるか否かについても判定しても
構わない。ロード命令の場合には、未処理命令解析部1
1は、ステップST24において、更新データのデータ
ソースである上記ロード命令に関連するメモリの所定の
番地(アドレス)から更新データを直接取得して、ロー
ド命令のロード先の所定のレジスタのデータは将来更新
される旨を確認する(即ち、ロード命令が最後まで実行
されたならばデータは更新される旨を確認する)。他
方、ストア命令の場合には、未処理命令解析部11は、
ステップST25において、更新データのデータソース
である上記ストア命令に関連するレジスタからデータを
直接取得して同様にストア命令のストア先のメモリ所定
のアドレスのデータは将来更新される旨を確認する。こ
のようにして、未処理命令解析部11は、パイプライン
に更新データが残っているか否かを判定し、残っている
場合には更新データが書き込まれるべきメモリ及び/又
はレジスタ、並びに変数を特定し、この特定した結果を
パイプラインの内部状態に関する情報として送出する。
テップST26において、未処理命令解析部11からの
パイプラインの内部状態に関する情報に基づき、ロード
命令のロード先の所定のレジスタのデータは更新される
旨を示す図3(b)に示すようなレジスタウィンドウを
生成して、表示装置2に表示する。この例では、パイプ
ラインに残っているロード命令の未処理部分により後に
更新される上記所定のレジスタのデータ300は、点滅
するように他のデータと区別して表示される。ユーザは
一時停止時のデータ300の値「00」が点滅している
のを見て、パイプラインに上記所定のレジスタの更新デ
ータが残っていることを知ることができる。ユーザイン
タフェース部12は、さらに、データ300を更新され
ない他のデータの表示色と異なる色で表示してもよい。
また、パイプラインに残っているロード命令の未処理部
分で後に更新される上記所定のレジスタのデータ300
を点滅させるのに代わって、ユーザインタフェース部1
2は、上記所定のレジスタのデータ300を単に他のデ
ータの表示色と異なる色で区別して表示してもよい。ま
た、ユーザインタフェース部12は、レジスタウィンド
ウとともに図3(c)に示すような、上記所定のレジス
タのデータ200を有する変数についてもそのデータが
更新される旨を示す変数ウィンドウを生成して表示装置
2に表示する。この変数ウィンドウについても、更新さ
れるデータは図3(b)に示すようなレジスタウィンド
ウに表示された更新されるデータと同一の表示形式で表
示され得る。
テップST27において、未処理命令解析部11からの
パイプラインの内部状態に関する情報に基づき、ストア
命令のストア先のメモリの所定のアドレスのデータは更
新される旨を示す図3(a)に示すようなメモリウィン
ドウを生成して、表示装置2に表示する。この例では、
パイプラインに残っている命令の未処理部分で後に更新
されるメモリの上記所定のアドレスのデータ100は点
滅するように他のデータと区別して表示される。この例
では、ユーザはメモリウィンドウのデータ100の値
「00」が点滅しているのを見て、パイプラインにメモ
リに書き込まれるべき更新データが残っていることを知
ることができる。ユーザインタフェース部12は、さら
に、データ100を更新されない他のデータの表示色と
異なる色で表示してもよい。また、パイプラインに残っ
ている命令の未処理部分により後に更新される上記所定
のアドレスのデータ100を点滅させる代わりに、ユー
ザインタフェース部12は、データ100を単に他のデ
ータの表示色と異なる色で他のデータと区別して表示し
てもよい。また、ユーザインタフェース部12は、メモ
リウィンドウとともに図3(c)に示すような、上記所
定のアドレスのデータ200を有する変数についてもそ
のデータが更新される旨を示す変数ウィンドウを生成し
て表示装置2に表示する。この変数ウィンドウについて
も、更新されるデータは図3(a)に示すようなメモリ
ウィンドウに表示された更新されるデータと同一の表示
形式で表示され得る。
に書き込むべき更新データが残っている場合には、ユー
ザインタフェース部12は、図3(a)〜図3(c)に
示すような、メモリウィンドウ、レジスタウィンドウ及
び変数ウィンドウを表示装置2に表示する。
が設定された命令はロード命令であるので、未処理命令
解析部11は、ステップST24において、ロード命令
ld24に関連するメモリの2000番地からデータを
直接取得して、レジスタR5の内容は更新されると判定
する。その結果、ユーザインタフェース部12は、ステ
ップST26において、未処理命令解析部11の判定結
果に基づき、ロード命令のロード先のレジスタR5のデ
ータは更新される旨を示す図3(b)に示すようなレジ
スタウィンドウを生成して、表示装置2に表示する。
得る。例えば、未処理命令解析部11は、ユーザインタ
フェース部12に更新されるデータを図3(a)〜図3
(c)のように特定の表示形式で表示させるとともに、
所定の音でユーザにパイプラインの更新データが残って
いる旨を知らせるように図示していない音発生部に指示
することが可能である。
1の一変形例によるソースレベルデバッガ1のユーザイ
ンタフェース部12により生成されるメモリウィンド
ウ、レジスタウィンドウ及び変数ウィンドウを示す図で
ある。図4(a)に示すメモリウィンドウでは、更新さ
れるデータはアンダーラインを付けて他のデータと区別
して表示されている。これに代わって、更新されるデー
タに他の文字飾りを施しても構わない。図4(b)に示
すレジスタウィンドウでは、更新されるデータは斜体文
字(異なるフォント)で表示されている。これに代わっ
て、更新されるデータを太文字等の他のフォントで表示
してもよい。図4(c)に示す変数ウィンドウでは、図
4(a)又は図4(b)で特定の表示形式で表示された
データに対応する変数のデータが他の変数のデータとは
異なるフォントで表示されている。なお、言うまでもな
く、メモリウィンドウ、レジスタウィンドウ、及び変数
ウィンドウのうちのいかなるウィンドウも図4(a)〜
4(c)のいずれの形式で表示することができる。
1の他の変形例によるソースレベルデバッガ1のユーザ
インタフェース部12により生成されるメモリウィンド
ウ、レジスタウィンドウ及び変数ウィンドウを示す図で
ある。図5(a)に示すメモリウィンドウでは、更新さ
れるデータのメモリ中での格納場所を示すアドレスの1
6進の上位ビット及び最下位ビットはともにアンダーラ
インを付けて他のアドレスの上位、最下位ビットと区別
して表示されている。これに代わって、そのアドレスの
上位、最下位ビットに他の文字飾りを施しても構わな
い。図5(b)に示すレジスタウィンドウでは、更新さ
れるデータ及びレジスタ名は斜体文字(異なるフォン
ト)で表示されている。これに代わって、更新されるデ
ータ及びレジスタ名を太文字等の他のフォントで表示し
てもよい。図5(c)に示す変数ウィンドウでは、図5
(a)又は図5(b)で特定の表示形式で表示されたデ
ータに対応する変数の変数名が他の変数名とは異なるフ
ォントで表示されている。なお、言うまでもなく、メモ
リウィンドウ、レジスタウィンドウ、及び変数ウィンド
ウのうちのいかなるウィンドウも図5(a)〜図5
(c)のいずれの形式で表示することができる。
色、フォント等のいかなる組み合わせを用いて更新され
るデータを他のデータと区別するように表示しても構わ
ない。例えば、更新されるデータを点滅させ、さらに他
のデータと異なるフォントで表示することができる。ま
た、更新されるデータを他のデータと異なる色及びフォ
ントで表示してもよい。さらに、メモリウィンドウで、
更新されるデータのメモリ中での格納場所を示すアドレ
スにアンダーライン等を施して他のアドレスと区別して
表示するとともに、更新されるデータも点滅、文字飾
り、色、フォント等のいかなる組み合わせを用いて他の
データと区別するように表示してもよい。
ば、命令セット単位のステップ実行、ブレークポイント
等の実行によってソースプログラムが一時停止又は終了
したとき、パイプラインの未処理ステージにおける命令
を解析し、その命令に関する更新データがパイプライン
に残っているか否かを判定し、その判定結果に基づきユ
ーザへパイプラインにメモリ及び/又はレジスタ、並び
に変数に格納すべき更新データが残っている場合には所
定の表示形式でその旨を表示した表示画面を生成するの
で、ユーザへパイプラインに更新データが残っているか
否かを知らせることができ、さらに、ユーザへパイプラ
インに残っている更新データが書き込まれるべきメモリ
のアドレス及び/又はレジスタ名、並びに更新データの
変数名を把握させることができる。これにより、デバッ
グの対象であるソースプログラムが適用される実システ
ムの動作を把握することができる効果がある。
よるソースレベルデバッガは、パイプラインの未処理ス
テージにおける命令を解析しその命令に関する更新デー
タがパイプラインに残っている場合には、更新データを
格納しているメモリの所定のアドレス又は所定のレジス
タに直接アクセスして更新データを取得し、取得した更
新データを所定の表示形式で表示した表示画面を生成す
るものである。この発明の実施の形態2によるソースレ
ベルデバッガは、図1に示した上記実施の形態1による
ものと同一の構成を有しているが、未処理命令解析部1
1が、パイプラインの未処理ステージにおける命令を解
析しパイプラインにその命令に関する更新データが残っ
ている場合には、更新データを格納しているメモリの所
定のアドレス又は所定のレジスタに直接アクセスして更
新データを取得し、ユーザインタフェース部12が未処
理命令解析部11により取得された更新データを所定の
表示形式で表示装置2に表示する点で上記実施の形態1
によるソースレベルデバッガとは異なる。
析部11は、パイプラインの未処理ステージにおける命
令を解析しその命令に関する更新データがパイプライン
に残っている場合には、その更新データを格納している
メモリの所定のアドレス又は所定のレジスタに直接アク
セスして更新データを取得する。そして、ユーザインタ
フェース部12は未処理命令解析部11により取得され
た更新データを図6(a)〜図6(c)のように表示装
置2に表示する。その更新データがメモリの所定のアド
レスに書き込まれるべきである場合には、図6(a)に
示すように、更新データの格納位置を示す所定のアドレ
スの16進の上位ビットの値と最下位ビットの値にアン
ダーラインが施され、そのアドレスには更新データが表
示される。また、その更新データが所定のレジスタに書
き込まれるべきである場合には、図6(b)に示すよう
に、その更新データ及びレジスタ名が他のデータとは異
なるフォントで表示され、その所定のレジスタには更新
データが表示される。また、図6(c)に示す変数ウィ
ンドウでは、図6(a)又は図6(b)に表示された更
新データに対応する変数のデータが他のデータの表示色
とは異なる色で表示される。また、言うまでもなく、メ
モリウィンドウ、レジスタウィンドウ、及び変数ウィン
ドウのうちのいかなるウィンドウも図6(a)〜図6
(c)のいずれの表示形式で表示することができる。ま
た、これに代わって、図3(a)に示したように、ユー
ザインタフェース部12は更新データを点滅させて表示
することができる。
色、フォント等のいかなる組み合わせを用いて更新デー
タを他のデータと区別するように表示しても構わない。
例えば、更新データを点滅させ、さらに他のデータと異
なるフォントで表示することができる。また、更新デー
タを他のデータと異なる色及びフォントで表示してもよ
い。さらに、メモリウィンドウで、更新データのメモリ
中での格納場所を示すアドレスにアンダーライン等を施
して他のアドレスと区別して表示するとともに、更新デ
ータも点滅、文字飾り、色、フォント等のいかなる組み
合わせを用いて他のデータと区別するように表示しても
よい。
例えば、未処理命令解析部11は、ユーザインタフェー
ス部12に更新データを図6(a)〜図6(c)のよう
に特定の表示形式で表示させるとともに、所定の音でユ
ーザにパイプラインの更新データが残っている旨を知ら
せるように図示していない音発生部に指示することが可
能である。
理命令解析部11により取得された更新データを、一時
停止した時点でのメモリ及び/又はレジスタ、並びに変
数の現在のデータ(即ち将来更新されるデータ)ととも
に、図7(a)〜図7(c)に示すように表示装置2に
表示することができる。その更新データがメモリの所定
のアドレスに書き込まれるべきである場合には、図7
(a)に示すように、所定のアドレスには、更新前のデ
ータとともに更新データが括弧内に表示される。また、
その更新データが所定のレジスタに書き込まれるべきで
ある場合には、図7(b)に示すように、その所定のレ
ジスタには更新前のデータとともにその右横には矢印を
隔てて更新データが表示される。また、図7(c)に示
す変数ウィンドウでは、図7(a)又は図7(b)に表
示されたような変数の現在のデータを表示するテーブル
とともに、パイプラインの残っている変数の更新データ
を表示するテーブルが表示されている。また、言うまで
もなく、メモリウィンドウ、レジスタウィンドウ、及び
変数ウィンドウのうちのいかなるウィンドウも図7
(a)〜図7(c)のいずれの形式で表示することがで
きる。
ば、命令セット単位のステップ実行、ブレークポイント
等の実行によってソースプログラムが一時停止又は終了
したとき、パイプラインの未処理ステージにおける命令
を解析し、その命令に関する更新データがパイプライン
に残っているか否かを判定し、その判定結果に基づきユ
ーザへパイプラインにメモリ及び/又はレジスタ、並び
に変数に代入すべき更新データが残っている場合には所
定の表示形式で更新データを表示した表示画面を生成す
るので、ユーザへパイプラインに更新データが残ってい
るか否かを知らせることができ、さらに、ユーザへパイ
プラインに残っているデータを書き込むべきメモリのア
ドレス及び/又はレジスタ名、並びにそのデータの変数
名を把握させることができる。これにより、デバッグの
対象であるソースプログラムが適用される実システムの
動作を把握することができる効果がある。さらに、ユー
ザへ、パイプライン中に残っている将来メモリ及び/又
はレジスタ、並びに変数に書き込まれる更新データも把
握させることができる。
ば、更新データを表示するとともに、更新前のデータと
対比して表示することも可能であるので、ユーザに、メ
モリ及び/又はレジスタ、並びに変数に実際に書き込ま
れているデータとパイプラインに残っているメモリ、レ
ジスタ及び変数の更新データとをともに把握させること
ができる。
態3によるソースレベルデバッガの構成を示すブロック
図であり、図において、図1に示すものと同一の参照符
号は上記実施の形態1によるソースレベルデバッガの構
成要素と同一又は相当するものを示しているので、以下
ではその説明を省略する。また、図8において、13は
メモリの一部の内容を取り込んでいるキャッシュメモリ
の内容とメモリのその一部の内容とを比較し、不一致が
ある場合にはその旨をユーザインタフェース部12に知
らせるキャッシュ内容チェック部(キャッシュ内容チェ
ック手段)である。
施の形態3によるソースレベルデバッガの動作を示すフ
ローチャートである。まず、キャッシュ内容チェック部
13は、命令単位のステップ実行、ブレークポイント等
の実行によってソースプログラムが一時停止又は終了し
たとき、ステップST91において、メモリの一部の内
容を取り込んでいるキャッシュメモリの内容とメモリの
その一部の内容とを比較し、不一致があるか否かを判定
し判定結果をユーザインタフェース部12へ送出する。
一致がある場合には、ステップST92において、キャ
ッシュ内容チェック部13の判定結果に基づきメモリの
内容を示す図10(a)に示すようなメモリウィンドウ
を生成して、表示装置2に表示する。図10(a)に示
す例では、キャッシュメモリに取り込まれているデータ
には「*」が付けられており、さらに、キャッシュメモ
リの内容と不一致があるものについては異なる色で表示
されている。図10(b)は他の表示例を示す図であ
り、この例では、キャッシュメモリに取り込まれている
データの欄の背景色はグレーとなっており、キャッシュ
メモリの内容と不一致があるものについては「*」が付
けられている。
例えば、キャッシュ内容チェック部13は、キャッシュ
メモリからデータを取得し、ユーザインタフェース部1
2は、取得したキャッシュメモリの内容をともに、図1
1(a)に示すように表示装置2に表示することができ
る。この図11(a)に示す例では、キャッシュメモリ
の内容は括弧内に表示されている。また、これに代わっ
て、キャッシュ内容チェック部13は不一致がある場合
にキャッシュメモリからデータを取得し、ユーザインタ
フェース部12は、不一致があるキャッシュメモリの内
容をともに、図11(b)に示すように表示装置2に表
示することができる。この図11(b)に示す例におい
ても、不一致のあるキャッシュメモリの内容は括弧内に
表示されている。
ば、命令単位のステップ実行、ブレークポイント等の実
行によってソースプログラムが一時停止又は終了したと
き、メモリの一部の内容を取り込んでいるキャッシュメ
モリの内容とメモリのその一部の内容とを比較し、不一
致がある場合にはその旨をユーザインタフェース部12
に知らせ、ユーザインタフェース部12は、不一致があ
る旨をユーザに知らせるべくメモリの内容を表示するの
で、ユーザにキャッシュメモリに取り込まれているメモ
リの内容及びアドレスを把握させることができる上に、
不一致がある旨を知らせることができる。これにより、
デバッグの対象であるソースプログラムが適用される実
システムの動作を把握することができる効果がある。さ
らに、キャッシュメモリの内容をも表示することによ
り、ユーザにキャッシュメモリの内容をも同時に把握さ
せることができる。
形態4によるソースレベルデバッガの構成を示すブロッ
ク図である。図において、図1に示すものと同一の参照
符号は上記実施の形態1によるソースレベルデバッガの
構成要素と同一又は相当するものを示しているので、以
下ではその説明を省略する。また、図12において、1
4はソースプログラムを実行する実行部、15はソース
プログラムをステップ実行するステップ実行部、16は
ソースプログラムを一時停止するソースプログラム中の
場所を指定するブレークポイントを設定したりする等の
ソースプログラムを一時停止させる停止条件を設定する
ための一時停止条件設定部である。この実施の形態4に
よるソースレベルデバッガの未処理命令解析部11は、
命令単位のステップ実行、又はブレークポイント等によ
ってソースプログラムが一時停止又は終了したとき、未
処理ステージにおける命令を解析し、未処理の命令がパ
イプラインにデータを残したままであるか否か、即ち、
未処理の命令がメモリ及び/又はレジスタ、並びに変数
へのデータ書き込みが終了しているか否かを判定する。
また、ユーザインタフェース部12は、ソースプログラ
ムの実行、ステップ実行を可能とすべく各種のメニュ
ー、ソースウィンドウ、コマンドウィンドウ等が表示可
能な表示画面を生成して、対話形式でプログラム開発者
等のユーザに命令単位でプログラムのステップ実行等を
可能にする。
り生成された表示画面の一例を示す図であり、図におい
て、20はユーザインタフェース部12により生成され
た表示画面のメインウィンドウ、21はメニューバー、
22a〜22fはGOボタン,STOPボタン,STE
Pボタン,NEXTボタン,STEP Instボタ
ン,Next Instボタンである各種の実行ボタ
ン、23はソースプログラムを表示するためのソースウ
ィンドウ、24はユーザからのコマンド入力を受け取り
それを表示するとともにソースレベルデバッガ1のメッ
セージを表示するコマンドウィンドウ、30はコマンド
ウィンドウ内に表示されたプロンプト、25は22a〜
22fの各種ボタンと同一のメニュー項目を表示するポ
ップアップメニューである。また、図14はマウス等の
クリックによりメニューバー21のデバッグが選択され
た場合の表示画面の一例を示す図であり、図において、
26は22a〜22fの各種ボタンと同一のメニュー項
目を表示するプルダウンメニューである。
ス等を用いてGOボタン22a、又はポップアップメニ
ュー25若しくはプルダウンメニュー26のGO項目を
選択してGOコマンドを実行するか、コマンドウィンド
ウ24で「go」を入力して実行すると、ソースレベル
デバッガ1はロードされたソースプログラムの実行を開
始する。また、ユーザがマウス等を用いてSTOPボタ
ン22b又はポップアップメニュー25若しくはプルダ
ウンメニュー26のSTOP項目を選択してSTOPコ
マンドを実行するか、コマンドウィンドウ24でSTO
Pコマンドを入力して実行すると、ソースレベルデバッ
ガ1は実行中のソースプログラムを停止する。
が発行されると、ソースレベルデバッガ1はロードされ
たソースプログラムの1命令だけを実行した後ソースプ
ログラムを一時停止する。STEPコマンドとSTEP
Instコマンドの相違は、STEPコマンドの場合
には1命令の単位がC言語等の高級言語の命令単位であ
るのに対して、STEP Instコマンドの場合には
1命令の単位がアセンブリ言語の命令(CPUのインス
トラクション)単位である点にある。NEXT又はNE
XT Instコマンドは、基本的にはSTEP又はS
TEP Instコマンドと同一であるが、STEP又
はSTEP Instコマンドと異なる点は、ソースプ
ログラム中の関数を1命令と見なすところである。ST
EP又はSTEP Instコマンドは関数に進んだと
き、関数内で定義されている先頭の命令で一時停止する
が、NEXT又はNEXT Instコマンドは関数に
進んだとき、関数を1命令と見なして、関数を実行後関
数の次の命令で一時停止する。すなわち、NEXT又は
NEXT Instコマンドが実行された場合には、関
数内の命令で一時停止しない。
ベルデバッガ1のソースプログラムの実行手順を示すフ
ローチャートである。図15に示すように、ステップS
T151において、GOコマンドが発行されると、ソー
スレベルデバッガ1の実行部14はロードされたソース
プログラムの実行を開始し、1ステップずつ命令を実行
する。そして、実行部14は、ステップST152にお
いて、ソースプログラムカウンタ(図示せず)の値が、
一時停止条件設定部16により予め設定された停止条件
を満たしているか否かを判定する。もし、停止条件を満
たしていないならば、ステップST153に進みソース
プログラムの実行を1ステップ進め、さらにステップS
T152へ戻る。もし、ステップST152において停
止条件を満たしているならば、実行部14は、ステップ
ST154において、ソースプログラムの実行を一時停
止し、一時停止したときの命令が格納されているメモリ
のアドレスから一時停止したソースプログラムの対応す
る行番号を取得する。さらに、実行部14は、ステップ
ST155において、一時停止したソースプログラムの
対応する行に所定のマーク27b「→」を表示する。
ST156において、上記の一時停止した行の命令が、
メモリ又はレジスタ、及び変数へデータ書き込みが終了
していない命令であるか否か(未処理の命令が残ってい
るか否か)、即ちその命令がパイプラインに更新データ
を残したままであるか否かを判定する。もしその命令が
メモリ、レジスタ、変数等へデータ書き込みが終了して
いない命令であるならば、未処理命令解析部11は、ス
テップST157において、その旨をユーザインタフェ
ース部12に知らせ、ユーザインタフェース部12は、
図16(a)又は図16(b)に示すように、ソースウ
ィンドウ23に表示された該当する命令を囲みなどの文
字飾りを施すか又は他の命令の表示色と異なる色で表示
する。この例では、ユーザがコマンドウィンドウ24で
「breadpoint 127」を入力することによ
り、127行の「read_pt=0x100」にブレ
ークポイントが設けられており、さらに、「go」を入
力することによりソースプログラムが実行され、127
行で一時停止し、127行の命令がメモリ又はレジス
タ、及び変数へデータ書き込みが終了していない命令で
ある旨が表示されている。即ち、変数read_ptに
は0x100は代入されていない。なお、図16(a)
及び16(b)に示されたマーク27a「○」は、ユー
ザが予め設定したブレークポイントを示している。
たり、他の命令とは異なるフォントで表示したり、又
は、点滅、文字飾り、色、フォント等のいかなる組み合
わせを用いて他の命令と区別して表示しても構わない。
また、該当する命令をソースウィンドウ23内で特定の
表示形式で表示するとともに、未処理命令解析部11
は、音でユーザに一時停止した行の命令がメモリ又はレ
ジスタ、及び変数へデータ書き込みが終了していない命
令である旨を知らせるように図示していない音発生部に
指示することが可能である。
ば、ソースレベルデバッガ1はソースプログラムが一時
停止又は終了した時点で完全に処理が終了していない命
令を他の命令と区別して表示することができるので、ユ
ーザは完全に処理が終了していない命令を容易に知るこ
とが可能となる。
形態5によるソースレベルデバッガの構成を示すブロッ
ク図である。図において、図12に示すものと同一の参
照符号は上記実施の形態4によるソースレベルデバッガ
の構成要素と同一又は相当するものを示しているので、
以下ではその説明を省略する。また、図17において、
17はソースプログラムをサイクル(クロック)単位で
ステップ実行するサイクルステップ実行部である。この
実施の形態5によるソースレベルデバッガ1の一時停止
条件設定部16は、ソースプログラムを一時停止するソ
ースプログラム中の場所を指定するブレークポイント
(停止アドレス)を設定したり、サイクル単位でソース
プログラムを一時停止するブレークポイント(停止サイ
クル)を設定したりする等のソースプログラムを一時停
止させる条件を設定する。ユーザインタフェース部12
は、ソースプログラムの実行、ステップ実行、サイクル
単位でのステップ実行を可能とすべく各種のメニュー、
ソースウィンドウ、コマンドウィンドウ等が表示可能な
表示画面を形成して、対話形式でプログラム開発者等の
ユーザにサイクル単位でステップ実行を可能にする。
ンタフェース部12により生成された表示画面の一例を
示す図であり、図において、図13に示すものと同一の
参照符号は図13に示したものと同一又は相当するもの
を示しているので、以下ではその説明を省略する。ま
た、図18において、22gはソースプログラムのサイ
クル(クロック)単位でのステップ実行を起動するため
のSTEP CYCボタンである。なお、言うまでもな
いが、このボタンの名称は「STEP CYC」に限定
されない。また、図19はマウス等のクリックによりメ
ニューバー21のデバッグが選択された場合の表示画面
の一例を示す図である。
実施の形態4によるソースレベルデバッガの動作とは異
なる点についてのみ説明する。ユーザがマウス等を用い
てSTEP CYCボタン22g又はポップアップメニ
ュー25若しくはプルダウンメニュー26のSTEP
CYC項目を選択してSTEP CYCコマンドが発行
されるか、ユーザがコマンドウィンドウ24においてs
tep cycleコマンドを入力すると、ソースレベ
ルデバッガ1はロードされたソースプログラムのサイク
ル(クロック)単位でのステップ実行を開始する。ST
EP又はSTEP Instコマンドが発行された場合
には、C言語等のプログラミング言語の命令単位又はア
センブリ言語の命令単位でソースプログラムがステップ
実行されたのに対して、STEP CYCコマンドが発
行されると、ソースレベルデバッガ1はプロセッサのサ
イクル単位でソースプログラムを実行する。
条件設定部16の指示により、ユーザインタフェース部
12が、ユーザにサイクル単位でソースプログラムを一
時停止するブレークポイント(停止サイクル)の設定を
可能とするために表示装置2に表示する入力ウィンドウ
の一例である。図20(a),図20(b)に示すよう
に、ユーザはサイクル単位でソースプログラムを一時停
止するブレークポイント(停止サイクル)を相対サイク
ル数及び/又は絶対サイクル数で設定可能である。絶対
サイクル数とは、CPU起動時(クロックを最初に印加
したとき)を起点とした総サイクル数である。一方、相
対サイクル数とは、STOP,STEP,ブレークポイ
ント等によってソースプログラムが一時停止している時
のサイクル数を起点としたサイクル数である。例えば図
21のにおいて、図20(a),図20(b)に示す
ようにユーザがブレークポイントの相対サイクル数を1
0、絶対サイクル数を25000と同時に設定した場
合、ソースレベルデバッガ1によって、ソースプログラ
ムは絶対サイクル数が25000の図21のにおいて
一時停止状態となる。さらに、ソースレベルデバッガ1
によりソースプログラムを引き続き実行させると、今度
は、絶対サイクル数が25005の図21の(から
相対サイクル数10だけ経過したサイクル)でソースプ
ログラムが一時停止する。なお、ユーザがコマンドウィ
ンドウ24からサイクル単位でソースプログラムを一時
停止するブレークポイントを相対サイクル数及び/又は
絶対サイクル数で設定可能なように、所定のコマンドを
設けてもよい。
ベルデバッガ1のサイクル単位でのソースプログラムの
ステップ実行の手順を示すフローチャートである。図2
2に示すように、ステップST221において、STE
P CYCコマンドが発行されると、ソースレベルデバ
ッガ1のサイクルステップ実行部17はロードされたソ
ースプログラムをサイクル単位でステップ実行する。そ
して、サイクルステップ実行部17は、ステップST2
22においてサイクル(クロック)数をカウントし、ス
テップST223において現在のカウントがソースプロ
グラムの予め定めたブレークポイントの相対サイクル数
又は絶対サイクル数の停止サイクルに等しいか否かを判
定する。もし、現在のカウントがソースプログラムの予
め定めたブレークポイントに対応する停止サイクルに等
しくないならば、ステップST221に戻る。一方、も
し現在のカウントがソースプログラムの予め定めたブレ
ークポイントに対応する停止サイクルに等しいならば、
サイクルステップ実行部17は、ステップST224に
おいて、ソースプログラムを一時停止し、その停止サイ
クルから一時停止したソースプログラムの対応する行番
号を取得する。さらに、サイクルステップ実行部17
は、ステップST225において、一時停止したソース
プログラムの対応する行に所定のマーク27b「→」を
表示する。この場合、同時に、同一の行に、予め設定さ
れたブレークポイントであることを示す所定のマーク2
7a「○」も表示する。
クルステップ実行部17は、さらに、停止条件を満たし
ているか否かを判定する。もし、停止条件を満たしてい
ないのであれば、ステップST221に戻る。一方、も
し停止条件を満たしているならば、サイクルステップ実
行部17は、ステップST224において、ソースプロ
グラムの実行を一時停止し、その停止位置のソースプロ
グラムの対応する行番号を取得する。
ST226において、メモリ又はレジスタ、及び変数へ
データ書き込みが終了していない命令があるか否か(未
処理の命令が残っているか否か)、即ちその命令がパイ
プライン中に更新データを残しているか否かを判定す
る。もしメモリ、レジスタ、変数等へデータ書き込みが
終了していない命令があるならば、サイクルステップ実
行部17は、ステップST227において、図23
(a)又は図23(b)に示すように、ソースウィンド
ウ23に表示された該当する命令を囲みなどの文字飾り
を施すか又は他の命令の表示色と異なる色で表示する。
この例では、ユーザがコマンドウィンドウ24で「br
eadpoint 127」を入力することにより、1
27行の「read_pt=0x100」にブレークポ
イントが設けられており、step cycleコマン
ドを入力することによりソースプログラムがサイクル単
位でステップ実行され、127行で一時停止し、127
行の命令がメモリ又はレジスタ、及び変数へデータ書き
込みが終了していない命令である旨が表示されている。
即ち、変数read_ptには0x100は代入されて
いない。
たり、他の命令とは異なるフォントで表示したり、又
は、点滅、文字飾り、色、フォント等のいかなる組み合
わせを用いて他の命令と区別して表示しても構わない。
また、該当する命令をソースウィンドウ23内で特定の
表示形式で表示するとともに、音でユーザに一時停止し
た行の命令がメモリ又はレジスタ、及び変数へデータ書
き込みが終了していない命令である旨を知らせるように
してもよい。
ば、ソースレベルデバッガ1はソースプログラムをサイ
クル単位で実行できるので、サイクル単位でのデバッグ
が可能となる効果がある。さらに、ソースレベルデバッ
ガ1はソースプログラムが一時停止又は終了した時点で
完全に処理が終了していない命令を他の命令と区別して
表示することができるので、ユーザは完全に処理が終了
していない命令を容易に知ることが可能となる。
スプログラムの実行を一時停止又は終了した際に、パイ
プライン中の命令の未処理ステージを解析し、パイプラ
インの内部状態に関する情報を取得する未処理命令解析
手段と、この未処理命令解析手段により得られたパイプ
ラインの内部状態に関する情報を所定の形式で表示する
表示手段とを備えるように構成したので、ユーザへパイ
プラインの内部状態を知らせることができ、デバッグの
対象であるソースプログラムが適用される実システムの
動作を把握することができる効果がある。
たメモリ及び/又はレジスタ、並びに変数の現在のデー
タ即ちソースプログラムの実行を一時停止又は終了した
際のデータを他のデータと区別して所定の形式で表示す
るようにしたので、ユーザへパイプラインに更新データ
が残っているか否かを知らせることができ、さらに、ユ
ーザへパイプラインに残っている更新データが書き込ま
れるべきメモリのアドレス及び/又はレジスタ名、並び
に更新データの変数名を把握させることができる効果が
ある。これにより、デバッグの対象であるソースプログ
ラムが適用される実システムの動作を把握することがで
きる効果がある。
/又はレジスタ、並びに変数の現在のデータを他のデー
タを表示するものとは異なる色又はフォントで表示する
ようにしたので、ユーザへパイプラインに残っている更
新データが書き込まれるべきメモリのアドレス及び/又
はレジスタ名、並びに更新データの変数名を把握させる
ことができ、これにより、デバッグの対象であるソース
プログラムが適用される実システムの動作を把握するこ
とができる効果がある。
/又はレジスタ、並びに変数の現在のデータを点滅させ
るか又は文字飾りを施して表示し他のデータと区別する
ようにしたので、ユーザへパイプラインに残っている更
新データが書き込まれるべきメモリのアドレス及び/又
はレジスタ名、並びに更新データの変数名を把握させる
ことができ、これにより、デバッグの対象であるソース
プログラムが適用される実システムの動作を把握するこ
とができる効果がある。
が、表示手段による表示とともに、さらに所定の音を発
生させるようにしたので、ユーザへパイプラインに更新
データが残っていることを知らせることができる効果が
ある。
が、パイプラインにデータが残っているデータを直接そ
のデータソースであるメモリ及び/又はレジスタから取
得し、表示手段が、上記メモリ及び/又はレジスタ、並
びに変数に書き込まれる上記データを他のデータと区別
して所定の形式で表示するようにしたので、ユーザへパ
イプラインに残っている更新データと、この更新データ
が書き込まれるべきメモリのアドレス及び/又はレジス
タ名、並びに更新データの変数名とを把握させることが
でき、これにより、デバッグの対象であるソースプログ
ラムが適用される実システムの動作を把握することがで
きる効果がある。
スタ、並びに変数に書き込まれるデータを他のデータを
表示するものとは異なる色又はフォントで表示するよう
にしたので、ユーザへパイプラインに残っている更新デ
ータと、この更新データが書き込まれるべきメモリのア
ドレス及び/又はレジスタ名、並びに更新データの変数
名とを把握させることができ、これにより、デバッグの
対象であるソースプログラムが適用される実システムの
動作を把握することができる効果がある。
スタ、並びに変数に書き込まれるデータを点滅させるか
又は文字飾りを施して表示し他のデータと区別するよう
にしたので、ユーザへパイプラインに残っている更新デ
ータと、この更新データが書き込まれるべきメモリのア
ドレス及び/又はレジスタ名、並びに更新データの変数
名とを把握させることができ、これにより、デバッグの
対象であるソースプログラムが適用される実システムの
動作を把握することができる効果がある。
/又はレジスタ、並びに変数の現在のデータ即ちソース
プログラムの実行を一時停止又は終了した際のデータも
併せて表示するようにしたので、ユーザへパイプライン
に残っている更新データと更新前の現在のデータとの両
方を把握させることができ、これにより、デバッグの対
象であるソースプログラムが適用される実システムの動
作を把握することができる効果がある。
行を一時停止又は終了した際に、パイプライン中の命令
の未処理ステージを解析し、未処理の上記命令がパイプ
ラインにデータを残したままであるか否かを判定する未
処理命令解析手段と、この未処理命令解析手段によりデ
ータがパイプラインに残っていると判定された命令を他
の命令と区別して所定の形式で表示する表示手段とを備
えるように構成したので、ユーザは完全に処理が終了し
ていない命令を容易に知ることが可能となる効果があ
る。
よりパイプラインにデータを残していると判定された命
令を他の命令を表示するものとは異なる色又はフォント
で表示するようにしたので、ユーザは完全に処理が終了
していない命令を容易に知ることが可能となる効果があ
る。
よりパイプラインにデータを残していると判定された命
令を点滅させるか又は文字飾りを施して表示し他の命令
と区別するようにしたので、ユーザは完全に処理が終了
していない命令を容易に知ることが可能となる効果があ
る。
が、表示手段による表示とともに、さらに所定の音を発
生させるようにしたので、ユーザは完全に処理が終了し
ていない命令を容易に知ることが可能となる効果があ
る。
行を一時停止又は終了した際に、メモリの一部の内容が
取り込まれているキャッシュメモリの内容が上記メモリ
の上記一部の内容と一致しているか否かを判定するキャ
ッシュ内容チェック手段と、このキャッシュ内容チェッ
ク手段の判定結果に基づき、不一致の部分を一致してい
る部分と区別して上記メモリの内容を表示する表示手段
とを備えるように構成したので、ユーザへキャッシュメ
モリに取り込まれているメモリの内容及びアドレスを把
握させることができる上に、不一致がある旨を知らせる
ことができ、これにより、デバッグの対象であるソース
プログラムが適用される実システムの動作を把握するこ
とができる効果がある。
ている部分を表示するものとは異なる色又はフォントで
表示するようにしたので、ユーザへキャッシュメモリに
取り込まれているメモリの内容及びアドレスを把握させ
ることができる上に、不一致がある旨を知らせることが
でき、これにより、デバッグの対象であるソースプログ
ラムが適用される実システムの動作を把握することがで
きる効果がある。
せるか又は文字飾りを施し一致している部分と区別して
表示するようにしたので、ユーザにキャッシュメモリに
取り込まれているメモリの内容及びアドレスを把握させ
ることができる上に、不一致がある旨を知らせることが
でき、これにより、デバッグの対象であるソースプログ
ラムが適用される実システムの動作を把握することがで
きる効果がある。
分については、キャッシュメモリの内容についても併せ
て表示するようにしたので、ユーザにキャッシュメモリ
の内容をも同時に把握させることができる効果がある。
イクル(クロック)単位で実行するサイクルステップ実
行手段と、対話形式でユーザに上記サイクルステップ実
行手段の起動を可能とすべく所定の表示画面を表示する
表示手段とを備えるように構成したので、サイクル単位
でのデバッグが可能となる効果がある。
手段を起動するためのボタン、プルダウンメニュー、ポ
ップアップメニュー、コマンドライン入力のためのウィ
ンドウのうちの少なくともいずれか1つを含む表示画面
を表示するようにしたので、容易にサイクル単位でのデ
バッグが可能となる効果がある。
ークポイントを以前に一時停止したサイクルから数えた
相対サイクル、及び起動時から数えた絶対サイクルでの
指定を可能にする一時停止条件設定手段を備えるように
構成したので、相対サイクル及び絶対サイクルでブレー
クポイントを設定してサイクル単位でのデバッグが可能
となる効果がある。
デバッガの構成を示すブロック図である。
デバッガの動作を示すフローチャートである。
デバッガにより表示されるメモリウィンドウ、レジスタ
ウィンドウ、及び変数ウィンドウの一例を示す図であ
る。
ースレベルデバッガにより表示されるメモリウィンド
ウ、レジスタウィンドウ、及び変数ウィンドウの一例を
示す図である。
ソースレベルデバッガにより表示されるメモリウィンド
ウ、レジスタウィンドウ、及び変数ウィンドウの一例を
示す図である。
デバッガにより表示されるメモリウィンドウ、レジスタ
ウィンドウ、及び変数ウィンドウの一例を示す図であ
る。
ースレベルデバッガにより表示されるメモリウィンド
ウ、レジスタウィンドウ、及び変数ウィンドウの一例を
示す図である。
デバッガの構成を示すブロック図である。
デバッガの動作を示すフローチャートである。
ルデバッガにより表示されるメモリウィンドウの例を示
す図である。
ソースレベルデバッガにより表示されるメモリウィンド
ウの例を示す図である。
ルデバッガの構成を示すブロック図である。
ルデバッガにより表示される表示画面を示す図である。
表示された場合を示す図である。
ルデバッガの動作を示すフローチャートである。
ルデバッガにより表示される表示画面の例を示す図であ
る。
ルデバッガの構成を示すブロック図である。
ルデバッガにより表示される表示画面を示す図である。
表示された場合を示す図である。
ルデバッガにより表示されるブレークポイント設定ウィ
ンドウを示す図である。
ためのタイミングチャートである。
ルデバッガの動作を示すフローチャートである。
ルデバッガにより表示される表示画面の例を示す図であ
る。
の内容、メモリの内容の関係を示すタイミングチャート
である。
ユーザインタフェース部(表示手段)、13 キャッ
シュ内容チェック部(キャッシュ内容チェック手段)、
17 サイクルステップ実行部(サイクルステップ実行
手段)。
Claims (20)
- 【請求項1】 パイプライン制御方式を用いたコンピュ
ータ用のソースプログラムをデバッグするためのソース
レベルデバッガにおいて、 上記ソースプログラムの実行を一時停止又は終了した際
に、パイプライン中の命令の未処理ステージを解析し、
パイプラインの内部状態に関する情報を取得する未処理
命令解析手段と、 上記未処理命令解析手段により得られたパイプラインの
内部状態に関する情報を所定の形式で表示する表示手段
とを備えたことを特徴とするソースレベルデバッガ。 - 【請求項2】 未処理命令解析手段は、パイプラインに
データが残っている際にはパイプラインに残ったデータ
が書き込まれるべきメモリ及び/又はレジスタ、並びに
変数を特定し、この特定した結果をパイプラインの内部
状態に関する情報として表示手段へ送出し、該表示手段
は、上記特定されたメモリ及び/又はレジスタ、並びに
変数の現在のデータ即ちソースプログラムの実行を一時
停止又は終了した際のデータを他のデータと区別して所
定の形式で表示することを特徴とする請求項1記載のソ
ースレベルデバッガ。 - 【請求項3】 表示手段は、特定されたメモリ及び/又
はレジスタ、並びに変数の現在のデータを他のデータを
表示するものとは異なる色又はフォントで表示すること
を特徴とする請求項2記載のソースレベルデバッガ。 - 【請求項4】 表示手段は、特定されたメモリ及び/又
はレジスタ、並びに変数の現在のデータを点滅させるか
又は文字飾りを施して表示し他のデータと区別すること
を特徴とする請求項2記載のソースレベルデバッガ。 - 【請求項5】 未処理命令解析手段は、表示手段による
表示とともに、さらに所定の音を発生させることを特徴
とする請求項3又は請求項4記載のソースレベルデバッ
ガ。 - 【請求項6】 未処理命令解析手段は、パイプラインに
データが残っている際には該データを直接そのデータソ
ースであるメモリ及び/又はレジスタから取得し、上記
データをパイプラインの内部状態に関する情報として表
示手段へ送出し、該表示手段は、上記メモリ及び/又は
レジスタ、並びに変数に書き込まれる上記データを他の
データと区別して所定の形式で表示することを特徴とす
る請求項1記載のソースレベルデバッガ。 - 【請求項7】 表示手段は、メモリ及び/又はレジス
タ、並びに変数に書き込まれるデータを他のデータを表
示するものとは異なる色又はフォントで表示することを
特徴とする請求項6記載のソースレベルデバッガ。 - 【請求項8】 表示手段は、メモリ及び/又はレジス
タ、並びに変数に書き込まれるデータを点滅させるか又
は文字飾りを施して表示し他のデータと区別することを
特徴とする請求項6記載のソースレベルデバッガ。 - 【請求項9】 表示手段は、特定されたメモリ及び/又
はレジスタ、並びに変数の現在のデータ即ちソースプロ
グラムの実行を一時停止又は終了した際のデータも併せ
て表示することを特徴とする請求項6から請求項8のう
ちのいずれか一項記載のソースレベルデバッガ。 - 【請求項10】 パイプライン制御方式を用いたコンピ
ュータ用のソースプログラムをデバッグするためのソー
スレベルデバッガにおいて、 上記ソースプログラムの実行を一時停止又は終了した際
に、パイプライン中の命令の未処理ステージを解析し、
未処理の上記命令がパイプラインにデータを残したまま
であるか否かを判定する未処理命令解析手段と、 上記未処理命令解析手段によりデータがパイプラインに
残っていると判定された命令を他の命令と区別して所定
の形式で表示する表示手段とを備えたことを特徴とする
ソースレベルデバッガ。 - 【請求項11】 表示手段は、未処理命令解析手段によ
りパイプラインにデータを残していると判定された命令
を他の命令を表示するものとは異なる色又はフォントで
表示することを特徴とする請求項10記載のソースレベ
ルデバッガ。 - 【請求項12】 表示手段は、未処理命令解析手段によ
りパイプラインにデータを残していると判定された命令
を点滅させるか又は文字飾りを施して表示し他の命令と
区別することを特徴とする請求項10記載のソースレベ
ルデバッガ。 - 【請求項13】 未処理命令解析手段は、表示手段によ
る表示とともに、さらに所定の音を発生させることを特
徴とする請求項11又は請求項12記載のソースレベル
デバッガ。 - 【請求項14】 パイプライン制御方式を用いたコンピ
ュータ用のソースプログラムをデバッグするためのソー
スレベルデバッガにおいて、 上記ソースプログラムの実行を一時停止又は終了した際
に、メモリの一部の内容が取り込まれているキャッシュ
メモリの内容が上記メモリの上記一部の内容と一致して
いるか否かを判定するキャッシュ内容チェック手段と、 該キャッシュ内容チェック手段の判定結果に基づき、不
一致の部分を一致している部分と区別して上記メモリの
内容を表示する表示手段とを備えたことを特徴とするソ
ースレベルデバッガ。 - 【請求項15】 表示手段は、不一致の部分を一致して
いる部分を表示するものとは異なる色又はフォントで表
示することを特徴とする請求項14記載のソースレベル
デバッガ。 - 【請求項16】 表示手段は、不一致の部分を点滅させ
るか又は文字飾りを施し一致している部分と区別して表
示することを特徴とする請求項14記載のソースレベル
デバッガ。 - 【請求項17】 表示手段は、少なくとも不一致の部分
については、キャッシュメモリの内容についても併せて
表示することを特徴とする請求項15又は請求項16記
載のソースレベルデバッガ。 - 【請求項18】 パイプライン制御方式を用いたコンピ
ュータ用のソースプログラムをデバッグするためのソー
スレベルデバッガにおいて、 上記ソースプログラムをサイクル(クロック)単位で実
行するサイクルステップ実行手段と、 対話形式でユーザに上記サイクルステップ実行手段の起
動を可能とすべく所定の表示画面を表示する表示手段と
を備えたことを特徴とするソースレベルデバッガ。 - 【請求項19】 表示手段は、サイクルステップ実行手
段を起動するためのボタン、プルダウンメニュー、ポッ
プアップメニュー、コマンドライン入力のためのウィン
ドウのうちの少なくともいずれか1つを含む表示画面を
表示することを特徴とする請求項18記載のソースレベ
ルデバッガ。 - 【請求項20】 サイクル単位でのブレークポイントを
以前に一時停止したサイクルから数えた相対サイクル、
及び起動時から数えた絶対サイクルでの指定を可能にす
る一時停止条件設定手段を備えたことを特徴とする請求
項18又は請求項19記載のソースレベルデバッガ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11205178A JP2001034504A (ja) | 1999-07-19 | 1999-07-19 | ソースレベルデバッガ |
US09/453,964 US6550056B1 (en) | 1999-07-19 | 1999-12-03 | Source level debugger for debugging source programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11205178A JP2001034504A (ja) | 1999-07-19 | 1999-07-19 | ソースレベルデバッガ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001034504A true JP2001034504A (ja) | 2001-02-09 |
Family
ID=16502721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11205178A Pending JP2001034504A (ja) | 1999-07-19 | 1999-07-19 | ソースレベルデバッガ |
Country Status (2)
Country | Link |
---|---|
US (1) | US6550056B1 (ja) |
JP (1) | JP2001034504A (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754677B1 (en) * | 2000-05-30 | 2004-06-22 | Outlooksoft Corporation | Method and system for facilitating information exchange |
US8275974B2 (en) * | 2001-01-16 | 2012-09-25 | Outlooksoft Corporation | Systems and methods providing dynamic spreadsheet functionality |
US7577942B2 (en) * | 2001-07-26 | 2009-08-18 | International Business Machines Corporation | Efficient monitoring of program variables under debug |
JP4272371B2 (ja) * | 2001-11-05 | 2009-06-03 | パナソニック株式会社 | デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。 |
US7644394B2 (en) | 2001-11-30 | 2010-01-05 | International Business Machines Corporation | Object-oriented creation breakpoints |
US7398519B2 (en) * | 2001-11-30 | 2008-07-08 | International Business Machines Corporation | Inheritance breakpoints for use in debugging object-oriented computer programs |
US20030131337A1 (en) * | 2002-01-07 | 2003-07-10 | Perumainar Asok K. | Educational method and tool for isolating and teaching programming language concepts |
US6964036B2 (en) * | 2002-05-21 | 2005-11-08 | International Business Machines Corporation | Descriptive variables while debugging |
JP3764405B2 (ja) * | 2002-05-27 | 2006-04-05 | 株式会社東芝 | デバッグ装置及びデバッグ方法 |
US7111281B2 (en) * | 2002-12-26 | 2006-09-19 | International Business Machines Corporation | Method, system, and article of manufacture for debugging utilizing screen pattern recognition and breakpoints |
US20050289323A1 (en) * | 2004-05-19 | 2005-12-29 | Kar-Lik Wong | Barrel shifter for a microprocessor |
US7539833B2 (en) * | 2004-12-06 | 2009-05-26 | International Business Machines Corporation | Locating wasted memory in software by identifying unused portions of memory blocks allocated to a program |
US7461307B2 (en) * | 2005-05-06 | 2008-12-02 | Lsi Corporation | System and method for improving transition delay fault coverage in delay fault tests through use of an enhanced scan flip-flop |
US20060259696A1 (en) * | 2005-05-16 | 2006-11-16 | Texas Instruments Incorporated | Determining differences between cached copies of an address |
US7991959B2 (en) * | 2005-05-16 | 2011-08-02 | Texas Instruments Incorporated | Visualizing contents and states of hierarchical storage systems |
US7409330B2 (en) * | 2005-06-16 | 2008-08-05 | Kabushiki Kaisha Toshiba | Method and system for software debugging using a simulator |
US8218635B2 (en) * | 2005-09-28 | 2012-07-10 | Synopsys, Inc. | Systolic-array based systems and methods for performing block matching in motion compensation |
US20070174037A1 (en) * | 2005-11-10 | 2007-07-26 | Chuan-Po Ling | Multiple-microcontroller emulation system, multiple-microcontroller integrated development environment, and method for the same |
US8387019B1 (en) * | 2006-02-16 | 2013-02-26 | Cypress Semiconductor Corporation | Graphical user assignable register map |
US8316352B2 (en) * | 2006-06-09 | 2012-11-20 | Oracle America, Inc. | Watchpoints on transactional variables |
JP4444305B2 (ja) * | 2007-03-28 | 2010-03-31 | 株式会社東芝 | 半導体装置 |
US20090204823A1 (en) * | 2008-02-07 | 2009-08-13 | Analog Devices, Inc. | Method and apparatus for controlling system access during protected modes of operation |
US8434064B2 (en) * | 2008-03-28 | 2013-04-30 | Microsoft Corporation | Detecting memory errors using write integrity testing |
US9417987B2 (en) * | 2008-06-12 | 2016-08-16 | International Business Machines Corporation | Advisory warning and workaround indications to user when stopped between load and store conditional instructions while using source level debuggers |
US8392885B2 (en) | 2008-12-19 | 2013-03-05 | Microsoft Corporation | Low privilege debugging pipeline |
US9069747B2 (en) | 2010-08-26 | 2015-06-30 | Sap Se | Methods, apparatus, systems and computer readable mediums for use in association with electronic spreadsheets |
US9268598B2 (en) * | 2012-09-13 | 2016-02-23 | International Business Machines Corporation | Recording and profiling transaction failure source addresses and states of validity indicator corresponding to addresses of aborted transaction in hardware transactional memories |
US9501383B2 (en) * | 2013-02-26 | 2016-11-22 | Dominique Bolignano | Method for securing a program |
US9122791B2 (en) * | 2013-03-05 | 2015-09-01 | International Business Machines Corporation | Identifying a storage location for a storage address requested during debugging |
US9275236B2 (en) | 2013-06-28 | 2016-03-01 | Dominique Bolignano | Method for securing a program |
US10740219B2 (en) * | 2018-04-27 | 2020-08-11 | Workman Nydegger | Selectively tracing portions of computer process execution |
US10747645B2 (en) * | 2018-04-27 | 2020-08-18 | Microsoft Technology Licensing, Llc | Selectively tracing portions of computer process execution |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
US5175856A (en) * | 1990-06-11 | 1992-12-29 | Supercomputer Systems Limited Partnership | Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution |
JP2785606B2 (ja) | 1991-10-11 | 1998-08-13 | 日本電気株式会社 | パイプライン処理方式コンピュータ用プログラムのデバッガ |
US5446900A (en) * | 1992-07-24 | 1995-08-29 | Microtec Research, Inc. | Method and apparatus for statement level debugging of a computer program |
US6151701A (en) * | 1997-09-30 | 2000-11-21 | Ahpah Software, Inc. | Method for reconstructing debugging information for a decompiled executable file |
US6178547B1 (en) * | 1993-06-17 | 2001-01-23 | Metaware Incorporated | Method and apparatus for generating non-redundant symbolic debug information in computer programs |
US5488688A (en) * | 1994-03-30 | 1996-01-30 | Motorola, Inc. | Data processor with real-time diagnostic capability |
JP2752592B2 (ja) * | 1994-12-28 | 1998-05-18 | 日本ヒューレット・パッカード株式会社 | マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法 |
US5740440A (en) * | 1995-01-06 | 1998-04-14 | Objective Software Technology | Dynamic object visualization and browsing system |
US5737516A (en) * | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
DE69616917T2 (de) * | 1995-08-30 | 2002-06-06 | Motorola, Inc. | Datenprozessor mit eingebauter Emulationsschaltung |
US6091896A (en) * | 1995-12-22 | 2000-07-18 | Hewlett-Packard Company | Debugging optimized code using data change points |
JPH09244912A (ja) | 1996-03-12 | 1997-09-19 | Hitachi Ltd | 情報処理装置プログラムの試験方式 |
US5983017A (en) * | 1996-11-12 | 1999-11-09 | Lsi Logic Corporation | Virtual monitor debugging method and apparatus |
US6353923B1 (en) * | 1997-03-12 | 2002-03-05 | Microsoft Corporation | Active debugging environment for debugging mixed-language scripting code |
US6253368B1 (en) * | 1997-03-31 | 2001-06-26 | International Business Machines Corporation | Dynamically debugging user-defined functions and stored procedures |
US6145122A (en) * | 1998-04-27 | 2000-11-07 | Motorola, Inc. | Development interface for a data processor |
US6161216A (en) * | 1998-04-29 | 2000-12-12 | Emc Corporation | Source code debugging tool |
US6173386B1 (en) * | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
-
1999
- 1999-07-19 JP JP11205178A patent/JP2001034504A/ja active Pending
- 1999-12-03 US US09/453,964 patent/US6550056B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6550056B1 (en) | 2003-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001034504A (ja) | ソースレベルデバッガ | |
US5896536A (en) | Data triggered trace support for debugging object oriented programs | |
US9342437B2 (en) | Backward post-execution software debugger | |
US5630049A (en) | Method and apparatus for testing software on a computer network | |
US20120317550A1 (en) | Forward post-execution software debugger | |
US20030033592A1 (en) | Software debugger and software development support system | |
JPH11110254A (ja) | ソフトウェアをデバッグする際に例外を識別するための装置および方法 | |
US7945900B2 (en) | Debugging tool for debugging multi-threaded programs | |
WO1995029442A1 (en) | Computer program debugging system and method | |
JPH11110255A (ja) | ソフトウェアをデバッグするための装置および方法 | |
TWI241523B (en) | Debugging device and debugging method | |
JP3535354B2 (ja) | ストール検出表示装置及び方法 | |
JP2003508864A (ja) | スレッド志向デバッギング | |
JP2001034497A (ja) | 逆アセンブラのバイナリコード取得方法 | |
JPH1078887A (ja) | デバッグシステム及びデバッグ方法 | |
JPH02146630A (ja) | マイクロプロセッサのプログラム開発システム | |
JP2803090B2 (ja) | Mpuシミュレーション方法及びmpuシミュレータ | |
JPH08221300A (ja) | プログラム・シミュレータ | |
JPH0465729A (ja) | シンボリック・デバッガ | |
JPH07319729A (ja) | ソフトウェアデバッグ方法 | |
JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
JP2001067246A (ja) | デバッグ装置、デバッグ方法、および、デバッグ用プログラムを記録した記録媒体 | |
JP2003263340A (ja) | デバッグ装置 | |
JP2002073370A (ja) | デバッグ支援装置およびその装置によるデバッグ方法 | |
JPH0365736A (ja) | システム開発装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060123 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060703 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20071101 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090908 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100112 |