JP2003050716A - ソフトウエアデバッガとソフトウエア開発支援システム - Google Patents

ソフトウエアデバッガとソフトウエア開発支援システム

Info

Publication number
JP2003050716A
JP2003050716A JP2001238031A JP2001238031A JP2003050716A JP 2003050716 A JP2003050716 A JP 2003050716A JP 2001238031 A JP2001238031 A JP 2001238031A JP 2001238031 A JP2001238031 A JP 2001238031A JP 2003050716 A JP2003050716 A JP 2003050716A
Authority
JP
Japan
Prior art keywords
instruction
conditional
function
program
address
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
JP2001238031A
Other languages
English (en)
Inventor
Shintaro Tsubata
真太郎 津幡
Kiyohiko Sumida
清彦 隅田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2001238031A priority Critical patent/JP2003050716A/ja
Priority to US10/210,206 priority patent/US7266809B2/en
Priority to CNB021278067A priority patent/CN1203409C/zh
Publication of JP2003050716A publication Critical patent/JP2003050716A/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)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 条件付き命令を備えたマイコン上のプログラ
ム開発を支援するソフトウエア開発支援システムにおい
て、条件付き命令で実現されたプログラム条件論理構造
の実行過程を利用者に判りやすく表示する。 【解決手段】 デバッガに、プログラムのステップ実行
処理を行う際に停止アドレスの命令が条件付き命令かど
うかを判定する(S105)機能と、命令が条件付き命
令であった場合に命令の条件フラグ値を取得する(S1
06)機能と、条件フラグ値の値により条件付き命令が
実行されるかどうかを判定する(S108)機能と、判
定結果に応じて停止アドレスの命令の表示方法を変えて
画面に表示する(S109,S110)機能とを設けて
いる。条件付き命令が条件不成立で実行されなかった場
合に、表示の方法を変えて利用者に提示することがで
き、プログラムの実行の経過を確認しやすいようにでき
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイコン上で実行
されるプログラムのデバッグを行うソフトウエアデバッ
ガとソフトウエア開発支援システムに関し、特に条件付
き命令を持つマイコンのプログラムの実行過程の表示方
法に係る。
【0002】
【従来の技術】近年の電子技術の発展により、家電機器
などの組み込み機器においてもマイコンなどを組み込
み、プログラム開発を伴った機器開発が行われている。
【0003】また、家電機器の高機能化に伴い、高速化
のための条件付き命令を備える高性能なマイコンが用い
られるようになってきている。
【0004】プログラム開発においては、ソフトウエア
開発者は、デバッガを用いて、開発したプログラムが設
計した意図通りに動作しているどうかを確認することに
より、プログラムのデバッグを行う。この際には、プロ
グラムを逐次1命令ずつ実行するステップ実行やプログ
ラムの実行結果の系列を表示するトレース機能と呼ばれ
るデバッガの機能を用いてプログラムの動作を確認する
ことが行われていた。
【0005】図26に、従来技術のソフトウエア開発支
援システムの構成を示す。201はCソースプログラム
であり、ソフトウエア開発者が開発対象の応用システム
を実現するプログラムである。202は、コンパイラで
あり、Cソースプログラム201を入力とし、開発対象
の応用システムで用いるマイコン用の実行コードとデバ
ッグ情報からなるオブジェクトファイル203を出力す
る。204は、デバッガであり、オブジェクトファイル
203を入力し、ソフトウエア開発者からの指示をユー
ザインターフェイスから入力し、デバッグ対象のプログ
ラムの動作を確認するなどして、デバッグを行う。
【0006】以下従来のデバッガ204の動作を説明す
る。図27に、デバッガ204の機能ブロック図を示
す。
【0007】301は、デバッガ処理部であり、利用者
であるソフトウエア開発者からのデバッガコマンドの入
力、利用者への情報の表示や出力など入出力を行い、ま
た入力されたデバッガコマンドに対応した処理を行う。
【0008】302は、実行ターゲット環境であり、前
記オブジェクトファイル203のプログラムが実行され
る環境であり、例えば計算機上に構築されたマイコンシ
ミュレータである。なお、実行ターゲット環境302
は、ターゲットとなるマイコンやメモリを搭載した評価
ボードでもよい。デバッガ処理部301は、この実行タ
ーゲット環境302を制御することにより、デバッグの
機能を実現する。
【0009】303は、オブジェクトコード情報であ
り、利用者の指示によりデバッグ対象のプログラムであ
るオブジェクトファイル203をデバッガ204内に読
み込み内部に記憶している情報である。
【0010】304は、デバッグ情報であり、デバッグ
に必要な種々の情報を含む。オブジェクトファイル20
3に格納され、デバッガに読み込まれる。内容は、例え
ば関数名や変数名などシンボルとアドレスの対応づけの
情報や、C言語プログラムのソース行とアドレスの対応
づけを行う行番号情報や、変数がレジスタあるいはメモ
リなど、どの資源に割り当てられているかを記す配置情
報などからなる。
【0011】305は、命令形式情報であり、命令コー
ドと命令形式を対応づける情報であり、またアセンブル
形式であるニーモニック文字列の情報も含む。この情報
を参照すれば、メモリ上に存在する命令コードであるメ
モリ値から、逆アセンブルを実現することができる。
【0012】306は、トレースデータ情報であり、ト
レース出力を行うための、トレースフレームデータを記
憶する。
【0013】図28に、従来のデバッガの処理フローを
示す。デバッガ204が起動された後、ステップS40
1では、デバッガの作業用メモリの初期化や表示用ウィ
ンドウの描画などの初期処理を行う。
【0014】次にステップS402では、利用者から、
デバッガコマンドの入力を受け付ける。ここで、利用者
は、デバッグ対象プログラムのオブジェクトコードの読
込みコマンドや、プログラムの実行開始やブレークポイ
ントの設定、メモリのダンプなどデバッグに必要なコマ
ンドを入力する。
【0015】次にステップS403では、入力されたコ
マンドを解釈し、ステップS404では、入力されたコ
マンドに対応するそれぞれの処理を行う。処理内容は、
従来の技術であるので詳細な説明は割愛する。
【0016】次にステップS405では、デバッガの表
示更新処理を行う。表示更新処理は、コードを表示する
コードウインドウで、プログラム実行が停止したアドレ
スの前後のコードを表示するよう表示内容を更新し、ま
た、メモリ内容を表示するメモリウインドウで、メモリ
内容の変更に伴う表示内容の更新などである。
【0017】ステップS404で、終了コマンドが入力
された場合、ステップS406で、デバッガの作業領域
の解放や実行ターゲット環境との接続の切断など終了処
理を行う。
【0018】図29に、ステップS405の表示更新処
理の処理フローを示す。表示更新処理では、表示更新が
必要な場合に対応する処理を行う。
【0019】ステップS2801では、ターゲット実行
環境上で、デバッグ対象のプログラムの実行状態を調
べ、実行が停止している場合は、ステップS2802に
進む。実行が停止しておらず、プログラム実行中の場合
は、表示の更新が不必要なので処理を終了する。実行停
止の場合は、後続のステップで、デバッグ対象のプログ
ラムのどの箇所で停止しているかをプログラム開発者に
表示する処理を行う。
【0020】ステップS2802で、デバッグ対象プロ
グラムの停止アドレスを取得する。つまり、実行ターゲ
ット環境302上のマイコンのプログラムカウンタ(P
C)レジスタの値を取得する。
【0021】次にステップS2803で、デバッガ内で
記憶しているオブジェクトコード情報303から、ステ
ップS2802で取得した停止アドレスの命令コードを
読みだす。
【0022】次にステップS2804で、命令コードを
逆アセンブルし、命令コードに対応するアセンブル行文
字列を得る。なお、逆アセンブルは、デバッガ内で管理
する命令形式情報305を参照することにより実現す
る。
【0023】次にステップS2805で、得られたアセ
ンブル行文字列を画面上に反転した表示色で表示し、以
前に反転表示されていた行を通常の表示色に戻す。
【0024】次にステップS2806で、命令コード表
示以外のメモリ内容等の表示の更新処理を行う。
【0025】以上のように構成されたデバッガでは、プ
ログラム開発者が、例えばステップ実行コマンドを連続
してデバッガに入力することにより、現在のプログラム
の実行命令が次々に反転表示され、デバッグ対象のプロ
グラムの実行の経過を知ることができ、デバッグするこ
とが可能となる。
【0026】また、特開平−2892978号公報に開
示された「ソフトウェア・トレースの生成装置および方
法」は、プログラムの実行過程を表示するトレースにお
いて、実行されたそれぞれの命令を実行順序によって色
分けして表示することを特徴しており、これによりプロ
グラムの実行過程を判りやすく表示する。
【0027】
【発明が解決しようとする課題】しかしながら、条件付
き命令を備えるマイコンでは、従来であれば複数の命令
により実現していた条件実行処理を、1つの条件付き命
令により実現できることとなる。このため、従来であれ
ば、実行した命令を実行経過に即して逐次追跡すればプ
ログラムの実行過程が確認できていたが、実行された命
令だけを追跡しただけでは、確認することが難しくなる
という課題がある。
【0028】以降、条件付き命令を用いたプログラムの
例を用いて、従来技術のデバッガでの実行過程の表示に
ついて説明する。
【0029】図5に、デバッグ対象のC言語プログラム
の一部を示す。なお、「01:」、「02:」等は、説
明のための行番号である。変数aの値によって、02行
と04行の処理が条件実行されるプログラムである。
【0030】図6に、前記C言語プログラムを条件付き
命令をもつマイコンの命令コードにアセンブルした結果
を示す。なお、「0x400:」、「0x404:」等
は、命令が配置されているアドレスを示す。ここでは、
C言語のif−else条件実行構造が、条件付き命令
を利用して実現されている。
【0031】0x400番地で、レジスタRaの値が1
0と比較されその結果がフラグc0に代入される。0x
404番地で、フラグc0が真の場合、レジスタRbに
レジスタRaの値の2乗が転送される。フラグc0が偽
の場合、この命令では、何も処理は行われない。
【0032】0x408番地では、フラグc0が偽の場
合に、レジスタRbにレジスタRcの内容が転送され
る。フラグc0が真の場合、何も処理が行われない。図
6での0x400番地から0x408番地までの命令列
は、図5での01行目から05行目のif − els
e 文で記述された論理構造に対応する。
【0033】以下、従来のデバッガ上で、利用者が前記
C言語プログラムの部分の動作をアドレス0x400番
地から0x408番地までの部分について、ステップ実
行で確認する場合の例について説明する。
【0034】デバッグ対象プログラムが0x400番地
で実行を停止しているものとする。この場合、図30
(a)に示すように、停止アドレス0x400番地のア
センブル行を反転してコード表示画面に表示する。
【0035】利用者は、ステップS402において、ス
テップ実行コマンドを入力する。
【0036】ステップS403において、入力コマンド
の解釈が行われ、コマンドの種別がステップ実行である
ことなど必要な情報が取り出される。
【0037】ステップS404において、ステップS4
03で取り出された情報に基づいて、ステップ実行処理
が行われる。ステップ実行処理は、実行ターゲット環境
302であるマイコンのシミュレータで、命令実行を1
命令実行するよう制御することで、実現する。この結
果、デバッグ対象プログラムは、実行ターゲット環境3
02上で、停止アドレスから1命令実行を行って、実行
を停止する。
【0038】ステップS405で、表示更新処理を行う
ため、ステップS2801に進む。
【0039】ステップS2801で、実行停止かどうか
を判断する。実行停止なのでステップS2802に進
む。
【0040】ステップS2802で、停止アドレスを実
行ターゲット環境302であるマイコンのシミュレータ
のプログラムカウンタ(PC)値を取得し、停止アドレ
スを取得する。この場合、停止アドレスとして0x40
4が得られる。
【0041】次に、ステップS2803で、オブジェク
トコード情報303から、停止アドレス0x404の命
令コードを読みとり、続いてステップS2804で、命
令形式情報305を参照して、命令コードを逆アセンブ
ルし、結果の文字列としてアセンブル行『(c0)
mul Ra,Ra,Rb』を得る。
【0042】ステップS2805で、前記アセンブル行
『(c0) mul Ra,Ra,Rb』の表示色を反
転した表示色に更新を行う。また、以前に反転されてい
たアセンブル行を通常の表示色に戻す。この結果の表示
例を図30(b)に示す。
【0043】以下同様に、ステップ実行を繰り返した場
合の、表示例を、図30(c),図30(d)に示す。
【0044】反転表示されているアセンブル行が逐次へ
変化していくことを、確認することによりプログラム実
行の過程を確認できる。しかし、アドレス0x404の
命令で実現され得る処理『mul Ra, Ra, R
b』およびアドレス0x408の命令で実現され得る処
理『mov Rc,Rb』が、実際に実行されたかどう
かを確認することは困難である。
【0045】つまり、if−else 制御構造で記述
されたプログラム論理の確認が困難であるという課題が
ある。
【0046】また、トレース結果の表示についても同様
の課題がある。
【0047】本発明の目的は、上記課題に鑑み、条件付
き命令で実現されたプログラムの条件論理構造の実行過
程を利用者に判り易く表示できるソフトウエアデバッガ
およびソフトウエア開発支援システムを提供することを
目的とする。
【0048】
【課題を解決するための手段】本発明の請求項1記載の
ソフトウエアデバッガは、デバッグ対象のマイコンのプ
ログラムを画面上に表示する際、プログラムの実行停止
時の停止アドレスが他のアドレスと区別できるように表
示するソフトウエアデバッガであって、プログラムのス
テップ実行処理を行う際に停止アドレスの命令が条件付
き命令かどうかを判定する機能と、命令が条件付き命令
であった場合に命令の条件フラグ値を取得する機能と、
条件フラグ値の値により条件付き命令が実行されるかど
うかを判定する機能と、判定結果に応じて停止アドレス
の命令の表示方法を変えて画面に表示する機能とを設け
たことを特徴とする。
【0049】また、本発明の請求項2記載のソフトウエ
アデバッガは、請求項1記載のソフトウエアデバッガに
おいて、条件付き命令が実行されるかどうかの判定結果
に応じて停止アドレスの命令の表示方法を変えて画面に
表示する際、停止アドレス部分を反転表示する機能を設
けたことを特徴とする。
【0050】また、本発明の請求項3記載のソフトウエ
アデバッガは、請求項1記載のソフトウエアデバッガに
おいて、条件付き命令が実行されるかどうかの判定結果
に応じて停止アドレスの命令の表示方法を変えて画面に
表示する際、停止アドレス部分と条件フラグ部分を反転
表示する機能を設けたことを特徴とする。
【0051】上記の請求項1〜3記載のソフトウエアデ
バッガによれば、条件付き命令が条件不成立で実行され
なかった場合に、表示の方法を変えて利用者に提示する
ことができ、利用者が条件付き命令を含んだプログラム
の実行の経過を確認しやすいようにできる。
【0052】本発明の請求項4記載のソフトウエアデバ
ッガは、デバッグ対象のマイコンのプログラムの実行処
理を行った後、プログラムの命令をトレース出力するソ
フトウエアデバッガであって、実行された命令がフラグ
更新命令であった場合に更新されたフラグ値をトレース
データとして出力する機能と、トレース出力対象の命令
が条件付き命令かどうかを判定する機能と、判定結果が
トレース出力対象の命令が条件付き命令であった場合に
トレースデータとして出力されたフラグ値を取得する機
能と、フラグ値の値により条件付き命令が実行されるか
どうかを判定する機能と、判定結果に応じてトレース出
力する命令の出力方法を変えて出力する機能とを設けた
ことを特徴とする。
【0053】上記の請求項4記載のソフトウエアデバッ
ガによれば、トレース出力において、条件フラグ値を参
照でき、条件付き命令の実行結果を判定することがで
き、条件付き命令が条件不成立で実行されなかった場合
に、表示の方法を変えて利用者に提示することができ、
利用者が条件付き命令を含んだプログラムの実行の経過
を確認しやすいようにできる。
【0054】本発明の請求項5記載のソフトウエア開発
支援システムは、デバッグ対象のマイコンのプログラム
を画面上に表示する際、プログラムの実行停止時の停止
アドレスが他のアドレスと区別できるように表示するソ
フトウエア開発支援システムであって、デバッグ対象の
プログラムから全ての条件付き命令の条件フラグの生存
区間を検出する機能と、表示対象アドレスの命令が条件
付き命令かどうかを判定する機能と、判定結果が条件付
き命令であった場合に表示対象アドレスと停止アドレス
が条件付き命令で参照される条件フラグの同一の生存区
間内にあるかどうかを判定する機能と、判定結果が条件
付き命令であった場合に条件付き命令で参照される条件
フラグ値を取得する機能と、条件フラグ値の値により条
件付き命令が実行されるかどうかを判定する機能と、表
示対象アドレスと停止アドレスが条件付き命令で参照さ
れる条件フラグの同一の生存区間内にあるかどうかの判
定結果と条件フラグ値の値により条件付き命令が実行さ
れるかどうかの判定結果とに応じて、停止アドレスおよ
びその前後のアドレスの命令の表示方法を変えて画面に
表示する機能と設けたことを特徴とする。
【0055】上記の請求項5記載のソフトウエア開発支
援システムによれば、プログラムの実行停止時の表示を
行う際に、条件フラグの生存区間内であれば条件付き命
令の実行を判定し、表示の方法を変えて利用者に提示す
ることができ、利用者が条件付き命令を含んだプログラ
ムの実行の経過を確認しやすいようにできる。
【0056】本発明の請求項6記載のコンパイラは、マ
イコンのコンパイラであって、命令コード列に含まれる
条件付き命令の条件フラグの生存区間を検出する機能
と、検出した条件フラグの生存区間の情報を出力する機
能とを設けたことを特徴とする。
【0057】本発明の請求項7記載のソフトウエアデバ
ッガは、デバッグ対象のマイコンのプログラムを画面上
に表示する際、プログラムの実行停止時の停止アドレス
が他のアドレスと区別できるように表示するソフトウエ
アデバッガであって、表示対象アドレスの命令が条件付
き命令かどうかを判定する機能と、判定結果が条件付き
命令であった場合に条件付き命令で参照される条件フラ
グの生存区間内に表示対象アドレスがあるかどうかを判
定する機能と、判定結果が条件付き命令であった場合に
条件付き命令で参照される条件フラグ値を取得する機能
と、条件フラグ値の値により条件付き命令が実行される
かどうかを判定する機能と、条件フラグの生存区間内に
表示対象アドレスがあるかどうかの判定結果と条件フラ
グ値の値により条件付き命令が実行されるかどうかの判
定結果とに応じて、停止アドレスおよびその前後のアド
レスの命令の表示方法を変えて画面に表示する機能とを
設けたことを特徴とする。
【0058】本発明の請求項8記載のソフトウエアデバ
ッガは、請求項7記載のソフトウエアデバッガにおい
て、請求項6記載のコンパイラから出力される条件フラ
グの生存区間の情報を入力する機能を設けたことを特徴
とする。
【0059】上記の請求項6記載のコンパイラ、請求項
7,8記載のソフトウエアデバッガを用いて請求項5記
載のソフトウエア開発支援システムを構成することがで
きる。
【0060】本発明の請求項9記載の機械可読記録媒体
は、マイコンプログラムの機械語コードおよびその格納
アドレスと、条件付き命令の条件フラグの定義アドレス
および参照アドレスとの情報を記録したことを特徴とす
る。
【0061】
【発明の実施の形態】(第一の実施の形態)以下、本発
明の第一の実施の形態について説明する。図2に、本発
明の第一の実施の形態におけるソフトウエア開発支援シ
ステムの構成を示す。201はCソースプログラムであ
り、利用者であるソフトウエア開発者が開発対象の応用
システムを実現するプログラムである。202は、コン
パイラであり、Cソースプログラム201を入力とし、
開発対象の応用システムで用いるマイコン用の実行コー
ドとデバッグ情報からなるオブジェクトファイル203
を出力する。204Aは、デバッガであり、オブジェク
トファイル203を入力し、ソフトウエア開発者からの
指示をユーザインターフェイスから入力し、デバッグ対
象のプログラムの動作を確認するなどして、デバッグを
行う。
【0062】以下、本実施の形態におけるデバッガ20
4Aについて説明する。図3に、デバッガ204Aの機
能ブロック図を示す。
【0063】301は、デバッガ処理部であり、利用者
であるソフトウエア開発者からのデバッガコマンドの入
力、利用者への情報の表示や出力など入出力を行い、ま
た入力されたデバッガコマンドに対応した処理を行う。
【0064】302は、実行ターゲット環境であり、オ
ブジェクトコード203のプログラムが実行される環境
であり、例えば計算機上に構築されたマイコンシミュレ
ータである。なお、実行ターゲット環境302は、ター
ゲットとなるマイコンやメモリを搭載した評価ボードで
もよい。デバッガ処理部301は、この実行ターゲット
環境302を制御することにより、デバッグの機能を実
現する。
【0065】303は、オブジェクトコード情報であ
り、利用者の指示によりデバッグ対象のプログラムであ
るオブジェクトファイル203をデバッガ204A内に
読み込み内部に記憶している情報である。
【0066】304は、デバッグ情報であり、デバッグ
に必要な種々の情報を含む。オブジェクトファイル20
3に格納され、デバッガに読み込まれる。内容は、例え
ば関数名や変数名などシンボルとアドレスの対応づけの
情報や、C言語プログラムのソース行とアドレスの対応
づけを行う行番号情報や、変数がレジスタあるいはメモ
リなど、どの資源に割り当てられているかを記す配置情
報などからなる。
【0067】305は、命令形式情報であり、命令コー
ドと命令形式を対応づける情報であり、またアセンブル
形式であるニーモニック文字列の情報も含む。この情報
を参照すれば、メモリ上に存在する命令コードであるメ
モリ値から、逆アセンブルを実現することができる。
【0068】図25に、命令形式情報305の例を示
す。この命令形式情報は、命令コードを判別するための
命令フォーマット情報3001、対応するニーモニック
文字列を保持するニーモニック文字列情報3002、ま
た命令実行にかかる時間を示すサイクル数情報300
3、条件付き命令であるかどうかを示す条件付き命令情
報3004、条件付き命令で参照される条件フラグを更
新する命令であるかどうかを示すフラグ更新情報300
5から構成され、各命令形式に対応して、管理される。
3006、3007、3008に、一例を示す。300
6は、add命令の命令形式情報である。命令フォーマ
ットは、2進数で示され、レジスタ指定フィールドは、
<R1>などで示される。また、条件付き命令ではない
こと、フラグ更新命令ではないことが示される。同様
に、3007では、条件付き命令であるadd命令の命
令形式情報であり、3008は、条件フラグを更新する
cmp命令の命令形式情報である。
【0069】306は、トレースデータ情報であり、ト
レース出力を行うための、トレースフレームデータを記
憶する。
【0070】図4に、デバッガ処理部301の処理フロ
ーを示す。デバッガが起動された後、ステップS401
では、デバッガの作業用メモリの初期化や表示用ウィン
ドウの描画などの初期処理を行う。
【0071】次にステップS402では、利用者から、
デバッガコマンドの入力を受け付ける。ここで、利用者
は、デバッグ対象プログラムのオブジェクトコードの読
込みコマンドや、プログラムの実行開始やブレークポイ
ントの設定、メモリのダンプなどデバッグに必要なコマ
ンドを入力する。
【0072】次にステップS403では、入力されたコ
マンドを解釈し、ステップS404では、入力されたコ
マンドに対応するそれぞれの処理を行う。処理内容は、
従来の技術であるので詳細な説明は割愛する。
【0073】次にステップS405では、デバッガの表
示更新処理を行う。表示更新処理は、コードを表示する
コードウインドウで、プログラム実行が停止したアドレ
スの前後のコードを表示するよう表示内容を更新し、ま
た、メモリ内容を表示するメモリウインドウで、メモリ
内容の変更に伴う表示内容の更新などである。
【0074】ステップS404で、終了コマンドが入力
された場合、ステップS406で、デバッガの作業領域
の解放や実行ターゲット環境との接続の切断など終了処
理を行う。
【0075】図1に、ステップS405の表示更新処理
の処理フローを示す。
【0076】ステップS101では、実行ターゲット環
境302上で、デバッグ対象のプログラムの実行状態を
調べ、実行が停止している場合は、ステップS102に
進む。実行が停止しておらず、プログラム実行中の場合
は、表示の更新が不必要なので処理を終了する。実行停
止の場合は、後続のステップで、デバッグ対象のプログ
ラムのどの箇所で停止しているかをプログラム開発者に
表示する処理を行う。
【0077】ステップS102で、デバッグ対象プログ
ラムの停止アドレスを取得する。つまり、実行ターゲッ
ト環境302上のマイコンのプログラムカウンタ(P
C)レジスタの値を取得する。
【0078】次にステップS103で、デバッガ内で記
憶しているオブジェクトコード情報303から、ステッ
プS102で取得した停止アドレスの命令コードを読み
だす。
【0079】次にステップS104で、命令コードを逆
アセンブルし、命令コードに対応するアセンブル行文字
列を得る。なお、逆アセンブルは、デバッガ内で管理す
る命令形式情報305を参照することにより実現する。
【0080】次にステップS105で、命令コードから
デバッガ内で管理している命令形式情報305を参照し
て、条件付き命令であるかどうかを判定する。条件付き
命令であるかどうかは、命令形式情報の条件付き命令情
報3004を参照することにより判定できる。条件付き
命令である場合は、ステップS106に進む。条件付き
命令でない場合は、ステップS110に進む。
【0081】ステップS106で、命令形式情報305
を参照して、条件フラグの種別を求め、実行ターゲット
環境302から前記条件フラグの値を取得する。
【0082】ステップS108で、前記求めたフラグ値
から、条件付き命令が実行されるかを判断する。条件付
き命令が実行される場合は、ステップS110に進む。
条件付き命令が実行されない場合は、ステップS109
に進む。
【0083】ステップS109で、条件付き命令が実行
されない場合は、実行されない演算部分を薄いグレイ色
で、条件フラグ部を反転した表示色で表示し、以前に反
転表示されていた行を通常の表示色に戻す。
【0084】ステップS110では、対応するアセンブ
ル行文字列を画面上に反転した表示色で表示し、以前に
反転表示されていた行を通常の表示色に戻す。
【0085】ステップS111では、命令コード表示以
外のメモリ内容等の表示の更新処理を行う。
【0086】以降、具体的に例を挙げながら動作を説明
する。
【0087】図5に、デバッグ対象のC言語プログラム
の一部を示す。なお、「01:」、「02:」等は、説
明のための行番号である。変数aの値によって、02行
と04行の処理が条件実行されるプログラムである。
【0088】図6に、図5のC言語プログラムを条件付
き命令をもつマイコンの命令コードにアセンブルした結
果を示す。つまり、コンパイラ202でコンパイルされ
た結果の一部である。なお、「0x400:」、「0x
404:」等は、命令が配置されているアドレスを示
す。ここでは、C言語のif−else条件実行構造
が、条件付き命令を利用して実現されている。
【0089】0x400番地で、レジスタRaの値が1
0と比較されその結果がフラグc0に代入される。0x
404番地で、フラグc0が真の場合、レジスタRbに
レジスタRaの値の2乗が転送される。フラグc0が偽
の場合、この命令では、何も処理は行われない。
【0090】0x408番地では、フラグc0が偽の場
合に、レジスタRbにレジスタRcの内容が転送され
る。フラグc0が真の場合、何も処理が行われない。図
6での0x400番地から0x408番地までの命令列
は、図5での01行目から05行目のif−else
文で記述された論理構造に対応する。
【0091】図6にあげたプログラムで、レジスタRa
の値が10の場合に、デバッグ対象プログラムが0x4
00番地で実行を停止しているものとする。
【0092】この場合、図7(a)に示すように、停止
アドレス0x400番地のアセンブル行を反転してコー
ド表示画面に表示する。この表示画面は、デバッガ20
4Aに接続されているディスプレイ(図示せず)の画面
である。
【0093】利用者は、ステップS402において、ス
テップ実行コマンドを入力する。
【0094】ステップS403において、入力コマンド
の解釈が行われ、コマンドの種別がステップ実行である
ことなど必要な情報が取り出される。
【0095】ステップS404において、ステップS4
03で取り出された情報に基づいて、ステップ実行処理
が行われる。この結果、デバッグ対象プログラムは、実
行ターゲット環境302上で、停止アドレスから1命令
実行を行って、実行を停止する。
【0096】ステップS405で、表示更新処理を行う
ため、ステップS101に進む。
【0097】ステップS101で、実行停止かどうかを
判断する。実行停止なのでステップS102に進む。
【0098】ステップS102で、停止アドレスを実行
ターゲット環境302からマイコンのプログラムカウン
タ(PC)値を取得し、停止アドレスを取得する。この
場合、停止アドレスとして0x404が得られる。
【0099】次にステップS103で、オブジェクトコ
ード情報303から、停止アドレス0x404の命令コ
ードを読みとり、続いてステップS104で命令形式情
報305を参照して、命令コードを逆アセンブルし、結
果の文字列としてアセンブル行『(c0) mul R
a,Ra,Rb』を得る。
【0100】ステップS105で、当該命令が条件付き
であることを判定し、ステップS106に進む。
【0101】ステップS106で、当該命令の条件フラ
グc0の値を取得する。この場合、c0の値として1が
得られる。
【0102】ステップS108で、条件フラグc0の値
が1なので、条件付き命令が実行されると判定して、ス
テップS110に進む。
【0103】ステップS110で、アセンブル行『(c
0) mul Ra,Ra,Rb』を反転表示する。こ
の結果の表示例を図7(b)に示す。
【0104】続いて、利用者がステップ実行コマンドを
入力した場合、同様にして、ステップS101、S10
2、S103、S104、S105、S106、S10
8と進む。
【0105】ステップS108では、条件フラグ!c0
が0なので、条件付き命令が実行されないことが判り、
ステップS109に進む。
【0106】ステップS109では、実行されない演算
部分『mov Rc,Rb』を薄いグレイ色で、条件フ
ラグ部『(!c0)』を反転した表示色で表示し、以前
に反転表示されていた行を通常の表示色に戻す。この結
果の表示例を図7(c)に示す。なお、図7(c)で
は、『mov Rc,Rb』を便宜上四角で囲んで示し
ているが、実際は、四角の囲み線が無く、薄いグレイ色
で表示されているものとする。
【0107】同様に、続いてステップ実行コマンドが入
力された場合は、図7(d)に示すように表示する。
【0108】以上のように構成されたデバッガでは、利
用者がステップ実行コマンドを用いてプログラムの実行
を逐次追跡する場合に、実行されない条件付き命令を表
示形式を変えて表示することにより、条件付き命令で実
現された条件実行の論理を判りやすく表示することがで
き、デバッグ対象のプログラムの実行の経過を知ること
ができ、デバッグすることが可能となる。
【0109】なお、本実施の形態では、ステップS10
9では、条件付き命令が実行されない場合の表示方法
を、実行されない演算部分を薄いグレイ色として表示し
たが、取り消し線を上書きすることや表示フォントのサ
イズを小さくする、表示文字列を『未実行』とするな
ど、他の方法でも構わない。
【0110】また、本実施の形態では、ステップS10
9では、条件付き命令が実行されない場合の表示方法
を、停止アドレス部『0x408:』と条件フラグ部
『(!c0)』とを反転した表示色で表示し、実行され
ない演算部分を薄いグレイ色として表示したが、停止ア
ドレス部『0x408:』のみを反転した表示色で表示
し、条件フラグ部と実行されない演算部分とを、薄いグ
レイ色で表示する、あるいは、取り消し線を上書きす
る、あるいは、表示フォントのサイズを小さくする、あ
るいは、表示文字列を『未実行』とすることでも構わな
い。
【0111】(第二の実施の形態)次に本発明の第二の
実施の形態について説明する。図8は第二の実施の形態
におけるソフトウエア開発支援システムの構成図、図9
は、デバッガ204Bの機能ブロック図であり、第一の
実施の形態とほぼ同一の構成である。第二の実施の形態
は、第一の実施の形態とは、デバッガ204B内の処
理、すなわち実行ターゲット環境302で行われるトレ
ースデータ出力処理と、ステップS404でのトレース
出力処理の処理内容が異なる。
【0112】なお、本発明の第二の実施の形態では、実
行ターゲット環境302は、対象とするマイコンのソフ
トウエアシミュレータで実現されているものとする。
【0113】図10は、デバッガ処理部301の処理フ
ロー図であり、本発明の第一の実施の形態と同一の処理
フローである。
【0114】デバッガ204Bで、プログラム実行コマ
ンドが入力された場合、ステップS404でプログラム
実行処理が行われる。プログラム実行処理は、実行ター
ゲット環境302に対してプログラム実行を指示するこ
とにより行う。本実施の形態では、実行ターゲット環境
302は、ソフトウエアシミュレータで実現されてお
り、プログラム実行を行うことは、命令シミュレーショ
ンを行うことで実現する。
【0115】図11に、ソフトウエアシミュレータであ
る実行ターゲット環境302の命令シミュレーション処
理の処理フローを示す。
【0116】図11において、ステップS1101で
は、シミュレータ内のプログラムカウンタレジスタ(P
C)の値を読み出し、実行アドレスが既定の停止アドレ
ス(例えばexit関数)に到達したかを判定する。到
達していれば処理を終了し、到達していなければステッ
プS1102に進む。
【0117】ステップS1102では、デバッグ操作処
理部から利用者が指定したブレークアドレスの情報を読
み出し、実行アドレスが当該ブレークアドレスに到達し
たかを判定する。到達していれば処理を終了し、到達し
ていなければステップS1103に進む。なお、利用者
は、通常デバッグ対象プログラムの実行を開始する前
に、ブレーク(中断)させたいアドレスをブレークアド
レス設定コマンドとして、ステップS402にて与え
る。デバッグ操作処理部は、デバッガ処理部301にあ
り、ステップS402において利用者が入力したデバッ
ガのコマンドをステップS403で解釈した結果やブレ
ークアドレスの情報が得られる。
【0118】ステップS1103で、1命令分のシミュ
レーションを行う。
【0119】ステップS1104で、1命令実行分のト
レースデータの出力を行う。図12に、トレースデータ
出力処理S1104の処理フローを示す。
【0120】トレース結果は、1命令毎にデバッガ内の
トレースデータ情報306にトレースデータとして格納
される。このトレースデータの構造を図13(a)に示
す。1301は、フレーム番号フィールドであり、トレ
ース出力された情報の番号が記録される。1302は、
時刻フィールドであり、トレース出力された時刻が記録
される。1303は、データ種別フィールドであり、ト
レースデータの種別が記録される。1304は、アドレ
スフィールドであり、トレースデータに関連するアドレ
スが記録される。トレースデータが実行命令を記録する
ものである場合は、前記命令のアドレスが記録される。
1305は、命令フィールドであり、実行された命令が
記録される。1306は、データフィールドであり、ト
レースデータに関連するデータが記録される。トレース
データが条件実行フラグ値を記録するものである場合
は、前記フラグ値が記録される。
【0121】以下、図12を参照して、1命令実行分の
トレースデータ出力処理S1104について説明する。
【0122】ステップS1201で、実行命令のフレー
ムデータを記録する。フレーム番号、時刻を記録し、ト
レースデータ種別として実行命令を記録し、実行アドレ
ス、命令のアセンブル行を記録する。その後、フレーム
番号を1増やす。時刻は、シミュレータが管理している
実行サイクル数を取得して、記録する。アセンブル行
は、命令形式情報305を参照して求める。
【0123】ステップS1202で、命令形式情報30
5を参照して、現命令の種別を判別する。フラグ更新命
令であれば、ステップS1203に進み、そうでなけれ
ば終了する。
【0124】ステップS1203では、条件フラグの値
を新たにトレースデータとして記録する。フレーム番
号、時刻を記録し、トレースデータ種別として条件フラ
グ種別を記録し、実行アドレス、条件フラグの値を記録
する。その後、フレーム番号を1増やす。条件フラグの
値は、実行ターゲット環境302のシミュレータから取
得する。
【0125】以下、図6に示したプログラムの0x40
0番地から0x40c番地まで実行された場合につい
て、具体的に説明する。なお当初のプログラムカウンタ
(PC)の値は0x400とし、レジスタRaの値は1
0とする。また、停止アドレスとして0x410番地が
設定され、ブレークアドレスは設定されていないものと
する。
【0126】利用者は、ステップS402で、プログラ
ム実行コマンドを入力する。ステップS403で、入力
されたコマンドが解釈され、ステップS404でプログ
ラム実行処理が行われる。ステップS404では、ソフ
トウエアシミュレータである実行ターゲット環境302
に対して、命令シミュレーション実行の制御を行う。ソ
フトウエアシミュレータでは、ステップS1101で実
行アドレス0x400番地が停止アドレスである0x4
10番地であるか判定する。停止アドレスに到達してい
ないので、ステップS1102に進む。ステップS11
02で、ブレークアドレスの判定を行うが、ブレークア
ドレスが設定されていないので、ステップS1103に
進む。ステップS1103では、0x400番地のcm
p命令のシミュレーションを行う。続いてステップS1
104では、トレースデータの出力を行うために、ステ
ップS1201に進む。ステップS1201では、前記
cmp命令のトレースデータをトレースデータ情報30
6に記録する。記録されたトレースデータ情報を図13
(b)の1307に示す。次にステップS1202で当
該命令がフラグ更新命令かどうか判定する。前記cmp
命令は、フラグc0を更新する命令なのでステップS1
203に進む。ステップS1203で、条件フラグ値ト
レースデータを記録する。記録されたトレースデータ情
報を図13(b)の1308に示す。以下同様に、0x
404番地、0x408番地、0x40c番地の命令シ
ミュレーションが行われ、図13(b)の1309、1
310、1311に示すトレースデータが記録される。
【0127】以上で、プログラム実行処理のステップS
404が終わり、ステップS405に進み、停止したア
ドレスの前後のコードを表示するなど表示更新処理を行
う。その後、次のコマンドの入力待ちとなる(ステップ
S402)。
【0128】次に、トレースデータ情報306に蓄積さ
れたトレースデータを、利用者が出力する場合について
説明する。
【0129】図14に、利用者からトレースデータ出力
コマンドが入力された場合に、ステップS404でトレ
ースデータ出力処理が行われる際の処理フローを示す。
【0130】トレースデータ出力は、利用者がデバッグ
対象のプログラムの実行過程を確認するために、プログ
ラム実行の後に行う。
【0131】ステップS1401で、全てのトレースデ
ータの出力が完了したかどうかを判定する。完了した場
合は終了し、完了していない場合はステップS1402
に進む。
【0132】ステップS1402で、トレースデータ情
報306からトレースデータを順に1つ取り出す。
【0133】ステップS1403で、トレースデータの
種別を判別する。条件フラグ値トレースデータの場合
は、ステップS1404に進み、実行命令トレースデー
タの場合はステップS1405に進む。
【0134】ステップS1404で、当該トレースデー
タから条件フラグの種別とその値を読み取り記憶する。
【0135】ステップS1405で、当該トレースデー
タから命令フィールドを読みとり、トレースされた命令
が条件付き命令か判定する。条件付き命令の場合ステッ
プS1406に進み、そうでない場合は、ステップS1
409に進む。
【0136】ステップS1406で、条件付き命令の場
合は、ステップS1404で記憶したフラグ値を参照す
る。
【0137】ステップS1407で、条件フラグ値から
条件付き命令が実行されたか判定する。実行された場合
は、ステップS1409に進む。実行されない場合は、
ステップS1408に進む。
【0138】ステップS1408で、実行されなかった
演算部分を『<>』で括って命令を出力し、ステップS
1401に戻る。
【0139】ステップS1409で、実行された命令を
出力し、ステップS1401に戻り、全トレースデータ
について、出力処理を繰り返す。
【0140】以上で、トレースデータ出力処理のステッ
プS404が終わり、ステップS405の表示更新処理
に進む。この場合、停止アドレスやメモリ内容が変化し
ている訳ではないので、表示の更新は行われない。
【0141】以下、図6に示したプログラムの0x40
0番地から0x40c番地まで実行された場合につい
て、具体的に説明する。レジスタRaの値は10とす
る。この場合、トレースデータ情報306には、図13
(b)の1307、1308、1309、1310、1
311に示すトレースデータが記憶されている。
【0142】図15に、図6に示した命令列が実行され
た場合の、トレースデータの出力例を示す。
【0143】利用者は、ステップS402で、トレース
データ出力コマンドを入力する。ステップS403で、
入力されたコマンドが解釈され、ステップS404でト
レースデータ出力処理を行うため、ステップS1401
に進む。ステップS1401では、トレースデータ情報
306に記憶されている全トレースデータが出力済みか
どうかを判定する。全トレースデータが出力済みでない
のでステップS1402に進む。ステップS1402
で、トレースデータを1つ取り出し、1307に示すト
レースデータを得る。ステップS1403でトレースデ
ータ種別を判定し、1307は種別が実行命令なのでス
テップS1405に進む。ステップS1405で条件付
き命令かどうかを判定する。1307に記録されている
命令は条件付き命令ではないのでステップS1409に
進む。ステップS1409で通常形式で『0x400:
cmp Ra==10,c0』と出力する。
【0144】同様にして順次出力し、条件付き命令で実
行されなかったアドレス0x408の命令について、実
行されなかった演算部分が『<mov Rc,Rb>』
と出力される。
【0145】以上のように、図13(b)に示すトレー
スデータを入力とし、図14に示す処理の結果、図15
のデータが出力される。図15はトレースデータ出力コ
マンドにより出力されたトレースデータファイルの内容
であり、ファイルとは限らず、画面上に表示する場合も
ある。
【0146】以上のように構成されたデバッガでは、利
用者が命令トレース出力でプログラムの実行経過を確認
する場合に、実行されない条件付き命令を表示形式を変
えて表示することにより、条件付き命令で実現された条
件実行の論理を判りやすく表示することができ、デバッ
グ対象のプログラムの実行の経過を知ることができ、デ
バッグすることが可能となる。
【0147】なお、本実施の形態では、ステップS14
08では、条件付き命令が実行されない場合の表示方法
を、実行されない演算部分を『<>』で括って出力した
が、取り消し線を上書きすることや表示フォントのサイ
ズを小さくする、表示文字列を『未実行』とするなど、
他の方法でも構わない。
【0148】なお、本実施の形態では、実行ターゲット
環境302をソフトウエアシミュレータとしたが、評価
ボードとして、トレース出力処理S1104をハードウ
エアで実現されたトレース出力部で行う構成でも構わな
い。
【0149】(第三の実施の形態)次に本発明の第三の
実施の形態について、説明する。
【0150】図16は本発明の第三の実施の形態におけ
るソフトウエア開発支援システムの構成図であり、第一
の実施の形態とほぼ同一の構成である。第一の実施の形
態とは、コンパイラ202Cおよびデバッガ204Cの
処理が異なる。
【0151】図17に、本実施の形態におけるコンパイ
ラ202Cの機能ブロック図を示す。図17において、
1701はソースプログラム入力部で、ソースプログラ
ムを入力する。
【0152】1702はプログラム変換部で、ソースプ
ログラムを中間記述レベル表現に変換する。
【0153】1703はプログラム最適化部で、中間記
述レベル表現のプログラム中のオペレーションを移動し
て実行順序を変更することや不要なオペレーションを削
除することによって最適化を行ないつつ実行コードを生
成する。
【0154】1704はデータ依存検出部で、プログラ
ム最適化部1703でのデータ解析より得られたデータ
連鎖情報に基づいて、対象マイコンでの条件フラグの生
存区間を求め、フラグ生存区間情報1709に登録す
る。
【0155】1705はフラグ生存区間情報出力部で、
フラグ生存区間情報1709をオブジェクトコード20
3の中に追記して出力する。
【0156】1706は実行コード出力部で、プログラ
ム最適化部1703によって生成された実行コードをオ
ブジェクトコード203として出力する。
【0157】1707はデバッグ情報生成部で、デバッ
グに必要な識別子や行番号と実行コードの関連づけなど
のデバッグ情報を生成する。
【0158】1708はデバッグ情報出力部で、デバッ
グ情報生成部1707によって生成されたデバッグ情報
をオブジェクトファイル203の中に追記してデバッグ
情報として出力する。
【0159】図18に、データ依存検出部1704の処
理フローを示す。ステップS1801では、プログラム
最適化部1703からデータの使用定義連鎖情報を取得
し、全ての使用定義連鎖情報についてステップS180
2、S1803の処理を繰り返す。
【0160】ステップS1802では、使用定義連鎖情
報が条件フラグに関わるものか判定する。条件が成り立
てばステップS1803に進み、成り立たなければSス
テップ1801に進む。
【0161】ステップS1803では、条件フラグの種
別と共に、条件フラグの定義アドレスおよび参照アドレ
スを生存区間として、フラグ生存区間情報1709に登
録する。
【0162】図19に、データ使用定義連鎖情報の一例
を示す。1901は、データ使用定義連鎖情報番号であ
る。1902は、該当する命令コードである。1903
は、UDリストであり、該当命令コードで使用する資源
を定義している命令コードを指し示すリストであり、リ
ストの要素はデータ使用定義連鎖情報番号である。レジ
スタRa、Rb、Rc、Rd、c0、c1の資源毎にリ
ストを持つ。1904は、DUリストであり、該当命令
コードで定義する資源を使用している命令コードを指し
示すリストであり、リストの要素はデータ使用定義連鎖
情報番号である。レジスタRa、Rb、Rc、Rd、c
0、c1の資源毎にリストを持つ。
【0163】例えば、データ使用定義連鎖情報番号2
は、「cmp Ra==10、c0」命令コードに関し
てであり、この命令コードで使用される資源Raを定義
している命令は、データ使用定義連鎖情報番号1で示さ
れる命令コードであり、また、定義される資源c0を使
用する命令は、データ使用定義連鎖情報番号3、4で示
される命令コードであることを示している。データ使用
定義連鎖情報は、データの依存関係を調べるためにプロ
グラム最適化部1703で生成される。
【0164】図20(a)に、フラグ生存区間情報を示
す。フラグの生存区間とは、フラグがフラグ更新命令に
より定義された時点から、条件付き命令やフラグ値転送
命令などにより、参照される時点までの区間のことであ
り、この間は、フラグの値が同一である。2001は、
フラグ種別フィールドである。2002は、開始アドレ
スフィールドであり、2003は、終了アドレスフィー
ルドであり、フラグが生存している区間を示す。
【0165】図20(b)に、フラグ生存区間情報の例
を示す。例えば、2004の例は、フラグc0がアドレ
ス0x400で定義され、0x400から0x408の
間で参照されるということを示す。
【0166】図21は、デバッガ204Cの機能ブロッ
ク図であり、第一の実施の形態と同様に、301、30
2、303、304、305、306は、それぞれデバ
ッガ処理部、実行ターゲット環境、オブジェクトコード
情報、デバッグ情報、命令形式情報、トレースデータ情
報である。また、2101は、フラグ生存区間情報であ
り、条件フラグの生存するアドレス区間を示すものであ
る。フラグ生存区間情報2101は、コンパイラ202
Cにより生成されたデバッグ情報の中に含まれた形でデ
バッガに読み込まれる。
【0167】図22は、デバッガ処理部301の処理フ
ロー図であり、本発明の第一の実施の形態と同一の処理
フロー図である。
【0168】図23に、本実施の形態におけるステップ
S405の表示更新処理の処理フローを示す。
【0169】ステップS2301では、実行ターゲット
環境302で、デバッグ対象のプログラムの実行状態を
調べ、実行が停止している場合は、ステップS2302
に進む。実行が停止しておらず、プログラム実行中の場
合は、表示の更新が不必要なので処理を終了する。実行
停止の場合は、後続のステップで、デバッグ対象のプロ
グラムのどの箇所で停止しているかをプログラム開発者
に表示する処理を行う。
【0170】ステップS2302で、デバッグ対象プロ
グラムの停止アドレスを取得する。
【0171】次にステップS2303で、フラグ生存区
間情報2101を参照して、全ての条件フラグについ
て、現在の実行停止アドレスを含む生存区間の情報を取
り出す。
【0172】次にステップS2304で、前記実行停止
アドレスを含む生存区間が存在する全ての条件フラグの
値を実行ターゲット環境302から取得する。
【0173】次にステップS2305で、現在の表示対
象となっているアドレス区間を求め、その最初のアドレ
スから最後のアドレスまで以降の処理を繰り返す。全て
の表示対象アドレスについての処理が完了すれば、終了
する。なお、現在の表示対象となっているアドレス区間
は、例えばソースコードを表示するコードウィンドウ上
で現在の停止アドレスを中心として前後数行(ウィンド
ウの表示行数で決まる)を表示する場合の対象となる区
間であり、これはデバッガ204Cの表示を行うところ
(デバッガ処理部301内)が管理して情報である。
【0174】次にステップS2306で、前記表示対象
のアドレスからデバッガ内で記憶しているオブジェクト
コード情報303を参照して、対応するアドレスの命令
コードを読みだす。
【0175】次にステップS2307で、前記命令コー
ドを逆アセンブルし、命令コードに対応するアセンブル
行文字列を得る。なお、逆アセンブルは、デバッガ内で
管理する命令形式情報305を参照することにより実現
する。
【0176】次にステップS2308で、命令コードか
らデバッガ内で管理している命令形式情報305を参照
して、条件付き命令であるかどうかを判定する。条件付
き命令である場合は、ステップS2309に進む。条件
付き命令でない場合は、ステップS2313に進む。
【0177】ステップS2309で、当該条件フラグに
ついて、ステップS2303で求めた生存区間情報を参
照して、当該条件フラグが現在の表示対象アドレスに対
して有効かどうかを判断する。つまり、ステップS23
04で取得した条件フラグ値が有効かどうかを求める。
生存区間内であれば、ステップS2310に進み、そう
でなければステップS2314に進む。
【0178】ステップS2310で、ステップS230
4で取得した条件フラグ値を参照する。
【0179】ステップS2311で、前記条件フラグ値
を参照して、条件付き命令が実行されるかどうかを判定
する。実行される場合は、ステップS2313に進み、
実行されない場合は、ステップS2312に進む。
【0180】ステップS2312で、条件付き命令が実
行されない場合は、実行されない演算部分を薄いグレイ
色で表示する。さらに、表示対象アドレスが実行停止ア
ドレスであれば、条件フラグ部を反転した表示色で表示
する。
【0181】ステップS2313では、表示対象アドレ
スが実行停止アドレスの場合は、対応するアセンブル行
文字列を反転した表示色で表示する。表示対象アドレス
が実行停止アドレスでない場合は、通常の表示色のまま
で表示する。
【0182】ステップS2314では、ステップS23
04で取得した条件フラグ値が有効ではなく、条件付き
命令の実行有無を確定できないので、通常の表示色に加
えて、下線を付けて(未確定の形式で)表示する。
【0183】次に、ステップS2305に戻り、表示領
域のアドレス区間に対して、繰り返し処理を行う。
【0184】図24に、表示例を示す。なお、図24
(a)〜(d)では、薄いグレイ色で表示すべき実行さ
れない演算部分を便宜上四角で囲んで示しているが、実
際は、四角の囲み線が無く、薄いグレイ色で表示されて
いるものとする。
【0185】以上のように本実施の形態によれば、ブレ
ークポイントで、デバッグ対象プログラムが実行停止し
た場合に、その時の条件フラグ値を取得し、また条件フ
ラグの生存区間と対応させることにより、実行停止アド
レスだけでなく前後のアドレスについても、条件付き命
令の実行/未実行を判定し表示形式を変えて表示するこ
とにより、条件付き命令で実現された条件実行の論理を
判りやすく表示することができ、デバッグ対象のプログ
ラムの実行の経過を知ることができ、デバッグすること
が可能となる。
【0186】なお、本実施の形態では、ステップS23
12では、条件付き命令が実行されない場合の表示方法
を、実行されない演算部分を薄いグレイ色として表示し
たが、取り消し線を上書きすることや表示フォントのサ
イズを小さくする、表示文字列を『未実行』とするな
ど、他の方法でも構わない。
【0187】なお、請求項9に記載の機械可読記録媒体
は、この第三の実施の形態におけるオブジェクトファイ
ル203であり、従来のオブジェクトファイルに比べて
フラグ生存区間情報(1709)が追加されている。
【0188】
【発明の効果】以上説明したように、本発明によれば、
条件付き命令の実行条件フラグ値を取得することによ
り、条件付き命令で実際に実行される処理内容を判別す
ることができ、利用者にプログラムの実行過程をわかり
やすく表示することができる。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態における表示更新処
理フロー図
【図2】本発明の第一の実施の形態にかかるシステムの
構成を示す図
【図3】本発明の第一の実施の形態におけるデバッガの
機能ブロック図
【図4】本発明の第一の実施の形態におけるデバッグ処
理フロー図
【図5】デバッグ対象のC言語プログラムの一部を示す
【図6】デバッグ対象のC言語プログラムの一部に対応
するアセンブル例を示す図
【図7】本発明の第一の実施の形態におけるステップ実
行画面の例を示す図
【図8】本発明の第二の実施の形態にかかるシステムの
構成を示す図
【図9】本発明の第二の実施の形態におけるデバッガの
機能ブロック図
【図10】本発明の第二の実施の形態におけるデバッグ
処理フロー図
【図11】本発明の第二の実施の形態におけるシミュレ
ータの処理フロー図
【図12】本発明の第二の実施の形態におけるシミュレ
ータのトレースデータ生成処理の処理フロー図
【図13】(a)は本発明の第二の実施の形態における
トレースのフレームデータの説明図、(b)は本発明の
第二の実施の形態におけるトレースのフレームデータの
例を示す図
【図14】本発明の第二の実施の形態におけるトレース
出力処理の処理フロー図
【図15】本発明の第二の実施の形態におけるトレース
の出力例を示す図
【図16】本発明の第三の実施の形態にかかるシステム
の構成を示す図
【図17】本発明の第三の実施の形態におけるコンパイ
ラの機能ブロック図
【図18】本発明の第三の実施の形態におけるフラグ生
存区間情報出力部の処理フロー図
【図19】本発明の第三の実施の形態における使用定義
連鎖情報の説明図
【図20】(a)は本発明の第三の実施の形態における
フラグ生存区間情報の説明図、(b)は本発明の第三の
実施の形態におけるフラグ生存区間情報の例を示す図
【図21】本発明の第三の実施の形態におけるデバッガ
の機能ブロック図
【図22】本発明の第三の実施の形態におけるデバッグ
処理フロー図
【図23】本発明の第三の実施の形態における表示更新
処理フロー図
【図24】(a)〜(d)は本発明の第三の実施の形態
における実行停止時の表示例を示す図
【図25】本発明の実施の形態における命令形式情報の
説明図
【図26】従来技術にかかるシステムの構成を示す図
【図27】従来技術におけるデバッガの機能ブロック図
【図28】従来技術におけるデバッグ処理フロー図
【図29】従来技術における表示更新処理フロー図
【図30】従来技術におけるステップ実行画面の例を示
す図
【符号の説明】
201 ソースプログラム 202、202C コンパイラ 203 オブジェクトコード 204A、204B、204C デバッガ 301 デバッガ処理部 302 実行ターゲット環境 303 オブジェクトコード情報 304 デバッグ情報 305 命令形式情報 306 トレースデータ情報 1301 フレームデータのフレーム番号フィールド 1302 フレームデータの時刻フィールド 1303 フレームデータのデータ種別フィールド 1304 フレームデータのアドレスフィールド 1305 フレームデータの命令フィールド 1306 フレームデータのデータフィールド 1307、1308、1309、1310、1311
フレームデータの一例 1709 フラグ生存区間情報 1901 連鎖情報番号 1902 連鎖情報命令コード 1903 連鎖情報UDリスト 1903 連鎖情報DUリスト 2001 フラグ生存区間情報のフラグ種別フィールド 2002 フラグ生存区間情報の開始アドレスフィール
ド 2003 フラグ生存区間情報の終了アドレスフィール
ド 2004、2005、2006 フラグ生存区間情報の
一例 2101 フラグ生存区間情報 3001 命令形式情報の命令フォーマット情報 3002 命令形式情報のニーモニック文字列情報 3003 命令形式情報のサイクル数情報 3004 命令形式情報の条件付き命令情報 3005 命令形式情報のフラグ更新情報 3006、3007、3008 命令形式情報の例
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B042 HH01 HH23 HH30 HH32 HH34 MC12 MC13 NN01 5B081 AA06 AA07 BB07 CC00

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 デバッグ対象のマイコンのプログラムを
    画面上に表示する際、前記プログラムの実行停止時の停
    止アドレスが他のアドレスと区別できるように表示する
    ソフトウエアデバッガであって、 前記プログラムのステップ実行処理を行う際に前記停止
    アドレスの命令が条件付き命令かどうかを判定する機能
    と、 前記命令が条件付き命令であった場合に前記命令の条件
    フラグ値を取得する機能と、 前記条件フラグ値の値により条件付き命令が実行される
    かどうかを判定する機能と、 前記判定結果に応じて前記停止アドレスの命令の表示方
    法を変えて前記画面に表示する機能とを設けたことを特
    徴とするソフトウエアデバッガ。
  2. 【請求項2】 条件付き命令が実行されるかどうかの判
    定結果に応じて停止アドレスの命令の表示方法を変えて
    画面に表示する際、停止アドレス部分を反転表示する機
    能を設けたことを特徴とする請求項1記載のソフトウエ
    アデバッガ。
  3. 【請求項3】 条件付き命令が実行されるかどうかの判
    定結果に応じて停止アドレスの命令の表示方法を変えて
    画面に表示する際、停止アドレス部分と条件フラグ部分
    を反転表示する機能を設けたことを特徴とする請求項1
    記載のソフトウエアデバッガ。
  4. 【請求項4】 デバッグ対象のマイコンのプログラムの
    実行処理を行った後、前記プログラムの命令をトレース
    出力するソフトウエアデバッガであって、 実行された命令がフラグ更新命令であった場合に更新さ
    れたフラグ値をトレースデータとして出力する機能と、 トレース出力対象の命令が条件付き命令かどうかを判定
    する機能と、 前記判定結果がトレース出力対象の命令が条件付き命令
    であった場合に前記トレースデータとして出力されたフ
    ラグ値を取得する機能と、 前記フラグ値の値により条件付き命令が実行されるかど
    うかを判定する機能と、 前記判定結果に応じてトレース出力する命令の出力方法
    を変えて出力する機能とを設けたことを特徴とするソフ
    トウエアデバッガ。
  5. 【請求項5】 デバッグ対象のマイコンのプログラムを
    画面上に表示する際、前記プログラムの実行停止時の停
    止アドレスが他のアドレスと区別できるように表示する
    ソフトウエア開発支援システムであって、 前記デバッグ対象のプログラムから全ての条件付き命令
    の条件フラグの生存区間を検出する機能と、 表示対象アドレスの命令が条件付き命令かどうかを判定
    する機能と、 前記判定結果が条件付き命令であった場合に前記表示対
    象アドレスと停止アドレスが前記条件付き命令で参照さ
    れる条件フラグの同一の生存区間内にあるかどうかを判
    定する機能と、 前記判定結果が条件付き命令であった場合に前記条件付
    き命令で参照される条件フラグ値を取得する機能と、 前記条件フラグ値の値により前記条件付き命令が実行さ
    れるかどうかを判定する機能と、 前記表示対象アドレスと停止アドレスが前記条件付き命
    令で参照される条件フラグの同一の生存区間内にあるか
    どうかの判定結果と前記条件フラグ値の値により前記条
    件付き命令が実行されるかどうかの判定結果とに応じ
    て、停止アドレスおよびその前後のアドレスの命令の表
    示方法を変えて前記画面に表示する機能と設けたことを
    特徴とするソフトウエア開発支援システム。
  6. 【請求項6】 マイコンのコンパイラであって、 命令コード列に含まれる条件付き命令の条件フラグの生
    存区間を検出する機能と、 前記検出した条件フラグの生存区間の情報を出力する機
    能とを設けたことを特徴とするコンパイラ。
  7. 【請求項7】 デバッグ対象のマイコンのプログラムを
    画面上に表示する際、前記プログラムの実行停止時の停
    止アドレスが他のアドレスと区別できるように表示する
    ソフトウエアデバッガであって、 表示対象アドレスの命令が条件付き命令かどうかを判定
    する機能と、 前記判定結果が条件付き命令であった場合に前記条件付
    き命令で参照される条件フラグの生存区間内に前記表示
    対象アドレスがあるかどうかを判定する機能と、 前記判定結果が条件付き命令であった場合に前記条件付
    き命令で参照される条件フラグ値を取得する機能と、 前記条件フラグ値の値により前記条件付き命令が実行さ
    れるかどうかを判定する機能と、 前記条件フラグの生存区間内に前記表示対象アドレスが
    あるかどうかの判定結果と前記条件フラグ値の値により
    前記条件付き命令が実行されるかどうかの判定結果とに
    応じて、停止アドレスおよびその前後のアドレスの命令
    の表示方法を変えて前記画面に表示する機能とを設けた
    ことを特徴とするソフトウエアデバッガ。
  8. 【請求項8】 請求項6記載のコンパイラから出力され
    る条件フラグの生存区間の情報を入力する機能を設けた
    ことを特徴とする請求項7記載のソフトウエアデバッ
    ガ。
  9. 【請求項9】 マイコンプログラムの機械語コードおよ
    びその格納アドレスと、条件付き命令の条件フラグの定
    義アドレスおよび参照アドレスとの情報を記録したこと
    を特徴とする機械可読記録媒体。
