OSおよびハイパーバイザーを意識したデバッグ

概要

ハイパーバイザー、オペレーティング・システム、アプリケーションに関する重要な洞察

弊社のTRACE32® OS-awareデバッグは、LinuxのようなリッチOS、リアルタイムOS(RTOS)、AUTOSAR規格に基づく製品のような業界固有のOS、または全てのOSが混在している場合でも、アプリケーションとそれらが動作しているOSに関するいくつかの重要な洞察を提供します。

複数のOSがハイパーバイザによって制御されている仮想化システムでは、TRACE32® Hypervisor-aware debuggingにより、各ゲストOS/仮想マシン(VM)に対してOSを意識したデバッグを同時に実行し、システム全体の概要を表示することができます。静的ハイパーバイザに加え、動的ハイパーバイザもサポートしており、VMにメモリリソースとコアを動的に割り当てます。

当社のTRACE32®ツールは、ハイパーバイザーやOSの構造やデータへのアクセスを提供し、それらがどのように動作し、チップリソースを利用しているかをより良く理解することができます。

80以上のオペレーティング・システムをサポート

TRACE32® OS認識機能は、あらゆる種類の組込みOSに対応しています。リッチOSだけでなく、RTOSや組み込みアプリケーションで使用される最も一般的なオープンソースや商用OSの全てをサポートしています。

ソフトウェアスタック全体のコントロール

ユーザー・アプリケーションからデバイス・ドライバまで、ソフトウェア・スタック全体をデバッグし、スレッドやメッセージ・キューなどのOSオブジェクトをすべて照会して表示することができます。仮想化システムでは、すべてのVMとそのアプリケーションを同時にデバッグできます。

OSを意識したトレースとパフォーマンス分析

当社のTRACE32®ツールは、シンボリック関数コールトレースや詳細なパフォーマンス解析機能を含む、多くの洗練されたリアルタイム解析機能を提供します。また、ハイパーバイザー制御の仮想化システムでも利用可能です。

OSリソースに関する洞察

弊社のTRACE32®ツールは、OSオブジェクトの現在の状態を静的に表示するだけでなく、OSタスクのスケジューリング解析のように、OSオブジェクトの動的な挙動を経時的に表示します。

マルチコアSoCで複数のOSをデバッグする

単一のOSインスタンスを共有するSMPクラスタのAMPシステムだけでなく、各コアが独自の(異なる)OSを実行するヘテロジニアスなAMPシステムもデバッグできる。

仮想および物理ターゲットにおけるOS認識デバッグのメリット

TRACE32® PowerView GUIは、シミュレーションにおいても実際のハードウェアと同じデバッグ体験を提供します。ツールにとらわれないコンセプトにより、仮想/物理ターゲットに関係なく同じ体験が得られます。

特徴

あらゆる組込みシステムの要件に対応する設計

ハイパーバイザ、OS、アプリケーションの全てのコンポーネントに即座にアクセスできるため、TRACE32®のハイパーバイザ及びOS認識技術はデバッグ作業を大幅に簡素化します:タスク、スレッド、セマフォ、メールボックスなどのシステムオブジェクトを表示したり、タスクを意識したブレークポイントを設定したり、タスクを意識したパフォーマンス監視を実行することができます。OSがMMU(メモリ管理ユニット)を使用している場合、当社のデバッガはOSのMMUテーブルからの情報を使用してコードとデータにアクセスし、それをウォークスルーして有効な論理-物理変換を見つけることができます。

各機能が使用可能かどうかは、使用するチップの仕様やお使いのTRACE32®製品によって異なります。詳しくは以下のスライドをご覧ください。

タスクリストの表示

OS のタスクテーブル、または特定のタスクの詳細情報を表示します。

グローバルタスクリストは、TRACE32® のハイパーバイザ対応デバッグの心臓部です。これはゲストOSとハイパーバイザの全てのタスク/プロセス/スレッドをリストアップします。PowerViewは、VMが現在アクティブでなくても、GUI上でタスクのコンテキストを可視化することができます。

