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


1575

Express版のC#デスクトップアプリケーションは機能しましたが、5秒後に機能しませんでした。

私は以下を試しました:

  • デバッグ構成、デバッグフラグ、および完全なデバッグ情報がすべてのアセンブリに設定されていることを確認します。
  • マシン全体から、プロジェクトに関連するすべてのbinおよびobjフォルダーとすべてのDLLを削除します。
  • 問題の原因となっているプロジェクトを最初から作成し直します。
  • リブート。

ソリューションには2つのWinFormsプロジェクトがあります。そのうちの1つはデバッグ情報をロードし、1つはロードしません。どちらも、プロジェクトファイルでまったく同じ方法でデバッグ情報を取得しようとしているアセンブリを参照しています。何か案は?


ここに追加したいのは、主にこの質問を確認するときに戻ってきたときです。アセンブリが読み込まれるまでシンボルは読み込まれず、アセンブリは必要になるまで読み込まれません。メインアセンブリの1つの関数でのみ使用されるライブラリにブレークポイントがある場合、その関数が呼び出されるまで、シンボルは読み込まれません(ブレークポイントがヒットしていないことが示されます)。


119
デバッグするときは、デバッグ、ウィンドウ、モジュールビューに移動します。これにより、読み込まれたモジュールとシンボルのステータスに関する情報が表示されます。モジュールを右クリックして、別の場所からシンボルをロードしてみることができます。
Polyfun、2010年

14
Expressエディションにはモジュールビューがありません。
インスタンスハンター

12
必要になるまで読み込まれないアセンブリの良い点。デバッガーは、ブレークポイントがヒットしないことを示しますが、表示が変更されます/アセンブリが読み込まれると、ブレークポイントがヒットします。このUIの問題の安っぽい回避策は、プログラムの開始時にアセンブリを呼び出して、アセンブリを強制的にロードすることです。
Tim Coker

1
私は同じ問題を抱えていましたが、このビルド構成については<DebugSymbols>true</DebugSymbols>、VS2015でその下になかったので、手動で追加して問題なく動作したことに気付きました。
kuskmen

4
.suoファイルを削除すると、私のプロジェクトでこの醜い問題が解決された可能性があります
Roland

回答:


1083

デバッグを開始しDebug > Break AllますDebug > Windows > Modules。ブレークポイントに到達するか、またはを使用したらすぐに、を使用します。プロセスにロードされているすべてのアセンブリのリストが表示されます。デバッグ情報を取得するものを見つけます。それを右クリックして、シンボル読み込み情報を選択します。アセンブリの.pdbファイルを探したすべてのディレクトリをリストするダイアログが表示されます。そのリストを実際の.pdbの場所と照合します。古いものが見つからないことを確認してください。

通常のプロジェクトでは、アセンブリとその.pdbファイルは、常にIDEによって.exeと同じフォルダにコピーされているはずです。プロジェクトのbin \ Debugフォルダー。遊んでいる場合は、必ずGACから削除してください。


4
事実上、それは私の場合の問題でした。「ユーザーコード」と見なされないようにしたポストコンパイルがありました...今、それがどうなっているのかを確認する必要がありますが、ポストコンパイルの変更なしにシンボルがロードされることを確認しました。@ハンス、ありがとうございます。バーチャルビールを送る
eglasius、

29
質問は、残念ながらこの回答が適用されないエクスプレス版に関するものです。実際、どの回答もうまくいきませんでした。Debugフォルダーを削除して再構築も試みました。
Nicolas Raoul

3
Microsoft Visual Studio Express 2013 for Webには、Debug Windows Modulesオプションがありません。この場合、これを修正する方法はありますか?
Andrus

3
ヒントとして、例外をオンにして、目的の場所でブレークするようにします(プロセスの最初にブレークポイントを配置できない場合)...次に、Hanが推奨するデバッグ>ウィンドウ>モジュールのプロセスに従います。ステップインしようとしているプロジェクトを探し、PATHを確認します。「C:\ windows \ assembly」と表示されている場合、プロジェクトではなくGAC dllを指している...
Andy Danger Gagne

