Visual Studio読み込みシンボル


166

私はしばらくの間、ColdFusionプロジェクトに取り組んでおり、少なくともVisual Studioの動作がおかしくなり始めました。

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

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

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

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

ロードされているシンボルを[モジュール]ウィンドウで確認しましたが、何も表示されません。何が問題ですか?

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


3
私はスレッドですべての答えを運なしで試しました。
Johan Larsson 2013

3
通常、シンボルはキャッシュされる必要があり、ロードにほとんどまたはまったく時間がかかりません。シンボルのロードが遅いことに気づくのは、シンボルが非常に遅いMicrosoftシンボルサーバーからロードされている場合のみです(例:常に非常に遅いわけではないが、遅いわけではない)。以下)、この問題を解決するための1つの良い方法は、シンボルキャッシュを削除することです。これが機能しない場合は、[デバッグ]-> [オプション]-> [デバッグ]-> [シンボル]に移動し、空のシンボルキャッシュをクリックします。完全に別の問題である可能性があります。質問が3歳であるため、これが誰かに役立つことを願っています(:
ダニエル

回答:


266

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


4
Visual Web Developer 2010 Expressのユーザーは、Ctrl + Shift + F9キーを押すと、「すべてのブレークポイントを削除しますか?」というプロンプトが表示されます。表示されます。少なくとも1つのアクティブなブレークポイントが必要です(問題のあるバックグラウンドブレークポイントがカウントされているかどうか不明なので、1つ設定してください)。ありがとう!今よりずっと速く...
Cymen

なんて星だ!どうもありがとうございます。
user489998 2012

確かにこれは機能します!信じられない!この明らかなバグをすでにマイクロソフトに報告している人はいますか?
real_yggdrasil

あなたの始まり、これは私を何日も狂わせてきました。どうもありがとう!
markpcasey 2012

まあ、それは予想外でした!それは本当にうまくいきました。あなたは私の日を救った、本当にどうもありがとう!
tmatuschek 2012年

132

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

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

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


「マイコードのみ」オプションは、Visual Studioの一部Expressのバージョンでは、[オプション]ダイアログ(それはかかわらず、ビジュアルC#2010 Expressである)には使用できませんが、それは他の手段によって変更することができます:どのように私はちょうど私のコードは、」ディセーブル行います'Visual Basic 2005 Expressで?
Peter Mortensen、

3
これは私のためにそれを修正したものです...「すべてのブレークポイントを削除する」という答えではありません。
マークブリッティンガム2016年

これは、Visual Studioの最悪のオプションについてです。シンボルの読み込みを無効にするだけの方がはるかに良いため、シンボルが欠けている例外スローとスタックフレームを引き続き表示できます。(名前の代わりに数字を読むのが難しいだけです)。もちろん、私は通常Webサイトのコードを扱っているので、失敗する可能性のあるIISがたくさんあります。通常、Microsoft(およびすべてのリモート)シンボルサーバーの選択を解除すると、データのソースとして機能します。
ebyrob

あなたは私の半日を救った...!:D
Vaibhav Deshmukh

43

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

出力ウィンドウ(ビュー、出力)を見て、通常何が行われているかを確認できます。それが本当に遅い場合は、おそらくMicrosoftのシンボルサーバーにアクセスして、不足しているシンボルをダウンロードしている可能性があります。これは、起動時に見つけることができないファイルごとに3つのHTTPヒットを必要とします。これは、下部のステータスバーやFiddlerなどで確認できます。デバッグしている間、どのモジュールがシンボルをロードしたかをDebug、Windows、Modulesで確認できます。

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


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

1
ええと、私にはわかりません。デバッグするために独自のコードのシンボルをロードする必要があるので、完全にオフにしたくないと思います。次に、[モジュール]ウィンドウを見て、どのシンボルが読み込まれているかを確認し、実際に必要なシンボルを調べて、不要なシンボルの.pdbをシンボルキャッシュから削除します。
Rup

1
「Microsoftシンボルサーバーを使用する」を確認し、コードを1回実行すると、すべてのシンボルがキャッシュに格納されます。これで、速度を上げるためにボックスのチェックを外すことができます。
john ktejik

1
[ツール]-> [オプション]-> [デバッグ]-> [シンボル]でMicrosoft Symbol Serverを無効にすると、これが修正されました。デバッグの開始を30秒待つ前に。今ではほんの数秒です。
Mike Chamberlain

41

ちょうどこの問題がありました。

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

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

次に、ローカル以外のすべてのソースのシンボルファイル(.pdb)の場所をオフにします。

例:Microsoft Symbol Serversおよびmsdl.microsoft.com/download/symbols


23

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


これで問題も解決しました(賛成票の数が少ないのは、この変数を設定した人々の数が少ないためだと思います...)ありがとうございます!
Aasmund Eldhuset 2013年

こっちも一緒。シンボルからチェックを外すだけでいいと思いましたが、いいえ、env varを削除するか、名前を変更する必要があります。
codekaizen 2015

16

あなたは非常に遅いVisual Studioのデバッグ/ロードに対して次の答えを試すことができます

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

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

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

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

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

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

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

また、すべてのブレークポイントを削除してみてください(Debug> Delete all the breakpoints)、

参照Visual Studio 2015 RC1は、シンボルの読み込み中にデバッグモードでハングします


6

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

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

3
このクレイジーな回避策に感謝します(「デバッグを停止しますか?」というメッセージが表示されます)。私は他の答えを最初に試しましたが、これまでのところ、赤い「X」と「あなたが欲しい...」のトリックだけが役立っています。ありがとう、正気を失っていた...
害虫駆除

2
@que:へえ、どういたしまして!偶然見つけた。VSには、そのモーダルダイアログに入る個別のメッセージループがあるようです。そのため、理由がなく遅い場合はいつでも、ダイアログをポップすると役立つ場合があります:-)
Cameron

6

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

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

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


2

私の場合、Visual Studioは、私のマシンで光学ドライブを参照するパスでサードパーティのPDBを探していました。トレイにディスクがないと、Windowsで約30失敗し、その場所からPDBを読み込もうとしたため、Visual Studioの速度が低下しました。詳細については、こちらの完全な回答を参照してください:https : //stackoverflow.com/a/17457581/85196


2

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

解決策は、ウイルス対策ソフトウェア(私の場合はNOD32)を無効にするか、それよりも例外を追加して、プロセスがアセンブリを読み込んでいるパス(私の場合はGACフォルダーと一時ASP)を無視するようにすることでした。 .NETファイルフォルダ)。


