Visual Studio-Ladesymbole

165

Ich arbeite jetzt schon eine Weile an einem ColdFusion- Projekt, und Visual Studio hat sich zumindest für mich merkwürdig verhalten.

Als ich mit dem Debuggen begann, stellte ich fest, dass das Projekt erstellt, die Bereitstellung gestartet und die Bereitstellung beendet wurde und Symbole für mein Projekt geladen wurden.

Aber es war sehr langsam und ich weiß nicht, warum es diesen Schritt begann. Was kann ich getan haben?

Ist dieser Schritt zum Laden des Symbols erforderlich? Wie kann ich es deaktivieren?

Im Dialogfeld Extras -> Optionen -> Debuggen -> Symbole wurde kein Speicherort für die Symboldatei (.pdb) hinzugefügt. Ich habe im Debug-Verzeichnis meines Projekts auf das Feld unten gezeigt und das Kontrollkästchen "Das obige Verzeichnis nur durchsuchen, wenn Symbole ... sind" aktiviert. Wie soll ich diesen Dialog einrichten, um das Laden von Symbolen zu deaktivieren?

Ich habe im Modulfenster nachgesehen, welche Symbole geladen sind, aber es sagt mir nichts. Was ist das Problem?

Geben Sie hier die Bildbeschreibung ein

