Everything
 

逆アセンブル パネル


メモリ内容を逆アセンブルした結果(逆アセンブル・テキスト)の表示,ライン・アセンブル(「2.6.4 ライン・アセンブルを行う」参照),命令レベル・デバッグ(「2.7.3 プログラムをステップ実行する」参照),およびコード・カバレッジ測定結果の表示【IECUBE】【シミュレータ】(「2.13 カバレッジの測定【IECUBE】【シミュレータ】」参照)を行います。

このパネルは,最大4個までオープンすることができます。各パネルは,タイトルバーの“逆アセンブル1”,“逆アセンブル2”,“逆アセンブル3”,“逆アセンブル4”の名称で識別されます。

混合表示モードにすることにより,コード・データに対応するソース・ファイル中のソース・テキストも表示することができます(デフォルト)。

なお,このパネルは,デバッグ・ツールと接続時のみオープンすることができます。

注意

このパネルにフォーカスがある状態でプログラムをステップ実行した場合,実行単位は命令レベル単位となります(「2.7.3 プログラムをステップ実行する」参照)。

備考 1.

ツールバーの[表示]→ ボタンをクリックするでオープンするスクロール範囲設定 ダイアログにより,このパネルの垂直スクロール・バーのスクロール範囲を設定することができます。

備考 2.

[ファイル]メニュー→[印刷...]を選択することにより,現在このパネルで表示しているの画像イメージを印刷することができます。

備考 3.

ツールバーの ,または[Ctrl]キーを押下しながらマウス・ホイールを前後方に動かすことにより,本パネルの表示を拡大/縮小することができます。

図 A.6

逆アセンブル パネル(混合表示モードの場合)

図 A.7

逆アセンブル パネル(逆アセンブル表示モードの場合)

図 A.8

逆アセンブル パネル(コード・カバレッジ測定結果を表示した場合)

 

ここでは,次の項目について説明します。

[オープン方法]

-

[表示]メニュー→[逆アセンブル]→[逆アセンブル14]を選択

[各エリアの説明]

(1)

イベント・エリア

イベントの設定が可能な行は,背景色を白色で表示します(背景色がグレー表示の行は,イベントの設定が不可能であることを示すします)。

また,現在設定しているイベントがある場合,そのイベント設定行に,イベント種別を示すイベント・マークを表示します。

このエリアは,次の機能を備えています。

(a)

ブレークポイントの設定/削除

ブレークポイントを設定したい箇所をマウスでクリックすることにより,容易にブレークポイントを設定することができます。

ブレークポイントは,クリックした行位置に対応する先頭アドレスの命令に対して設定されます。

ブレークポイントを設定すると,設定した行にイベント・マークが表示されます。また,設定したブレークポイントの詳細情報がイベント パネルに反映されます。

なお,すでにいずれかのイベント・マークが表示されている箇所において,この操作を行った場合は,そのイベントを削除し,ブレークポイントの設定は行いません。

ただし,イベントの設定は,背景色が白色で表示されている行に対してのみ行うことができます。

ブレークポイントの設定方法についての詳細は,「2.8.3 任意の場所で停止する(ブレークポイント)」を参照してください。

(b)

各種イベントの状態変更

各種イベント・マークを右クリックすることにより,次のメニューが表示され,選択したイベントの状態の変更を行うことができます。

有効化

選択しているイベントを有効状態にします。

指定されている条件の成立で,対象となるイベントが発生します。

なお,複数のイベントが設定されていることを示すイベント・マーク( )を選択している場合は,設定されているすべてのイベントを有効状態にします。

無効化

選択しているイベントを無効状態にします。

指定されている条件が成立しても,対象となるイベントは発生しません。

なお,複数のイベントが設定されていることを示すイベント・マーク( )を選択している場合は,設定されているすべてのイベントを無効状態にします。

イベント削除

選択しているイベントを削除します。

なお,複数のイベントが設定されていることを示すイベント・マーク( )を選択している場合は,設定されているすべてのイベントを削除します。