JP2001238031A 2001-08-06 2001-08-06 ソフトウエアデバッガとソフトウエア開発支援システム Pending JP2003050716A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001238031A JP2003050716A (ja) 2001-08-06 2001-08-06 ソフトウエアデバッガとソフトウエア開発支援システム
US10/210,206 US7266809B2 (en) 2001-08-06 2002-08-02 Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
CNB021278067A CN1203409C (zh) 2001-08-06 2002-08-06 软件调试方法和软件开发辅助方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001238031A JP2003050716A (ja) 2001-08-06 2001-08-06 ソフトウエアデバッガとソフトウエア開発支援システム

Publications (1)

Publication Number Publication Date
JP2003050716A true JP2003050716A (ja) 2003-02-21

Family

ID=19069021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001238031A Pending JP2003050716A (ja) 2001-08-06 2001-08-06 ソフトウエアデバッガとソフトウエア開発支援システム

Country Status (3)

Country Link
US (1) US7266809B2 (ja)
JP (1) JP2003050716A (ja)
CN (1) CN1203409C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006087922A1 (ja) * 2005-02-15 2006-08-24 Matsushita Electric Industrial Co., Ltd. デバッグ装置、デバッグ方法およびプログラム
CN102957773A (zh) * 2011-08-29 2013-03-06 比亚迪股份有限公司 一种手机软件测试方法及系统
KR20140006861A (ko) * 2011-01-13 2014-01-16 에이알엠 리미티드 처리 장치, 추적 유닛 및 진단 장치

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
EP1349071A1 (en) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrated circuit with direct debugging architecture
US6981248B2 (en) * 2002-05-02 2005-12-27 International Business Machines Corporation Conditional breakpoint encountered indication
US20050028036A1 (en) * 2003-07-30 2005-02-03 Kohsaku Shibata Program debug apparatus, program debug method and program
US8136096B1 (en) * 2004-07-23 2012-03-13 Green Hills Software, Inc. Backward post-execution software debugger
US8271955B1 (en) * 2004-07-23 2012-09-18 Green Hille Software, Inc. Forward post-execution software debugger
US8132159B1 (en) 2004-07-23 2012-03-06 Green Hills Software, Inc. Post-execution software debugger with event display
US7673296B2 (en) * 2004-07-28 2010-03-02 Hewlett-Packard Development Company, L.P. Method and system for optional code scheduling
US7552425B2 (en) * 2004-08-19 2009-06-23 International Business Machines Corporation Implementing enhanced compiled breakpoint analysis
US7735066B1 (en) * 2004-10-08 2010-06-08 Carnegie Mellon University Debugging interface
US7720670B2 (en) * 2005-05-16 2010-05-18 Texas Instruments Incorporated Saving resources by deducing the total prediction events
JP4718901B2 (ja) * 2005-05-27 2011-07-06 パナソニック株式会社 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム
JP2007058731A (ja) * 2005-08-26 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、及び並列命令実行対応デバッグ装置
JP4860240B2 (ja) * 2005-11-11 2012-01-25 パナソニック株式会社 翻訳方法および実行通知命令の埋め込み方法
US7707394B2 (en) * 2006-05-30 2010-04-27 Arm Limited Reducing the size of a data stream produced during instruction tracing
JP4894362B2 (ja) * 2006-06-09 2012-03-14 富士通株式会社 稼働状況監視プログラム
US8060221B2 (en) * 2006-06-13 2011-11-15 Mitsubishi Electric Corporation Peripheral device of programmable logic controller
US20080209401A1 (en) * 2007-02-22 2008-08-28 Microsoft Corporation Techniques for integrating debugging with decompilation
US8239832B2 (en) * 2007-05-25 2012-08-07 Microsoft Corporation In-process debugging using external debugging infrastructure
JP4856023B2 (ja) * 2007-08-08 2012-01-18 パナソニック株式会社 リアルタイムウォッチ装置及びその方法
US20090282390A1 (en) * 2008-05-08 2009-11-12 Microsoft Corporation Parallel Run-Time Rendering Debugger
EP2286356A4 (en) * 2008-06-03 2013-03-06 Whirlpool Co EQUIPMENT DEVELOPMENT TOOLKIT
CN101515249B (zh) * 2009-03-26 2011-08-03 华亚微电子(上海)有限公司 错误检查方法
US8806436B2 (en) 2010-04-30 2014-08-12 Cray Inc. Systems and methods for debugging applications using dual code generation
CN101840372B (zh) * 2010-05-28 2012-03-14 北京邮电大学 应用符号分析的软件测试方法
US8516307B2 (en) * 2010-08-27 2013-08-20 Sap Ag Execution layer debugger
CN103106136B (zh) * 2011-11-14 2016-06-29 成都信息工程学院 一种基于x86指令集的软件动态能耗统计方法
CN102999422B (zh) * 2012-11-06 2015-11-25 太仓市同维电子有限公司 一种高效嵌入式系统调试方法
US9195457B1 (en) * 2014-06-11 2015-11-24 Amazon Technologies, Inc. Interactive application programming interface documentation
CN104461876B (zh) * 2014-11-26 2017-09-22 北京航空航天大学 一种基于运行快照序列的并行程序重现调试方法
GB2571350B (en) * 2018-02-27 2020-10-21 Advanced Risc Mach Ltd A method of accessing metadata when debugging a program to be executed on processing circuitry
CN113485748B (zh) * 2021-05-31 2022-08-12 上海卫星工程研究所 卫星条件指令系统及其执行方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5687375A (en) * 1994-10-14 1997-11-11 International Business Machines Corporation Debugging of High Performance Fortran programs with backup breakpoints
US6216143B1 (en) 1994-12-05 2001-04-10 International Business Machines Corporation Apparatus and method for generating animated color coded software traces
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
US6091896A (en) * 1995-12-22 2000-07-18 Hewlett-Packard Company Debugging optimized code using data change points
US6016555A (en) * 1997-11-19 2000-01-18 Texas Instruments Incorporated Non-intrusive software breakpoints in a processor instruction execution pipeline
US6260189B1 (en) * 1998-09-14 2001-07-10 Lucent Technologies Inc. Compiler-controlled dynamic instruction dispatch in pipelined processors
EP0992906B1 (en) * 1998-10-06 2005-08-03 Texas Instruments Inc. Apparatus and method for software breakpoint in a delay slot
US6493868B1 (en) * 1998-11-02 2002-12-10 Texas Instruments Incorporated Integrated development tool
US6480818B1 (en) * 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6571385B1 (en) * 1999-03-22 2003-05-27 Intel Corporation Early exit transformations for software pipelining
US6820250B2 (en) * 1999-06-07 2004-11-16 Intel Corporation Mechanism for software pipelining loop nests
US6681384B1 (en) * 1999-12-23 2004-01-20 International Business Machines Corporation Multi-threaded break-point
US6832370B1 (en) * 2000-05-09 2004-12-14 Hewlett-Packard Development, L.P. Data speculation within modulo scheduled loops
US7000225B2 (en) * 2000-12-07 2006-02-14 International Business Machines Corporation Method for inserting global breakpoints
US6912709B2 (en) * 2000-12-29 2005-06-28 Intel Corporation Mechanism to avoid explicit prologs in software pipelined do-while loops
US7007267B2 (en) * 2001-01-24 2006-02-28 Texas Instruments Incorporated Transparent shared memory access in a software development system
US6922826B2 (en) * 2001-07-03 2005-07-26 International Business Machines Corporation Debugger impact reduction through breakpoint motion
US6971089B2 (en) * 2001-08-01 2005-11-29 International Business Machines Corporation Debugger impact reduction through motion of induction variable based breakpoints
US7007268B2 (en) * 2001-08-20 2006-02-28 Sun Microsystems, Inc. Method and apparatus for debugging in a massively parallel processing environment
US6839893B2 (en) * 2001-10-18 2005-01-04 International Business Machines Corporation Debugger capable of providing warnings for unreachable breakpoints

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006087922A1 (ja) * 2005-02-15 2006-08-24 Matsushita Electric Industrial Co., Ltd. デバッグ装置、デバッグ方法およびプログラム
KR20140006861A (ko) * 2011-01-13 2014-01-16 에이알엠 리미티드 처리 장치, 추적 유닛 및 진단 장치
JP2014507710A (ja) * 2011-01-13 2014-03-27 アーム・リミテッド 処理装置、トレースユニット、および診断装置
US10379989B2 (en) 2011-01-13 2019-08-13 Arm Limited Processing apparatus, trace unit and diagnostic apparatus
KR102025556B1 (ko) * 2011-01-13 2019-09-26 에이알엠 리미티드 처리 장치, 추적 유닛 및 진단 장치
CN102957773A (zh) * 2011-08-29 2013-03-06 比亚迪股份有限公司 一种手机软件测试方法及系统

