4

最近、この問題が発生しています... VS.Net 2005 でアプリをデバッグすると、ブレークポイントが接続されません。エラーは、コンパイルされたコードが実行中のバージョンと同じではないため、ブレークポイントが切断される原因となる不一致があることを示します。

すべての bin ファイルのクリーン ソリューションと再コンパイルは役に立ちません。単一のボックスや人だけで起こっているわけではありません。

追加された注: このソリューションは、ソース管理用の TFS にあります。ローカルの TFS リポジトリを削除して、ソース管理から最初から取得すると、問題が解決する場合があります。Visual Studio のアンインストールと再インストールも試しました。それも時々役立ちます。これらの両方が時々機能するという事実は、問題がどちらかによって直接引き起こされたものではないことを示しています.

4

12 に答える 12

8

たぶん、この提案は役立つかもしれません:

  1. Visual Studioでデバッグしているときに、[デバッグ]>[ウィンドウ]>[モジュール]をクリックします。IDEは[モジュール]ウィンドウをドッキングし、プロジェクトにロードされたすべてのモジュールを表示します。
  2. プロジェクトのDLLを探し、シンボルステータスを確認します。
  3. Symbols Loadedと表示されている場合は、金色です。「PDBファイルが見つからないか開くことができない」などのメッセージが表示された場合は、モジュールを右クリックし、[シンボルのロード]を選択して、PDBのパスを参照します。

次のことが必要になる場合があります。

  1. デバッガーを停止します
  2. IDEを閉じます
  3. ホスティングアプリケーションを閉じます
  4. objフォルダーとbinフォルダーを削除します
  5. IDEを再起動します
  6. プロジェクトを再構築する
  7. モジュールウィンドウをもう一度通過します
  8. PDBファイルの場所を参照すると、SymbolStatusがSymbolsLoadedに変わり、コードの行にブレークポイントを設定してキャッチできるようになります。

ソース:ブレークポイントは現在ヒットしません。このドキュメントにはシンボルがロードされていません。

于 2008-10-02T17:48:32.513 に答える
2

http://dpotter.net/Technical/2009/05/upgrading-to-ie8-breaks-debugging-with-visual-studio-2005/

于 2009-12-28T09:30:10.097 に答える
1

私は過去に同様の問題を抱えていました。

Visual Studioを閉じ、「C:\ WINDOWS \ Microsoft.NET \ Framework {framework version} \ Temporary ASP.NET Files」の下にあるプロジェクトの一時的なASP.NETで生成されたアセンブリファイルを削除し、プロジェクトを再度開くことで解決しました。

こちらの投稿とコメントを読んで解決してください。

于 2008-10-02T16:47:02.053 に答える
1

[オプション] -> [デバッグ] で、[元のバージョンと完全に一致するようにソース ファイルを要求する] のチェックを外すことができます。

于 2008-10-02T15:53:26.080 に答える
1

ビルド構成は Release に設定されていますか?

ブレークポイントが設定されている外部 DLL への参照はありますか?

于 2008-10-02T15:54:19.683 に答える
1

外部実行可能ファイルによって消費される DLL プロジェクトを作成していますか? .NET または COM を使用していますか?

.NET で COM Interop を使用している場合、実行可能ファイルが DLL をロードするときに DLL のバージョンが問題になることがあります。たとえば、毎日のビルドでビルド番号が増加し、デバッグ DLL のビルド番号が小さい場合、実行可能ファイルはデバッグ DLL をロードしません。これを修正するには、レジストリの HKEY_CLASSES_ROOT\CLSID ディレクトリをスキャンして、.NET/COM コンポーネントの GUID/CLSID を見つける必要があります。InProc32 の下で、デバッグ DLL よりも高いバージョン番号を持つエントリを削除します。

繰り返しますが、上記は .NET + COM 相互運用 DLL にのみ適用されます。

于 2008-10-02T16:05:37.440 に答える
0

アプリケーションのどの時点でも、DebuggerHidden や DebuggerStepThrough など、コードのデバッグを妨げるデバッグ属性がコードにないのは確かですか?

于 2008-10-02T17:14:29.943 に答える
0

コードを実行してヒットを待つのではなく、ブレークポイントの行までコードをステップ実行できますか? コードをステップ実行できますか?

于 2008-10-02T17:26:12.693 に答える
0

AviewAnew - MS 技術担当者の要求で、既にそれを行っていました。ソースファイルをバージョンに一致させる必要があるのをオフにしても役に立ちませんでした。

Mike L - 構成が DEBUG に設定され、外部 DLL が存在するようになりました。フレームワーク参照を除くすべてのローカル プロジェクトを使用します。

于 2008-10-02T15:59:42.477 に答える
0

.pdb ファイルが、実行中の実行可能ファイルと同じフォルダーにあることを確認しますか? 両方のファイルの最終更新日が一致していること、および VS がその exe にアタッチされていること (他にはアタッチされていないこと) を確認してください。

于 2008-10-02T16:00:17.250 に答える
0

何らかの方法でバイナリに触れるビルド後のステップはありますか? その場合、これによりデバッガが混乱し、サイズ/タイムスタンプが正しくないために、シンボルが exe/dll と一致しないように見える可能性があります。

于 2008-10-02T16:07:16.720 に答える
0

過去に、オプティマイザーがコードが呼び出されていないことを (正しく) 判断し、コンパイルされたバージョンからそれらを削除したため、コンパイラーの最適化をオフにすると、「欠落している」ブレークポイントを解決できることが時々ありました。

これは別の問題のように聞こえますが、最適化がデバッグ モードでオフになっていることを確認する価値があるかもしれません。[プロジェクト/プロパティ、ビルド設定タブ]

于 2008-10-02T16:07:52.163 に答える