![]() |
![]() |
|
Loading
|
@IT > デバッグ手法を根底から変革 Workbench Diagnosticsの診断機能の衝撃 |
![]() |
|
Workbench Diagnostics(以下、Diagnostics)は、ダイアグノスティックス(「診断」の意)の名が示すとおり、診断ツールの一種である。ウインドリバーが提供するEclipseベースの開発スイート「Wind River Workbench」のプラグインツールであり、同社のリアルタイムOS「VxWorks 6.x」を採用した組み込みソフトウェアの開発、テスト、保守工程で幅広く使える。
Diagnosticsの最大の特徴は、「センサーポイント」と呼ぶ新しい独自技術にある。その仕組みは、ホスト上のWorkbenchで作成した診断用パッチプログラム(センサーポイント)をターゲット上の実行プログラムへイーサネット経由などで挿入。それを使って必要なデータをモニタ出力させたり、データロギングしたりするというもの。ここで画期的なのは、“実行プログラム自体に手を加えていない”ことだ。ターゲットのメインメモリ(RAM)上にロードされたセンサーポイントは、ターゲット上で動作しているプログラムの任意の部分だけを自身へ動的に切り替えてしまう。
センサーポイントは同時に複数使用することが可能で、配置/削除、機能の有効化/無効化は、ホストのWorkbenchから集中コントロールできる。つまり、可変的に診断用パッチを当てられるのだ。
この仕組みの便利さは、printf関数を用いたデバッグプリントで考えてみると分かるだろう。デバッグのため、注目する個所にprintf関数を埋め込む場合、プログラムを修正し、再ビルドしてターゲットへ書き込む必要がある。1回で問題点が抽出されるならよいが、普通は一連のサイクルを何回か実行することになり、デバッグ作業全体としてはかなりの手間になってしまう。 センサーポイント技術であればプログラムを再ビルドすることなく、printf関数を埋め込んだセンサーポイントを実行プログラムへ瞬間的に適用し、デバッグプリントが行える。結果が出なければ、別のセンサーポイントを別な個所に適用することで、対象を絞り込んでいくことができる。これならデバッグ作業の工数がかなり減るだろう。
センサーポイント技術のもう1つの魅力は、Workbenchの統合環境で作業できる点である。センサーポイントの記述は、Diagnosticsで機能拡張されるWorkbenchエディタにより、C言語と専用ディレクティブで行う。プログラムのソースコードを参照しながら、すべての関数、ローカル/グローバル変数に対してプルダウンメニューでセンサーポイント挿入を設定できるので、普通にコードを追加するのと同じ感覚だろう。 また、ソースコードのあるアプリケーションだけでなく、バイナリ提供されるVxWorksのカーネルや割り込みハンドラ、あるいはサードパーティのミドルウェア、デバイスドライバにもセンサーポイントを挿入でき、システム全体が診断対象となる。 記述したセンサーポイントは、専用コンパイラによりCPUネイティブに変換(現状ではPower PCとIAに対応)、クリック1つでターゲット上での配置/削除、機能の有効化/無効化が実施されるので便利だ。一連のリモート制御はWorkbenchとターゲット側に常駐させるエージェントの連携によって行われるが、オーバーヘッドは低い(20〜200命令ほど)。専用のログ可視化ツールも組み込まれ、ログ解析もWorkbench上で行える。
Diagnosticsにはセンサーポイントのほかに、UNIXでいうコアダンプと同じ「コアイメージ」と呼ぶ機能もある(標準サポートはVxWorks 6.2)。致命的なシステム例外やカーネルパニックが生じた場合、コアファイルはターゲットのメモリに格納、ホストへ転送され、機能を拡張したWorkbenchデバッガでトレースできる。 Diagnosticsは一般的な組み込みソフトウェア開発の現場だけでなく、組み込み機器の遠隔保守にも使えるだろう。機器に何か異常が発生した際、ネットワーク経由で遠隔地から診断し、暫定的に修正パッチを当てることができる。事務機器から産業機器、大型設備まで、幅広い適用が考えられる。そのため、ウインドリバーは2006年春にもネットワーク接続時のセキュリティ機能を拡張したDiagnosticsを投入する考えだ。 さらに、現状のセンサーポイント技術では実行プログラム自体をフラッシュメモリなどを固定的に、かつセキュアに書き換えることまではできないが、2006年夏にも投入するバージョンでは、それも可能にするという。さらに遠隔保守で役立ちそうだ。また、2006年中に対応OSをLinuxへも広げる計画である。 Diagnosticsは組み込みソフトウェアのテスト、保守のスタイルを大きく変える可能性を秘めている。 提供:ウインドリバー 株式会社
企画:アイティメディア 営業局 制作:@IT 編集部 掲載内容有効期限:2006年2月18日 |
|