JP2001034497A - 逆アセンブラのバイナリコード取得方法 - Google Patents

逆アセンブラのバイナリコード取得方法

Info

Publication number
JP2001034497A
JP2001034497A JP2000190310A JP2000190310A JP2001034497A JP 2001034497 A JP2001034497 A JP 2001034497A JP 2000190310 A JP2000190310 A JP 2000190310A JP 2000190310 A JP2000190310 A JP 2000190310A JP 2001034497 A JP2001034497 A JP 2001034497A
Authority
JP
Japan
Prior art keywords
memory
code
logical address
logic analyzer
trigger
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
JP2000190310A
Other languages
English (en)
Inventor
Marco A Davila
マルコ・エー・ダビラ
W Bunker Christopher
クリストファー・ダブリュウ・バンカー
T Bernard Christopher
クリストファー・ティー・バーナード
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.)
Agilent Technologies Inc
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of JP2001034497A publication Critical patent/JP2001034497A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Abstract

(57)【要約】 【課題】プログラマーにマイクロプロセッサが使用する
メモリマッピング技術の深い理解がなくても物理アドレ
スをトリガするようにロジックアナライザを設定するこ
とが出来る装置及び方法を提供する。 【解決手段】プログラムコードのコンパイルの間、メモ
リイメージファイルが生成される。逆アセンブルの間、
バイナリコードはその論理アドレスにあるメモリイメー
ジファイルから取得される。バイナリコードはソフトウ
エアアプリケーションの実行中に実行されたマシンコー
ド命令のみに対応する。バイナリコードはマシンコード
命令へと変換され、ソフトウエアアプリケーションのコ
ンパイルされたプログラムコードの逆アセンブルが実行
される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ロジックアナライ
ザが使用するデータ取得チャンネル数を少なくする為に
逆アセンブル中にコードに限定した情報を提供する逆ア
センブラに関し、本発明は論理アドレスを、メモリ中の
対応する物理アドレスをトリガする為にロジックアナラ
イザが使うトリガコマンドへと変換するものである。
【0002】
【従来の技術】マイクロプロセッサをベースとした装置
は一般的に、例えばC言語のようなプログラムコードを
利用した高級プログラム言語でプログラミングされる。
高級プログラム言語のプログラムコードは、コンパイラ
を使ってマイクロプロセッサによる実行が可能な処理に
相当するバイナリコードへと変換される。ソフトウエア
のアプリケーションをデバッグする場合、プログラマー
はバイナリコードをマシンコード命令へと変換する逆ア
センブラを用いてバイナリコードを逆アセンブルするこ
とが出来る。これらのマシンコード命令は、ソフトウエ
アアプリケーションを実行する間にマイクロプロセッサ
が行っている処理を表すニーモニックに関するものであ
る。
【0003】従来方法による逆アセンブルの間、ロジッ
クアナライザはマイクロプロセッサをメモリへと接続す
るメモリバスを調査あるいは探索(プロービング)す
る。メモリバスは通常、アドレスバス、データバス及び
ステータスバスを含む。ロジックアナライザがメモリバ
スを検出すると、ロジックアナライザはトリガされてバ
イナリコードを獲得出来るようになる。逆アセンブラは
バイナリコードをマシンコード命令(ニーモニック)へ
と翻訳する。するとプログラマーは従来型逆アセンブラ
により翻訳された実際のマシンコード命令を見ることに
より、マイクロプロセッサが実行している処理を判定す
ることが出来るようになり、従ってプログラマーはその
ソフトウエアアプリケーションに付随する問題をデバッ
グする上で貴重な見識が得られるのである。
【0004】上述したように従来型の逆アセンブラは、
ロジックアナライザがメモリバスを探索し、そこからデ
ータを取得することに頼るものである。ロジックアナラ
イザはメモリバスからバイナリコードを取得するために
用いる有限数のチャンネルを持つデータ取得カードを含
む。ロジックアナライザ及びデータ取得カードは高価な
ものである。ソフトウエアアプリケーションに関わるマ
シンコード情報を取得する為に、これらの高価なロジッ
クアナライザに代わる安価な手段を望むプログラマーも
いる。更に、デバッグの間に他の情報を探索する為に使
用できる有限数のチャンネルをデータ取得カード上に望
む声もある。
【0005】従って、逆アセンブルの間にロジックアナ
ライザが使用するデータ取得チャンネル数を少なくする
逆アセンブラが必要とされており、また、ロジックアナ
ライザを使ってメモリバス、特にはデータバスを調べる
ことに関わるコストを低減する逆アセンブラも必要とさ
れている。
【0006】メモリバスのデバッグの間、プログラマー
はロジックアナライザのトリガ指定を正確に設定しなけ
ればならない。通常、プログラマーはメモリバス上の特
定のアドレスにおけるデータを見たいと望むものであ
る。このデータを見る為にはプログラマーはバイナリコ
ードに指定された論理アドレスを判別し、その論理アド
レスをメモリ中の物理アドレスへと翻訳しなければなら
ない。初期の従来型マイクロプロセッサにおいては、論
理アドレスから物理アドレスへの翻訳は難しいことでは
なかった。一般的に論理アドレスは物理アドレスと同じ
であった。しかしながら、より新しいマイクロプロセッ
サ及びメモリコントローラの場合、論理アドレスを物理
アドレスへと変換することは一般的ではなくなり、より
複雑な処理となった。論理アドレスを物理アドレスとし
て使用していた初期の従来型マイクロプロセッサ及びメ
モリコントローラと異なり、現在のメモリコントローラ
(例えばSDRAM、DRAMのオンチップ・メモリコ
ントローラ)は通常、メモリ中の物理アドレスに非論理
アドレスを提供するのである。これらの新しいマイクロ
プロセッサを用いる場合、物理アドレスを適正にトリガ
する為にはプログラマーはそのマイクロプロセッサに関
する詳細な知識を持っていなければならない。プログラ
マーにこの知識がない場合、そのプログラマーは論理ア
ドレス−物理アドレス間の適正な変換を得ることは出来
ない。従って、アナライザは誤ったバイナリコードを取
得して逆アセンブラへと入力してしまう恐れがある。そ
うなってしまった場合、マシンコード命令は誤ったもの
となり、ソフトウエアアプリケーションのデバッグは全
く無益な作業となる。
【0007】
【発明が解決しようとする課題】従って、マイクロプロ
セッサ及びメモリコントローラを理解し、プログラマー
に論理アドレス・物理アドレス間の変換を提供し、プロ
グラマーにマイクロプロセッサが使用するメモリマッピ
ング技術の深い理解がなくても物理アドレスをトリガす
るようにロジックアナライザを設定することが出来る装
置及び方法が必要とされているのである。
【0008】
【課題を解決するための手段】本発明はコードだけが含
む情報を提供する逆アセンブラを含み、これにより逆ア
センブルの間にロジックアナライザが使用するチャンネ
ル数を少なくすることが出来る。本発明はまた、逆アセ
ンブルの間に全てのメモリバスを調べる従来型の逆アセ
ンブラよりも、安価な逆アセンブラを提供するものであ
る。更に本発明は、マイクロプロセッサ及びメモリコン
トローラを理解し、プログラマーにマイクロプロセッサ
のメモリマッピング技術に関する深い知識がなくても、
論理アドレスを、メモリ中の対応する物理アドレスをト
リガする為にロジックアナライザが使用するトリガコマ
ンドへと変換するトリガツールを提供するものである。
【0009】本発明はソフトウエアアプリケーションの
逆アセンブルを行うための方法を提供するものである。
プログラムコードのコンパイルの間、メモリイメージフ
ァイルが生成される。本発明における逆アセンブルの
間、メモリ中のバイナリコードの位置を表す論理アドレ
スが判定される。メモリイメージファイルは論理アドレ
スで検索される。バイナリコードはその論理アドレスに
あるメモリイメージファイルから取得される。バイナリ
コードはソフトウエアアプリケーションの実行中に実行
されたマシンコード命令のみに対応する。バイナリコー
ドはマシンコード命令へと変換され、ソフトウエアアプ
リケーションのコンパイルされたプログラムコードの逆
アセンブルが実行される。
【0010】本発明の他の態様においては、ソフトウエ
アアプリケーションのコンパイルされたプログラムコー
ドの逆アセンブル中にバイナリコードを取得する為の方
法が提供される。本発明ではロジックアナライザを介し
てメモリバス中の物理アドレスをトリガする為にコンバ
ータ(トリガツール)が利用される。コンパイルされた
プログラムコード中にトリガされた論理アドレスが提供
される。トリガされた論理アドレスはコンバータへと入
力される。トリガされた論理アドレスを変換し、そして
ロジックアナライザを、バイナリコードが記憶されてい
るメモリ中の対応する物理アドレスをトリガするように
設定するトリガコマンドが提供される。トリガコマンド
はロジックアナライザへと供給され、ロジックアナライ
ザによりメモリバスがトリガされる。バイナリコードは
メモリバスから取得され、そのバイナリコードはソフト
ウエアアプリケーションの逆アセンブルが実行されるよ
うにマシンコード命令即ちデータ値へと変換される。
【0011】 〔発明の詳細な説明〕図1、図2及び図3は極端に簡略
化したマイクロプロセッサベースの装置100を示した
ものであるが、この装置100はメモリコントローラ1
44及びメモリ150を有するマイクロプロセッサ14
0を含んでいる。以下のマイクロプロセッサ140に関
する説明及びソフトウエアアプリケーションのコンパイ
ル法は従来から周知であり、本明細書においては本発明
を説明する目的で一事例として記述するものである。マ
イクロプロセッサ140はソフトウエアアプリケーショ
ン中の命令を実行する。メモリコントローラ144はデ
ータバス153、物理アドレスバス152及びステータ
スバス155を含むメモリバスを介してメモリ150へ
と接続している。ソフトウエアアプリケーションの実行
中、マイクロプロセッサ140は論理アドレス104を
メモリコントローラ144へと供給し、メモリコントロ
ーラ144はその論理アドレス104をメモリ150中
の物理アドレス108へと変換する。メモリコントロー
ラ144は論理アドレス104から変換した物理アドレ
ス108を、物理アドレスバス152を介してメモリ1
50へと供給する。メモリコントローラは更に、ステー
タス情報もステータスバス155を介してメモリ150
へと送る。加えてマイクロプロセッサ140はバイナリ
コード(データ)106を、データバス153を介して
メモリ150へと供給する。従って、バイナリコード1
06はメモリ150中の物理アドレス108へと記憶さ
れることになる。マイクロプロセッサベースの装置10
0は通常、大容量記憶装置、表示装置及びインターフェ
ース等の他の構成要素も含むが、説明を容易にする為に
図示していない。
【0012】図1、図2及び図3においては、マイクロ
プロセッサベースの装置100に命令するソフトウエア
アプリケーションは、例えばC言語のようなプログラム
言語を用いてプログラムコード102で書かれたもので
ある。このプログラムコード102は従来型のコンパイ
ラ109によりコンパイルされ、ソースコード107の
各行にトリガされた論理アドレス101が割り付けられ
る。コンパイラ109はまた、プログラムコード102
のバイナリコード106への変換も行い、メモリイメー
ジファイル160を作成する。メモリイメージファイル
160にはバイナリコード106及び対応する論理アド
レス104が格納される。メモリイメージファイル16
0はソフトウエアアプリケーションが実行されている間
にマイクロプロセッサ140が行ったマシンコード命令
212に限ったイメージである。マシンコード命令21
2はメモリイメージファイル150中にバイナリコード
106で記憶される。ソフトウエアアプリケーション実
行中にマイクロプロセッサ140が行う処理を表すニー
モニックに関するマシンコード命令212及びソフトウ
エアアプリケーションの実行に伴うマシンコード命令2
12の評価がコードフロー解析である。しかしながら、
ソフトウエアアプリケーションが使用するデータ値はメ
モリイメージファイル160を評価する時点で見ること
は出来ない。データ値は例えばソフトウエアアプリケー
ションが使うあらゆる定数値又は変数値を含むが、メモ
リイメージファイル160がソフトウエアアプリケーシ
ョンのコンパイル中に作成された時、このデータ値はメ
モリイメージファイル160には記憶されない。これら
のデータ値はメモリ150中に記憶されるのである。こ
れらのデータ値はロジックアナライザ120を使ってメ
モリ150中の適切な物理アドレス108をトリガする
ことにより初めて取得可能となる。
【0013】図2、図3及び図4において、本発明のコ
ードフロー限定型逆アセンブラ110は、従来型のロジ
ックアナライザ120にデータバス153を調べさせる
のではなく、メモリイメージファイル160を調べるこ
とによりマシンコード命令212を判定している。メモ
リイメージファイル160を利用することでデータバス
153を使用しなくなる為、逆アセンブル中にロジック
アナライザ120が使用するデータ取得モジュール13
0上のチャンネル数が低減される。データバス153を
調べる従来型逆アセンブラによりアクセスしていた情報
を、かわりにメモリイメージファイルを使って取得する
ことが出来る。従ってメモリイメージファイル160の
みを利用してコードに限定した情報を取得することでロ
ジックアナライザ120の費用が低減されるのであり、
これはロジックアナライザ120がデータバス153を
調べる必要がなく、これによりソフトウエアアプリケー
ションの逆アセンブルを実行する為に必要とされるデー
タ取得モジュール130中のチャンネル数が少なくなる
為である。
【0014】コードフロー限定型逆アセンブラ110
は、従来型の逆アセンブラよりも大幅に低いコストでそ
の機能の一部とエミュレーションソリューションを提供
するものである。本発明によるコードフロー限定型逆ア
センブラ110は逆アセンブル用の命令の検索を、メモ
リイメージファイル160からのみ行う為に、ロジック
アナライザ120が解析しなければならない信号数が大
幅に減るのである。コードフローのみを取り扱う方法
は、従来の逆アセンブラが過剰に高価で複雑であり、ハ
ードウエア設計者向きであると考えていたソフトウエア
設計者にとってはユーザーフレンドリな方法である。
【0015】本発明においては、図5に示すようにトリ
ガツール(コンバータ)220が設けられているが、こ
れはマイクロプロセッサ140及び/又はメモリコント
ローラ144が利用するメモリマッピング法でプログラ
ミングされている。トリガツール220はトリガされた
論理アドレス101と物理アドレス108との間の翻訳
を行う。メモリマッピングはマイクロプロセッサ140
の種類に大きく依存する為、トリガツール220はマイ
クロプロセッサ140及び/又はメモリコントローラ1
44が使用しているメモリマッピングを判定し、トリガ
された論理アドレス101を、ロジックアナライザ12
0が対応する物理アドレス108のトリガに使うトリガ
コマンド230へと変換する。このようにしてトリガツ
ール220は、論理アドレス101を変換して物理アド
レス108をトリガする為にロジックアナライザ120
が使うトリガコマンド230を供給するのである。従っ
てロジックアナライザ120はデータ取得モジュール1
30を介して物理アドレスバス152、データバス15
3及びステータスバス155をトリガしてバイナリコー
ド(データ)106を取得し、これを逆アセンブラ11
0がマシンコード命令212へと変換して、最終的には
ロジックアナライザ120へと供給したりプログラマー
に対して表示したりすることが出来るのである。従っ
て、プログラマーはマイクロプロセッサ140が使うメ
モリマッピングに関する詳しい知識を持つ必要はない。
一実施例においては、マシンコード命令212はロジッ
クアナライザ120へと送られ、ここでプログラマーが
評価することが出来る。しかしながら、別の実施例にお
いてはマシンコード命令212はロジックアナライザ1
20に送られずに、例えばディスプレイ装置のような他
の装置を介してプログラマーへと提示される。留意すべ
きは、本発明は、プログラマーに評価用としてマシンコ
ード命令212を提供する為の方法を限定するものでは
ないという点である。
【0016】一実施例においては、物理アドレスバス1
52及びステータスバス155は32ビットであり、デ
ータバス153は64ビットである。しかしながら、逆
アセンブラ510及びトリガツール220はメモリバス
(物理アドレスバス152、データバス153、及びス
テータスバス155)のこのビットサイズに限られたも
のではないことは言うまでもない。本発明は解析される
情報のビットサイズとは無関係である。
【0017】本発明において、トリガツール220はト
リガコマンド230をロジックアナライザ120へと供
給するが、プログラマーはトリガコマンド230に関す
る知識を持っている必要はない。トリガツール220を
利用することで、トリガされた論理アドレスが、物理ア
ドレスをトリガするためにロジックアナライザ120が
使用するトリガコマンド230へと変換される為、ソフ
トウエア設計者/プログラマーは使用されるマイクロプ
ロセッサ140及びメモリコントローラ144に関する
詳しい知識を必要とせずにロジックアナライザ120の
設定を簡単に出来るようになる。
【0018】
【発明の実施例】[コードフロー限定型逆アセンブラ]
図2に示したように、本発明のコードフロー限定型逆ア
センブラ110は従来型のロジックアナライザ120へ
と線112を介して接続されている。コードフロー限定
型逆アセンブラ110は代表的にはロジックアナライザ
120により起動するソフトウエアプログラムである。
ロジックアナライザ120は従来型のデータ取得モジュ
ール130に接続している。データ取得モジュール13
0は、物理アドレスバス152及びステータスバス15
5を調べる為に利用される有限数のチャンネル(図示せ
ず)を含む。一実施例においては、データ取得モジュー
ル130は32ビットの物理アドレスバス152と32
ビットのステータスバス155を調べるために利用され
る64チャンネルを有している。データ取得モジュール
130が64チャンネルを有するこの実施例は単なる具
体例に過ぎず、ロジックアナライザ120及びデータ取
得モジュール130は本願に開示の実施例に限られるも
のではない。
【0019】ロジックアナライザ120はデータ取得モ
ジュール130を通じ、線134及び132を介してそ
れぞれ、物理アドレスバス152及びステータスバス1
55へと接続しており、線134及び132はデータ取
得モジュール130中のチャンネル(図示せず)に接続
している。ある実施例においては、メモリ150はマイ
クロプロセッサ140の外部からメモリコントローラ1
44を介して接続していても良い。別の実施例において
は、メモリ150とメモリコントローラ144とがマイ
クロプロセッサ140の外部にあっても良く、本発明は
図2に示した実施例に限られないことは言うまでもな
い。メモリ150及びメモリコントローラ144間の接
続は従来から周知のいかなる技術を用いて実施しても良
く、本発明は図2に示した実施例に限られないことは言
うまでもない。
【0020】上記及び図1、図2及び図3に示したよう
に、ソフトウエアアプリケーションのプログラムコード
102がコンパイルされると、ソースコード107の各
行にトリガされた論理アドレス101が割り付けられ、
そしてメモリイメージファイル160が作成される。メ
モリイメージファイル160は論理アドレス104及び
マイクロプロセッサ140が実行するコマンドであるマ
シンコード命令212に関するバイナリコード106を
含む。トリガされた論理アドレス101及び論理アドレ
ス104は通常異なる値を持つ。トリガされた論理アド
レス101はコンパイルの間、記号ファイル中でソース
コード107に関連付けられるが、論理アドレス104
はマイクロプロセッサ140及びメモリコントローラ1
44へと供給され、メモリコントローラ144はこの論
理アドレス104をメモリ150中の物理アドレス10
8へと変換する。論理アドレス104はまた、メモリイ
メージファイル160中にも存在し、マシンコード命令
212に関するバイナリコード106へと関連づけられ
る。コードフロー限定型逆アセンブラ110が物理アド
レス108を受信すると、コードフロー限定型逆アセン
ブラ110内での変換を通して対応する論理アドレス1
04が判定される。コードフロー限定型逆アセンブラ1
10内における、物理アドレス108と対応する論理ア
ドレス104との間の変換法は従来から周知であり、マ
イクロプロセッサ140への特定性が非常に高いもので
ある。本発明がこの技術分野で利用されているあらゆる
変換技術を包含するものであることは言うまでもない。
【0021】メモリイメージファイル160はコードフ
ローのみを含んでいる。ソフトウエアアプリケーション
のプログラミングコード102が実行される間に使われ
るデータ値は、メモリイメージファイル160中には記
憶されない。データ値は、ソフトウエアアプリケーショ
ンのプログラミングコード102が使う定数及び変数情
報を含む。図3において、例えば論理アドレス104が
「FF04」である場合、バイナリコード106は「0
0110101」、そしてマシンコード命令212は
「MEM WRITE」であり、メモリイメージファイ
ル160が含まないのは、例えばこのマシンコード命令
212の結果、実際に書き込まれる値である。
【0022】従ってメモリイメージファイル160は、
マイクロプロセッサ140がソフトウエアアプリケーシ
ョンの実行中に行う処理ステップに関するマシンコード
命令212のみを提供するものである。本発明のコード
フロー限定型逆アセンブラ110はメモリイメージファ
イル160を利用して逆アセンブル中にマシンコード命
令212のみを取得する。メモリイメージファイル16
0はコンパイルの間に供給されたソフトウエアアプリケ
ーションのメモリイメージを含むいずれのファイルでも
良く、例えばSレコードファイル、elfファイル、c
offファイル、プレーンバイナリファイル、inte
l hexファイル等があげられるが、これらに限られ
ない。メモリイメージファイル160はまた、テキスト
ファイルであっても、データベースファイルでも、或い
は適正であれば他のいかなるファイルフォーマットであ
っても良い。上述したように一実施例においては、コー
ドフロー限定型逆アセンブラ110はロジックアナライ
ザ120が実行するソフトウエアプログラムであり、こ
の実施例においてはメモリイメージファイル160もま
たロジックアナライザ120中にある。他の実施例にお
いては、メモリイメージファイル160はコードフロー
限定型逆アセンブラ110及びロジックアナライザ12
0の外部にあっても良い。
【0023】図2、図4及び図7にはソフトウエアアプ
リケーションのコンパイルされたプログラムコードの逆
アセンブル方法を示した。コンパイルの間にメモリイメ
ージファイル160が作成される。この方法において
は、コードフロー限定型逆アセンブラ110はソフトウ
エアアプリケーションのプログラムコード102に割り
当てられた論理アドレス104を判定する(ステップ3
10)。論理アドレス104を判定するステップ(31
0)の一実施例においては、物理アドレスバス152及
びステータスバス153が、ロジックアナライザ120
のデータ取得モジュール130により探索される。この
結果、ロジックアナライザ120はバイナリコード10
6に対応する物理アドレス108を受信し、この物理ア
ドレス108はコードフロー限定型逆アセンブラ110
へと供給される。物理アドレス108はコードフロー限
定型逆アセンブラ110により論理アドレス104へと
変換される。論理アドレス104の判定にはこの分野で
周知のどのような手法を用いても良く、本発明はこれら
本願に開示の方法に限定されるものではない。
【0024】コードフロー限定型逆アセンブラ110は
各論理アドレス104についてメモリイメージファイル
160を検索してその論理アドレス104に付随するバ
イナリコード106を取得する(ステップ320)。一
実施例においては、メモリイメージファイル160の検
索はテキストサーチである。メモリイメージファイル1
60を検索する為に用いる方法は、プログラムコード1
02のコンパイルの間に作成されたメモリイメージファ
イル160の種類(テキスト、データベース等)に依存
することは言うまでもない。バイナリコード106はコ
ードフロー限定型逆アセンブラ110によりマシンコー
ド命令212へと変換される(ステップ330)。バイ
ナリコード106のこの変換(ステップ330)は、こ
の分野で実施されている既知の変換法である。
【0025】更なるバイナリコード106が必要とされ
る場合(ステップ340)、コードフロー限定型逆アセ
ンブラ110は次の論理アドレス104を判定する(ス
テップ310)。これ以上バイナリコード106を必要
としない場合(ステップ340)、コードフロー限定型
逆アセンブラ110は処理を終了する(ステップ35
0)。この逆アセンブルで提供されたマシンコード命令
212はソフトウエアアプリケーションのデバッグの
間、プログラマーにより調べられる。
【0026】図4に示したように、コードフロー限定型
逆アセンブラ110はデータバス153(図2)を探索
しない。従ってソフトウエアアプリケーションの逆アセ
ンブルにおいて、ロジックアナライザ120は更なるチ
ャンネル(64ビットのデータバス153に対応する6
4チャンネル)を必要としないのである。よって本発明
の利用は従来型の逆アセンブラよりも安価である。留意
すべきは、上述したコードフロー限定型逆アセンブラ1
10は本発明の一実施例に過ぎないという点である。更
に本発明は、ロジックアナライザ120を使ってデータ
バス153を探索することなくマシンコード命令212
を取得する為にメモリイメージファイル160を使用す
る、あらゆる逆アセンブラを含むものであると解釈され
る。
【0027】[トリガツール]先に図2及び図5で述べ
たように、トリガされた論理アドレス101をバイナリ
コード106が記憶されるメモリ150中の物理アドレ
ス108へと変換する方法(メモリマッピング)は、マ
イクロプロセッサ140及びメモリコントローラ144
毎に異なる。本発明においては、トリガツール220
(コンバータ)が設けられており、これがトリガされた
論理アドレス101を利用して、物理アドレス108を
トリガする為にロジックアナライザ120が使うトリガ
コマンド230をロジックアナライザ120へと供給す
る。このようにすればプログラマーはそのマイクロプロ
セッサ140及びメモリコントローラ144が使用する
メモリマッピング法に対する詳細な知識を持つ必要が無
い。一実施例においては、トリガツール220はソフト
ウエアベースの逆アセンブラ110に統合された構成要
素として実現することが出来、逆アセンブラ110ソフ
トウエアプログラムの一部であっても良い。しかしなが
ら、他の実施例においては、トリガツール220は逆ア
センブラ110と共に利用されるスタンドアローン・プ
ログラムとすることも出来、逆アセンブラ110とは別
個の独立したソフトウエアプログラムであっても良い。
【0028】上記及び図5、図7に示したように、プロ
グラムコード102からのソースコード107の各行に
はトリガされた論理アドレス101が割り付けられる。
本発明のトリガツール220はコンパイルされたプログ
ラムコード102のトリガされた論理アドレス101を
判定する(ステップ410)。トリガされた論理アドレ
ス101はトリガツール220へと入力される(ステッ
プ420)。トリガされた論理アドレス101をトリガ
ツール220へと入力する方法の一実施例においては、
プログラマーが手動でトリガされた論理アドレス101
をトリガツール220へと入力する。トリガされた論理
アドレス101をトリガツール220へと入力する方法
の別の実施例においては、プログラマーがプログラムコ
ード102のソースコード107行を、例えばカーソル
(図示せず)を使って指定すると、トリガされた論理ア
ドレス101が自動的にトリガツール220へと入力さ
れるようになっている。トリガされた論理アドレス10
1をトリガツール220へと入力する方法として説明し
た実施例は、本発明を本願に開示のこれらの実施例に限
定することを意図したものではない。本発明は、トリガ
された論理アドレス101をトリガツール220へと入
力する為のこの技術分野において既知のあらゆる方法を
包含するものである。
【0029】トリガされた論理アドレス101がトリガ
ツール220へと入力されると、トリガツール220に
よりトリガコマンド230が提供される(ステップ43
0)。トリガコマンド230は、トリガされた論理アド
レス101をメモリ150中の物理アドレスへと変換す
る(ステップ430)為にロジックアナライザ120が
実行可能のコマンドである。トリガされた論理アドレス
101のトリガコマンド230への変換は、マイクロプ
ロセッサ140及びメモリコントローラ144が使用す
るメモリマッピングにより決まる方法で実行される。ト
リガコマンド230は通常、トリガツール220のソフ
トウエアの一部としてプログラミングされる。トリガコ
マンド230を供給する方法の一実施例においては、ト
リガされた論理アドレス101に定数値を加算すること
によりロジックアナライザ120が物理アドレス108
をトリガするために用いるトリガコマンド230が提供
される。トリガコマンド230を供給する方法の他の実
施例においては、物理アドレス108をトリガする為に
必要なトリガコマンド230はマイクロプロセッサ14
0のスペックと共に提供される一連の複雑な命令であ
り、本発明においてはこれらの論理コマンド230はト
リガツール220のソフトウエア中にプログラミングさ
れる。
【0030】トリガコマンド230はロジックアナライ
ザ120へと供給される(ステップ435)。この供給
ステップの一実施例においては、プログラマーがトリガ
コマンド230をカットアンドペースト機能を用いて手
動でロジックアナライザ120へと入力することが出来
る。トリガされた論理アドレス101をトリガツール2
20へと供給するステップの他の実施例においては、ト
リガされた論理アドレスがトリガツール220へと入力
(手動又は自動)されると、トリガコマンド230はソ
フトウエア機能を通じてロジックアナライザ120へと
自動的に供給される。トリガされた論理アドレス101
をトリガツール220へと供給する方法として説明した
実施例は、本発明を本願に開示のこれらの実施例に限定
することを意図したものではない。本発明は、トリガさ
れた論理アドレス101をトリガツール220へと供給
する為の、この技術分野において既知のあらゆる方法を
含有するものである。
【0031】ロジックアナライザ120が使用するトリ
ガコマンド230及び物理アドレス108が既知となる
と、ロジックアナライザ120はデータ取得モジュール
130、そして線134、202、132を介してそれ
ぞれ物理アドレスバス152、データバス153及びス
テータスバス155をトリガする。ロジックアナライザ
120は物理アドレス108にあるメモリ150中のバ
イナリコード106を取得(ステップ440)し、物理
アドレス108、バイナリコード(データ)106及び
ステータス情報が逆アセンブラ510へと供給される。
バイナリコード106はその後逆アセンブラによりマシ
ンコード命令212へと変換(ステップ450)され、
ロジックアナライザ120へと送られ、ここでプログラ
マーがマシンコード命令212を解析する。一実施例に
おいては、マシンコード命令212はロジックアナライ
ザ120へと送られ、プログラマーによる評価に供され
る。しかしながら、別の実施例においては、マシンコー
ド命令212はロジックアナライザ120には送られず
に、例えばディスプレイ装置等のような他の装置を介し
てプログラマーへと提供される場合もある。本発明は、
マシンコード命令212を評価の為にプログラマーに提
供する為のいかなる方法にも限定されないことは言うま
でもない。
【0032】更なるプログラムコード102が解析され
る場合(ステップ460)、次のプログラムコード10
2の論理アドレス104が判定される(ステップ41
0)。これ以上のプログラムコード102を必要としな
い場合(ステップ460)、コードフロー限定型逆アセ
ンブラ110は処理を終了する(ステップ470)。
【0033】トリガツール220を逆アセンブラ510
と共に利用するものとして開示しているが、しかしトリ
ガツール220は例えば逆アセンブルの間にデータバス
153を探索しないコードフロー限定型逆アセンブラ1
10のような、いずれの逆アセンブラとも同様に利用す
ることが出来る。以下にも説明するように、トリガツー
ルはトリガされた論理アドレス101からトリガコマン
ド230を作成し、ロジックアナライザは物理アドレス
バス152をトリガして物理アドレス108を取得す
る。物理アドレス108は論理アドレス104へと変換
することが出来、メモリイメージファイル160中でバ
イナリコード情報106を検索することが可能である。
【0034】[トリガツールを利用したコードフロー限
定型逆アセンブラ]図6及び図9にトリガツール220
を用いてメモリ150中のバイナリコード106に対応
する物理アドレス106を取得するコードフロー限定型
逆アセンブラ110を示した。しかしながら、コードフ
ロー限定型逆アセンブラ110はバイナリコード106
を取得する為にデータバス153(図2)を探索するか
わりに、物理アドレス108を論理アドレス104へと
変換してバイナリコード106をメモリイメージファイ
ル160から取得する。
【0035】本発明においては、トリガツール220は
プログラムコード102のトリガされた論理アドレス1
01を判定する(ステップ910)。トリガされた論理
アドレス101はトリガツールへと入力される(ステッ
プ920)。トリガされた論理アドレス101をトリガ
ツール220へと入力する方法の一実施例においては、
プログラマーは手動でトリガされた論理アドレス101
をトリガツール220へと入力する。論理アドレス10
4をトリガツール220へと入力する方法の別の実施例
においては、プログラマーがプログラムコード102の
ソースコード107行を、例えばカーソル(図示せず)
で指定すると、トリガされた論理アドレス101が自動
的にトリガツール220へと入力される。トリガされた
論理アドレス101をトリガツール220へと入力する
方法として説明した実施例は、本発明を本願に開示の実
施例に限定することを意図したものではないことは言う
までもない。本発明は、トリガされた論理アドレス10
1をトリガツール220へと入力する為のあらゆる方法
を包含するものである。
【0036】トリガツール220はトリガコマンド23
0をトリガされた論理アドレス101から作成し、ロジ
ックアナライザ120はこのトリガコマンド230を使
って物理アドレス108をトリガする(ステップ94
0)。トリガコマンド230を作成する方法の一実施例
においては、ロジックアナライザ120が物理アドレス
108をトリガする為に利用するトリガコマンド230
は、トリガされた論理アドレス101に定数値を加算す
ることにより作成される。トリガコマンド230を作成
する為の別の実施例においては、物理アドレスをトリガ
する為に必要なトリガコマンド230はマイクロプロセ
ッサ140のスペックと共に提供される一連の複雑な命
令であり、本発明においては、これらの論理コマンド2
30はトリガツール220のソフトウエア中にプログラ
ミングされる。
【0037】トリガコマンド230はロジックアナライ
ザ120へと供給される(ステップ950)。供給方法
の一実施例においては、プログラマーはトリガコマンド
230をカットアンドペースト機能により手動でロジッ
クアナライザ120へと入力することが出来る。トリガ
された論理アドレス101をトリガツール220へと供
給する為の方法の別の実施例においては、トリガされた
論理アドレス101がトリガツール220へと入力(手
動又は自動)されると、トリガコマンド230がソフト
ウエア機能により自動的にロジックアナライザ120へ
と供給される。トリガされた論理アドレス101をトリ
ガツール220へと供給する為の方法として説明した実
施例は、本発明を本願に開示のこれらの実施例に限定す
ることを意図したものではない。本発明はトリガされた
論理アドレス101をトリガツール220へと供給する
為の、この技術分野において周知のあらゆる方法を包含
するものである。
【0038】ロジックアナライザ120はメモリバス
(物理アドレスバス152及びステータスバス155の
み)をトリガする(ステップ950)。ロジックアナラ
イザはバイナリコード106に対応する物理アドレス1
08を取得する(ステップ960)。この物理アドレス
108はコードフロー限定型逆アセンブラ110へと供
給され、ここで論理アドレス104へと変換される(ス
テップ970)。コードフロー限定型逆アセンブラ11
0が物理アドレス108を受けると、コードフロー限定
型逆アセンブラ110内での変換を通じて論理アドレス
104が判定される。コードフロー限定型逆アセンブラ
110内における物理アドレス108−論理アドレス1
04間の変換は、この技術分野では周知であり、本発明
がこの分野で実施されているあらゆる変換方法を包含す
ることは言うまでもない。
【0039】その論理アドレス104についてメモリイ
メージファイル160が検索され、対応するバイナリコ
ード106が取得される(ステップ980)。メモリイ
メージファイル160を検索する方法は、プログラムコ
ード102をコンパイルする間に作成されたメモリイメ
ージファイル160の種類(テキスト、データベース
等)に依存する。バイナリコード106はコードフロー
限定型逆アセンブラ110によりマシンコード命令21
2へと変換される(ステップ330)。バイナリコード
106のこの変換(ステップ330)はこの技術分野で
実施されている周知の一般的な変換方法である。メモリ
イメージファイル160は、コンパイルの間に供給され
たソフトウエアアプリケーションのメモリイメージを含
むいかなるファイルでも良く、Sレコードファイル、e
lfファイル、coffファイル、プレーンバイナリフ
ァイル、intel hexファイル等を含むがこれら
に限られない。メモリイメージファイル160はテキス
トファイルでもデータベースファイルでも、或いは他の
適切ないかなるファイルフォーマットとしても良い。上
述したように一実施例においては、コードフロー限定型
逆アセンブラ120はロジックアナライザ120が実行
するソフトウエアプログラムであり、メモリイメージフ
ァイル160はロジックアナライザ120中にも存在す
る。他の実施例においては、メモリイメージファイル1
60はコードフロー限定型逆アセンブラ110及びロジ
ックアナライザ120の外部にあっても良い。
【0040】バイナリコード106はコードフロー限定
型逆アセンブラ110によりマシンコード命令212
(図3)へと変換される(ステップ990)。マシンコ
ード命令212はロジックアナライザ120へと供給さ
れ、ここでプログラマーによる解析が実施される。一実
施例においては、マシンコード命令212はロジックア
ナライザ120へと送られてプログラマーの評価に供さ
れるが、別の実施例においてはロジックアナライザ12
0には送られずに、例えばディスプレイ装置のような他
の装置を介してプログラマーへと提供されることに留意
が必要である。本発明はマシンコード命令212が評価
の為にプログラマーに提供される方法を限定するもので
はない。
【0041】更なるバイナリコード106が必要とされ
る場合(ステップ995)、コードフロー限定型逆アセ
ンブラ110は次の論理アドレス104を判定する(ス
テップ910)。これ以上のバイナリコード106が必
要ない場合(ステップ995)、コードフロー限定型逆
アセンブラ110は処理を終了する(ステップ99
6)。この逆アセンブル中に提供されたマシンコード命
令212はソフトウエアアプリケーションのデバッグの
際にプログラマーにより評価される。
【0042】上記の本発明に関する記述は説明の目的に
限って提示したものである。更に、この説明は本発明を
本願に開示した形態に限定することを意図したものでは
ない。よって関連技術の技能及び知識から得られる、上
述の教示内容に相当する改変及び変更は本発明の範囲に
含まれるものである。本願に記載の上記実施例は、本発
明を実施する上で現在既知の最良の形態を説明する為の
ものであり、他の当業者がこれらの実施例、又は他の実
施例、或いは特定のアプリケーション又は本発明の利用
に必要な様々な変更を加えつつ利用することが出来るよ
うに意図したものである。添付請求項は従来技術により
許容される範囲において他の実施例をも包含すると解釈
されるものである。
【0043】以上、本発明の実施例について詳述した
が、以下、本発明の各実施態様の例を示す。
【0044】(実施態様1)ソフトウエアアプリケーシ
ョンのコンパイルされたプログラムコード(102)を
逆アセンブルする間にバイナリコード(106)を取得
する為の方法であって、前記プログラムコード(10
2)のコンパイルの間にメモリイメージファイル(16
0)が作成され、コンバータ(220)を用いてメモリ
バス(152)中の物理アドレス(108)をロジック
アナライザ(120)を介してトリガすることを特徴と
し、前記コンパイルされたプログラムコード(102)
中のトリガされた論理アドレス(101)を判定するス
テップと、前記トリガされた論理アドレス(101)を
前記コンバータ(220)へと入力するステップと、前
記トリガされた論理アドレス(101)を、メモリ(1
50)中に記憶されるバイナリコード(106)に対応
する物理アドレス(108)へと変換する為のトリガコ
マンド(230)を提供するステップと、前記トリガコ
マンド(230)を前記ロジックアナライザ(120)
へと供給するステップと、前記ロジックアナライザ(1
20)を用いて前記トリガコマンド(230)により前
記メモリバス(152)をトリガするステップと、前記
メモリ(150)中に記憶された前記バイナリコード
(106)に対応する前記物理アドレス(108)を取
得するステップと、前記取得した物理アドレス(10
6)を論理アドレス(104)へと変換するステップ
と、前記メモリイメージファイル(160)を前記論理
アドレス(104)について検索するステップと、前記
メモリイメージファイル(160)から前記論理アドレ
ス(104)にあるバイナリコード(106)を取得す
るステップであって、前記バイナリコード(106)が
前記ソフトウエアアプリケーションの実行中に実施され
るマシンコード命令(212)のみに対応するものであ
ることを特徴とするステップと、前記ソフトウエアアプ
リケーションの前記コンパイルされたプログラムコード
(102)の逆アセンブルを実施するように、前記取得
したバイナリコード(106)を第一の、少なくとも1
つのマシンコード命令(212)へと変換するステップ
とを含む前記方法。
【0045】(実施態様2)前記メモリイメージファイ
ル(160)がSレコードファイル、elfファイル、
coffファイル、プレーンバイナリファイル及びin
tel hexファイルから成るグループから選択され
ることを特徴とする実施態様1に記載の方法。
【0046】(実施態様3)前記トリガコマンド(23
0)が複数の論理コマンド(230)を含むことを特徴
とする実施態様1に記載の方法。
【0047】(実施態様4)前記トリガされた論理アド
レス(101)を判定するステップが、前記ソフトウエ
アアプリケーションのソースコード(107)の行を指
定するステップを含み、前記ソースコード(107)が
前記論理アドレス(101)に対応することを特徴とす
る実施態様1に記載の方法。
【0048】(実施態様5)前記トリガコマンド(23
0)を提供するステップが、更にトリガコマンド(23
0)をユーザーに対して表示するステップを含むことを
特徴とする実施態様1に記載の方法。
【0049】(実施態様6)前記トリガコマンド(23
0)を供給するステップが、更に前記トリガコマンド
(230)を手動で前記ロジックアナライザ(120)
へと入力するステップを含むことを特徴とする実施態様
5に記載の方法。
【0050】(実施態様7)前記メモリバス(152)
がアドレスバス(152)とステータスバス(155)
を含むことを特徴とする実施態様1に記載の方法。
【0051】(実施態様8)ソフトウエアアプリケーシ
ョンのコンパイルされたプログラムコード(102)を
逆アセンブルする間にバイナリコード(106)を取得
する為の装置であって、前記プログラムコード(10
2)のコンパイルの間にメモリイメージファイル(16
0)が作成され、メモリバス(152)中の物理アドレ
ス(108)をトリガするコンバータ(220)及びロ
ジックアナライザ(120)を有することを特徴とし、
前記コンパイルされたプログラムコード(102)中の
トリガされた論理アドレス(101)を判定する手段
と、前記コンバータ(220)へとトリガされた論理ア
ドレス(101)を入力する手段と、前記トリガされた
論理アドレス(101)を、バイナリコード(106)
を記憶するメモリ(150)中の物理アドレス(10
8)へと変換するトリガコマンド(230)を提供する
手段と、前記トリガコマンド(230)をロジックアナ
ライザ(120)へと供給する手段と、前記ロジックア
ナライザ(120)を利用して前記メモリバス(15
2)を前記トリガコマンド(230)によりトリガする
手段と、前記トリガされたメモリバス(152)から、
前記メモリ(150)中に記憶された前記バイナリコー
ド(106)に対応する前記物理アドレス(108)を
取得する手段と、前記物理アドレス(108)を前記論
理アドレス(104)へと変換する手段と、前記メモリ
イメージファイル(160)を前記論理アドレス(10
4)について検索する手段、前記メモリイメージファイ
ル(160)から前記論理アドレス(104)にあるバ
イナリコード(106)を取得する手段であって、前記
バイナリコード(106)が前記ソフトウエアアプリケ
ーションの実行中に実施されたマシンコード命令(21
2)のみに対応することを特徴とする手段と、前記取得
したバイナリコード(106)を第一の、少なくとも1
つのマシンコード命令(212)へと変換する手段とを
含み、これにより前記ソフトウエアアプリケーションの
前記コンパイルされたプログラムコード(102)の逆
アセンブルが実施されることを特徴とする前記装置。
【0052】(実施態様9)前記メモリイメージファイ
ル(160)が、Sレコードファイル、elfファイ
ル、coffファイル、プレーンバイナリファイル及び
intel hexファイルより成るグループから選択
されることを特徴とする実施態様8に記載の装置。
【0053】(実施態様10)前記メモリバス(15
2)がアドレスバス(152)及びステータスバス(1
55)を含むことを特徴とする実施態様8に記載の装
置。
【0054】
【発明の効果】以上のように、本発明を用いると、逆ア
センブルの間にロジックアナライザが使用するチャンネ
ル数を少なくすることが出来る。本発明はまた、逆アセ
ンブルの間に全てのメモリバスを調べる従来型の逆アセ
ンブラよりも、安価な逆アセンブラを提供することがで
きる。更に本発明は、マイクロプロセッサ及びメモリコ
ントローラを理解し、プログラマーにマイクロプロセッ
サのメモリマッピング技術に関する深い知識がなくて
も、論理アドレスを、メモリ中の対応する物理アドレス
をトリガする為にロジックアナライザが使用するトリガ
コマンドへと変換するトリガツールを提供することがで
きる。
【図面の簡単な説明】
【図1】従来技術によるコンパイラのブロック図であ
り、プログラムコードがバイナリコードへとコンパイル
されている状態を示している。
【図2】マイクロプロセッサベースの装置及び本発明の
コードフロー限定型逆アセンブラを簡略化して示した図
である。
【図3】本発明の逆アセンブラのブロック図であり、メ
モリイメージファイルをマシンコード命令へと逆アセン
ブルしている状態を示したものである。
【図4】本発明の逆アセンブラのブロック図である。
【図5】本発明のトリガツールのブロック図である。
【図6】本発明のトリガツールを利用した逆アセンブラ
のブロック図である。
【図7】コードフロー限定型逆アセンブラ法のフローチ
ャートである。
【図8】論理アドレスを、ロジックアナライザが物理ア
ドレスをトリガする為に使うトリガコマンドへと変換す
るメモリトリガ法のフローチャートである。
【図9】論理アドレスを、ロジックアナライザが物理ア
ドレスをトリガする為に使うトリガコマンドへと変換す
るメモリトリガ法を利用したコードフロー限定型逆アセ
ンブラ法のフローチャートである。
【符号の説明】
100:マイクロプロセッサベースの装置 101:トリガされた論理アドレス 102:プログラムコード 104:論理アドレス 106:バイナリコード 107:ソースコード 108:物理アドレス 109:コンパイラ 110:コードフロー限定型逆アセンブラ 120:ロジックアナライザ 130:データ取得モジュール 140:マイクロプロセッサ 144:メモリコントローラ 152:メモリバス(物理アドレスバス) 153:ステータスバス 155:メモリバス(ステータスバス) 160:メモリイメージファイル 212:マシンコード命令 230:トリガコマンド
フロントページの続き (71)出願人 399117121 395 Page Mill Road P alo Alto,California U.S.A. (72)発明者 クリストファー・ダブリュウ・バンカー アメリカ合衆国コロラド州コロラド・スプ リングス ピロス・ドライブ 1360 (72)発明者 クリストファー・ティー・バーナード アメリカ合衆国コロラド州コロラド・スプ リングス マンストン・ドライブ 7860

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ソフトウエアアプリケーションのコンパイ
    ルされたプログラムコードを逆アセンブルする間にバイ
    ナリコードを取得する為の方法であって、前記プログラ
    ムコードのコンパイルの間にメモリイメージファイルが
    作成され、コンバータを用いてメモリバス中の物理アド
    レスをロジックアナライザを介してトリガすることを特
    徴とし、 前記コンパイルされたプログラムコード中のトリガされ
    た論理アドレスを判定するステップと、 前記トリガされた論理アドレスを前記コンバータへと入
    力するステップと、 前記トリガされた論理アドレスを、メモリ中に記憶され
    るバイナリコードに対応する物理アドレスへと変換する
    為のトリガコマンドを提供するステップと、 前記トリガコマンドを前記ロジックアナライザへと供給
    するステップと、 前記ロジックアナライザを用いて前記トリガコマンドに
    より前記メモリバスをトリガするステップと、 前記メモリ中に記憶された前記バイナリコードに対応す
    る前記物理アドレスを取得するステップと、 前記取得した物理アドレスを論理アドレスへと変換する
    ステップと、 前記メモリイメージファイルを前記論理アドレスについ
    て検索するステップと、 前記メモリイメージファイルから前記論理アドレスにあ
    るバイナリコードを取得するステップであって、前記バ
    イナリコードが前記ソフトウエアアプリケーションの実
    行中に実施されるマシンコード命令のみに対応するもの
    であることを特徴とするステップと、 前記ソフトウエアアプリケーションの前記コンパイルさ
    れたプログラムコードの逆アセンブルを実施するよう
    に、前記取得したバイナリコードを第一の、少なくとも
    1つのマシンコード命令へと変換するステップとを含む
    前記方法。