5
ソリューションのアクティブなソリューション構成をリリースに設定し、それをデバッグに変更して問題を解決しました。この回答は、何を探すべきかを「思い出す」のに役立ちました
ギラッド、2015

436

最初に、プロジェクトを右クリックしてプロジェクトを再構築してみてください> Rebuildそれがうまくいかない場合は、プロジェクトをクリーンアップしてみてください(プロジェクトを右クリックして>クリーンアップしてください)

それがうまくいかなかった場合、これを確認してください:

  1. プロジェクトを右クリックします
  2. [プロパティ]を選択します
  3. [ビルド]タブを選択します
  4. ていることを確認し、[DEBUG定数の定義]および[TRACE定数を定義する]チェックされます
  5. [コードの最適化]がオフになっていることを確認します
  6. [ ビルド]タブの下部にある[詳細]ボタンをクリックします
  7. [Debug Info:][full]に設定されていることを確認してください
  8. [OK]をクリックしてプロジェクトを再ビルドします;-)

(ステップ6は.pdbファイルを生成します。これらはデバッグシンボルです)


40
[Debug Info:]が[full]に設定されていることを確認してください-修正しました!プロジェクトに複数の構成がセットアップされていますが、追加した新しい構成にはこのセットがありませんでした。
チーフ、2014

1
これは私のために働いた!しかし、[完全]の代わりに、pdbのみを実行することができました
アーロンシェーバー、2015

42
私はリリースビルドに参加していたことがわかりました。tsk。
PNDA 2015

2
C ++とC#の混合プロジェクトとネイティブスタートアップがある場合は、そのプロジェクトの[デバッグ]> [デバッガータイプ]が混合であることを確認してください。
Bill Hoag

4
また、チェックされていないことを確認する必要がありましProperties > Build > Optimize codeた。
jeffaudio

273

試してみるだけの簡単なこと-あなたはすでにそれを試したかもしれません。ソリューションエクスプローラーでソリューションを右クリックし、[ソリューションのクリーン ]をクリックします。これにより、ソリューションに関連付けられているコンパイル済みファイルと一時ファイルがすべて削除されます

ソリューションの再構築を行い、デバッグを再試行してください。

また、ソリューション内の複数のプロジェクトのブレークポイントで問題が発生しました。一部はx86としてコンパイルされ、一部はx64としてコンパイルされています。


5
ソリューションの複数のプロジェクトでブレークポイントをどのように修正しましたか-一部はx86としてコンパイルされ、一部はx64としてコンパイルされましたか?
Richard Li

3
IISExpress(またはAzureエミュレーター)を実行している場合、C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ rootのファイルは、AssemblyVersionが1.0.0.0の場合に更新されない場合があります。Webプロジェクトをビルドするたびに新しいバージョンが生成されるように、それが1.0。*のようなものであることを確認してください。Clean Solutionは一時インターネットファイルフォルダをクリアしません。
Michael Lang

1
これは、Rebuild Allを実行するのと同じことを行います。
ジョナサンウッド

2
@ジョナサンウッド-私は主にそれに同意します。しかし、まれな状況では、「すべてを再構築」がわずかに異なる結果を生成する可能性があります-私は時々奇妙な違いを見てきました。いくつかの興味深い議論についてはこちらをご覧:stackoverflow.com/questions/1247457/...
パトリック・

1
私にとっては、単に「ビルド」...「クリーンソリューション」
ドミニクイザイア

238

デバッグ/全般設定の「Just My Code」オプションを無効にします。


2
はい、カスタムビルド構成のWindows Phone 8プロジェクトでは、これが私のためにそれを行いました。
GONeale 2013年

2
Windows Phoneの8.1とVSコミュニティ2015年に私のために働いた
ファビアーノ・アラウージョ