Arnoldino
quelle
3
Ich habe jede Antwort im Thread ohne Glück ausprobiert.
Johan Larsson
3
Normalerweise sollten die Symbole zwischengespeichert werden und es sollte wenig bis gar keine Zeit zum Laden dauern. Das einzige Mal, wenn Sie feststellen, dass das Laden von Symbolen langsam ist, ist, wenn die Symbole von Microsoft-Symbolservern geladen werden, was sehr, sehr langsam ist, z. B. (nicht immer sehr langsam, aber keine langsam) Je weniger), eine gute Möglichkeit, dieses Problem zu beheben, besteht darin, den Symbolcache zu löschen. Gehen Sie einfach zu Debug -> Optionen -> Debugging -> Symbole und klicken Sie auf den leeren Symbolcache, falls dies nicht funktioniert könnte ein weiteres Problem sein, hoffe, dass dies jemandem zugute kommt, da die Frage 3 Jahre alt ist (:
Daniel

Antworten:

266

Debuggen -> Alle Haltepunkte löschen ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) Danach können Sie sie wieder verwenden, aber tun Sie es Einmal. Es werden auch einige "ungültige" Haltepunkte entfernt, und das Laden der Symbole erfolgt wieder schnell. Ich habe dieses Problem tagelang verfolgt :(.

Peterfoldi
quelle
4
Benutzer von Visual Web Developer 2010 Express können STRG + UMSCHALT + F9 drücken und die Meldung "Möchten Sie alle Haltepunkte löschen?" wird auftauchen. Sie benötigen mindestens einen aktiven Haltepunkt (nicht sicher, ob die Anzahl der problematischen Hintergrund-Haltepunkte so festgelegt ist). Vielen Dank! Jetzt viel schneller ...
Cymen
Was für ein Stern! Ich danke dir sehr.
user489998
In der Tat funktioniert das! Unglaublich! Hat jemand diesen offensichtlichen Fehler bereits Microsoft gemeldet?
real_yggdrasil
Du bist ein Anfang, das hat mich seit Tagen verrückt gemacht. Tausend Dank!
Markpcasey
Das war unerwartet! Es hat wirklich funktioniert. Du hast meinen Tag gerettet, vielen Dank!
Tmatuschek
131

Ein weiterer Grund für das langsame Laden ist, wenn Sie "Nur meinen Code aktivieren" in den Debugging-Optionen deaktiviert haben. Um dies zu aktivieren, gehen Sie zu:

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

Stellen Sie sicher, dass dies aktiviert ist.

Nietras
quelle
Die Option "Nur mein Code" ist in einigen Express-Versionen von Visual Studio nicht im Dialogfeld "Optionen" verfügbar (sie ist jedoch in Visual C # 2010 Express enthalten), kann jedoch auf andere Weise geändert werden: Wie deaktiviere ich "Nur mein Code" 'in Visual Basic 2005 Express? .
Peter Mortensen
3
Dies ist derjenige, der es für mich behoben hat ... nicht die Antwort "Alle Haltepunkte löschen".
Mark Brittingham
Dies ist fast die schlechteste Option in Visual Studio. Es ist weitaus besser, nur das Laden von Symbolen zu deaktivieren, damit Sie weiterhin Ausnahmefälle und Stapelrahmen sehen können, bei denen einfach Symbole fehlen. (Nur eine schwer lesbare Nummer anstelle eines Namens). Natürlich arbeite ich normalerweise am Website-Code, daher befindet sich unter mir eine ganze Menge IIS, die fehlschlagen können. Normalerweise funktioniert es, wenn Sie nur Microsoft (und alle Remote-) Symbolserver als Datenquelle abwählen.
Ebyrob
Du hast meinen halben Tag gerettet ...! : D
Vaibhav Deshmukh
43

Konfigurieren Sie in Tools, Optionen, Debugging, Symbole.

Sie können das Ausgabefenster (Ansicht, Ausgabe) beobachten, um zu sehen, was es normalerweise tut. Wenn es sehr langsam ist, bedeutet dies wahrscheinlich, dass es auf einen Symbolserver trifft, wahrscheinlich auf den von Microsoft, um fehlende Symbole herunterzuladen. Dies erfordert drei HTTP-Treffer für jede Datei, die nicht bei jedem Start gefunden werden kann. Dies wird manchmal in der Statusleiste unten oder z. B. in Fiddler angezeigt. Sie können sehen, welche Module Symbole in Debug, Windows, Module geladen haben, während Sie debuggen.

Symbole bedeuten, dass Sie nützliche Informationen zur Stapelverfolgung in Baugruppen von Drittanbietern und Systemen erhalten. Sie brauchen sie definitiv für Ihren eigenen Code, aber ich denke, diese werden trotzdem geladen. Am besten deaktivieren Sie alle nicht lokalen Symbolquellen in diesem Menü. Wenn Sie viele Symbole für Systemassemblys laden, in die Sie nicht debuggen müssen, können Sie das Laden dieser vorübergehend deaktivieren, um den Debug-Start zu beschleunigen. aber sie sind oft nützlich, um geladen zu haben.

Rup
quelle
3
Im Dialogfeld Extras -> Optionen -> Debuggen -> Symbole wurde kein Speicherort für die Symboldatei (.pdb) hinzugefügt. Ich habe im Debug-Verzeichnis meines Projekts auf das Feld unten gezeigt und das Kontrollkästchen "Das obige Verzeichnis nur durchsuchen, wenn Symbole ... sind" aktiviert. Ich weiß nicht, wie ich diesen Dialog einrichten soll, um das Laden von Symbolen zu deaktivieren.
Arnoldold
1
Hmm, ich weiß es dann nicht. Sie müssen Symbole für Ihren eigenen Code laden, um ihn zu debuggen, damit Sie ihn nicht vollständig deaktivieren möchten. Dann würde ich wohl im Modulfenster nachsehen, welche Symbole geladen wurden, welche Sie tatsächlich benötigen, und dann möglicherweise die .pdbs aus Ihrem Symbol-Cache für diejenigen löschen, die Sie nicht möchten.
Rup
1
Überprüfen Sie den "Microsoft Symbol Server verwenden", führen Sie Ihren Code einmal aus, und dann befinden sich alle Symbole im Cache. Sie können jetzt das Kontrollkästchen für eine Geschwindigkeitssteigerung deaktivieren.
John Ktejik
1
Das Deaktivieren des Microsoft Symbol Servers unter Extras -> Optionen -> Debuggen -> Symbole hat dies für mich behoben. Bevor ich 30 Sekunden auf den Start des Debuggens gewartet habe. Jetzt ist es nur noch eine Sekunde oder so.
Mike Chamberlain
41

Hatte gerade dieses Problem.

Ich habe es behoben, indem ich navigiert habe zu:

Extras -> Optionen -> Debuggen -> Symbole

Deaktivieren Sie dann alle nicht lokalen Quellen für Speicherorte der Symboldatei (.pdb)

zB Microsoft Symbol Server und msdl.microsoft.com/download/symbols

JohnMcC
quelle
23

Ich hatte ein ähnliches Problem. In meinem Fall hatte ich _NT_SYMBOL_PATH so eingestellt, dass es von Microsoft Servern zur Verwendung in WinDbg heruntergeladen wird, und es sieht so aus, als würde Visual Studio dies verwenden, ohne es zu ignorieren. Das Entfernen dieser Umgebungsvariablen hat mein Problem behoben.

jcarle
quelle
Dies löste das Problem auch für mich (ich denke, die geringe Anzahl von Upvotes ist auf die geringe Anzahl von Leuten zurückzuführen, die diese Variable gesetzt haben ...) Danke!
Aasmund Eldhuset
Hier gilt das gleiche. Ich dachte, ich könnte es einfach von den Symbolen entfernen, aber nein, die env var muss entfernt / umbenannt werden.
Codekaizen
16

Sie können die folgende Antwort auf das Debuggen / Laden von Visual Studio sehr langsam versuchen :

  1. Gehen Sie zu Extras -> Optionen -> Debuggen -> Allgemein

  2. Aktivieren Sie das Häkchen neben "Nur meinen Code aktivieren".

  3. Gehen Sie zu Extras -> Optionen -> Debuggen -> Symbole

  4. Klicken Sie auf die Schaltfläche "..." und erstellen / wählen Sie irgendwo auf Ihrem lokalen Computer einen neuen Ordner aus, um zwischengespeicherte Symbole zu speichern. Ich habe mein "Symbol-Caching" genannt und es in "Dokumente -> Visual Studio 2012" eingefügt.

  5. Klicken Sie auf "Alle Symbole laden" und warten Sie, bis die Symbole von den Microsoft-Servern heruntergeladen wurden. Dies kann eine Weile dauern. Beachten Sie, dass die Schaltfläche Alle Symbole laden nur beim Debuggen verfügbar ist.

  6. Deaktivieren Sie das Kontrollkästchen neben "Microsoft Symbol Server", um zu verhindern, dass Visual Studio die Microsoft-Server remote abfragt.

  7. OK klicken".

Versuchen Sie auch, alle Haltepunkte zu löschen (Debug> Alle Haltepunkte löschen).

Siehe auch : Visual Studio 2015 RC1 hängt beim Laden von Symbolen im Debug-Modus

H'H
quelle
6

Für mich scheint es sich um Haltepunkte zu handeln, wie in der akzeptierten Antwort angegeben. Ich habe jedoch zwei Problemumgehungen gefunden, bei denen nicht alle Haltepunkte gelöscht wurden:

  • Ein Neustart von Visual Studio schien das Problem vorübergehend zu beheben.
  • Wenn Sie auf die Schaltfläche "X" klicken, um Visual Studio während des Debuggens zu schließen, wird "Möchten Sie das Debuggen beenden?" Meldungsfeld zum Auftauchen; Während dieses Meldungsfeld geöffnet ist, werden die Symbole mit normaler Geschwindigkeit geladen. Sobald alle Symbole geladen sind, können Sie auf "Nein" klicken, um das Schließen abzubrechen.
Cameron
quelle
3
Vielen Dank für diese verrückte Problemumgehung (mit der Meldung "Möchten Sie das Debuggen beenden?"). Ich habe zuerst die anderen Antworten ausprobiert, aber bisher hilft nur das rote "X" und der Trick "Willst du ...". Danke, ich verlor meine
geistige Gesundheit
2
@que: Heh, du bist willkommen! Ich habe es zufällig entdeckt. Es scheint, als hätte VS eine separate Nachrichtenschleife, in die es für diesen modalen Dialog geht. Wenn es also ohne Grund träge ist, hilft es manchmal, den Dialog zu öffnen :-)
Cameron
6

Ich bin gerade auf dieses Problem gestoßen. Das Löschen von Haltepunkten hat nicht oder zumindest nicht alleine funktioniert. Nachdem dies fehlgeschlagen war, ging ich zu Tools> Optionen> Debugging> Symbole und "Leerer Symbolcache".

und dann die Lösung gereinigt und wieder aufgebaut.

Scheint jetzt richtig zu funktionieren. Wenn Sie also alle anderen aufgeführten Dinge ausprobieren und es immer noch keinen Unterschied macht, können diese zusätzlichen Informationen helfen ...

SteveL
quelle
2

In meinem Fall suchte Visual Studio nach PDBs von Drittanbietern in Pfaden, die auf meinem Computer auf ein optisches Laufwerk verweisen. Ohne eine CD in der Taskleiste dauerte es ungefähr 30 Minuten, bis Windows fehlschlug, was wiederum Visual Studio verlangsamte, als es versuchte, die PDBs von diesem Speicherort zu laden. Weitere Einzelheiten finden Sie in meiner vollständigen Antwort hier: https://stackoverflow.com/a/17457581/85196

Mike
quelle
2

Ich hatte das gleiche Problem und selbst nach dem Ausschalten des Symbolladens war das Laden des Moduls in Visual Studio furchtbar langsam.

Die Lösung bestand darin, die Antivirensoftware (in meinem Fall NOD32) oder noch besser zu deaktivieren und Ausnahmen hinzuzufügen, damit die Pfade ignoriert werden, aus denen Ihr Prozess Assemblys lädt (in meinem Fall der GAC-Ordner und der temporäre ASP) Ordner .NET-Dateien).