2

私の2セント

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

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

構成プロパティ/全般/管理対象の増分ビルドをYESに有効化

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

構成プロパティ/ C / C ++ /ブラウズ情報をYESに設定(/ FR)

構成プロパティ/リンカ/ YESへの増分リンクを有効にする(/ INCREMENTAL)

編集:これは最後のトリックです

....

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

....

その後、動作し、シンボルを正常にロードしました。上記の1つ以上が私のためにトリックを実行したと確信しています(正確にはどちらかはわかりません)。他の人に知らせて、これを試してみたいだけです。

平和


1

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


1

Visual Studio 2017のデバッグシンボルの「高速化」オプション。ただし、まだオプションのカスタマイズに夢中になっているわけではありません。

  1. Tools -> Options -> Debugging -> Symbols
    。「Microsoft Symbol Server」オプションを有効にします
    。「空のシンボルキャッシュ」をクリックし
    ます。、スポットを見つけることは容易にあなたのシンボルキャッシュを設定するなどのC:\dbg_symbols%USERPROFILE%\dbg_symbols
  2. デバッグを再実行した後、すべてのシンボルを1回、最初から最後まで、または可能な限りロードします。

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

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

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


0

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


0

私のために働いた唯一のことは、コードタイプを変更することでした。

[ プロセスにアタッチ]ウィンドウで、[ アタッチ先]の選択を[デバッグするコードの種類自動的に決定する]に変更したところ、ブレークポイントにヒットしました。

以前はネイティブコードのみを選択していました。


0

Visual Studioがシンボルをロードし続け、スタックしてしまうという同様の問題がありました。

デバッグオプションに「コマンドライン引数」をいくつか追加しましたが、パラメーターの1つが無効です(一部の値を渡すことになっています)。 ここに画像の説明を入力してください

余分なパラメーターを削除すると、再び機能し始めます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.