チュートリアル

「ドライバ対応方式」による設定方法

WindowsOS向けのターゲット機器で使用する場合の設定方法を説明します。

「ドライバ対応方式」は、通常の通過情報出力のテストポイントにイベントIDを格納して出力する形式です。
その他の方式のように、専用のテストポイントを挿入する必要はありません。
テストポイントと一緒にイベントIDを出力するので、リアルタイム性に優れた方式です。
この方式では、オプションUNITである「AnalogBox」でのデータ収集、高速テストポイント変換ができません。

1.サンプルドライバのダウンロード

対応OS 接続方式 言語 イベントID出力方式 ダウンロード
Windows Ethernet C/C++ ドライバ対応方式 ダウンロード

2.WindowsOSドライバのカスタマイズ方法

ドライバ関数において、イベントIDを取得するAPIを使用して、通常の通過情報出力のテストポイントに
イベントID を格納して出力します。 Windows環境における実装例を説明します。

2-1.#define設定

以下のdefineを有効にします。

/*============================================================== */
/*  Macro:  DT_ADD_EVENT_INFO                                    */
/*  Desc:   Please set 1 when you add Event Value to Test Point. */  
 *===============================================================*/
define DT_ADD_EVENT_INFO	1

2-2.その他の変更

以下の関数に、プロセスやスレッドを取得するAPIを記載します。
サンプルドライバでは、スレッドIDを取得するAPI(GetCurrentThreadId)の結果を変数「Event」に格納し
1byteごとに格納して出力します。
ターゲットの環境に合わせて、Eventの型やAPIの箇所を変更してください。

/*================================================================*/
/*  Func:   _TP_EventInfoSet                                      */
/*  Desc:   Please describe the code to set the Event Info.       */
/*================================================================*/
#if DT_ADD_EVENT_INFO
DT_INLINE void _TP_EventInfoSet( unsigned char *buff, DT_UINT *count )
{
	DWORD Event = GetCurrentThreadId();

	buff[0] = Event;
	buff[1] = Event >> 8;
	buff[2] = Event >> 16;
	buff[3] = Event >> 24;
	*count += 4;
}

4.データ取得

イベントID出力ポイントが挿入されたソースコードをコンパイルし、ターゲットを動作させて、DT10でテストレポートを取得します。
通常の通過情報出力のテストポイントのデータに格納されて出力されたイベントID値は、
通常のレポートデータの「イベントID」欄に表示されます。

kernel-insert-2

5.解析方法

5-1.イベント定義の設定

イベントID に対し、名称(イベント定義)を付けることが可能です。イベント定義の設定は任意です。
イベント定義設定は、テストレポートの「イベント定義」欄や、イベントトレース、プロセス占有率スコープ、
関数遷移スコープといった機能に反映され、イベント遷移の解析をより分かりやすくします。

以下の手順で表示されるダイアログから設定します。

  • DT10アプリのメニュー > レポート解析 > イベントトレース > イベント定義 > イベント定義の設定

5-2.プロセス解析モードの有効化

この設定を有効にすることで、コアやイベントID毎に解析結果を表示できるようになります。

  • DT10アプリのメニュー > ツール > 環境設定を選択。
  • 「環境設定」ダイアログで、解析を選択。
  • 「プロセス解析モードを有効にする」をチェックON。

5-3.関数遷移スコープでのデータ解析

以下の手順で、解析結果が表示されます。

  • DT10アプリのメニュー > レポート解析 > 関数遷移スコープ

横軸が時間軸で、上部には各コアの動作区間を示すグラフ表示、
横軸が時間軸で、縦軸は コア > プロセス(イベントID) > 関数名 のツリーが表示され、
プロセスや関数単位の状態遷移が確認できます。

マクロ視点からミクロ視点まで、多角的に「見える化」することで、ソフトの動きを把握しやすくします。

さらに関数遷移スコープのグラフ上をダブルクリックすることでテストレポートの該当位置にジャンプしたり、
2つのカーソルで時間情報の確認もできます。

5-4.プロセス占有率スコープでのデータ解析

  • DT10アプリのメニュー > レポート解析 > イベントトレース > プロセス占有率スコープ
  • 「解析範囲指定」ダイアログで、解析範囲を指定して、「OK」をクリック。

横軸が時間軸で、各プロセスの占有率を折れ線グラフで表示します。
また、移動させたカーソル部分のタイミングにおける占有時間、占有率、最大・最小時間をリスト表示します。

負荷の高いプロセスを一目で確認できます。

関数遷移スコープと同様に、グラフ上をダブルクリックすることでテストレポートの該当位置にジャンプができます。