スタック使用量の表示

タスクのスタック使用率をカバーするために、このウィンドウは全てのアクティブなタスクとそのスタックポインタアドレス、最大スタック使用量、スタック領域、スタック使用率を表示します。

カーネルオブジェクトとログの表示

使用するOSに応じて、プロセス、スレッド、キュー、セマフォ、タイマー、イベント・グループ、ストリーム・バッファ、メッセージ・バッファ、カーネル・ドライバ、カーネル・ログ・バッファなど、さまざまなカーネル・リソースを表示できます。

タスク・アクティビティ・タイムチャート

異なるタスクに費やされた時間をタスク実行時間チャートとして表示します。 プログラムのクリティカル・パスにどれだけの時間が費やされているかを見ることができ、割り込みやタスクの優先順位付けに起因する課題を簡単に特定できます。

タスクパフォーマンス分析

ここでは、タスクの実行時間を分析できる。これには、タスクの総実行時間とCPU使用率、カウント、タスクがスケジュールされた頻度、タスクがスケジュールされた最短、最長、平均時間が含まれる。

ネステッド関数ランタイム解析

関数ネスティングのグラフィカルツリー表示。関数の最小実行時間、最大実行時間、平均実行時間、総実行時間、実行回数、総実行時間に占める割合が表示されます。

仮想タスクスイッチとカーネルスタックの表示

オペレーティング・システム、ライブラリ、アプリケーションのコール・スタック(ローカル・データ・ストレージ、パラメータ・パッシング、サブルーチンやブロックのコンテキスト、リターン・ステートなど)の表示。これは、プロセスのコンテキストを分析したり、スレッドの現在の状態を調べたりするのに便利です。コールスタックは、アプリケーションが特定のOSイベントを待機しているかどうか、どこで待機しているかを明確に示します。

オペレーティング・システムを含むシステム全体のコード・カバレッジ

OS コードを含むモジュールに関するコード・カバレッジの解析結果を表示します。複数のコード・カバレッジ・メトリクスを分析し、選択したメトリクスと含まれるすべてのメトリクスの結果を表示することもできます。例えば、MC/DC メトリクスには、コンディション、デシジョン、ステートメントのカバレッジも含まれます。

スタック使用量の表示

タスクのスタック使用率をカバーするために、このウィンドウは全てのアクティブなタスクとそのスタックポインタアドレス、最大スタック使用量、スタック領域、スタック使用率を表示します。

カーネルオブジェクトとログの表示

使用するOSに応じて、プロセス、スレッド、キュー、セマフォ、タイマー、イベント・グループ、ストリーム・バッファ、メッセージ・バッファ、カーネル・ドライバ、カーネル・ログ・バッファなど、さまざまなカーネル・リソースを表示できます。

タスク・アクティビティ・タイムチャート

異なるタスクに費やされた時間をタスク実行時間チャートとして表示します。 プログラムのクリティカル・パスにどれだけの時間が費やされているかを見ることができ、割り込みやタスクの優先順位付けに起因する課題を簡単に特定できます。

タスクパフォーマンス分析

ここでは、タスクの実行時間を分析できる。これには、タスクの総実行時間とCPU使用率、カウント、タスクがスケジュールされた頻度、タスクがスケジュールされた最短、最長、平均時間が含まれる。

ネステッド関数ランタイム解析

関数ネスティングのグラフィカルツリー表示。関数の最小実行時間、最大実行時間、平均実行時間、総実行時間、実行回数、総実行時間に占める割合が表示されます。

仮想タスクスイッチとカーネルスタックの表示

オペレーティング・システム、ライブラリ、アプリケーションのコール・スタック(ローカル・データ・ストレージ、パラメータ・パッシング、サブルーチンやブロックのコンテキスト、リターン・ステートなど)の表示。これは、プロセスのコンテキストを分析したり、スレッドの現在の状態を調べたりするのに便利です。コールスタックは、アプリケーションが特定のOSイベントを待機しているかどうか、どこで待機しているかを明確に示します。