Also Published As

Publication number Publication date
CN1407457A (zh) 2003-04-02
US20030033592A1 (en) 2003-02-13
CN1203409C (zh) 2005-05-25
US7266809B2 (en) 2007-09-04

Similar Documents

Publication Publication Date Title
JP2003050716A (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
US5926638A (en) Program debugging system for debugging a program having graphical user interface
US6286132B1 (en) Debugging support apparatus, a parallel execution information generation device, a computer-readable recording medium storing a debugging support program, and a computer-readable recording medium storing a parallel execution information generation program
US20020109722A1 (en) System and method for performing type checking for hardware device nodes in a graphical program
JP4272371B2 (ja) デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。
JP3612294B2 (ja) デバッグ方法およびデバッグ装置
US8271955B1 (en) Forward post-execution software debugger
US9471286B2 (en) System and method for providing code completion features for code modules
CN106021101B (zh) 对移动终端进行测试的方法及装置
US20020109726A1 (en) System and method for accessing registers of a hardware device in a graphical program
US20050102583A1 (en) Methodology for debugging RTL simulations of processor based system on chip
US6874148B1 (en) System and method for exporting a graphical program to a shared library
JP2002202899A (ja) デバッガの機能拡張方法、デバッグシステム及びデバッガプログラムを記録した記録媒体
US20030177471A1 (en) System and method for graphically developing a program
US20020147963A1 (en) Method and apparatus for generating machine control instructions
JP2005128692A (ja) シミュレータ及びシミュレーション方法
US6611924B1 (en) Reducing code size of debug output statements
CN112765018B (zh) 一种仪器仪表调试系统及方法
JPH096646A (ja) プログラムシミュレーション装置
KR100417655B1 (ko) 최적화과정을참조하면서동작검증을행하도록디버그정보를생성하는디버그정보생성장치및프로그래머가최적화과정을의식하면서동작검증을할수있는디버그장치로이루어지는프로그램개발시스템
JP2803090B2 (ja) Mpuシミュレーション方法及びmpuシミュレータ
US20020062208A1 (en) Method and apparatus for visualization of microprocessor pipeline operation
Studio Getting Started Guide
WO2024069730A1 (ja) デバッグ装置及びデバッグ方法