JP2000190310A 1999-06-25 2000-06-23 逆アセンブラのバイナリコード取得方法 Pending JP2001034497A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US344642 1989-04-28
US09/344,642 US6393606B1 (en) 1999-06-25 1999-06-25 Inverse assembler

Publications (1)

Publication Number Publication Date
JP2001034497A true JP2001034497A (ja) 2001-02-09

Family

ID=23351363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000190310A Pending JP2001034497A (ja) 1999-06-25 2000-06-23 逆アセンブラのバイナリコード取得方法

Country Status (2)

Country Link
US (1) US6393606B1 (ja)
JP (1) JP2001034497A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748584B1 (en) * 1999-12-29 2004-06-08 Veritas Operating Corporation Method for determining the degree to which changed code has been exercised
US7246267B2 (en) * 2001-10-01 2007-07-17 Tektronix, Inc. Logic analyzer having a disassembler employing symbol table information for identifying op-codes
US20030093471A1 (en) * 2001-10-18 2003-05-15 Mitch Upton System and method using asynchronous messaging for application integration
US7350184B2 (en) * 2002-05-02 2008-03-25 Bea Systems, Inc. System and method for enterprise application interactions
JP4187470B2 (ja) * 2002-06-25 2008-11-26 富士通マイクロエレクトロニクス株式会社 半導体装置の開発支援連携装置及び開発支援方法
US7526758B2 (en) * 2005-06-30 2009-04-28 Microsoft Corporation Execution failure investigation using static analysis
US20070260812A1 (en) * 2006-05-04 2007-11-08 Westell Technologies, Inc. Programming method for write buffer and double word flash programming
US20070271553A1 (en) * 2006-05-22 2007-11-22 Micro Focus (Us), Inc. Method and system for translating assembler code to a target language
US7802299B2 (en) * 2007-04-09 2010-09-21 Microsoft Corporation Binary function database system
US8869109B2 (en) * 2008-03-17 2014-10-21 Microsoft Corporation Disassembling an executable binary
US20110246966A1 (en) * 2010-04-06 2011-10-06 Sony Computer Entertainment America Inc. Embedding source files into program symbol files

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694420A (en) 1982-09-13 1987-09-15 Tektronix, Inc. Inverse assembly method and apparatus
JPH0731615B2 (ja) * 1986-04-18 1995-04-10 日本電気株式会社 情報処理装置
WO1991003791A1 (en) * 1989-09-01 1991-03-21 Amdahl Corporation Operating system and data base
US5142673A (en) 1989-12-22 1992-08-25 Bull Hn Information Systems Inc. Bus monitor with dual port memory for storing selectable trigger patterns
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5507030A (en) * 1991-03-07 1996-04-09 Digitial Equipment Corporation Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses
US5432795A (en) * 1991-03-07 1995-07-11 Digital Equipment Corporation System for reporting errors of a translated program and using a boundry instruction bitmap to determine the corresponding instruction address in a source program
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US5999737A (en) * 1994-03-01 1999-12-07 Digital Equipment Corporation Link time optimization via dead code elimination, code motion, code partitioning, code grouping, loop analysis with code motion, loop invariant analysis and active variable to register analysis
US5805893A (en) 1996-03-01 1998-09-08 Electronic Data Systems Corporation Assembly language program converter
US5953526A (en) * 1997-11-10 1999-09-14 Internatinal Business Machines Corp. Object oriented programming system with displayable natural language documentation through dual translation of program source code
US6110225A (en) * 1998-07-10 2000-08-29 Agilent Technologies Inverse assembler with reduced signal requirements using a trace listing
US6182280B1 (en) * 1998-07-10 2001-01-30 Agilent Technologies Inverse assembler with reduced signal requirements with a user supplied memory map