20
明確にするために:VS 2017では、この設定は特に、[デバッグ]の[一般]ペインの下にある[ツール]の[オプション]ダイアログにあります(正確には、「デバッグ」ペインはありません)。このチェックボックスは、「Just My Code」ではなく「Enable Just My Code」と呼ばれています。
Jazimov 2017年

1
これは私にとってはうまくいきますが、ホバーまたはshift + f9でエラーが発生したときに変数値が表示されません。ローカルまたは引数の値を取得できません。この命令ポインターで使用できないため、最適化されている可能性があります
Naveen Kumar

1
Visual Studio 2019で引き続き作業しています!
Toby Caulk

148

クロスからこの修正プログラムを掲示ハンス・K私は似たスレッド上で見つけた<< HERE >>

ソリューションを右クリック->プロパティ

Common Properties-> Startup Projectの下を確認します

複数のスタートアッププロジェクトを選択する

デバッグする必要があるプロジェクトで[開始]アクションを選択します。


7
これは、VS開発サーバーで実行され、「シンボルが読み込まれていない」ことを示す.NETリモート処理エンドポイントであるWEBプロジェクトをデバッグしようとしている状況にも対応します。
D-Sect

1
これで修正されました。以前にsombodyが、Visual Studioが使用するIISのデバッグバージョンではなく、ローカルIISサーバーにデバッグをアタッチしようとしたと思います。
ダウラーズ2013年

1
.suoファイルを削除した場合、ここで選択したソリューション設定を失う可能性があり、それらを再度設定する必要があります
Redeemed1

以前に正常にデバッグした後、今日これらの設定を再度確認したところ、私のスタートアッププロジェクトが何らかの形で単一のスタートアッププロジェクトに戻っていたことがわかりました。再確認する価値があります。
Anthony De Souza

64

選ばれた答えは私に私の問題を解決するように導きました。しかし、さらにいくつかのことを行う必要があります。

ドロップダウンで[デバッグ]を選択した場合でも:

ここに画像の説明を入力してください

そして、プロジェクトのプロパティ>ビルド:

ここに画像の説明を入力してください

Visual Studioは特定のプロジェクトにシンボルをロードしていませんでした。そのドロップダウンで「構成マネージャー」を選択すると、私のWebプロジェクトの設定が正しくないことがわかりました。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

それを「デバッグ」に設定すると、.pdbファイルの生成が始まります。 しかし、PDBとDLLを手動でコピーして、VSが探していたフォルダーに配置する必要があります(ここで選択した答えが役に立ちました)。

ここに画像の説明を入力してください


1
私はreleaseモードで走っていました。ありがとう!!
Dipak Telangre

私にとって重要なのは、[展開]ボックスがオンになっていないため、ビルド後にpdbが再展開されなかったということでした
Ben

43

Debug> Windows> Modulesモジュールがロードされていたものを見るために正しい方向に私を置きます。

私の場合、IIS Expressは一時的なASP.NETファイルとは異なるDLLをロードしているようです。

ソリューション?

  1. 閲覧 C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. このディレクトリのすべてを削除してください!

これは私の問題でした。フォルダーは、設定としてロードされていた壊れたDLLでいっぱいだったに違いありません。
gburton

8
これは私にとってはうまくいきましたが、私の場合を除いて、パージする必要があったディレクトリはC:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ vs \
Andy

このアプリケーションをすでにインストールしていて、PDBファイルが関連付けられていないプロジェクトのDLLではなく、そのDLLを読み込んでいるという同様の問題がありました。古いアプリをアンインストールした後、問題は解決しました。ありがとう!
レニーK

42

添付のスクリーンショットに示すように、「プロセスにアタッチ」のオプションを「デバッグするコードのタイプを自動的に決定する」オプションに設定するだけでエラーを修正できました。

