2. 機 能
2.11 実行履歴の収集
2.11.1 トレース動作の設定をする
トレース機能が開始すると,現在実行中のプログラムの実行過程を記録したトレース・データがトレース・メモリに 収集されます(プログラムの実行が停止すると,自動的にトレース機能も停止します)。
トレース機能を使用するためには,あらかじめトレースの動作に関する設定を行う必要があります。
なお,設定方法は,使用するデバッグ・ツールにより異なります。
2.11.1.1 【IECUBE】の場合
2.11.1.2 【E1】/【E20】/【EZ Emulator】の場合 2.11.1.3 【シミュレータ】の場合
2.11.1.1 【 IECUBE 】の場合
設定は,プロパティ パネルの[デバッグ・ツール設定]タブ上の[トレース]カテゴリ内で行います。
図 2.108 [トレース]カテゴリ【IECUBE】
(1) [実行前にトレース・メモリをクリアする]
トレース機能を開始する前に,トレース・メモリを一度クリア(初期化)するか否かを選択します。
クリアする場合は[はい]を選択してください(デフォルト)。
備考 トレース パネルのツールバーの ボタンをクリックすることにより,トレース・メモリを強制 的にクリアすることができます。
(2) [トレース・メモリを使い切った後の動作]
収集したトレース・データでトレース・メモリがいっぱいになった際の動作を,次のドロップダウン・リストに より選択します。
なお,トレース・メモリのサイズは,128Kフレーム(固定)です。
(3) [トレース・タイム・タグの分周率]
トレースのタイム・タグ(トレース パネルの[時間]表示)で使用するカウンタの分周率を選択します(デ フォルト:[1/1(4ns/0.3min)])。
トレース・メモリを上 書きし実行を続ける
トレース・メモリがいっぱいになると,古いトレース・データに上書きを続けます
(デフォルト)。
[実行前にトレース・メモリをクリアする]プロパティで[はい]を選択している 場合は,再実行時,トレース・データをクリアしたのちトレース・データの書き込 みを行います。
トレースを停止する トレース・メモリがいっぱいになると,トレース・データの書き込みを停止します
(プログラムの実行は停止しません)。
停止する トレース・メモリがいっぱいになると,トレース・データの書き込みを停止すると 同時にプログラムの実行を停止します。
備考 ドロップダウン・リスト上の“()”内は,分解能,および最大測定時間を示します。
注意 トレースのタイム・タグについては,以下の要因で誤差が発生します。
- ユーザ・プログラム実行中にRAMモニタ機能を使用している場合
- ユーザ・プログラム実行中にハードウエア・ブレーク,ソフトウエア・ブレークを設定した場 合
- ユーザ・プログラム実行中にDMM機能でメモリに値を書き込んだ場合
2.11.1.2 【 E1 】/【 E20 】/【 EZ Emulator 】の場合
設定は,プロパティ パネルの[デバッグ・ツール設定]タブ上の[トレース]カテゴリ内で行います。
注意 選択しているマイクロコントローラがOCDトレース機能搭載品の場合のみ,このカテゴリは表示され ます。
図 2.109 [トレース]カテゴリ【E1】【E20】【EZ Emulator】
(1) [トレース機能を使用する]
トレース機能を使用するか否かをドロップダウン・リストにより選択します。
トレース機能を使用する場合は[はい]を選択してください(デフォルト:[いいえ])。 (2) [トレース・メモリを使い切った後の動作]
収集したトレース・データでトレース・メモリがいっぱいになった際の動作を,次のドロップダウン・リストに より選択します。
(3) [トレース・メモリ・サイズ[フレーム]]
トレース・メモリのサイズ(トレース・フレーム数)を表示します。
このプロパティ値を変更することはできません。
なお,トレース・フレームはトレース・データの一単位を表し,フェッチ/ライト/リードなどで,それぞれ1 つのトレース・フレームを使用します。
なお,OCDトレース機能の動作仕様は次のとおりです。
表 2.11 OCDトレース機能の動作仕様 トレース・メモリを上
書きし実行を続ける
トレース・メモリがいっぱいになると,古いトレース・データに上書きを続けます
(デフォルト)。
トレースを停止する トレース・メモリがいっぱいになると,トレース・データの書き込みを停止します
(プログラムの実行は停止しません)。
項目 説明
トレース・メモリのクリア 次の場合にトレース・メモリをクリアします。
- プログラムの実行開始時
- 外部リセット発生時(内部リセット時ではクリアしません)
トレース・メモリを使い切った 後の動作
トレース・フル・ブレークはサポートしていません。
2.11.1.3 【シミュレータ】の場合
設定は,プロパティ パネルの[デバッグ・ツール設定]タブ上の[トレース]カテゴリ内で行います。
図 2.110 [トレース]カテゴリ【シミュレータ】
(1) [トレース機能を使用する]
トレース機能を使用するか否かを選択します。
トレース機能を使用する場合は[はい]を選択してください(デフォルト:[いいえ])。 (2) [実行前にトレース・メモリをクリアする]
トレース機能を開始する前に,トレース・メモリを一度クリア(初期化)するか否かを選択します。
クリアする場合は[はい]を選択してください(デフォルト)。
備考 トレース パネルのツールバーの ボタンをクリックすることにより,トレース・メモリを強制 的にクリアすることができます。
(3) [トレース・メモリを使い切った後の動作]
トレース・メモリが収集したトレース・データでいっぱいになった際の動作を,次のドロップダウン・リストに より選択します。
トレース対象 分岐元の命令(内蔵ROMのみ)
条件付き分岐命令は,条件成立時のみが対象となります。
また,分岐命令間の命令の補完表示(フレーム補完)を行うことはできません。
ただし,次の命令の場合は1番地ずれたアドレスと命令を表示します。
- BT ES:[HL].bit, $addr20 - BF ES:[HL].bit, $addr20 - BTCLR ES:[HL].bit, $addr20
なお,トレース パネルにおいては,次の項目のみをサポートします。
-[番号]
-[行番号/アドレス]
-[ソース/逆アセンブル]
トレース・イベント 「2.15.7 イベント設定に関する留意事項」参照 その他の注意 次の項目をトレースすることはできません。
- 割り込みベクタ - ステップ実行中の命令 - 条件付きスキップ命令
トレース・メモリを上 書きし実行を続ける
トレース・メモリがいっぱいになると,古いトレース・データに上書きを続けます
(デフォルト)。
[実行前にトレース・メモリをクリアする]プロパティで[はい]を選択している 場合は,再実行時,トレース・データをクリアしたのちトレース・データの書き込 みを行います。
トレースを停止する トレース・メモリがいっぱいになると,トレース・データの書き込みを停止します
(プログラムの実行は停止しません)。
停止する トレース・メモリがいっぱいになると,トレース・データの書き込みを停止すると 同時にプログラムの実行を停止します。
項目 説明
(4) [トレース・タイム・タグを積算する]
トレースの時間表示を積算表示にするか否かをドロップダウン・リストにより選択します。
トレースの時間表示を積算表示にする場合は[はい]を,差分表示にする場合は[いいえ]を選択してください
(デフォルト)。
(5) [トレース・メモリ・サイズ[フレーム]]
トレース・メモリのサイズ(トレース・フレーム数)を選択します(デフォルト:[4K])。
なお,トレース・フレームはトレース・データの一単位を表し,フェッチ/ライト/リードなどで,それぞれ1 つのトレース・フレームを使用します。