zwei Blumen
quelle
2

Meine 2 Cent,

Ich hatte ein ähnliches Problem beim Versuch, einen (Visual Studio 2013) Diagnosebericht im x64-Freigabemodus (CPU-Sampling) abzurufen, und während die Symbole für die erforderlichen DLL-Dateien geladen wurden, konnten die Symbole für meine ausführbare Datei nicht geladen werden.

Ich habe im Menü "Symbole" nichts geändert, sondern stattdessen einige Änderungen in den Eigenschaftenseiten des Threads meiner ausführbaren Datei im Projektmappen-Explorer vorgenommen, nämlich

Konfigurationseigenschaften / Allgemein / Verwalteten inkrementellen Build auf JA aktivieren

Konfigurationseigenschaften / Debugging / Zusammenführungsumgebung auf NO

Konfigurationseigenschaften / C / C ++ / Enable Browse Information to YES (/ FR)

Konfigurationseigenschaften / Linker / Inkrementelle Verknüpfung mit JA aktivieren (/ INCREMENTAL)

EDIT: Dieser letzte macht den Trick

....

Konfigurationseigenschaften / Linker / Debugging / Debug-Informationen auf Ja generieren (/ DEBUG)

....

Danach hat es funktioniert und die Symbole wurden gut geladen. Ich bin mir sicher, dass einer oder mehrere der oben genannten den Trick für mich getan haben (obwohl ich nicht genau weiß, welcher) und ich möchte nur andere wissen lassen und dies versuchen.