オペレーティング・システムを含むシステム全体のコード・カバレッジ

OS コードを含むモジュールに関するコード・カバレッジの解析結果を表示します。複数のコード・カバレッジ・メトリクスを分析し、選択したメトリクスと含まれるすべてのメトリクスの結果を表示することもできます。例えば、MC/DC メトリクスには、コンディション、デシジョン、ステートメントのカバレッジも含まれます。

仕組み

ハイパーバイザーの有無によるシステム全体のデバッグ

オペレーティング・システムをデバッグするには、デバッガによる特別なサポートが必要だ。デバッガはオペレーティングシステムを "認識 "する必要があります。TRACE32®デバッグ/トレースツールは幅広いターゲットオペレーティングシステムをサポートしているため、この特別なサポートはデバッガソフトウェアに静的にリンクされているのではなく、どのオペレーティングシステムが使用されているかに応じて、拡張機能として動的にロードされます。

OSデバッグ機能を提供するファイル群は「アウェアネス」と呼ばれる。タスクリストを読んだり、プロセスやモジュールのデバッグを可能にするために、OSアウェアネスはカーネルシンボルを使用してOSカーネルの内部構造にアクセスします。TRACE32 OSアウェアネスとTRACE32 MMUサポートにより、ユーザーはプロセスの境界を越えてシームレスにデバッグできる: 各プロセスの仮想アドレス空間に直接アクセスし、各プロセスの現在のレジスタ・セットとスタック・フレームを表示することができる。OS固有のエクステンションをロードした後、TRACE32® PowerViewソフトウェアは、オペレーティングシステムのデバッグを簡素化する追加コマンド、オプション、表示を提供します。

仮想化のコンセプトは、単一のハードウェア・プラットフォーム上で複数のオペレーティング・システムを並行して実行することを可能にする。仮想化の中核であるハイパーバイザーは、すべてが確実かつ効率的に動作することを保証する。ハイパーバイザーは2つのタスクを果たすソフトウェア層である:仮想マシン(VM)の起動と管理、そしてVM用の物理ハードウェア・リソースの仮想化だ。VM内で稼働するオペレーティング・システムはゲストOSと呼ばれる。仮想化されたハードウェア・リソースへのゲストによるすべてのアクセスは、ハイパーバイザーによって物理リソースにマッピングされる。

TRACE32® hypervisor-awarenessを使用することにより、デバッガはハイパーバイザのVMを検出し可視化します。最も重要な目的は、システム全体のシームレスなデバッグです。つまり、システムがブレークポイントで停止したときに、すべてのプロセス、すべてのVM、さらにハイパーバイザーと実際のハードウェア・プラットフォームの現在の状態をチェックし、変更することができます。さらに、コード内の任意の場所にプログラムのブレークポイントを設定できます。


オートサーのサポート

AUTOSARベースの自動車システムのデバッグ、トレース、プロファイル

自動車産業におけるAUTOSARベースのセーフティクリティカルな(マルチコア)マイコン/マイクロプロセッサシステムでは、機能安全を証明するために高度な解析技術が要求されます。当社のTRACE32® デバッグ/トレースツールは、TRACE32® AUTOSAR OS認識機能により、このようなシステムに対する深い洞察を可能にするだけでなく、最も重要なAUTOSARツールベンダーとの長年の協力関係により、高度なタイミング解析ソリューションも提供しています。


対応OS

組込みアプリケーションで使用されるあらゆる一般的なOSをサポート

TRACE32®は、組込みアプリケーションで使用される一般的なオープンソース、商用リアルタイムOS、リッチOSを全てサポートしており、合計80以上のOSをサポートしています。