以下の手順に従ってください:

  • メニューバーからデバッグに移動します
  • Attach to Processをクリックします
  • [ アタッチ先 ]オプションの近くにある[選択 ]ボタンをクリックします
  • [コードタイプ選択]ウィンドウが表示されます
  • 次に、[ デバッグするコードの種類を自動的に決定する]オプションを選択し、[OK]ボタンをクリックします。

修正されたデバッグエラー


10
このページのすべてを試した他の人のために、「マネージド(v4.5、v4.0)コード」に切り替えることで問題を修正しました!
stevekrzysiak

「マネージド(v4.5、v4.0)」に切り替えると、DNN ASP.Netアプリのデバッグで修正されました。ありがとう!
うーん2015

「デバッグするコードのタイプを自動的に決定する」から「マネージド(v4.6、v4.5、v4.0)」に切り替えるとうまくいきました。私は2つのクラスライブラリを持つソリューションを持っています。1つはCOMアクセス可能で、どちらもフレームワーク4.6.1を対象としています。
Jorb

間違ったオプションを選択しました(「Managed v4.6」ではなく「.NET Core」)。「自動的に決定...」を選択したところ、うまくいきました!最初、私はそのブログ投稿blog.simontest.net/…でこの解決策を見つけました。
Evgeni Nabokov

41

場合によっては、このエラーが表示されてbreakpointも、ヒットすることがあるので、エラーを無視してください。これは、中にかなり頻繁に発生ViewsしますMVC web app


7
これは実際にはどこか上に投票されるべきです。私は上記のすべての答えを出すために多くの時間を費やしましたが、ブレークポイントに実際に到達しました。ただチェックしてください:)また、それはWPFデスクトップアプリでした。
Bartosz

4
aspxのは、このように情報がaspxページが必要とされた後にのみ使用可能ですデバッグの、オンデマンドでコンパイルしているようだ
aeroson

また、UnitTestingの場合-数秒待つ必要があり、その後ヒットします。
David Refaeli 2017年

@aerosonのコメントは私が遭遇したものだと思います。あるページはブレークポイントをロードしましたが、別のページはロードしませんでした。ここでの回答からあらゆる種類のものを試し、そのページを更新し、ブレークポイントをロードしました。
goodeye '10年

おかげで... 30分ほど掘り下げて、ブレークポイントがまだヒットしていることに気付いた...
カイル・ファン

39

.pbdファイルがbin / Debugフォルダーにないかどうかを確認します。表示されている場合は、プロジェクトの[プロパティ]に移動し、[ビルド]を選択して、下部にある[詳細]を選択します。表示された新しいウィンドウの[デバッグ情報]で[完全]を選択します。これは私の問題であり、私のためにそれを解決しました。

設定を見つける場所を示す


これは私にとって問題だったので、pdbが生成されていることを確認するために、このページにアクセスする人にすすめます。
EatATaco

ありがとう!「完全ではなく」「pdbのみ」で十分でした。また、「詳細」はビルドの下部にあるボタンです。
グレッグリトル

どこでpdbを生成する必要がありますか?
ylka 2017年

1
おかげで、新しいWeb.config変換を行い、VS 2017が提供するデフォルトの構成(Web.Debug.configなど)を削除した後、これで問題が解決しました。
ケンパーマー

1
他の多くのオプションを試してみました(約2時間無駄になりました)この「完全な」オプションは私の問題を修正します。ありがとう!
SoftSan

29

私の場合、プロジェクトのプロパティで「コードの最適化」がチェックされていました。これにより、VSは私のアセンブリを「自分のコードではない」と見なし、そのためのシンボルをロードしませんでした。

解決策は、これをオフにすることでした。 コードの最適化チェックボックスの場所


2
これも私の問題で、上記のすべてのソリューションを1つずつ実行しましたが、何も機能しませんでした。
antikbd 2017年

私はこのオプションのチェックを外し、ソリューションを再構築し、ソリューションを再構築しました... VSは常にモジュールを「最適化済み」と見なしていました。VSにデバッグ情報を強制的に更新させる唯一の方法は、モジュールのアセンブリバージョンを増やすことでした。
alphanoch