詳細設定情報表示

選択しているイベントの詳細情報を表示するイベント パネルをオープンします。

(c)

ポップアップ表示

イベント・マークにマウス・カーソルを重ねることにより,そのイベントのイベント名/詳細情報/イベントに付加されたコメントをポップアップ表示します。

なお,該当箇所に複数のイベントが設定されている場合,最大3つまで,各イベントの情報を列挙して表示します。

(2)

アドレス・エリア

行ごとの逆アセンブル開始アドレスを表示します(16進数表記固定)。

また,カレントPC位置(PCレジスタ値)を示すカレントPCマーク( )を表示します。

アドレス幅は,プロジェクトで指定しているマイクロコントローラのメモリ空間のアドレス幅となります。

なお,混合表示モード時におけるソース・テキスト行に対しては,開始アドレスに対応するソース・ファイル中の行番号(xxx :)を表示します。

このエリアは,次の機能を備えています。

(a)

ポップアップ表示

アドレス/ソース行番号にマウス・カーソルを重ねることにより,次の情報をポップアップ表示します。

アドレス

形式: <ラベル 名>+ <オフセット値

例1: main + 0x10

例2: subfunction + 0x20

ソース行番号

形式: <ファイル名>#<行番号

例1: main.c#40

例2: main.c#100

(3)

逆アセンブル・エリア

対象となるソース・テキスト行に続き,逆アセンブル結果行を次のように表示します。

図 A.9

逆アセンブル・エリアの表示内容(混合表示モードの場合)

ラベル行

アドレスにラベルが定義されている場合は,ラベル名を表示し,行全体を薄緑色で強調表示します。

カレントPC行

カレントPC位置(PCレジスタ値)のアドレスと対応する行を強調表示注1します。

ブレークポイント設定行

ブレークポイントが設定されている行を強調表示注1します。

ソース・テキスト行

コード・データに対応するソース・テキストを表示します注2

逆アセンブル結果行

オフセット値

アドレスにラベルが定義されていない場合は,一番近いラベルからのオフセット値を表示します注3

命令コード

逆アセンブルの対象となったコードを16進数で表示します。

命令

逆アセンブル結果として命令を表示します。ニモニックは青色で強調表示します。

注 1.

強調色は,オプション ダイアログにおける[全般 - フォントと色]カテゴリの設定に依存します。

注 2.

ツールバーの ボタン(トグル)のクリック,またはコンテキスト・メニューの[混合表示モード]のチェックを外すことにより,ソース・テキストを非表示にすることができます(デフォルトでチェックされています)。

注 3.

オフセット値はデフォルトでは表示されません。表示する場合は,ツールバーの ボタンのクリック,またはコンテキスト・メニューの[ラベルのオフセットを表示]を選択してください。

 

このエリアは,次の機能を備えています。

(a)

ライン・アセンブル

表示されている命令/コードは,編集(ライン・アセンブル)することができます。

操作方法についての詳細は,「2.6.4 ライン・アセンブルを行う」を参照してください。

(b)

命令レベルでのプログラム実行

このパネルにフォーカスがある状態でプログラムをステップ実行することにより,命令レベル単位で実行を制御することができます。

操作方法についての詳細は,「2.7.3 プログラムをステップ実行する」を参照してください。

(c)

各種イベントの設定

コンテキスト・メニューの[ブレークの設定]/[トレース設定]/[タイマ設定]を選択することにより,現在キャレットのあるアドレス/行に各種イベントを設定することができます。

イベントを設定することにより,対応するイベント・マークイベント・エリアに表示されます。また,設定したイベントの詳細情報がイベント パネルに反映されます。

ただし,イベントの設定は,イベント・エリアにおいて,背景色が白色で表示されている行に対してのみ行うことができます。

イベントの設定方法についての詳細は次を参照してください。

備考