最も人気のあるOS

  • FreeRTOS

    TRACE32® ソフトウェアパッケージには、FreeRTOS リアルタイムカーネル用のコンフィギュレーションが含まれています。FreeRTOSを認識することで、タスクリストやその他のカーネル情報に簡単にアクセスすることができ、性能解析データを生成し、FreeRTOSが動作しているターゲット上でTRACE32®システムを用いて最も効果的なデバッグを行うことができます。

    さらに詳しく
  • Linux

    TRACE32®ソフトウェアパッケージには、Linuxオペレーティングシステム用のコンフィギュレーションが含まれています。Linuxを意識することにより、タスクリストやその他のカーネル情報に簡単にアクセスでき、性能解析データを生成し、Linuxが動作するターゲット上でTRACE32®システムを使用した最も効果的なデバッグを行うことができます。

    さらに詳しく
  • PikeOS/PikeOS MPU

    TRACE32® ソフトウェアパッケージには、SYSGO AGのPikeOS リアルタイムオペレーティングシステム用のコンフィギュレーションが含まれています。PikeOSを認識することで、タスクリストやその他のカーネル情報に簡単にアクセスでき、性能解析データを生成し、PikeOSまたはPikeOS MPUが動作するターゲット上でTRACE32®システムを用いて最も効果的なデバッグを行うことができます。

    さらに詳しく
  • QNX

    弊社のTRACE32® ソフトウェアパッケージには、BlackBerry社のQNX Real Time Kernel用のコンフィギュレーションが含まれています。BlackBerry社との密接な協力により、高度なQNX認識機能を構築し、QNXが動作するターゲット上でTRACE32®システムによる最も効果的なデバッグを可能にしました。

    さらに詳しく
  • VxWorks

    弊社のTRACE32®ソフトウェアパッケージには、Wind River社のVxWorksリアルタイムカーネル用のコンフィギュレーションが含まれています。ウインドリバー社との緊密な協力により、高度に洗練されたVxWorks認識を構築し、VxWorksが動作するターゲット上でTRACE32®システムによる最も効果的なデバッグを可能にしています。

    さらに詳しく
  • ゼファーOS

    TRACE32®ソフトウェアパッケージには、オープンソースのZephyrOS リアルタイムオペレーティングシステム用のコンフィギュレーションが含まれています。ZephyrOSを認識することで、タスクリストやその他のカーネル情報に簡単にアクセスでき、性能解析データを生成し、ZephyrOSが動作するターゲット上でTRACE32®システムを用いて最も効果的なデバッグを行うことができます。

ここでは、80以上のサポートされている各オペレーティングシステムをご覧いただけます。

ターゲットOSを見つける
対応ハイパーバイザー

組込みアプリケーションで使用される最も幅広いハイパーバイザーをサポート

TRACE32® は組込みアプリケーションにおいて、オープンソース及び商用のスタティック及びダイナミックハイパーバイザを幅広くサポートしています。スタティックハイパーバイザはリソースを静的に分割し、システムのインスタンス化時に割り当てますが、ダイナミックハイパーバイザはリソースを動的にVMに割り当てます。メモリは通常、MPUまたはMMUによって実行される2段階の変換を使用してVMに割り当てられる。ダイナミックハイパーバイザのサポートは、組込み業界におけるTRACE32®ツールのユニークな特徴です。


カスタム・コンフィデンシャルOS

カスタムOSと機密OSのための独自のOS認識を開発する

機密保持などの理由でOS-aware Debuggingをすぐにサポートできないオペレーティングシステムでも、この機能を使用せずにTRACE32®ツールを使用することができます。

TRACE32® PowerView GUIはExtensionと呼ばれるカスタマイズされた機能を追加する仕組みを提供しています。Exten-sionでは、API関数を呼び出して、(RT)OSカーネルリソース(タスクリストなど)の表示、タスクを意識した統計解析、タスク固有のスタックカバレッジなど、様々な機能を実装することができます。

これにより、OSを意識したデバッグを簡単に実装することができます。拡張機能を構築するために必要なツールは全てExtension Development Kit (EDK)に含まれています。