Frieden

user3374479
quelle
1

Versuchen Sie, mit der rechten Maustaste auf einen der Haltepunkte zu klicken, und wählen Sie dann "Standort". Aktivieren Sie dann das Kontrollkästchen "Zulassen, dass sich der Quellcode von der Originalversion unterscheidet".

Jeremiah Anthony
quelle
1

Visual Studio 2017 Debug-Symbol "Beschleunigungsoptionen", vorausgesetzt, Sie sind noch nicht verrückt nach Optionsanpassungen geworden:

  1. Bei Tools -> Options -> Debugging -> Symbols
    einem. Aktivieren Sie die Option "Microsoft Symbol Server".
    B. Klicken Sie auf "Symbolcache leeren".
    C. Stellen Sie Ihren Symbol-Cache auf einen leicht zu findenden Punkt wie C:\dbg_symbolsoder ein%USERPROFILE%\dbg_symbols
  2. Lassen Sie nach dem erneuten Ausführen von Debug alle Symbole einmal von Anfang bis Ende oder so weit wie möglich laden.

1A und 2 sind die wichtigsten Schritte. 1B und 1C sind nur hilfreiche Änderungen, mit denen Sie Ihre Symbole im Auge behalten können.

Nachdem Ihre App alle Symbole mindestens einmal geladen hat und das Debuggen nicht vorzeitig beendet wurde, sollten diese Symbole beim nächsten Ausführen des Debugs schnell geladen werden.

Ich habe festgestellt, dass ich diese Symbole neu laden muss, wenn ich einen Debug-Lauf abbreche, da ich vermute, dass sie "bereinigt" werden, wenn sie neu eingeführt und plötzlich abgebrochen werden. Ich verstehe die Hauptgründe für diese Art von Fluss, aber in diesem Fall scheint es schlecht durchdacht.

kayleeFrye_onDeck
quelle
0

Durch Deaktivieren von "JavaScript-Debugging für ASP.NET (Chrome und IE) aktivieren" unter Extras-> Optionen-> Debugging-> Allgemein wurde mein Fall behoben, da der VS2017-Debugger nicht mit voreingestellten Haltepunkten gestartet werden konnte.

Angel_D
quelle
0

Das einzige, was für mich funktioniert hat, war das Ändern des Codetyps.

Im Fenster An Prozess anhängen habe ich die Auswahl Anhängen an geändert , um den zu debuggenden Codetyp automatisch zu bestimmen. Dann wurden meine Haltepunkte erreicht.

Ich hatte zuvor nur nativen Code ausgewählt.

apohl
quelle
0

Ich hatte ein ähnliches Problem, bei dem Visual Studio das Symbol immer wieder lädt und stecken bleibt.

Es stellte sich heraus, dass ich einige "Befehlszeilenargumente" in die Debug-Optionen eingefügt habe und einer der Parameter ungültig ist (ich soll einige Werte übergeben). Geben Sie hier die Bildbeschreibung ein

Nachdem ich den zusätzlichen Parameter entfernt habe, funktioniert er wieder.

Hainan.Z
quelle