ブレークポイントの設定/削除は,イベント・エリアにおいても簡単に行うことができます(「(a) ブレークポイントの設定/削除」参照)。

(d)

ウォッチ式の登録

表示されているC言語変数/CPUレジスタ/SFR/アセンブラ・シンボルをウォッチ式としてウォッチ パネルに登録することができます。

操作方法についての詳細は,「2.9.6.1 ウォッチ式を登録する」を参照してください。

(e)

シンボル定義箇所への移動

シンボルを参照している命令にキャレットを移動した状態で,ツールバーの ボタンをクリック,またはコンテキスト・メニューの[シンボルへ移動]を選択することにより,キャレット位置のシンボルが定義されているアドレスにキャレット位置を移動します。

また,この操作に続き,ツールバーの ボタンをクリック,またはコンテキスト・メニューの[アドレスに戻る]を選択すると,キャレット移動前のシンボルを参照している命令にキャレット位置を戻します(アドレスはシンボルを参照している命令のアドレス値を表示)。

(f)

ソース行/メモリ値へのジャンプ

コンテキスト・メニューの[ソースへジャンプ]を選択することにより,現在のキャレット位置のアドレスに対応するソース行にキャレットを移動した状態でエディタ パネルがオープンします(すでにオープンしている場合は,エディタ パネルにジャンプ)。

また,同様に[メモリへジャンプ]を選択することにより,現在のキャレット位置のアドレスに対応するメモリ値にキャレットを移動した状態でメモリ パネル(メモリ1)がオープンします(すでにオープンしている場合は,メモリ パネル(メモリ1)にジャンプ)。

(g)

コード・カバレッジ測定結果の表示【IECUBE】【シミュレータ】

カバレッジ機能を有効としている場合,プログラムの実行により取得したコード・カバレッジ測定結果を基に,カバレッジ測定対象領域に相当する行を強調表示します。

カバレッジ測定についての詳細は,「2.13 カバレッジの測定【IECUBE】【シミュレータ】」を参照してください。

【IECUBE】
カバレッジ機能は常に有効です。

(h)

逆アセンブル・データの保存

[ファイル]メニュー→[名前を付けて逆アセンブル・データを保存...]を選択することにより,データ保存 ダイアログをオープンし,このパネルの内容をテキスト・ファイル(*.txt)/CSVファイル(*.csv)に保存することができます。

逆アセンブル・データの保存方法についての詳細は,「2.6.2.5 逆アセンブル結果の表示内容を保存する」を参照してください。

[ツールバー]

 

デバッグ・ツールから最新の情報を取得し,表示を更新します。

 

逆アセンブル結果とソース・テキストとの対応を表示する,混合表示モードに設定します(デフォルト)。

 

キャレット位置をカレントPC値に追従するように指定します。

 

選択しているシンボルの定義位置へキャレットを移動します。

 

ボタンで移動する直前の位置(アドレス)へ移動します。

表示

逆アセンブル・エリアの表示形式を変更する次のボタンを表示します。

 

ラベルのオフセットを表示

ラベルのオフセット値を表示します。アドレスにラベルが定義されていない場合,一番近いラベルからのオフセット値を表示します。

アドレス値をシンボルで表示

アドレス値を“シンボル+オフセット値”で表示します(デフォルト)。

ただし,アドレス値にシンボルが定義されている場合は,シンボルのみを表示します。

レジスタを機能名称で表示

レジスタ名を機能名称で表示します(デフォルト)。

レジスタを絶対名称で表示

レジスタ名を絶対名称で表示します。

 

スクロール範囲を設定するためのスクロール範囲設定 ダイアログがオープンします。

[[ファイル]メニュー(逆アセンブル パネル専用部分)]

逆アセンブル パネル専用の[ファイル]メニューは次のとおりです(その他の項目は共通)。

ただし,プログラム実行中はすべて無効となります。

逆アセンブル・データを保存

逆アセンブルの内容を前回保存したテキスト・ファイル(*.txt)/CSVファイル(*.csv)に保存します(「(h) 逆アセンブル・データの保存」参照)。

