この記事は、インテル® デベロッパー・ゾーンに掲載されている「SVEN Overview」(http://software.intel.com/en-us/articles/sven-overview) の日本語参考訳です。
SVEN とは?
SVEN は、カーネル、ユーザーそしてファームウェアで実行中のユニットからのイベントをトレースして記録するための基盤と API です。SVEN は航空機のフライトを記録する “ブラックボックス” のように振る舞います。
SVEN には次のような特徴があります:
- 非常に低いオーバーヘッド(3GHz の動作周波数で 1 回のインストルメント呼び出しあたり 100 ナノ秒以下)
- Windows* と Linux* のカーネルおよびユーザーモードをサポート
SVEN 向けの理想的な環境は ?
SVEN は、異なる CPU コンテキストから低オーバーヘッドで多くの小さなイベントを発生するようにチューニングされています。これは、制約された時間で実行される複数のソフトウェア・コンポーネントの相互作用を動的に解析するには理想的です。音声やマルチメディア・データを処理するパイプラインは、従来のブレークポイントを利用したデバッグでは停止することができません(HD ビデオ再生、携帯電話ネットワークなど)。
SVEN は、回帰テストやフィールドテスト向けにデバイス外からデータをストリーミングするデータ転送にも利用できます。低オーバーヘッドであるため、製品版のビルドにインストルメントをそのまま残すこともできます。どこか砂漠にでもある携帯電話の基地局がバックグラウンドでデバッグデータの収集を続け製品保証部門で評価スィートを利用することを想像してみてください。
競争力のあるソリューション(他のソリューションとの比較):
Linux Dtrace / LTTNG:
これらは、カーネルの視点からシステムの振る舞いをプロファイルするため、OS/カーネルのトレースデータの収集に利用されます。これらのツールは、実行時に動的に有効にすることができ、カーネル中の ”コンパイルされた” インストルメント・ポイントを使用します。システムのパフォーマンスと利用率を解析するため、オンデマンドのブラックボックス方式を取ります。SVEN は、開発者のコードにトレース呼び出しを追加してトレースを行う、ユーザーが直接制御するホワイトボックス方式であることが異なります。また、SVEN はカーネル自身をインストルメントしない限り、OS に関連するデータは見えません。Dtrace/LTTNG は、システム全体の振る舞いを解析するツールであるのに対し、SVEN は詳細レベルのインストルメントを追加することで、深いレベルにあるアプリケーション固有のデータを取得できます。Dtrace/LTTNG は、無料のデバッグツールです。
Event Tracing for Windows (ETW) – Windows 向けのイベントトレース:
ETW と SVEN は同等の機能を持っています。両者とも API によるインストルメント・コードとソフトウェアによる後処理を実装する、ホワイトボックス方式のソフトウェアによるインストルメントを利用します。ETW は、ドライバー開発キット(DDK)のようなソフトウェア開発キットに含まれているという利点があり、SVEN は、複数の OS でポータブルであるという利点があります。
SVEN のコンポーネント
- SVEN SDK
Windows* と Linux* でビルドに利用するSDK。 デバイス側のリソースとコードをインストルメントするために必要なヘッダー、ツール、そしてライブラリーのソースコードを 100% 含みます。 - Eclipse ビューア
GUI 環境で SVEN により記録されたトレースを表示するための Eclipse 3.7 へ統合するビューア。 - JTAG デバッガー・トリガー
SVEN のインストルメントをスマート・ブレークポイントに実装して再利用できる Linux* 向け XDB デバッガー拡張。
利用可能な SVEN の構成
- Linux* 向け SVEN (インテル® System Studio に含まれます)
参考資料:
インテル・テクノロジー・ジャーナルに掲載された SVEN の記事
real-time-debugging-with-sven-inteltechjournal.pdf (http://software.intel.com/sites/default/files/article/380173/real-time-debugging-with-sven-inteltechjournal.pdf)
- SVEN SDK ドキュメント
sven-sdk-documentation.pdf (http://software.intel.com/sites/default/files/article/380173/sven-sdk-documentation.pdf)
SVEN ビューア・ドキュメント