私のために機能する唯一の解決策、あなたのための#(#= ++++)ですが、私は一度だけ投票できます
Luis Lopez


23

Windowsで管理者としてVisual Studioを実行してみてください。


1
リモートマシンで管理者としてmsvsmonを実行する必要がありました。
Bill Hoag 2017年

これは人々が従うべき解決策ではありません。これで問題が解決した場合は、VSがプロジェクトの.pdbファイルの内容を読み取ることができるように、管理者権限が必要な理由に焦点を当てる必要があります。
Jazimov 2017年

@Jazimov同意しない。私はこれを調査することに時間を費やすのが大好きですが、私の場合、これは私の問題を解決し、他の人にもそうであると確信しているので、私は仕事を続けることができました。あなたがそれを調べて、この答えを改善したいなら、自由に感じてください、それがそこにあります。
アンディ

明確にするために:Visual Studioの問題が修正されたことを理解していますが、それは私が異議を唱えていることではありません。私は他の人が実行しているとしてIDE受け入れることを推奨しています争うソリューションではなく、単純なAのソリューションを。IDEを管理者として実行して問題を修正した場合、その情報を使用して実際の根本原因をトラブルシューティングし、IDEが正しく機能するために管理者権限を必要としないようにする必要があります。
ジャジモフ2017


15

コンパイラ設定で「デバッグ情報を生成」を有効にする必要があります


1
どこにあるの?
MushyPeas

10
これはjuFoの回答と同じです-プロジェクト>プロパティ>ビルド>詳細設定>デバッグ情報>フル(またはpdbのみ)
Jeremy Thompson

ジェレミー・トンプセンを聞いてください。それで問題が解決しました。
ThorkilVærge18年

12

デバッグ->オプション->一般->" Enable Just My Code"のチェックを外します

これでうまくいきました。


1
これは、VSを新しいバージョンにアップグレードするかどうかを確認する価値のあるデフォルト設定のようです(私が行ったように)。
アガメムノン

10

問題の原因を発見しました。このコードは、「CodeFile」属性(ASP.NET 2.0以降)ではなく、.aspxファイルのPageディレクティブの「CodeBehind」属性を使用していました。絶望の数日後、単純な検索と置換で問題が解決しました。


10

オプション「デバッグの開始、デバッグ+ Windows +モジュール」は、Microsoft Visual Studio Express 2013エディションには存在しません。

ツールオプションのデバッグで[ マネージ互換モードを使用する]をオフにすると、これが修正されます。


10

Solution Configurationドロップダウンリストを確認してください。あなたが選択していることを確認しDebug、ありませんRelease


ありがとう@ zs2020
Shakeel Hussain Mir

9

上記のすべてを試しましたが、うまくいきませんでした。 [解決策をクリーンにし、PDBファイルなどを確認してください]

同じソリューションを公開しても問題は解決しませんでした。

次に、私が通常解決するために行った(この頑固なVisual Studioをだます)

私が行ったのは、コードに意図的な変更を加えてソリューションを公開することだけでした。その後、変更を元に戻して再度公開しました。

Voila [PDBファイルは悪霊を取り除いた] ..賢い解決策ではないが、これはうまくいった..:-|


7

Webアプリケーション(IIS Express)のみ:

  • IIS Expressトレイを右クリックして、IISを閉じます。
  • クリーンなソリューション

IISトレイ


私は他の回答で他の多くの提案を試しましたが、それらの多くは過去に私を助けてくれましたが、今日はこれが役に立ちました。私の場合、複数のブランチがあり、IIS Expressがどういうわけか別のブランチでスタックしていて、クリーニングと再構築を何度も試みたにもかかわらず、デバッグしようとしたブランチで更新されていなかったと思います。
クリスH

6