なお,起動後に初めてこの項目を選択した場合は,[名前を付けて逆アセンブル・データを保存...]の選択と同等の動作となります。

名前を付けて逆アセンブル・データを保存...

逆アセンブルの内容を指定したテキスト・ファイル(*.txt)/CSVファイル(*.csv)に保存するために,データ保存 ダイアログをオープンします(「(h) 逆アセンブル・データの保存」参照)。

印刷...

このパネルの内容を印刷するために,印刷アドレス範囲設定 ダイアログをオープンします。

[[編集]メニュー(逆アセンブル パネル専用部分)]

逆アセンブル パネル専用の[編集]メニューは次のとおりです(その他の項目はすべて無効)。

コピー

行を選択している場合,選択している行の内容を文字列としてクリップ・ボードにコピーします。

編集モードの場合,選択している文字列をクリップ・ボードにコピーします。

名前の変更

キャレット位置の命令/命令コードを編集するために,編集モードに移行します(「2.6.4 ライン・アセンブルを行う」参照)。

ただし,プログラム実行中は無効となります。

検索...

検索・置換 ダイアログを[一括検索]タブが選択状態でオープンします。

置換...

検索・置換 ダイアログを[一括置換]タブが選択状態でオープンします。

移動...

指定したアドレスへキャレットを移動するため,指定位置へ移動 ダイアログをオープンします。

[コンテキスト・メニュー]

【逆アセンブル・エリア/アドレス・エリア】

ウォッチ1に登録

選択している文字列,またはキャレット位置の単語をウォッチ式としてウォッチ パネル(ウォッチ1)に登録します(単語の判断は現在のビルド・ツールに依存)。

ウォッチ式として登録する際は変数名として登録されるため,スコープにより表示されるシンボル名は変化します。

アクション・イベントの登録...

キャレット位置のアドレスにアクション・イベントを設定するため,アクション・イベント ダイアログをオープンします。

ここまで実行

カレントPC値で示されるアドレスから,キャレット位置の行に対応するアドレスまでプログラムを実行します。

ただし,プログラム実行中,またはビルド(ラピット・ビルドを除く)実行中は無効となります。

PCをここに設定

カレントPC値を現在キャレットのある行のアドレスに変更します。

ただし,プログラム実行中,またはビルド(ラピット・ビルドを除く)実行中は無効となります。

移動...

指定したアドレスへキャレットを移動するため,指定位置へ移動 ダイアログをオープンします。

シンボルへ移動

選択しているシンボルの定義位置へキャレットを移動します。

アドレスへ戻る

シンボルへ移動]で移動する直前の位置(アドレス)へ移動します。

ただし,アドレスにシンボル名が表示されていない場合は無効となります。

ブレークの設定

ブレーク関連のイベントを設定するために,次のカスケード・メニューを表示します。

なお,イベントは,イベントの設定が可能な行のみ設定することができます(「(1) イベント・エリア」参照)。

 

ハード・ブレークの設定

キャレット位置のアドレスにブレークポイント(ハードウエア・ブレーク・イベント)を設定します(「2.8.4.1 ブレーク・イベント(実行系)を設定する」参照)。

ソフト・ブレークの設定

(【シミュレータ】以外)

キャレット位置のアドレスにブレークポイント(ソフトウエア・ブレーク・イベント)を設定します(「2.8.4.1 ブレーク・イベント(実行系)を設定する」参照)。

組み合わせブレークを設定

【E1】【E20】

組み合わせブレーク・イベントの条件の1つとして,キャレット位置のアドレスにブレーク・イベント(実行系)を設定します(「2.8.4.1 ブレーク・イベント(実行系)を設定する」参照)注1

読み込みブレークを設定

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRに,リード・アクセスのブレーク・イベントを設定します(「2.8.5.1 ブレーク・イベント(アクセス系)を設定する」参照)。

