web-dev-qa-db-ja.com

Visual Studioの読み込みシンボル

私は ColdFusion プロジェクトにしばらく取り組んでおり、Visual Studioは少なくとも私にとって奇妙な振る舞いを始めました。

デバッグを開始すると、プロジェクトがビルドされ、デプロイが開始され、デプロイが終了し、プロジェクトのシンボルのロードが開始されることがわかりました。

しかし、それは非常に遅く、なぜこのステップを実行し始めたのか分かりません。私は何をしたのでしょうか?

このシンボルの読み込み手順は必要ですか?どうすれば無効にできますか?

[ツール]-> [オプション]-> [デバッグ]-> [シンボル]ダイアログには、シンボルファイル(.pdb)の場所は追加されていません。そして、プロジェクトのデバッグディレクトリで下のフィールドをポイントし、[シンボルが...の場合のみ上記のディレクトリを検索する]チェックボックスをオンにしました。このダイアログを設定して、シンボルの読み込みをオフにするにはどうすればよいですか?

モジュールウィンドウでシンボルが読み込まれているのを見ましたが、何も言われません。何が問題ですか?

enter image description here

154
arnoldino

デバッグ->すべてのブレークポイントを削除( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging )その後、次のことができますそれらを再度使用しますが、一度実行してください。ある種の「無効な」ブレークポイントも削除され、シンボルの読み込みが再び高速になります。私はこの問題を数日間追いかけていた:(。

259
peterfoldi

読み込みが遅いもう1つの理由は、デバッグオプションで[マイコードのみを有効にする]を無効にしている場合です。これを有効にするには:

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

これがチェックされていることを確認してください。

115
nietras

ツール、オプション、デバッグ、シンボルで設定します。

出力ウィンドウ(表示、出力)を見て、通常何をしているのかを確認できます。本当に遅い場合は、おそらくMicrosoftのシンボルサーバーにアクセスして、欠落しているシンボルをダウンロードしていることを意味します。これは、すべてのスタートアップで見つけることができないファイルごとに3つのHTTPヒットを取得します。これは、下部のステータスバーまたはフィドラー。デバッグ中に、デバッグ、ウィンドウ、モジュールでシンボルを読み込んだモジュールを確認できます。

シンボルは、有用なスタックトレース情報をサードパーティおよびシステムアセンブリに取得することを意味します。あなたは間違いなくあなた自身のコードのためにそれらを必要としますが、私はそれらが関係なくロードされると思います。最善の策は、そのメニューで非ローカルシンボルソースをオフにすることです。デバッグする必要がないシステムアセンブリのシンボルを大量にロードする場合は、それらを一時的に無効にしてデバッグ開始を高速化できます-しかし、それらはロードされていると便利なことがよくあります。

39
Rup

この問題が発生しました。

次の場所に移動して修正しました。

ツール-> オプション-> デバッグ-> シンボル

次に、シンボルファイル(.pdb)の場所=のすべての非ローカルソースのチェックを外します

例えばMicrosoft Symbol Serversおよびmsdl.Microsoft.com/download/symbols

35
JohnMcC

同様の問題に直面しました。私の場合、WinDbgで使用するために_NT_SYMBOL_PATHをMicrosoftサーバーからダウンロードするように設定していましたが、設定すると、Visual Studioはそれを無視することなく使用します。その環境変数を削除することで問題が解決しました。

23
jcarle

参照 :social.msdn.Microsoft.com

上記の参考文献で、私はこの解決策を見つけました。

  1. [ツール]-> [オプション]-> [デバッグ]-> [全般]に移動します。

  2. [マイコードのみを有効にする]の横にあるチェックマークをオンにします。

  3. [ツール]-> [オプション]-> [デバッグ]-> [シンボル]に移動します。

  4. [...]ボタンをクリックし、ローカルコンピューターのどこかに新しいフォルダーを作成/選択して、キャッシュされたシンボルを保存します。私は「シンボルキャッシング」という名前を付けて、ドキュメント-> Visual Studio 2012に配置しました。

  5. [すべてのシンボルを読み込む]をクリックし、Microsoftのサーバーからシンボルがダウンロードされるまで待ちます。しばらく時間がかかる場合があります。 [すべてのシンボルを読み込む]ボタンは、デバッグ中のみ使用可能です。

  6. 「Microsoft Symbol Servers」の横にあるチェックマークをオフにして、Visual StudioがMicrosoftサーバーをリモートで照会しないようにします。

  7. 「OK」をクリックします。

また、すべてのブレークポイントを削除してみてください([デバッグ]> [すべてのブレークポイントを削除])。

10
H'H

私にとっては、受け入れられた答えに示されているように、ブレークポイントに関連しているようです。ただし、すべてのブレークポイントの削除を伴わない2つの回避策が見つかりました。

  • Visual Studioを再起動すると、一時的に修正されたようです。
  • デバッグ中に「X」ボタンをクリックしてVisual Studioを閉じると、「デバッグを停止しますか?」ポップアップするメッセージボックス。このメッセージボックスが開いている間、シンボルは通常の速度でロードされます。すべてのシンボルがロードされたら、「いいえ」をクリックしてクローズをキャンセルできます。
6
Cameron

この問題が発生しました。ブレークポイントの削除は機能しませんでした、または少なくともそれ自体では機能しませんでした。これに失敗した後、[ツール]> [オプション]> [デバッグ]> [シンボルと「空のシンボルキャッシュ」]に移動しました

その後、ソリューションをクリーニングして再構築しました。

今は正常に動作しているようです。リストされている他のすべてのことを試しても、それでも違いがない場合は、これらの追加情報が役立つ可能性があります...

5
SteveL

同じ問題が発生し、シンボルのロードをオフにした後でも、Visual Studioでのモジュールのロードが非常に遅くなりました。

解決策は、アンチウイルスソフトウェア(私の場合はNOD32)をオフにするか、プロセスにアセンブリをロードするパス(私の場合はGACフォルダーと一時ASP)を無視するように例外を追加することです.NET Filesフォルダー)。

