連載
» 2006年10月03日 00時00分 UPDATE

Windows CE 6の全貌(3):リモートデバッグとリモートツールの活用 (1/3)

VS2005を使えば、ターゲットデバイス上のWindows CE 6をリモートデバッグできる。その準備方法やリモートツールの使用法を紹介する

[松井 俊訓/杉本 拓也 富士通ソフトウェアテクノロジーズ,@IT MONOist]

 前回は、Visual Studio 2005を利用してOSイメージを作成し、それを起動するところまでを解説しました。今回はOSのリモートデバッグおよびリモートツールの解析手法について解説します。

リモートデバッグとカーネルデバッグ

 Visual StudioやeMbedded Visual C++には、開発マシンとターゲットデバイスを接続し、ビルドしたアプリケーションを開発マシンからターゲットデバイスへ転送したり、リモートデバッグする機能があります。リモートデバッグでは、PC上で動作するWindowsアプリケーションと同じように、リモートでステップ実行や変数の監視が可能です。

 OSイメージもアプリケーションと同じように、リモートデバッグを行うことができます。OSイメージのデバッグを行うことを「カーネルデバッグ」と呼びます。カーネルデバッグでは、OSモジュールやデバイスドライバ、アプリケーションのデバッグが可能です。当然のことながら、ソースコード上にブレークポイントを設定してのステップ実行や変数の参照が可能です。

 ターゲットデバイスとの接続はイーサネット、USB、シリアルケーブルなどを利用します。接続の際は、「KITL(Kernel Independent Transport Layer)」という機能を利用します。これは名前のとおり、OSカーネルから独立した接続レイヤで開発マシンとターゲットデバイスを接続する機能です。

カーネルデバッグ対応イメージの作成

 カーネルデバッグを行うには、カーネルデバッグをサポートするOSイメージを構築する必要があります。つまり、OSイメージもアプリケーションと同じように、「リリース版」「デバッグ版」の作成が可能です。

ビルド方法の選択 画面1 ビルド方法の選択。「Debug」「Release」の区別があることが分かる

 カーネルデバッグ対応イメージの設定は、Visual Studio 2005の[Solution Explorer]の[ワークスペース名](ここでは[MyOSImage])を右クリックし、[Properties]を選択します。

Solution Explorerで開いたコンテキストメニュー 画面2 Solution Explorerで開いたコンテキストメニュー

 [ワークスペース名 Properties Page]ダイアログが表示されます。左側のツリービューで[Configuration Properties]−[Build Options]を選択し、右側の[Build Options]リストで[Enable Kernel Debugger]のチェックボックスを有効にします。また、前述のKITLを有効にするために[Enable KITL]も有効にします。

ビルドオプションの設定 画面3 ビルドオプションの設定

 この2つのチェックボックスを有効化した状態でビルドすると、カーネルデバッグに対応したOSイメージが生成されます。

ターゲットデバイスとの接続

 次に、Visual Studio 2005とターゲットデバイスを接続するための設定を行います。[Target]メニューで[Connectivity Options]を選択すると、[Target Device Connectivity Options]ダイアログが表示されます。

  • [Download]コンボボックス:接続方法
  • [Transport]コンボボックス:接続で利用するトランスポート

をそれぞれ設定します。ここではエミュレータに接続するため、[Download][Transport]ともに[Device Emulator(DMA)]を選択しています。なお、カーネルデバッガを利用する場合、[Debugger]コンボボックスは[KdStub]を選択します。

[Target Device Connectivity Options]ダイアログ 画面4 [Target Device Connectivity Options]ダイアログ

 設定が完了したら、ターゲットデバイスと実際に接続します。[Target]メニューで[Attach Device]をクリックするとターゲットデバイスと接続し、OSイメージが転送された後にOSを起動します。

OSイメージ転送中 画面5 OSイメージ転送中

 カーネルデバッガを有効にしている場合は、起動時にデバッグサービスも開始されます。

エミュレータ上で起動したWindows CE 6 画面6 エミュレータ上で起動したWindows CE 6

 この時点でKITLとカーネルデバッガが有効になっていれば、自動的にデバッグ接続が確立され、Visual Studio 2005とターゲットデバイス間でリモートデバッグできる状態になります。画面7は、ディスプレイドライバの初期化コードにブレークポイントを設定して、ステップ実行している画面です。変数ビューにて、ブレークしている個所の変数を参照できます。

リモートでステップ実行している画面 画面7 リモートでステップ実行している画面

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.