アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
 
 @IT > デバッグ手法を根底から変革 Workbench Diagnosticsの診断機能の衝撃
 
@IT Special

 

PR

デバッグ手法を根底から変革
Workbench Diagnosticsの診断機能の衝撃

ウインドリバーが2005年12月にリリースした新しい診断ツール「Workbench Diagnostics」が、いま反響を呼んでいる。組み込みソフトウェア開発者を悩ますデバッグ作業を大幅に効率化する画期的な仕組みとは?

 Workbench Diagnostics(以下、Diagnostics)は、ダイアグノスティックス(「診断」の意)の名が示すとおり、診断ツールの一種である。ウインドリバーが提供するEclipseベースの開発スイート「Wind River Workbench」のプラグインツールであり、同社のリアルタイムOS「VxWorks 6.x」を採用した組み込みソフトウェアの開発、テスト、保守工程で幅広く使える。

図1 Workbench Diagnostics 1.0の構成

   実行プログラムの修正は不要

 Diagnosticsの最大の特徴は、「センサーポイント」と呼ぶ新しい独自技術にある。その仕組みは、ホスト上のWorkbenchで作成した診断用パッチプログラム(センサーポイント)をターゲット上の実行プログラムへイーサネット経由などで挿入。それを使って必要なデータをモニタ出力させたり、データロギングしたりするというもの。ここで画期的なのは、“実行プログラム自体に手を加えていない”ことだ。ターゲットのメインメモリ(RAM)上にロードされたセンサーポイントは、ターゲット上で動作しているプログラムの任意の部分だけを自身へ動的に切り替えてしまう。

図2 センサーポイントの仕組み

 センサーポイントは同時に複数使用することが可能で、配置/削除、機能の有効化/無効化は、ホストのWorkbenchから集中コントロールできる。つまり、可変的に診断用パッチを当てられるのだ。

画面1 ホストのWorkbenchでセンサーポイントを有効化(画像をクリックすると拡大します)

 この仕組みの便利さは、printf関数を用いたデバッグプリントで考えてみると分かるだろう。デバッグのため、注目する個所にprintf関数を埋め込む場合、プログラムを修正し、再ビルドしてターゲットへ書き込む必要がある。1回で問題点が抽出されるならよいが、普通は一連のサイクルを何回か実行することになり、デバッグ作業全体としてはかなりの手間になってしまう。

 センサーポイント技術であればプログラムを再ビルドすることなく、printf関数を埋め込んだセンサーポイントを実行プログラムへ瞬間的に適用し、デバッグプリントが行える。結果が出なければ、別のセンサーポイントを別な個所に適用することで、対象を絞り込んでいくことができる。これならデバッグ作業の工数がかなり減るだろう。

画面2 Workbenchのエディタでセンサーポイントを作成可能(画像をクリックすると拡大します)

   システム全体を診断可能

 センサーポイント技術のもう1つの魅力は、Workbenchの統合環境で作業できる点である。センサーポイントの記述は、Diagnosticsで機能拡張されるWorkbenchエディタにより、C言語と専用ディレクティブで行う。プログラムのソースコードを参照しながら、すべての関数、ローカル/グローバル変数に対してプルダウンメニューでセンサーポイント挿入を設定できるので、普通にコードを追加するのと同じ感覚だろう。

 また、ソースコードのあるアプリケーションだけでなく、バイナリ提供されるVxWorksのカーネルや割り込みハンドラ、あるいはサードパーティのミドルウェア、デバイスドライバにもセンサーポイントを挿入でき、システム全体が診断対象となる。

 記述したセンサーポイントは、専用コンパイラによりCPUネイティブに変換(現状ではPower PCとIAに対応)、クリック1つでターゲット上での配置/削除、機能の有効化/無効化が実施されるので便利だ。一連のリモート制御はWorkbenchとターゲット側に常駐させるエージェントの連携によって行われるが、オーバーヘッドは低い(20〜200命令ほど)。専用のログ可視化ツールも組み込まれ、ログ解析もWorkbench上で行える。

画面3 ログの転送も簡単に行える(画像をクリックすると拡大します)

画面4 Sensorpoint Log Viewer(画像をクリックすると拡大します)

   セキュリティ強化版も投入

 Diagnosticsにはセンサーポイントのほかに、UNIXでいうコアダンプと同じ「コアイメージ」と呼ぶ機能もある(標準サポートはVxWorks 6.2)。致命的なシステム例外やカーネルパニックが生じた場合、コアファイルはターゲットのメモリに格納、ホストへ転送され、機能を拡張したWorkbenchデバッガでトレースできる。

 Diagnosticsは一般的な組み込みソフトウェア開発の現場だけでなく、組み込み機器の遠隔保守にも使えるだろう。機器に何か異常が発生した際、ネットワーク経由で遠隔地から診断し、暫定的に修正パッチを当てることができる。事務機器から産業機器、大型設備まで、幅広い適用が考えられる。そのため、ウインドリバーは2006年春にもネットワーク接続時のセキュリティ機能を拡張したDiagnosticsを投入する考えだ。

 さらに、現状のセンサーポイント技術では実行プログラム自体をフラッシュメモリなどを固定的に、かつセキュアに書き換えることまではできないが、2006年夏にも投入するバージョンでは、それも可能にするという。さらに遠隔保守で役立ちそうだ。また、2006年中に対応OSをLinuxへも広げる計画である。

 Diagnosticsは組み込みソフトウェアのテスト、保守のスタイルを大きく変える可能性を秘めている。


提供:ウインドリバー 株式会社
企画:アイティメディア 営業局
制作:@IT 編集部
掲載内容有効期限:2006年2月18日
 
関連リンク
ウインドリバー

開発スイート「Wind River Workbench」

動的診断ツール「Workbench Diagnostics」

RTOS「VxWorks」

ソフトウェア総合開発プラットフォーム

次世代デバイス開発を効率的に実現する新しいDSO製品群を発表(プレスリリース)

@IT関連記事
組み込み分野のソフトウェア・クライシスを防ぐ− ウインドリバー −(組み込み開発フォーラム)

組み込み分野を最適化するDSOという考え方 〜 DSOとは何か、なぜいまDSOなのか 〜(組み込み開発フォーラム)

ウインドリバーのマーケティングは“iPodと同じ”(@ITNews)

これからは作るのではなく、買う時代〜ウインドリバー(@ITNews)


 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