トレースキャプチャオブジェクトは、トレースデータの保存と配信を担当します。CoreSight ETB、TMC/ETB、TMC/ETR などの一部のトレースキャプチャデバイスはプラットフォーム自体に常駐します。一部のトレースキャプチャデバイスは、トレースをキャプチャして DSTREAM(4GB トレースバッファ内蔵)などのプラットフォーム外のストレージに保存します。
次の図に、トレースキャプチャデバイスのクラス階層およびインタフェースを示します。
図 14-7 DTSL トレースキャプチャオブジェクト
次は、ETB トレースキャプチャデバイスを作成するための代表的なコードシーケンスを DTSL Jython スクリプトから抜粋したものです。
1.devID = self.findDevice("CSETB")
2.self.ETB = ETBTraceCapture(self, devID, "ETB")
3.self.ETB.setFormatterMode(FormatterMode.BYPASS)
4.self.ETB.addTraceSource(self.ETM, self.coretexA8.getID())
5.self.addTraceCaptureInterface(self.ETB)
6.self.setManagedDevices([self.ETM, self.ETB])
行 1 は、RDDI コンフィギュレーション(
.rvc ファイル)から ETB デバイス ID(番号)を見つけます。行 2 は、「ETB」という名前が付いた
ETBTraceCapture
オブジェクトを作成します。行 3 は、ETB のフォーマッタモードを構成します。行 4 は、ETM オブジェクト(
14.5.4 DTSL トレースソースオブジェクト のコードシーケンスで作成されたものなど)をトレースソースのセットに追加してトレースキャプチャデバイスと関連付けます。これは、トレースをトレースキャプチャデバイスに配信するすべてのトレースソースオブジェクトに対して行う必要があります。ETM をコアに関連付けるために、コードでは、その ID でコアを関連付けることのできるバージョンの
addTraceSource()
メソッドが使用されます。行 5 は、トレースキャプチャデバイスを DTSL コンフィギュレーションに追加します。行 6 は、ETM および ETB デバイスとの接続と ETM および ETB デバイスからの接続の切断を自動的に管理するように DTSL に指示します。
クライアントプログラムに DTSL コンフィギュレーションオブジェクトへの参照がある場合は、このオブジェクトに対してトレースキャプチャデバイスのセットの有無を問い合わせることができます。どのトレースソースが、それぞれのトレースキャプチャデバイスに渡されるのかを検出することができます。