Also Published As

Publication number Publication date
US6393606B1 (en) 2002-05-21

Similar Documents

Publication Publication Date Title
US5446900A (en) Method and apparatus for statement level debugging of a computer program
JP2795244B2 (ja) プログラムデバッグシステム
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
US6550056B1 (en) Source level debugger for debugging source programs
EP1734442A1 (en) Modular code generation
US6467082B1 (en) Methods and apparatus for simulating external linkage points and control transfers in source translation systems
JPH0689200A (ja) デバッグシステム及び方法
US7409602B2 (en) Methodology for debugging RTL simulations of processor based system on chip
JP2001034497A (ja) 逆アセンブラのバイナリコード取得方法
CN111104269A (zh) 一种基于uart接口的处理器调试方法及系统
WO2018081145A1 (en) Debugging system and method
US10816600B1 (en) Protocol analysis and visualization during simulation
WO2004036420A1 (ja) プログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法
JP3300090B2 (ja) 試験プログラム実行方法
US7318221B2 (en) Windows™ F-language interpreter
JP2888242B2 (ja) マイクロプロセッサのプログラム開発システム
JPH096646A (ja) プログラムシミュレーション装置
Studio Getting Started Guide
JP2002014847A (ja) プログラム検査装置、プログラム検査方法及び検査を行うためのプログラムを格納した記録媒体
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JPH0619731B2 (ja) プログラムの単体テスト方式
JP3398178B2 (ja) シミュレータ
JPS6367695B2 (ja)
JP3077627B2 (ja) デバッグ方法およびデバッグプログラムを記録する記録媒体
JP2662533B2 (ja) ロジック・アナライザ