デバイスのデバッグとデスクトップのデバッグとの違い
更新 : 2007 年 11 月
デバイスのデバッガは、デスクトップのデバッガとほぼ同じ機能がサポートされます。ただし、次の例外があります。
エディット コンティニュはサポート外
デバイスのデバッガでは、中断モード時にソースの変更と継続を行う機能はサポートされません。デバッグ中にコードを変更するには、デバッグを停止し、コードを編集してから変更したソースで再起動する必要があります。中断モードでコードを変更しようとすると、警告が表示されます。
関数の評価はネイティブ デバッガでサポート外
ネイティブ デバイス デバッガでは、関数の評価はサポートされません。関数を含む式を入力し、返される結果で関数を評価することはできません。
マネージ デバイス デバッガでは、関数の評価がサポートされています。
相互運用デバッグの制約
単一インスタンスのデバッガ内で、ネイティブ コードとマネージ コードをデバッグすることはできません。
ネイティブ コードとマネージ コードの両方 (または pInvoke を使用しているマネージ コード) を含んでいるアプリケーションをデバッグするには、コードのステップ実行を開始する各セクション内にブレークポイントを設定します。その後、特定のセクション (たとえばマネージ セクション) に必要なデバッガをアタッチします。他のデバッガが必要になったときは、そのデバッガをデタッチして別のデバッガをアタッチします。プログラムをステップ実行するには、必要に応じて頻繁にデタッチとアタッチの手順を繰り返してください。詳細については、「チュートリアル : マネージ コードとネイティブ コードの両方を含むソリューションのデバッグ」を参照してください。
同じプロセスで同時にデバッグ インスタンスを 2 つ使用する操作は、現在サポートされていません。
属性ベースのデバッグはサポート外
.NET Compact Framework では、属性ベースのデバッグは現在サポートされていません。そのため、ビジュアライザの属性を定義する機能などは、デバイス デバッガで使用できません。
デスクトップのデバッグはサポート外
デバイス デバッガを使用して、デスクトップ用に記述されたアプリケーションをデバッグすることはできません。デスクトップ デバッガを使用してください。
カーネルのデバッグはサポート外
カーネルのデバッグにデバイス デバッガは使用できません。
"マイ コードのみ" デバッグはサポート外
"マイ コードのみ" デバッグは使用できません。
ランタイム デバッガ (Cordbg.exe) の追加項目
ランタイム デバッガを使用すると、ツール販売元および開発者は、.NET Framework 共通言語ランタイム (CLR: Common Language Runtime) を対象にしたプログラムのバグを発見および修正しやすくなります。デバイス プロジェクトでは、ランタイム デバッガに新しいコマンドと新しいモード引数を追加します。次の表は、新しいコマンドとモード引数の構文です (Cordbg.exe セッション内)。
詳細と構文については、「ランタイム デバッガ (Cordbg.exe)」を参照してください。
コマンド |
説明 |
---|---|
m[ode] EmbeddedCLR {0|1} |
EmbeddedCLR は、デバッガをデバイス プロジェクト用に設定するモード引数です。この設定を制御にするとき、on にするには 1 を、off にするには 0 を指定します。 |
conn[ect] machine_name port |
リモートの組み込み CLR デバイスへ接続します。 パラメータ :
|
接続の問題
デバッガの実行中にデバイスの電源をオフにすると、デバッガは接続障害により閉じてしまいます。接続障害の原因は、デバイスのバックグラウンドでアプリケーションがまだ実行中であるためです。Pocket PC の [X] ボタンは、アプリケーションを閉じずに最小化するスマート最小化機能です。アプリケーションはバックグラウンドで実行されます。
Pocket PC のバックグラウンドで実行しているアプリケーションを正しく終了するには、次の手順を使用します。
[スタート] メニューの [設定] をクリックし、[システム] タブをクリックして、[メモリ] をタップします。[Running Programs] タブで、閉じるアプリケーションをタップし、[Stop] をタップします。