2
twoflower

私の場合、Visual Studioは、私のマシンで光学ドライブを参照するパスでサードパーティのPDBを探していました。トレイにディスクがなければ、Windowsの障害が約30ほど発生し、その場所からPDBをロードしようとしたため、Visual Studioの速度が低下しました。詳細については、私の完全な回答をご覧ください: https://stackoverflow.com/a/17457581/85196

2
Mike

私の2セント、

X64リリースモード(CPUサンプリング)で(Visual Studio 2013)診断レポートを取得しようとしたときに同様の問題が発生し、必要なdllファイルのシンボルが読み込まれたが、実行可能ファイルのシンボルが読み込まれませんでした。

[シンボル]メニューでは何も変更せず、代わりにソリューションエクスプローラーで実行可能ファイルのスレッドのプロパティページ内でいくつかの変更を行いました。

構成プロパティ/全般/マネージインクリメンタルビルドを有効にする

構成プロパティ/デバッグ/環境をNOにマージ

構成プロパティ/ C/C++ /参照情報を有効にする(/ FR)

構成プロパティ/リンカー/ YESへのインクリメンタルリンクを有効にする(/ INCREMENTAL)

編集:この最後の1つはトリックを行います

....

構成プロパティ/リンカー/デバッグ/ デバッグ情報をはい(/ DEBUG)に生成

....

その後、動作し、シンボルを正常にロードしました。上記の1つ以上が私にとってはうまくいったと確信しています(正確にはどちらが確かかはわかりませんが)。

平和

2
user3374479

ブレークポイントの1つで右クリックしてから、「場所」を選択してください。次に、[ソースコードを元のバージョンと異なるものにする]チェックボックスをオンにします。

1

[ツール]、[オプション]、[デバッグ]、[全般]の[ASP.NET(ChromeおよびIE)のJavaScriptデバッグを有効にする]をオフにすると、VS2017デバッガーを事前に設定されたブレークポイントで起動できないという問題が解決しました。

0
Angel_D

Visual Studio 2017デバッグシンボルの「スピードアップ」オプション(オプションのカスタマイズに夢中になっていない場合)

  1. Tools -> Options -> Debugging -> Symbols
    a。 「Microsoft Symbol Server」オプションを有効にします
    b。 「空のシンボルキャッシュ」をクリックします
    c。 C:\dbg_symbols%USERPROFILE%\dbg_symbolsなど、見つけやすいスポットにシンボルキャッシュを設定します
  2. デバッグを再実行した後、開始から終了まで、または合理的に可能な限りすべてのシンボルを一度ロードします。

1Aと2は最も重要なステップです。 1Bと1Cは、シンボルの追跡に役立つ便利な変更です。

アプリが少なくとも1回すべてのシンボルをロードし、デバッグが途中で終了しなかった場合、それらのシンボルは次回のデバッグ実行時にすばやくロードされるはずです。

デバッグの実行をキャンセルすると、それらのシンボルをリロードする必要があることに気付きました。新しく導入されて突然キャンセルされた場合、それらは「クリーンアップ」されていると推測しているためです。私はそのようなフローの核となる理論的根拠を理解していますが、この場合はあまり考えられていないようです。

0