JP2000076094A - シミュレータ - Google Patents

シミュレータ

Info

Publication number
JP2000076094A
JP2000076094A JP10265721A JP26572198A JP2000076094A JP 2000076094 A JP2000076094 A JP 2000076094A JP 10265721 A JP10265721 A JP 10265721A JP 26572198 A JP26572198 A JP 26572198A JP 2000076094 A JP2000076094 A JP 2000076094A
Authority
JP
Japan
Prior art keywords
debug
code
object code
link information
execution
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.)
Granted
Application number
JP10265721A
Other languages
English (en)
Other versions
JP4149047B2 (ja
Inventor
Kunihiro Akiyoshi
邦洋 秋吉
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP26572198A priority Critical patent/JP4149047B2/ja
Publication of JP2000076094A publication Critical patent/JP2000076094A/ja
Application granted granted Critical
Publication of JP4149047B2 publication Critical patent/JP4149047B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】本発明は高級言語で作成したデバッグコードを
オブジェクトコードとリンクさせて実行してデバッグ効
率を向上させたシミュレータを提供する。 【解決手段】シミュレータは、シミュレートプログラム
であるオブジェクトコードを実行する際、デバッグコー
ドリンク情報に基づいて、実行するオブジェクトコード
アドレス毎に、当該オブジェクトコードアドレスに対応
してデバッグコード情報が設定されているかチェック
し、リンクされていると、当該オブジェクトコードアド
レスのオブジェクトコードの実行と同期して、リンクさ
れているデバッグコードを実行する。このとき、当該リ
ンクされているデバッグコードが実行対象であるか調
べ、実行対象であると、ホストCPUシステムのメモリ
のアドレスを因数としてデバッグコードをコールして、
当該コールしたデバッグコードを実行する。

Description

【発明の詳細な説明】
【0001】
【0001】
【0002】
【発明の属する技術分野】本発明は、シミュレータに関
し、詳細には、入力データに対して複雑な数学的演算を
行い、かつ、プログラムで使用する内部パラメータの連
続的な観察を視覚的に行うことでデバッグ効率を向上さ
せたシミュレータに関する。
【0003】
【0002】
【0004】
【従来の技術】CPU(Central Processing Unit )や
DSP(Digital Signal Processor)等のプロセッサを
含むCPUシステム及びこのCPUシステム用のプログ
ラムの開発においては、実際のCPUシステム(以下、
ターゲットCPUシステムという。)の完成前に、当該
ターゲットCPUシステム用に開発されたプログラム
(以下、ターゲットプログラムという。)を、ターゲッ
トCPUシステムとは別のCPUシステム(以下、ホス
トCPUシステムという。)で、ターゲットCPUシス
テムと模擬的に動作させるシミュレータを用いて、デバ
ッグしたり、性能評価を行うことが行われている。
【0005】
【0003】このようなシミュレータにおいては、プロ
グラム実行中のある特定のパラメータ、例えば、メモリ
やレジスタの内容等を視覚的に解析することが行われて
いるが、従来、このようなパラメータの内容を視覚的に
解析するためには、何らかの方法で特定のパラメータに
関するデータをファイルに出力し、グラフ表示を行うこ
とのできる他のアプリケーションで当該データに対して
データ設定してグラフ表示等の視覚的な表示を行わせる
か、シミュレータに標準で装備されている機能を利用し
て、グラフ表示等を行わせている。
【0006】
【0004】また、従来、プログラムのあるポイント
に、一時的なテストコードを挿入する場合、アセンブラ
のソースコードそのものに対して追加・変更を行い、ア
センブル、リンク、シミュレータへのローディングを順
次行うか、あるいは、テストコード挿入位置の命令をプ
ログラムメモリの空き領域への分岐命令とし、処理の追
加・変更をアセンブラ言語にて空き領域上で実現し、元
のアドレスに復帰するような、一般的にパッチ処理とい
われる作業を行うことになる。
【0007】
【0005】
【0008】
【発明が解決しようとする課題】しかしながら、このよ
うな従来のシミュレータにあっては、作成したオブジェ
クトコードの動作解析、問題点の抽出、性能向上のため
の変更等の作業を行う際、オブジェクトコードの任意の
アドレスで一時的なプログラム変更による内部データの
加工、グラフ表示、ファイル出力等の処理が必要となる
が、シミュレータに標準で備わっている機能だけでは、
開発者が必要とする状況に全て対応することは困難であ
る。
【0009】
【0006】また、複雑な演算を必要とするテストコー
ドをアセンブラ言語で実現するのは、多大な労力を必要
とし、特に、最終的には不要となるプログラムの場合に
は、その作成に費やされる時間が多いほど開発効率の低
下を招く。また、これらの必要とされる処理は、開発対
象によって異なっており、それら全ての処理を予めシミ
ュレータの機能として準備することは不可能である。
【0010】
【0007】さらに、ソースコード自体を変更する場合
には、最終的に不要となるコードが一時的に含まれる場
合もあり、バグ混入の原因ともなる。バッチ処理の場合
は、多くの労力を必要とするとともに、作成したテスト
コードが一時的なものであり、他の部分への流用が簡単
に行うことができず、再ローディング時の再現性がない
等の問題がある。
【0011】
【0008】そこで、請求項1記載の発明は、高級言語
で作成されコンパイルされた所定の処理を実行するため
のデバッグコードを、オブジェクトコードのユーザイン
ターフェイスで指定されたアドレスにリンク情報でリン
クさせ、オブジェクトコード実行時に、オブジェクトコ
ードの実行対象のアドレスに対してリンク情報でリンク
されたデバッグコードを、当該アドレスのオブジェクト
コードの実行に同期して実行することにより、グラフ表
示、ファイル出力及びデータ加工等の処理を高級言語で
作成して処理し、オブジェクトコードのアセンブラコー
ドを変更することなく、また、不要なデバッグコードを
付加することなく、高級言語で実現するとともに、オブ
ジェクトコードの任意のアドレスで、オブジェクトコー
ド命令のシミュレートに同期してデバッグコードを実現
して、プログラム開発やデバッグ時に必要となるグラフ
表示等の各種処理を、バグ混入を回避しつつ、簡単にか
つ再現性良く行えるシミュレータを提供することを目的
としている。
【0012】
【0009】請求項2記載の発明は、オブジェクトコー
ドの同一のアドレスに対してリンク情報の指定する複数
のデバッグコードの実行順序をユーザインターフェイス
の指定に応じて順序情報として設定し、オブジェクトコ
ード実行時に、オブジェクトコードの当該実行対象のア
ドレスにリンク情報でリンクされた複数のデバッグコー
ドを順序情報に応じた順序で実行することにより、内部
データのグラフ表示、ファイルへの入力、ファイルへの
出力及び最大値の検出等の汎用性の高い処理を別々のデ
バッグコードとして機能別に高級言語で準備して、これ
らのデバッグコードを意図する順序で組み合わせて用
い、より効率的なシミュレーションを簡単かつ再現性良
く行えるシミュレータを提供することを目的としてい
る。
【0013】
【0010】請求項3記載の発明は、複数のデバッグコ
ードに対して、個々にあるいは所定数を一括して当該デ
バッグコードの実行の有効/無効を有効/無効情報とし
て設定して、オブジェクトコード実行時に、複数のデバ
ッグコードの実行を有効/無効情報に応じて処理するこ
とにより、デバッグコードのリンクの設定及びリンクの
解除の作業を簡単に行えるようにし、より効率的なシミ
ュレーションを簡単かつ再現性良く行えるシミュレータ
を提供することを目的としている。
【0014】
【0011】請求項4記載の発明は、リンク情報を所定
のリンク情報ファイルとして出力するとともに、当該出
力された複数のリンク情報ファイルから1つのリンク情
報ファイルを選択してロードし、当該ロードしたリンク
情報からデバッグコードのオブジェクトコードに対する
リンクを行うことにより、デバッグコードの設定時間を
短縮するとともに、複数のデバッグコードの組み合わせ
の再現性を確保し、より効率的なシミュレーションを簡
単かつ再現性良く行えるシミュレータを提供することを
目的としている。
【0015】
【0012】
【0016】
【課題を解決するための手段】請求項1記載の発明のシ
ミュレータは、シミュレーション対象となるターゲット
CPUシステム用のオブジェクトコードをローディング
するメモリとユーザインターフェイスとを備え、前記メ
モリにローディングした前記オブジェクトコードをホス
トCPUシステム上で実行して、前記ターゲットCPU
システムの動作を前記ホストCPUシステム上でシミュ
レートするシミュレータであって、高級言語で作成され
コンパイルされた所定の処理を実行するためのデバッグ
コードと、前記デバッグコードを前記オブジェクトコー
ドの前記ユーザインターフェイスで指定されたアドレス
にリンクさせるリンク情報と、を備え、前記オブジェク
トコード実行時に、当該オブジェクトコードの実行対象
のアドレスに対して前記リンク情報でリンクされた前記
デバッグコードを、当該アドレスの前記オブジェクトコ
ードの実行に同期して実行することにより、上記目的を
達成している。
【0017】
【0013】上記構成によれば、高級言語で作成されコ
ンパイルされた所定の処理を実行するためのデバッグコ
ードを、オブジェクトコードのユーザインターフェイス
で指定されたアドレスにリンク情報でリンクさせ、オブ
ジェクトコード実行時に、オブジェクトコードの実行対
象のアドレスに対してリンク情報でリンクされたデバッ
グコードを、当該アドレスのオブジェクトコードの実行
に同期して実行するので、グラフ表示、ファイル出力及
びデータ加工等の処理を高級言語で作成して処理するこ
とができ、オブジェクトコードのアセンブラコードを変
更することなく、また、不要なデバッグコードを付加す
ることなく、高級言語で実現するとともに、オブジェク
トコードの任意のアドレスで、オブジェクトコード命令
のシミュレートに同期してデバッグコードを実現して、
プログラム開発やデバッグ時に必要となるグラフ表示等
の各種処理を、バグ混入を回避しつつ、簡単にかつ再現
性良く行うことができる。
【0018】
【0014】この場合、例えば、請求項2に記載するよ
うに、前記シミュレータは、前記オブジェクトコードの
同一のアドレスに対して前記リンク情報の指定する複数
の前記デバッグコードの実行順序を前記ユーザインター
フェイスの指定に応じて設定する順序情報を有し、前記
オブジェクトコード実行時に、当該オブジェクトコード
の当該実行対象のアドレスに前記リンク情報でリンクさ
れた前記複数のデバッグコードを前記順序情報に応じた
順序で実行してもよい。
【0019】
【0015】上記構成によれば、オブジェクトコードの
同一のアドレスに対してリンク情報の指定する複数のデ
バッグコードの実行順序をユーザインターフェイスの指
定に応じて順序情報として設定し、オブジェクトコード
実行時に、オブジェクトコードの当該実行対象のアドレ
スにリンク情報でリンクされた複数のデバッグコードを
順序情報に応じた順序で実行するので、内部データのグ
ラフ表示、ファイルへの入力、ファイルへの出力及び最
大値の検出等の汎用性の高い処理を別々のデバッグコー
ドとして機能別に高級言語で準備して、これらのデバッ
グコードを意図する順序で組み合わせて用いることがで
き、より効率的なシミュレーションを簡単かつ再現性良
く行うことができる。
【0020】
【0016】また、例えば、請求項3に記載するよう
に、前記シミュレータは、複数の前記デバッグコードに
対して、個々にあるいは所定数を一括して当該デバッグ
コードの実行の有効/無効を設定する有効/無効情報を
有し、前記オブジェクトコード実行時に、前記複数のデ
バッグコードの実行を前記有効/無効情報に応じて処理
してもよい。
【0021】
【0017】上記構成によれば、複数のデバッグコード
に対して、個々にあるいは所定数を一括して当該デバッ
グコードの実行の有効/無効を有効/無効情報として設
定して、オブジェクトコード実行時に、複数のデバッグ
コードの実行を有効/無効情報に応じて処理するので、
デバッグコードのリンクの設定及びリンクの解除の作業
を簡単に行えるようにすることができ、より効率的なシ
ミュレーションを簡単かつ再現性良く行うことができ
る。
【0022】
【0018】さらに、例えば、請求項4に記載するよう
に、前記シミュレータは、前記リンク情報を所定のリン
ク情報ファイルとして出力するとともに、当該出力され
た複数のリンク情報ファイルから1つのリンク情報ファ
イルを選択してロードし、当該ロードしたリンク情報か
ら前記デバッグコードのオブジェクトコードに対するリ
ンクを行ってもよい。
【0023】
【0019】上記構成によれば、リンク情報を所定のリ
ンク情報ファイルとして出力するとともに、当該出力さ
れた複数のリンク情報ファイルから1つのリンク情報フ
ァイルを選択してロードし、当該ロードしたリンク情報
からデバッグコードのオブジェクトコードに対するリン
クを行うので、デバッグコードの設定時間を短縮するこ
とができるとともに、複数のデバッグコードの組み合わ
せの再現性を確保することができ、より効率的なシミュ
レーションを簡単かつ再現性良く行うことができる。
【0024】
【0020】
【0025】
【発明の実施の形態】以下、本発明の好適な実施の形態
を添付図面に基づいて詳細に説明する。なお、以下に述
べる実施の形態は、本発明の好適な実施の形態であるか
ら、技術的に好ましい種々の限定が付されているが、本
発明の範囲は、以下の説明において特に本発明を限定す
る旨の記載がない限り、これらの態様に限られるもので
はない。
【0026】
【0021】図1及び図2は、本発明のシミュレータの
一実施の形態を示す図であり、図1は、本発明のシミュ
レータの一実施の形態を適用したシミュレータ1の概念
図である。
【0027】
【0022】図1において、シミュレータ1は、ターゲ
ットプログラムであるシミュレートプログラム2、シミ
ュレートプログラム2のオブジェクトコードのロードさ
れるオブジェクトコードローディングメモリ3、デバッ
グコードリンク情報4及び状態素子5等を備えており、
シミュレーション対象となるターゲットCPU(Centra
l Processing Unit )あるいはターゲットDSP(Digi
tal Signal Processor)(以下、総称して、ターゲット
CPUという。)やシミュレーション対象となる入出力
装置及びターゲット入出力I/Oに接続されるシミュレ
ーション対象となる周辺機器等で構成されるCPUシス
テム(以下、ターゲットCPUシステムという。)用に
作成されたシミュレートプログラム2の動作を、ターゲ
ットCPUシステムとは異なるCPUやDSP、状態素
子5等のCPUシステム(以下、ホストCPUシステム
という。)上でシミュレートするものである。
【0028】
【0023】このシミュレータ1は、オブジェクトコー
ドのシミュレーションを行うとともに、オブジェクトコ
ードの動作解析、問題点抽出及び性能向上を図る上で必
要となるグラフ表示、ファイル出力等の各種処理用のデ
バッグコード6をオブジェクトコードの所定アドレスの
実行と同期して実行させる。デバッグコード6は、図1
に示すように、複数のデバッグコードDc1〜Dcnか
らなり、ホストCPUシステムの所定のメモリにロード
される。このデバッグコードDc1〜Dcnは、高級言
語で作成され、例えば、当該高級言語の作成ツールに標
準で備えられているコンパイラにより機械言語(アセン
ブラ)にコンパイルされたものである。
【0024】デバッグコードリンク情報4は、リンク情
報として、オブジェクトコードの格納されているアドレ
スを示す複数のオブジェクトコードアドレスAo1〜A
onと、当該オブジェクトコードアドレスAo1〜Ao
nに対応して実行されるデバッグコードDc1〜Dcn
をリンクさせるデバッグコード情報Di1〜Dinと、
を有しており、1つのオブジェクトコードアドレスAo
1〜Aonに対して複数のデバッグコード情報Di1〜
Dinを設定することができる。また、1つのオブジェ
クトコードアドレスAo1〜Aonに設定されるデバッ
グコード情報Di1〜Dinは、その順序を任意に指定
することができ、この設定された順序は、図示しない順
序情報に格納される。
【0029】
【0025】そして、これらのデバッグコード情報Di
1〜DinとオブジェクトコードアドレスAo1〜Ao
nとは、ホストCPUシステムのディスプレイに表示さ
せて、マウス等の入力手段で選択指定することにより、
リンクされるようになっており、また、上記1つのオブ
ジェクトコードアドレスAo1〜Aonに対して設定さ
れる複数のデバッグコード情報Di1〜Dinの順序を
入力手段で任意に指定できるようになっている。すなわ
ち、シミュレータ1は、デバッグコード情報Di1〜D
inとオブジェクトコードアドレスAo1〜Aonとを
オブジェクトコードの任意のアドレスであるオブジェク
トコードアドレスAo1〜Aonに対してデバッグコー
ドDc1〜Dcnを割り付け、また、1つのオブジェク
トコードアドレスAo1〜Aonに対して割り付けるデ
バッグコード情報Di1〜Dinの順序を任意に指定す
るユーザインターフェイス機能を有しており、ユーザイ
ンターフェイスにより指定されたオブジェクトコードア
ドレスAo1〜Aonのオブジェクトコードとデバッグ
コードDc1〜Dcnとをリンクさせて、デバッグコー
ドリンク情報4に格納し、また、指定されたデバッグコ
ード情報Di1〜Dinの順序を順序情報として格納す
る。
【0030】
【0026】また、シミュレータ1は、上記デバッグコ
ードリンク情報4をデバッグコードリンク情報ファイル
7としてファイル出力する機能を有しており、ホストC
PUシステムのユーザインターフェイスからの指示に応
じてデバッグコードリンク情報4を所定のファイル形式
でデバッグコードリンク情報ファイル7としてファイル
出力する。
【0031】
【0027】さらに、シミュレータ1は、デバッグコー
ドリンク情報4の一部として、あるいは、デバッグコー
ドリンク情報4とは別に、各デバッグコードDc1〜D
cnの実行の有効/無効状態を示す有効/無効情報を有
しており、この有効/無効情報に基づいて当該デバッグ
コードDc1〜Dcnの実行及び非実行を決定して、シ
ミュレーションを行う。各デバッグコードDc1〜Dc
nについては、上記ユーザインターフェイスによりユー
ザが各デバッグコードDc1〜Dcn毎に、あるいは、
複数のデバッグコードDc1〜Dcnを一括して、適宜
有効/無効を設定することができ、シミュレータ1は、
このユーザインターフェイスからのデバッグコードDc
1〜Dcnの実行の有効/無効の設定に応じて、当該有
効/無効の設定状態を有効/無効情報に登録する。シミ
ュレータ1は、上記デバッグコードリンク情報のファイ
ル出力に際して、上記有効/無効情報をもデバッグコー
ドリンク情報ファイル7としてファイル出力する。
【0032】
【0028】シミュレータ1は、この出力したデバッグ
コードリンク情報ファイル7から任意の1つのファイル
をユーザインターフェイスの指示に応じてデバッグコー
ドリンク情報4にロードし、オブジェクトコードの実行
に際して、当該ロードしたデバッグコード情報4に基づ
いて、すなわち、オブジェクトコードアドレスAo1〜
Aonとデバッグコード情報Di1〜Dinのリンクの
設定情報、順序情報及び有効/無効情報に基づいて、当
該リンク設定情報及び順序情報に対応したリンクを行
い、有効/無効情報に基づいた処理を実行する。
【0033】
【0029】上記状態素子5は、例えば、シミュレーシ
ョン対象のターゲットレジスタ、ターゲットメモリ、タ
ーゲット周辺機器及びターゲット入出力I/O等の動作
をシミュレーションするホストCPUシステムのレジス
タ、メモリ、周辺機器、入出力I/O等であり、シミュ
レートプログラム2がシミュレートし、また、デバッグ
コードDc1〜Dcnによりデバッグ処理する。
【0034】
【0030】次に、本実施の形態の作用を説明する。シ
ミュレータ1は、ホストCPUシステム上でシミュレー
トプログラム2を実行する際、オブジェクトコードロー
ディングメモリ3にロードし、オブジェクトコードを順
次実行するが、このとき、デバッグコードリンク情報4
に基づいて実行するオブジェクトコードアドレスAo1
〜Aon毎に、当該オブジェクトコードアドレスAo1
〜Aonに対応してデバッグコード情報Di1〜Din
が設定されて当該オブジェクトコードアドレスAo1〜
AonにデバッグコードDc1〜Dcnがリンクされて
いるかチェックし、リンクされているデバッグコードD
c1〜Dcnがあると、当該オブジェクトコードアドレ
スAo1〜Aonのオブジェクトコードの実行と同期し
て、リンクされているデバッグコードDc1〜Dcnを
実行する。
【0035】
【0031】すなわち、シミュレータ1は、オブジェク
トコードを実行する際、図2に示すように、デバッグコ
ード実行判定処理を行う。まず、シミュレータ1は、今
回実行するオブジェクトコードアドレスAo1〜Aon
に対応して、デバッグコードリンク情報4にデバッグコ
ード情報Di1〜Dinが登録されているか調べ(ステ
ップS1)、登録されていないときには、そのままオブ
ジェクトコードの命令を実行して、シミュレートする
(ステップS8)。
【0036】
【0032】ステップS2で、今回実行対象のオブジェ
クトコードのオブジェクトコードアドレスAo1〜Ao
nに対応してデバッグコード情報Di1〜Dinが登録
されていると、デバッグコード情報Di1〜Dinでリ
ンクされているデバッグコードDc1〜Dcnが実行対
象であるかどうかをデバッグコードリンク情報4の有効
/無効情報から調べ(ステップS3)、実行が有効であ
ると、シミュレータ1の記憶素子アドレスを因数とし
て、すなわち、ホストCPUシステムのメモリのアドレ
スを因数としてデバッグコードDc1〜Dcnをコール
して、当該コールしたデバッグコードDc1〜Dcnを
実行する(ステップS5)。
【0037】
【0033】1つのデバッグコードDc1〜Dcnを実
行すると、次に実行するデバッグコードDc1〜Dcn
が存在するかをデバッグコードリンク情報4から調べ
(ステップS6)、実行するデバッグコードDc1〜D
cnがあるかチェックする(ステップS7)。
【0038】
【0034】ステップS7で、次に実行するデバッグコ
ードDc1〜Dcnがあると、ステップS3に戻って、
上記同様に、リンクされたデバッグコードDc1〜Dc
nが実行対象であるかどうかを有効/無効情報で調べ、
実行対象であると、当該リンクされたデバッグコードD
c1〜Dcnを実行して、再度、次に実行するデバッグ
コードDc1〜Dcnがあるかをデバッグコードリンク
情報4で調べる(ステップS3〜S6)。
【0039】
【0035】上記処理を順次行って、ステップS7で、
次に実行するデバッグコードDc1〜Dcnがないとき
には、当該オブジェクトコードアドレスAo1〜Aon
のオブジェクトコードの命令を実行する(ステップS
8)。
【0040】
【0036】上記処理を、オブジェクトコードアドレス
Ao1〜Aonのそれぞれについて行って、全てのオブ
ジェクトコードアドレスAo1〜Aonのオブジェクト
コードの処理及びリンクされているデバッグコードDc
1〜Dcnの処理を実行すると、処理を終了する。
【0041】
【0037】このように、本実施の形態のシミュレータ
1は、高級言語で作成されコンパイルされた所定の処理
を実行するためのデバッグコードDc1〜Dcnを、ユ
ーザインターフェイスで指定されたオブジェクトコード
アドレスAo1〜Aonにリンク情報であるデバッグコ
ード情報Di1〜Dinでリンクさせ、オブジェクトコ
ード実行時に、オブジェクトコードの実行対象のオブジ
ェクトコードアドレスAo1〜Aonに対してデバッグ
コード情報Di1〜Dinでリンクされたデバッグコー
ドDc1〜Dcnを、当該オブジェクトコードアドレス
Ao1〜Aonのオブジェクトコードの実行に同期して
実行している。
【0042】
【0038】したがって、グラフ表示、ファイル出力及
びデータ加工等の処理を高級言語で作成して処理するこ
とができ、オブジェクトコードのアセンブラコードを変
更することなく、また、不要なデバッグコードを付加す
ることなく、高級言語で実現するとともに、オブジェク
トコードの任意のオブジェクトコードアドレスAo1〜
Aonで、オブジェクトコード命令のシミュレートに同
期してデバッグコードDc1〜Dcnを実現して、プロ
グラム開発やデバッグ時に必要となるグラフ表示等の各
種処理を、バグ混入を回避しつつ、簡単にかつ再現性良
く行うことができる。
【0043】
【0039】また、シミュレータ1は、オブジェクトコ
ードの同一のオブジェクトコードアドレスAo1〜Ao
nに対してリンク情報として設定された複数のデバッグ
コード情報Di1〜Dinの指定する複数のデバッグコ
ードDc1〜Dcnの実行順序をユーザインターフェイ
スの指定に応じて順序情報として設定し、オブジェクト
コード実行時に、オブジェクトコードの当該実行対象の
オブジェクトコードアドレスAo1〜Aonにデバッグ
コード情報Di1〜Dinでリンクされた複数のデバッ
グコードDc1〜Dcnを順序情報に応じた順序で実行
している。
【0044】
【0040】したがって、内部データのグラフ表示、フ
ァイルへの入力、ファイルへの出力及び最大値の検出等
の汎用性の高い処理を別々のデバッグコードDc1〜D
cnとして機能別に高級言語で準備して、これらのデバ
ッグコードDc1〜Dcnを意図する順序で組み合わせ
て用いることができ、より効率的なシミュレーションを
簡単かつ再現性良く行うことができる。
【0045】
【0041】さらに、シミュレータ1は、複数のデバッ
グコードDc1〜Dcnに対して、個々にあるいは所定
数を一括して当該デバッグコードDc1〜Dcnの実行
の有効/無効を有効/無効情報として設定して、オブジ
ェクトコード実行時に、複数のデバッグコードDc1〜
Dcnの実行を有効/無効情報に応じて処理している。
【0046】
【0042】したがって、デバッグコードDc1〜Dc
nのリンクの設定及びリンクの解除の作業を簡単に行え
るようにすることができ、より効率的なシミュレーショ
ンを簡単かつ再現性良く行うことができる。
【0047】
【0043】また、シミュレータ1は、リンク情報を所
定のリンク情報ファイルとして出力するとともに、当該
出力された複数のリンク情報ファイルから1つのリンク
情報ファイルを選択してロードし、当該ロードしたリン
ク情報からデバッグコードDc1〜Dcnのオブジェク
トコードに対するリンクを行っている。
【0048】
【0044】したがって、デバッグコードDc1〜Dc
nの設定時間を短縮することができるとともに、複数の
デバッグコードDc1〜Dcnの組み合わせの再現性を
確保することができ、より効率的なシミュレーションを
簡単かつ再現性良く行うことができる。
【0049】
【0045】以上、本発明者によってなされた発明を好
適な実施の形態に基づき具体的に説明したが、本発明は
上記のものに限定されるものではなく、その要旨を逸脱
しない範囲で種々変更可能であることはいうまでもな
い。
【0050】
【0046】
【0051】
【発明の効果】請求項1記載の発明のシミュレータによ
れば、高級言語で作成されコンパイルされた所定の処理
を実行するためのデバッグコードを、オブジェクトコー
ドのユーザインターフェイスで指定されたアドレスにリ
ンク情報でリンクさせ、オブジェクトコード実行時に、
オブジェクトコードの実行対象のアドレスに対してリン
ク情報でリンクされたデバッグコードを、当該アドレス
のオブジェクトコードの実行に同期して実行するので、
グラフ表示、ファイル出力及びデータ加工等の処理を高
級言語で作成して処理することができ、オブジェクトコ
ードのアセンブラコードを変更することなく、また、不
要なデバッグコードを付加することなく、高級言語で実
現するとともに、オブジェクトコードの任意のアドレス
で、オブジェクトコード命令のシミュレートに同期して
デバッグコードを実現して、プログラム開発やデバッグ
時に必要となるグラフ表示等の各種処理を、バグ混入を
回避しつつ、簡単にかつ再現性良く行うことができる。
【0052】
【0047】請求項2記載の発明のシミュレータによれ
ば、オブジェクトコードの同一のアドレスに対してリン
ク情報の指定する複数のデバッグコードの実行順序をユ
ーザインターフェイスの指定に応じて順序情報として設
定し、オブジェクトコード実行時に、オブジェクトコー
ドの当該実行対象のアドレスにリンク情報でリンクされ
た複数のデバッグコードを順序情報に応じた順序で実行
するので、内部データのグラフ表示、ファイルへの入
力、ファイルへの出力及び最大値の検出等の汎用性の高
い処理を別々のデバッグコードとして機能別に高級言語
で準備して、これらのデバッグコードを意図する順序で
組み合わせて用いることができ、より効率的なシミュレ
ーションを簡単かつ再現性良く行うことができる。
【0053】
【0048】請求項3記載の発明のシミュレータによれ
ば、複数のデバッグコードに対して、個々にあるいは所
定数を一括して当該デバッグコードの実行の有効/無効
を有効/無効情報として設定して、オブジェクトコード
実行時に、複数のデバッグコードの実行を有効/無効情
報に応じて処理するので、デバッグコードのリンクの設
定及びリンクの解除の作業を簡単に行えるようにするこ
とができ、より効率的なシミュレーションを簡単かつ再
現性良く行うことができる。
【0054】
【0049】請求項4記載の発明のシミュレータによれ
ば、リンク情報を所定のリンク情報ファイルとして出力
するとともに、当該出力された複数のリンク情報ファイ
ルから1つのリンク情報ファイルを選択してロードし、
当該ロードしたリンク情報からデバッグコードのオブジ
ェクトコードに対するリンクを行うので、デバッグコー
ドの設定時間を短縮することができるとともに、複数の
デバッグコードの組み合わせの再現性を確保することが
でき、より効率的なシミュレーションを簡単かつ再現性
良く行うことができる。
【図面の簡単な説明】
【図1】本発明のシミュレータの一実施の形態を適用し
たシミュレータの概念図。
【図2】図1のシミュレータによるデバッグコード実行
判定処理を示すフローチャート。
【符号の説明】
1 シミュレータ 2 シミュレートプログラム 3 オブジェクトコードローディングメモリ 4 デバッグコードリンク情報 5 状態素子 6 デバッグコード 7 デバッグコードリンク情報ファイル Ao1〜Aon オブジェクトコードアドレス Di1〜Din デバッグコード情報 Dc1〜Dcn デバッグコード

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】シミュレーション対象となるターゲットC
    PUシステム用のオブジェクトコードをローディングす
    るメモリとユーザインターフェイスとを備え、前記メモ
    リにローディングした前記オブジェクトコードをホスト
    CPUシステム上で実行して、前記ターゲットCPUシ
    ステムの動作を前記ホストCPUシステム上でシミュレ
    ートするシミュレータであって、高級言語で作成されコ
    ンパイルされた所定の処理を実行するためのデバッグコ
    ードと、前記デバッグコードを前記オブジェクトコード
    の前記ユーザインターフェイスで指定されたアドレスに
    リンクさせるリンク情報と、を備え、前記オブジェクト
    コード実行時に、当該オブジェクトコードの実行対象の
    アドレスに対して前記リンク情報でリンクされた前記デ
    バッグコードを、当該アドレスの前記オブジェクトコー
    ドの実行に同期して実行することを特徴とするシミュレ
    ータ。
  2. 【請求項2】前記シミュレータは、前記オブジェクトコ
    ードの同一のアドレスに対して前記リンク情報の指定す
    る複数の前記デバッグコードの実行順序を前記ユーザイ
    ンターフェイスの指定に応じて設定する順序情報を有
    し、前記オブジェクトコード実行時に、当該オブジェク
    トコードの当該実行対象のアドレスに前記リンク情報で
    リンクされた前記複数のデバッグコードを前記順序情報
    に応じた順序で実行することを特徴とする請求項1記載
    のシミュレータ。
  3. 【請求項3】前記シミュレータは、複数の前記デバッグ
    コードに対して、個々にあるいは所定数を一括して当該
    デバッグコードの実行の有効/無効を設定する有効/無
    効情報を有し、前記オブジェクトコード実行時に、前記
    複数のデバッグコードの実行を前記有効/無効情報に応
    じて処理することを特徴とする請求項1または請求項2
    記載のシミュレータ。
  4. 【請求項4】前記シミュレータは、前記リンク情報を所
    定のリンク情報ファイルとして出力するとともに、当該
    出力された複数のリンク情報ファイルから1つのリンク
    情報ファイルを選択してロードし、当該ロードしたリン
    ク情報から前記デバッグコードのオブジェクトコードに
    対するリンクを行うことを特徴とする請求項1から請求
    項3のいずれかに記載のシミュレータ。
JP26572198A 1998-09-03 1998-09-03 シミュレータ Expired - Fee Related JP4149047B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26572198A JP4149047B2 (ja) 1998-09-03 1998-09-03 シミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26572198A JP4149047B2 (ja) 1998-09-03 1998-09-03 シミュレータ

Publications (2)

Publication Number Publication Date
JP2000076094A true JP2000076094A (ja) 2000-03-14
JP4149047B2 JP4149047B2 (ja) 2008-09-10

Family

ID=17421093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26572198A Expired - Fee Related JP4149047B2 (ja) 1998-09-03 1998-09-03 シミュレータ

Country Status (1)

Country Link
JP (1) JP4149047B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225434B2 (en) * 2003-09-25 2007-05-29 Intel Corporation Method to collect address trace of instructions executed
KR101548960B1 (ko) 2008-09-16 2015-09-01 삼성전자주식회사 가상 플랫폼을 이용한 프로그램 작성과 디버깅 방법 및 장치

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02277146A (ja) * 1989-04-18 1990-11-13 Nec Corp プログラム・デバッグ方式
JPH04289927A (ja) * 1991-03-19 1992-10-14 Kobe Nippon Denki Software Kk デバッガの拡張コマンド生成システム
JPH05224908A (ja) * 1992-02-14 1993-09-03 Mitsubishi Electric Corp プログラム生産システム
JPH05233347A (ja) * 1992-02-25 1993-09-10 Sony Corp 電子装置
JPH05250213A (ja) * 1992-03-04 1993-09-28 Hitachi Ltd プログラムデバッグ方式およびデバッガ
JPH07295834A (ja) * 1994-04-22 1995-11-10 Oki Electric Ind Co Ltd デバッグモニタ処理方法と処理装置
JPH08272648A (ja) * 1994-12-29 1996-10-18 Hitachi Ltd デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置
JPH08305609A (ja) * 1995-04-28 1996-11-22 Oki Electric Ind Co Ltd プログラムのテスト方法および装置
JPH09259004A (ja) * 1996-03-27 1997-10-03 Nippon Denki Ido Tsushin Kk デバッグ方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02277146A (ja) * 1989-04-18 1990-11-13 Nec Corp プログラム・デバッグ方式
JPH04289927A (ja) * 1991-03-19 1992-10-14 Kobe Nippon Denki Software Kk デバッガの拡張コマンド生成システム
JPH05224908A (ja) * 1992-02-14 1993-09-03 Mitsubishi Electric Corp プログラム生産システム
JPH05233347A (ja) * 1992-02-25 1993-09-10 Sony Corp 電子装置
JPH05250213A (ja) * 1992-03-04 1993-09-28 Hitachi Ltd プログラムデバッグ方式およびデバッガ
JPH07295834A (ja) * 1994-04-22 1995-11-10 Oki Electric Ind Co Ltd デバッグモニタ処理方法と処理装置
JPH08272648A (ja) * 1994-12-29 1996-10-18 Hitachi Ltd デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置
JPH08305609A (ja) * 1995-04-28 1996-11-22 Oki Electric Ind Co Ltd プログラムのテスト方法および装置
JPH09259004A (ja) * 1996-03-27 1997-10-03 Nippon Denki Ido Tsushin Kk デバッグ方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225434B2 (en) * 2003-09-25 2007-05-29 Intel Corporation Method to collect address trace of instructions executed
KR101548960B1 (ko) 2008-09-16 2015-09-01 삼성전자주식회사 가상 플랫폼을 이용한 프로그램 작성과 디버깅 방법 및 장치

Also Published As

Publication number Publication date
JP4149047B2 (ja) 2008-09-10

Similar Documents

Publication Publication Date Title
JP2795244B2 (ja) プログラムデバッグシステム
CN110008113B (zh) 一种测试方法、装置、电子设备
CN112270149B (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
CN106776334B (zh) 基于注释生成测试用例方法及装置
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
US20070061641A1 (en) Apparatus and method for generating test driver
JP2017084082A (ja) シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法
CN116090403B (zh) 支持多仿真器的命令处理系统
US5857093A (en) Cross-compiled simulation timing backannotation
CN114564394A (zh) 一种测试用例确定方法、系统及相关组件
JP6763153B2 (ja) ハードウェア/ソフトウェア協調検証装置およびハードウェア/ソフトウェア協調検証方法
JPH1165845A (ja) ストール検出表示装置及び方法
JPH08314760A (ja) プログラム開発支援装置
JP2000076094A (ja) シミュレータ
JP2828590B2 (ja) マイクロプログラム検証方法
JP2004287869A (ja) プログラム実行監視装置および方法
JP3745968B2 (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体
US7634396B2 (en) Method and computer program product for generation of bus functional models
JP2000122895A (ja) スタックサイズ解析方法及びスタックサイズ解析装置
JPH01177165A (ja) 配列の定義/引用関係検査方式
JPH0778096A (ja) 単体プログラムテスト方式
JPH01307837A (ja) Mpuシミュレーション方法及びmpuシミュレータ
JPH11282722A (ja) プログラム検証方法
JPH05250221A (ja) シミュレータ実行方式
JPH07319730A (ja) テスト・デバッグ方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041214

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080624

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080625

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110704

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120704

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130704

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees