In dieser Dokumentation werden häufig gestellte Fragen zum Debuggen von Features in Visual Studio behandelt. Außerdem werden Debugaufgaben oder Probleme dem entsprechenden Feature im Visual Studio Debugger zugeordnet. Diese Links umfassen Aufgaben oder Probleme wie das Debuggen von Multithread-Anwendungen, Codenavigation, Speicherlecks, Überprüfen von Variablen, Verwenden von Haltepunkten, debuggen externer Code und vieles mehr. Wenn Sie eine Übersicht über die Debugger-Funktionen benötigen, lesen Sie stattdessen Erster Blick auf den Debugger.
Haltepunkte
Wie kann ich die Ausführung von Code anhalten, um eine Codezeile zu prüfen, die einen Fehler enthalten kann?
Legen Sie einen Haltepunkt fest. Weitere Informationen finden Sie unter Verwenden des richtigen Haltepunkttyps und Erste Schritte mit Haltepunkten.
Wie kann ich die Ausführung von Code basierend auf bestimmten Kriterien anhalten?
Legen Sie den richtigen Haltepunkttyp fest. Weitere Informationen finden Sie unter Verwenden des richtigen Haltepunkttyps.
Wie protokolliere ich Informationen unter konfigurierbaren Bedingungen im Ausgabefenster, ohne meinen Code zu ändern oder zu beenden?
Mit Ablaufverfolgungspunkten können Sie Informationen im Ausgabefenster protokollieren. Hierfür können Sie Bedingungen konfigurieren, sodass der Code nicht geändert oder angehalten werden muss. Weitere Infomationen finden Sie unter Ablaufverfolgungspunkte im Visual Studio-Debugger verwenden.
Verwalten und verfolgen Sie meine Haltepunkte
Verwenden Sie das Fenster Breakpoints. Weitere Informationen finden Sie unter Verwalten Sie Haltepunkte.
Code anhalten und debuggen, wenn eine bestimmte behandelte oder unbehandelte Ausnahme ausgelöst wird,
Obwohl die Ausnahmehilfe Zeigt, wo ein Fehler aufgetreten ist, wenn Sie den spezifischen Fehler anhalten und debuggen möchten, können Sie den Debugger anweisen, zu unterbrechen, wenn eine Ausnahme ausgelöst wird.
Festlegen eines Haltepunkts vom Aufrufstapel
Wenn Sie code anhalten und debuggen möchten, während Sie den Ausführungsfluss untersuchen oder Funktionen in den fenstern Anrufstapel anzeigen möchten, lesen Sie Festlegen eines Haltepunkts im Fenster "Anrufstapel".
Code bei einer bestimmten Assemblyanweisung anhalten
Dies können Sie erreichen, indem Sie im Fenster „Disassemblierung“ einen Breakpoint festlegen.
Im Code navigieren
Wie kann ich die Befehle erlernen, um meinen Code beim Debuggen zu durchlaufen?
Weitere Informationen finden Sie unter Navigieren von Code mit dem Debugger.
Kann ich den Code auf eine bestimmte Zeile ausführen, während Haltepunkte übersprungen werden, ohne sie zu entfernen oder zu deaktivieren?
Für diese Szenarien können Sie „Ausführen bis Cursor“ erzwingen. Sie können Ihre Haltepunkte beibehalten, die vom Debugger übersprungen werden, bis er die Codezeile mit dem Cursor erreicht. Außerdem werden alle Unterbrechungsbedingungen des FirstChanceException-Typs übersprungen, die auftreten können. Weitere Informationen finden Sie unter Navigieren von Code mit dem Debugger.
Wenn meine Codezeile Aufrufe an verschiedene Methoden hat, kann ich eine bestimmte Methode ausführen?
Klicken Sie mit der rechten Maustaste auf die Codezeile, um ein Kontextmenü anzuzeigen, mit dem Sie "Schritt in Spezifische" auswählen können. Dadurch wird eine Liste aller Methoden angezeigt, in die Sie einsteigen können. Sie können nun die interessante Methode auswählen.
Überprüfen und Visualisieren von Daten
Wie kann ich den Wert von Variablen während der Ausführung meiner App überprüfen?
Zeigen Sie mit der Maus auf Variablen, und verwenden Sie Datentipps, oder untersuchen Sie Variablen im Fenster für automatische und lokale Variablen.
Kann ich den sich ändernden Wert einer bestimmten Variablen beobachten?
Legen Sie eine Überwachung für die Variable fest. Weitere Informationen finden Sie unter Festlegen einer Überwachung für Variablen.
Wie kann ich Zeichenfolgen anzeigen, die für das Debuggerfenster zu lang sind?
Die String-Visualizer zeigt Zeichenfolgen an, die für ein Datentipp oder ein Debugger-Fenster zu lang sind. Außerdem können Sie falsch formatierte Zeichenketten identifizieren.
Die integrierten String-Visualizer von Visual Studio enthalten Optionen für Text, XML, HTML und JSON.Wie kann ich große Sammlungsobjekte anzeigen?
Mit der DataSet Visualizer können Sie den Inhalt eines DataSet-, DataTable-, DataView- oder DataViewManager-Elements anzeigen. Mit der IEnumerable Visualizer können Sie Objekte wie Arrays, List usw. anzeigen. Weitere Informationen finden Sie unter tabellarischen Visualisierungen.
Debuggen einer Bereits ausgeführten App
Wie kann ich ausgeführte Apps auf lokalen oder Remotecomputern debuggen, mehrere Prozesse gleichzeitig debuggen, Apps debuggen, die nicht in Visual Studio erstellt wurden, oder eine App debuggen, die ich nicht mit Visual Studio? Wie kann ich mich wiederholt mit derselben Anwendung verbinden?
Sie können Erneut an Prozess anhängen (UMSCHALT+ALT+P) verwenden, um ganz einfach mit nur einem Klick das Debuggen Ihrer Anwendung zu starten, ohne jedes Mal das Dialogfeld "An Prozess anhängen" durchlaufen zu müssen. Siehe Wiederverbinden mit einem Prozess.
Debuggen von Multithreadanwendungen
Wie kann ich eine Multi-Thread-Anwendung debuggen? Oder reagiert meine Anwendung nicht?
Siehe im Fenster "Parallel Stacks" weitere Anleitungen zur Problembehandlung.
Wie kann ich die Reihenfolge anzeigen, in der Funktionen aufgerufen werden?
Informationen zum Anzeigen des Aufrufstapels finden Sie unter Anzeigen des Aufrufstapels.
Analysieren des Arbeitsspeichers
Hat meine Anwendung einen Speicherverlust?
Erstellen Sie eine Momentaufnahme, und öffnen Sie sie mit dem Speichertool, um weitere Probleme zu beheben. Siehe Messen der Speicherauslastung.
Wie kann ich die Speicherauslastung für systemeigene oder verwaltete Anwendungen analysieren?
Verwenden Sie das Arbeitsspeichertool von Visual Studio über Livedebuggen, Heap-Abbilddateien oder den Leistungs-Profiler.
Siehe Auswählen eines Speicheranalysetools.Wie kann ich die Speicherauslastung für systemeigene oder verwaltete Anwendungen analysieren, ohne einen Debugger anzufügen? Verwenden Sie den Visual Studio Performance Profiler, wobei das Speichernutzungstool aktiviert ist.
Siehe Analysieren der Speicherauslastung.Kann ich die Speicherauslastung zwischen zwei Punkten in der Zeit vergleichen?
Vergleichen Sie Momentaufnahmen im Arbeitsspeichertool oder zwei Heap-Abbilddateien mithilfe der Diff-Funktionalität. Siehe Analysieren der Speicherauslastung.
Fehlerbehebung von externem Code
Kann beim Debuggen nur Benutzercode angezeigt werden?
Just My Code ist eine Visual Studio-Debugging-Funktion, die automatisch Aufrufe von System-, Framework- und anderem Nicht-Benutzercode überspringt. Im Fenster Aufrufstapel werden diese Aufrufe von „Nur eigenen Code“ in Frames mit [externem Code] reduziert. Siehe "Nur Benutzercode debuggen" mit "Nur Mein Code".
Wie kann ich die Unformatierten Assemblyanweisungen anzeigen oder debuggen, die mein Programm ausführt?
Verwenden Sie das Disassemblierungsfenster aus Debug > Windows > Disassembly. Sie können jeweils eine Anweisung durchlaufen und sogar Haltepunkte für einzelne Assemblyanweisungen festlegen.
Kann ich Quellcode für .NET Bibliotheken anzeigen?
Aktivieren Sie „Microsoft-Symbolserver“ über „Debuggen“ > „Optionen“ > „Symbole“, um Symbole und Quelle für .NET-Bibliotheken herunterzuladen. Siehe Symbol angeben.
Wie kann ich PDBs von einem bestimmten oder freigegebenen Standort oder Server laden?
Konfigurieren Sie Ihre Symbolserver-Instanzen über „Debuggen“ > „Optionen“ > „Symbole“. Siehe Symbol spezifizieren.
Wie kann ich nie einen bestimmten PDB laden? Oder wie kann ich immer eins laden?
Konfigurieren Sie Ihre Ein- und Ausschlusslisten unter „Debuggen“ > „Optionen“ > „Symbole“.
Siehe Symbol angeben.
Debuggen konfigurieren
Wie kann ich Debuggereinstellungen konfigurieren?
Informationen zum Konfigurieren von Debuggeroptionen und Debuggerprojekteinstellungen finden Sie unter Debuggereinstellungen und Vorbereitung.
Wie kann ich Informationen anpassen, die im Debugger angezeigt werden?
Möglicherweise möchten Sie andere Informationen als den Objekttyp als Wert in verschiedenen Debuggerfenstern anzeigen. Verwenden Sie für C#-, Visual Basic-, F#- und C++/CLI-Code das Attribut DebuggerDisplay. Für erweiterte Optionen können Sie die Benutzeroberfläche auch anpassen, indem Sie eine benutzerdefinierten Visualizer-erstellen. Verwenden Sie für natives C++ das NatVis-Framework.
Weitere Aufgaben
Muss ich einen Dump abspeichern?
Wenn die Ausführung während des Debuggens bei einem Fehler oder Haltepunkt angehalten wurde, klicken Sie auf Debuggen > Dump speichern unter. Siehe Dumpdateien.
Wie kann ich eine Speicherabbilddatei analysieren?
Öffnen Sie das Dump, indem Sie File > Open in Visual Studio auswählen. Um mit dem Debuggen zu beginnen, wählen Sie Debuggen nur mit verwaltetem, Debuggen nur mit nativem, Debuggen mit gemischtem oder Debuggen mit verwaltetem Arbeitsspeicher. Siehe Dumpdateien.
Kann ich Code während einer Debugsitzung bearbeiten?
Verwenden Sie Hot Reload, zuvor als "Bearbeiten" und "Weiter" bezeichnet. Verwenden Sie für XAML XAML-Hot Reload.
Wie kann ich auf Remotecomputern debuggen?
Siehe Remote-Debugging.
Wie kann ich Leistungsprobleme beheben?
Sehen Sie sich zuerst die Profilerstellungstools an.
Wie kann ich eine Ausnahme beheben?
Siehe Ausnahmefehler beheben.
KI-unterstütztes Debugging
Wie erhalte ich KI-Unterstützung beim Debuggen?
Wenn Sie Copilot haben, suchen Sie nach der Schaltfläche Analyze mit Copilot oder Ask Copilot in Debuggerfenstern wie der Ausnahmehilfe, Datentipps und Variablenfenstern. Copilot kennt bereits Ihren Debugkontext. Siehe Debug mit Copilot.
Wie verwende ich den Debugger-Agent für die End-to-End-Fehlerauflösung?
Der Debugger-Agent stellt einen agentenbasierten Workflow bereit, der Fehler reproduziert, Ihre App instrumentiert und Korrekturen mithilfe von Live-Laufzeitdaten validiert. Wählen Sie Debugger aus der Dropdownliste des Modus im fenster Copilot Chat aus, und geben Sie einen Problemlink an, oder beschreiben Sie den Fehler. Siehe Agentische Fehlerauflösung mit dem Debugger-Agent.