書き込みブレークを設定

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRに,ライト・アクセスのブレーク・イベントを設定します(「2.8.5.1 ブレーク・イベント(アクセス系)を設定する」参照)。

読み書きブレークを設定

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRに,リード/ライト・アクセスのブレーク・イベントを設定します(「2.8.5.1 ブレーク・イベント(アクセス系)を設定する」参照)。

読み込み組み合わせブレークを設定

【E1】【E20】

組み合わせブレーク・イベントの条件の1つとして,キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRに,リード・アクセスのブレーク・イベントを設定します(「2.8.5.1 ブレーク・イベント(アクセス系)を設定する」参照)注1

書き込み組み合わせブレークを設定

【E1】【E20】

組み合わせブレーク・イベントの条件の1つとして,キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRに,ライト・アクセスのブレーク・イベントを設定します(「2.8.5.1 ブレーク・イベント(アクセス系)を設定する」参照)注1

読み書き組み合わせブレークを設定

【E1】【E20】

組み合わせブレーク・イベントの条件の1つとして,キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)SFRに,リード/ライト・アクセスのブレーク・イベントを設定します(「2.8.5.1 ブレーク・イベント(アクセス系)を設定する」参照)注1

ブレーク動作の設定

プロパティ パネルをオープンし,ブレーク機能の設定を行います。

トレース設定

トレース関連のイベントを設定するために,次のカスケード・メニューを表示します注2

なお,イベントは,イベントの設定が可能な行のみ設定することができます(「(1) イベント・エリア」参照)。

 

トレース開始の設定

キャレット位置のアドレスの命令が実行された際に,プログラムの実行履歴を示すトレース・データの収集を開始するトレース開始イベントを設定します(「2.11.3 任意区間の実行履歴を収集する」参照)。

【シミュレータ】

プロパティ パネル上の[トレース]カテゴリ内[トレース機能を使用する]プロパティの設定を自動的に[はい]にします。

トレース終了の設定

キャレット位置のアドレスの命令が実行された際に,プログラムの実行履歴を示すトレース・データの収集を終了するトレース終了イベントを設定します(「2.11.3 任意区間の実行履歴を収集する」参照)。

【シミュレータ】

プロパティ パネル上の[トレース]カテゴリ内[トレース機能を使用する]プロパティの設定を自動的に[はい]にします。

値をトレースに記録(読み込み時)

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRにリード・アクセスした際に,その値をトレース・メモリに記録するポイント・トレース・イベントを設定します(「2.11.4.1 ポイント・トレース・イベントを設定する 」参照)。

値をトレースに記録(書き込み時)

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRにライト・アクセスした際に,その値をトレース・メモリに記録するポイント・トレース・イベントを設定します(「2.11.4.1 ポイント・トレース・イベントを設定する 」参照)。

値をトレースに記録(読み書き時)

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRにリード/ライト・アクセスした際に,その値をトレース・メモリに記録するポイント・トレース・イベントを設定します(「2.11.4.1 ポイント・トレース・イベントを設定する 」参照)。

読み書き時にトレース開始の設定

【E1】【E20】

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRにリード/ライト・アクセスした際に,プログラムの実行履歴を示すトレース・データの収集を開始するトレース開始イベントを設定します(「2.11.3.1 トレース・イベントを設定する」参照)。

読み書き時にトレース終了の設定

【E1】【E20】

キャレット位置,または選択している変数(グローバル変数/関数内スタティック変数/ファイル内スタティック変数)/SFRにリード/ライト・アクセスした際に,プログラムの実行履歴を示すトレース・データの収集を終了するトレース終了イベントを設定します(「2.11.3.1 トレース・イベントを設定する」参照)。

トレース結果の表示

トレース パネルをオープンし,取得したトレース・データを表示します。

トレース動作の設定

プロパティ パネルをオープンし,トレース機能の設定を行います。

ただし,トレーサ動作中は無効となります。

