2

Visual Studio 2010 ソリューションを Visual Studio 2012 に移行しています。いつものように、マーフィーの法則は醜い頭を抱えています。

私がやろうとしていることは比較的単純で、過去に何度もやったことがあります-実行中のWindowsサービスプロセスにアタッチして、そのコードにステップインしたいだけです。

FWIW このソリューションの他のプロジェクトでは、期待どおりにコードにステップインしてデバッグすることができます。問題を引き起こしているのは、この Windows サービスだけです。

これが失敗する原因となる明白な事柄については、すでに検証済みです...

1: .pdb デバッグ シンボルがサービス実行可能ファイルおよび DLL と共に含まれていることを確認済みです。

2: サービスのデバッグ ビルドを実行しています。

これは、これを引き起こしているVisual Studio 2012のどこかで愚かな設定であると想定しています...それか、単純なものが欠けていて、2番目の目が必要なだけです...

4

2 に答える 2

1

サービスをデバッグする最も簡単な方法はAssert(0)、デバッグ ビルドの Running() コードの先頭に を挿入することです。サービスの実行中にアサートがポップアップ表示されるので、選択したデバッガーをアタッチできます。その後、必要なことは何でもできます (ブレークポイントの設定、メモリ内の値の変更など)。

それでも Visual Studio 2012 がアサーション サービスにアタッチされない場合は、インストールまたは構成に深刻な問題があります。接続しても何も表示されない場合は、接続時に「ネイティブ コード」のデバッグを有効にする必要がある可能性があります。

于 2013-05-16T16:16:06.803 に答える