EntityFramework NuGetパッケージ(バージョン6.1.3)のStackOverflowをデバッグしようとしています。スタックフレームを表示するには、EntityFramework.DLLとEntityFramework.SqlServer.DLLのPDBファイルが必要です。ただし、Visual StudioにMSFTシンボルソースまたはSymbolSource.orgからこれをダウンロードさせることはできないようです(他のシステムPDBやNewtonSoft.jsonなどを入手できます)。 EF PDBはどこでも利用できますか?
今写真付き(私は約1時間の試行と失敗を要したので)
Get JetbrainsのDotPeek (スタンドアロンバージョン)
DotPeek
-> File
-> Open
->プロジェクトのbin
フォルダーを参照し、EntityFramework.dll
を開きます。
エクスポートしたフォルダーに移動してEntityFramework.pdb
フォルダーを開き(わかりました!)、ファイルEntityFramework.pdb
が見つかるまで深く掘り下げて、bin
フォルダー(EntityFramework.dll
の横)にコピーします。
Visual Studio
-> DEBUG
-> Options and Settings...
-> Symbols
に移動し、bin
フォルダーをSymbol file (.pdb) locations
に追加します。
編集:EFをoptimized
モードで実行し始めることがあり、デバッグがほとんど役に立たなくなります。これがこの質問の要点です。起こる
Visual Studio
-> Debug
-> General
->(一番下)Use Managed Compatibility Mode
に移動します。プロジェクトにチェックマークを付けて実行します(プロジェクトが最適化されている場合は、チェックマークを外して実行し、もう一度チェックマークを付けて実行してから...)EF
がブレークポイントに到達するまで待たずに最適化されて実行されるかどうかを確認するには、Visual Studio
-> Debug
-> Windows
-> Modules
に移動します。次に、ソリューションを実行すると、モジュール(2)が表示されます。それをクリックして、EntityFramework.dll
を見つけます。Optimized(Yes
= bad、No
=デバッグ可能)という列があるはずです。これで時間を節約できれば幸いです。
ソースコードをダウンロードします: codeplexのエンティティフレームワーク
ダウンロードボタンは、[ソース]タブのサブメニューにあります
ダウンロードしたら:
ソリューション/プロジェクトを構築する
Binディレクトリ[〜#〜] nb [〜#〜]に移動します。通常の場所になく、"..\..\bin\Debug\"
に設定されています。プロジェクトのプロパティを参照してください。
EntityFramework.pdbとEntityFramework.SqlServer.pdbの両方があります。
また、デフォルトまたはそれよりも簡単に利用できると思います。
方法の1つは、シンボルサーバーとして dotpeek を使用することです(エンティティフレームワークdllをロードし、dotpeek設定からコピーされたdotpeek sererアドレスを追加します)-このアプローチの優れている点は、使用されたdllバージョンと一致するpdbを自動的に生成したことです、それほど素晴らしいものではありません-ソースコードなどからの元のコメントは含まれません。