これらの答えはどれも私の問題を解決しませんでした。ストップのあるプロジェクトは実際にはロードされたプロジェクトではないという事実に基づいて、別のことを試みました。Hans Passantが、デバッガーを停止したい.dllと、関連する.pdbファイルが.exeファイルの近くにコピーされたと書いているのを見つけました。これらのファイルの日付は古いため、ランタイムで更新されていないと思いました。それらを手動で削除し、Visual Studioが別のペアを作成し、この新しいペアを.exeの近くに配置しました。これでブレークポインが機能します。

.exeの近くに既存のファイル(.dllと.pdb)が存在するため、Visual Studioでコピーして置き換えることができない場合があります。したがって、手動で削除した場合、VSは.exeの近くに新しいファイルを作成できます。

別の変更(チェックなど-別の答えから)が何かをトリガーし、Visual Studioがdllとpdbをプロジェクトフォルダーからexeの近くのフォルダーにコピーして置き換えたので、それが解決策だったと思います。

問題の根本的な原因は、Visual Studioがランタイムで別のファイルを使用し、プロジェクトのファイルを使用せずに停止したためだと思います。

多分この答えは誰かを助けるために!


6

明確にするために確認する事項:構成が「リリース」ではなく「デバッグ」に設定されていることを確認してください。スタートアッププロジェクトは「リリース」モードでデバッグできますが、参照されているクラスライブラリはデバッグできません。


6

プロジェクトのプロパティ(次にビルド構成を選択)> [ビルド]タブ> [詳細...]> [デバッグ情報](ドロップダウン)

'all'または 'pdb-only'に設定して再構築します


私はpdb_onlyを実行しました。また、ブラウザをクリーンアップして再起動しました
Jason

6

これらすべてをただ行う代わりに

閉じて再度開く

問題を解決するソリューション


Microsoft Visual Studio 2013で私のために働いた:ファイル>ソリューションを閉じる次にファイル>ソリューションを開く(同じフォルダーがプリロードされている必要があります)。ブレークポイントは、黄色の旗からすぐに円形の赤に変わりました。ほんとありがと。
Zargold

OMG天才!ありがとう!!!
AresDev

6

私は同様の問題を抱えており、私は次のことを行いました:Debug => Options => General =>「Enable Just My Code」のチェックマークを削除します。


これも私にとっては
有効

6

これにより、上記の他のオプションを試すのにしばらく時間がかかり、奇妙な理由でデバッグが機能しなくなりました。

ツール->オプション->デバッグ->一般->(チェックを外す)「元のファイルが元のバージョンと完全に一致する必要がある」オプション


6
  1. クリーンなソリューションと再構築
  2. 構成がデバッグに設定されていることを確認します
  3. PDBファイルがDebugフォルダーにあることを確認してください
  4. [デバッグ]メニューの[すべてのブレークポイントを有効にする]をクリックします

6

Visual Studioで次の2つの設定が同じであることを確認します。

テストプロジェクトを右クリックし、[プロパティ]、[ビルド]タブに移動して、プラットフォームターゲットを確認します。

鉱山はすべて「すべてのCPU」に設定されているため、x64

ここに画像の説明を入力してください

メインメニューバーで、[テスト]、[テスト設定]、[ デフォルトのプロセッサアーキテクチャ ]の順に移動します。

鉱山はX86に設定されました

ここに画像の説明を入力してください

これをX64に変更して上記の設定と一致させると、組み込みのVisual Studioメニューの[デバッグテスト]が機能し、以前は無視されていたブレークポイントにヒットしました。このドキュメントにはシンボルが読み込まれていません。」

更新:

以下のためのVisual Studio 2019のメニューは少し周りを移動されました: ここに画像の説明を入力してください


5

私は何年も遅れていることを知っていますが、何か間違ったことをして上記の手順を実行したと思ったので、誤ってソリューション構成を「リリース」に設定したことに気付きました:)


1
10K回賛成できますか?最悪なのは、これをGoogleで10回ほど検索したことだと思います。毎回同じ愚かな間違いです。おそらくマイクロソフトはそれをユーザーに示唆することができますか?
tfrascaroli 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.