タイマ設定

【IECUBE】【シミュレータ】

タイマ関連のイベントを設定するために,次のカスケード・メニューを表示します(「2.12.3 任意区間の実行時間を計測する【IECUBE】【シミュレータ】」参照)。

なお,イベントは,イベントの設定が可能な行のみ設定することができます(「(1) イベント・エリア」参照)。

 

実行時にタイマ開始

キャレット位置のアドレスの命令が実行された際に,プログラムの実行時間の計測を開始するタイマ開始イベントを設定します。

【シミュレータ】

プロパティ パネル上の[タイマ]【IECUBE】【シミュレータ】カテゴリ内[タイマ機能を使用する]プロパティの設定を自動的に[はい]にします。

実行時にタイマ終了

キャレット位置のアドレスの命令が実行された際に,プログラムの実行時間の計測を終了するタイマ終了イベントを設定します。

【シミュレータ】

プロパティ パネル上の[タイマ]【IECUBE】【シミュレータ】カテゴリ内[タイマ機能を使用する]プロパティの設定を自動的に[はい]にします。

タイマ結果の表示

イベント パネルをオープンし,タイマ関連のイベントのみ表示します。

カバレッジ情報をクリア

現在デバッグ・ツールが保持しているコード・カバレッジ測定結果をすべてクリアします。

ただし,使用するデバッグ・ツールがカバレッジ機能をサポートしていない場合,この項目は表示されません。

命令の編集

キャレット位置の行の命令を編集するために,編集モードに移行します(「2.6.4 ライン・アセンブルを行う」参照)。

ただし,プログラム実行中は無効となります。

コードの編集

キャレット位置の行の命令コードを編集するために,編集モードに移行します(「2.6.4 ライン・アセンブルを行う」参照)。

ただし,プログラム実行中は無効となります。

表示

逆アセンブル・エリアの表示内容を設定するために,次のカスケード・メニューを表示します。

 

ラベルのオフセットを表示

ラベルのオフセット値を表示します。アドレスにラベルが定義されていない場合,一番近いラベルからのオフセット値を表示します。

アドレス値をシンボルで表示

アドレス値を“シンボル+オフセット値”で表示します(デフォルト)。

ただし,アドレス値にシンボルが定義されている場合は,シンボルのみを表示します。

レジスタを機能名称で表示

レジスタ名を機能名称で表示します(デフォルト)。

レジスタを絶対名称で表示

レジスタ名を絶対名称で表示します。

スクロール範囲を設定...

スクロール範囲を設定するためのスクロール範囲設定 ダイアログがオープンします。

混合表示

逆アセンブル結果とソース・テキストとの対応を表示する,混合表示モードに設定します(デフォルト)。

ソースへジャンプ

キャレット位置のアドレスに対応するソース行にキャレットを移動した状態で,エディタ パネルがオープンします。

メモリへジャンプ

キャレット位置のアドレスに対応するメモリ値にキャレットを移動した状態で,メモリ パネル(メモリ1)がオープンします。

注 1.

【E1】【E20】
選択しているマイクロコントローラが組み合わせブレーク・イベントをサポートしている場合のみ,この項目は表示されます。

注 2.

【E1】【E20】【EZ Emulator】
選択しているマイクロコントローラがOCDトレース機能搭載品の場合のみ有効となります。

 

【イベント・エリア】(【シミュレータ】以外)

ハードウエア・ブレークを優先する

マウスのワンクリック操作で設定できるブレークの種類をハードウエア・ブレークポイントとします(プロパティ パネル上の[ブレーク]カテゴリ内[優先的に使用するブレークポイントの種類]プロパティの設定に反映されます)。

ソフトウエア・ブレークを優先する

マウスのワンクリック操作で設定できるブレークの種類をソフトウエア・ブレークポイントとします(プロパティ パネル上の[ブレーク]カテゴリ内[優先的に使用するブレークポイントの種類]プロパティの設定に反映されます)。