Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Tool "Melden eines Problems" wird von Visual Studio-Benutzern häufig verwendet, um eine Reihe von Problemen zu melden. Das Visual Studio-Team entdeckt Absturz- und Langsamkeitstrends in Benutzerfeedback und behandelt Probleme, die sich auf eine breite Palette von Benutzern auswirken. Je umsetzbarer ein bestimmtes Feedbackticket ist, desto wahrscheinlicher wird es vom Produktteam diagnostiziert und gelöst. In diesem Dokument werden die bewährten Methoden beim Melden von Absturz- oder Langsamkeitsproblemen beschrieben, um sie umsetzbarer zu machen.
Allgemeine bewährte Methoden
Visual Studio ist eine große, komplexe Plattform, die eine Vielzahl von Sprachen, Projekttypen, Plattformen und mehr unterstützt. Wie sie ausgeführt wird, ist eine Funktion davon, welche Komponenten in einer Sitzung installiert und aktiv sind, die installierten Erweiterungen, die Visual Studio-Einstellungen, die Computerkonfiguration und schließlich die Form des codes, der bearbeitet wird. Angesichts der Anzahl der Variablen ist es schwierig zu erkennen, ob der Problembericht eines Benutzers dasselbe zugrunde liegende Problem wie ein Problembericht eines anderen Benutzers hat, auch wenn das sichtbare Symptom identisch ist. Vor diesem Hintergrund finden Sie hier einige Best Practices, um sicherzustellen, dass Ihr spezifischer Problembericht mit einer höheren Wahrscheinlichkeit einer Diagnose unterzogen wird.
Geben Sie so spezifischen Titel wie möglich
Suchen Sie nach deutlichen Signaturen für das gemeldete Problem und fügen Sie so viel wie möglich davon in den Titel ein. Wenn der Titel beschreibend ist, ist es weniger wahrscheinlich, dass Benutzer mit nicht zusammenhängenden Problemen (aber mit demselben oberflächlichen Symptom) Ihr Ticket bewerten oder kommentieren, wodurch die Diagnose Ihres -Problems bei erschwert wird.
Im Zweifelsfall einen neuen Problembericht einloggen
Viele Probleme weisen möglicherweise keine ausgeprägten Merkmale oder reproduzierbare Schritte auf. In solchen Fällen ist ein neuer Bericht besser als ein Upvote oder ein Kommentar zu einem anderen Bericht, der ein ähnliches äußeres Symptommeldet. Fügen Sie je nach Berichtstyp zusätzliche Diagnosedateien in Ihren Bericht ein, wie weiter unten in diesem Dokument beschrieben.
Problemspezifische Best Practices
Nachfolgend beschrieben sind Probleme, die ohne gute Diagnosedateien schwer zu diagnostizieren sind. Nachdem Sie den Fall identifiziert haben, der Ihr Problem am besten beschreibt, führen Sie die für diesen Fall spezifischen Feedbackschritte aus.
Abstürze: Ein Absturz tritt auf, wenn der Prozess (Visual Studio) unerwartet beendet wird.
Nicht reagierend: VS reagiert für einen längeren Zeitraum nicht mehr.
Probleme bei der Langsamkeit: Eine bestimmte Aktion in VS ist langsamer als gewünscht.
Hohe CPU: Längere Zeiträume mit unerwartet hoher CPU-Auslastung
Out-of-Process-Probleme: Ein Problem, das durch einen Visual Studio-Satellitenprozess verursacht wurde
Abstürze
Ein Absturz tritt auf, wenn der Prozess (Visual Studio) unerwartet beendet wird.
Direkt reproduzierbare Abstürze
Direkt reproduzierbare Abstürze sind Fälle, die alle folgenden Merkmale aufweisen:
Kann beobachtet werden, indem man einem bekannten Satz von Schritten folgt.
Kann auf mehreren Computern beobachtet werden (sofern verfügbar)
Kann im Beispielcode oder in einem Projekt reproduziert werden, mit dem bzw. das als Teil des Feedbacks verknüpft oder bereitgestellt werden kann (wenn die Schritte das Öffnen eines Projekts oder Dokuments umfassen)
Führen Sie für diese Probleme die Schritte in "How to Report a Problem" aus, und achten Sie darauf, Folgendes einzuschließen:
Die Schritte zum Reproduzieren des Problems
Ein eigenständiges Repro-Projekt wie oben beschrieben. Wenn eine eigenständige Reproduzierung nicht möglich ist, schließen Sie Folgendes ein:
Die Sprache der geöffneten Projekte (C#, C++usw.)
Die Art des Projekts (Konsolenanwendung, ASP.NET usw.)
Anmerkung
Wertvollstes Feedback: Für diesen Fall ist das wertvollste Feedback die Schritte zum Reproduzieren des Problems zusammen mit Beispielquellcode.
Unbekannte Abstürze
Wenn Sie nicht sicher sind, was ihre Abstürze verursacht, oder sie scheinen zufällig zu sein, können Sie Abbilder bei jedem Absturz von Visual Studio lokal erfassen und diese an separate Feedbackelemente anfügen. Führen Sie die folgenden Befehle in einem Administratorbefehlsfenster aus, um Speicherabbilder lokal zu speichern, wenn Visual Studio abstürzt:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
Passen Sie Anzahl und Ordner für Speicherabbilder entsprechend an. Weitere Informationen zu diesen Einstellungen finden Sie hier.
Anmerkung
Mit dem Task-Manager erfasste Speicherabbilder weisen wahrscheinlich die falsche Bitanzahl auf, wodurch sie weniger nützlich sind. Das oben beschriebene Verfahren ist die bevorzugte Methode zum Erfassen einer Heap-Abbilddatei. Wenn Sie den Task-Manager verwenden möchten, schließen Sie den aktuell aktiven Task-Manager, und starten Sie den 32-Bit-Task-Manager (%windir%\syswow64\taskmgr.exe). Erfassen Sie anschließend in diesem eine Heap-Speicherabbild.
Anmerkung
Jede von dieser Methode erzeugte Speicherabbilddatei beträgt bis zu 4 GB Größe. Stellen Sie sicher, dass DumpFolder auf einen Speicherort mit ausreichendem Laufwerkspeicher festgelegt wird, oder passen Sie den DumpCount entsprechend an.
Bei jedem Absturz von Visual Studio wird am konfigurierten Speicherort eine Speicherabbilddatei devenv.exe.[Nummer].dmp erstellt.
Verwenden Sie dann die Funktion "Problem melden..." von Visual Studio. Das ermöglicht es Ihnen, das entsprechende Speicherabbild anzufügen.
Wechseln Sie zu der zum Absturz gehörigen Speicherabbilddatei. Suchen Sie dazu nach einer Datei mit dem passenden Erstellungszeitpunkt.
Wenn möglich, zippen Sie die Datei (*.zip), um ihre Größe zu verringern, bevor Sie Feedback übermitteln
Befolgen Sie die Schritte unter Melden eines Problems, und fügen Sie die Heap-Abbilddatei an ein neues Feedbackelement an.
Anmerkung
Das nützlichste Feedback: Für diesen Sachverhalt stellt die zum Zeitpunkt des Absturzes erfasste Heap-Abbilddatei das nützlichste Feedback dar.
Unempfänglichkeit
VS reagiert für einen längeren Zeitraum nicht mehr.
Direkt reproduzierbare Reaktionslosigkeit
Wie im entsprechenden Abschnitt zu Abstürze beschrieben, für Probleme, die leicht reproduziert werden können, auf mehreren Computern zu sehen und in einem kleinen Beispiel gezeigt werden können, sind die wertvollsten Feedbackberichte diejenigen, die Schritte zum Reproduzieren des Problems enthalten und Beispielquellcode enthalten, der das Problem veranschaulicht.
Fehlende Reaktionsfähigkeit aus unbekanntem Grund
Wenn ein Nichtreagieren auf unvorhersehbare Weise auftritt, starten Sie beim nächsten Vorfall eine neue Instanz von Visual Studio und melden Sie ein Problem in dieser Instanz. Wählen Sie auf dem Bildschirm "Aufzeichnen" unbedingt die Visual Studio-Sitzung aus, die nicht reagiert. (Weitere Informationen zum Aufzeichnen von Aktionen, denen wir folgen können, um das Problem zu reproduzieren, finden Sie in Schritt 8 auf der Melden eines Problems Seite.)
Wenn die nicht reagierende Visual Studio-Instanz im Administratormodus gestartet wurde, muss die zweite Instanz auch im Administratormodus gestartet werden.
Anmerkung
Das nützlichste Feedback: Für diesen Sachverhalt stellt die zum Zeitpunkt der fehlenden Reaktionsfähigkeit erfasste Heap-Abbilddatei das nützlichste Feedback dar.
Langsamkeit und hohe CPU-Probleme
Was eine langsame oder hohe CPU-Auslastung besonders gut analysierbar macht, ist eine Leistungsablaufverfolgung, die erfasst wird, während der langsame Vorgang oder das hohe CPU-Ereignis noch stattfindet.
Anmerkung
Isolieren Sie jedes Szenario nach Möglichkeit in einem separaten, spezifischen Feedbackbericht. Wenn die Eingabe und navigation beispielsweise langsam sind, führen Sie die nachstehenden Schritte einmal pro Problem aus. Dadurch kann das Produktteam die Ursache bestimmter Probleme isolieren.
Führen Sie die folgenden Schritte aus, um optimale Ergebnisse bei der Erfassung der Leistung zu erzielen:
Falls noch nicht geschehen, halten Sie eine Kopie von Visual Studio geöffnet, in der Sie das Problem reproduzieren können.
Richten Sie alles so ein, dass Sie das Problem reproduzieren können. Wenn Sie z. B. ein bestimmtes Projekt mit einer bestimmten Datei laden müssen, stellen Sie sicher, dass beide Schritte abgeschlossen sind, bevor Sie fortfahren.
Wenn Sie kein spezifisches Problem beim Laden einer Projektmappe melden, warten Sie nach dem Öffnen der Projektmappe 5–10 Minuten (oder je nach Größe der Projektmappe länger), bevor Sie die Leistungsüberwachung aufzeichnen. Der Lösungsladevorgang erzeugt eine große Datenmenge, sodass das Warten auf ein paar Minuten hilft uns, uns auf das spezifische Problem zu konzentrieren, das Sie melden.
Starten Sie eine zweite Visual Studio-Instanz ohne geöffnete Projektmappe.
Öffnen Sie in der neuen Kopie von Visual Studio das Tool Melden eines Problems
Führen Sie die Schritte unter Melden eines Problems aus, bis Sie den Schritt zum „Bereitstellen einer Ablaufverfolgung und Heap-Abbilddatei (optional)“ erreichen.
Wählen Sie die erste Kopie von Visual Studio, die das Leistungsproblem aufweist, und starten Sie die Aufzeichnung.
Die Schrittaufzeichner-Anwendung wird angezeigt und beginnt mit der Aufzeichnung.
Führen Sie in der ersten Visual Studio-Instanz die problematische Aktion während der Aufzeichnung aus. Es ist für uns schwierig, bestimmte Leistungsprobleme zu beheben, wenn sie nicht innerhalb der aufgezeichneten Zeit erscheinen.
Wenn die Aktion kürzer als 30 Sekunden ist und leicht wiederholt werden kann, wiederholen Sie die Aktion, um das Problem weiter zu veranschaulichen.
In den meisten Fällen reicht eine Ablaufverfolgung von 60 Sekunden aus, um die Probleme zu veranschaulichen, insbesondere, wenn die problematische Aktion länger als 30 Sekunden dauert (oder wiederholt wurde). Die Dauer kann bei Bedarf angepasst werden, um das gewünschte Verhalten zu erfassen.
Klicken Sie in der Schrittaufzeichnung auf "Stop Record", sobald der langsame Vorgang oder das hohe CPU-Ereignis, das Sie melden möchten, abgeschlossen ist. Es kann einige Minuten dauern, bis der Leistungstrace verarbeitet ist.
Nach Abschluss des Vorgangs weist Ihr Feedback mehrere Anlagen auf. Fügen Sie alle zusätzlichen Dateien an, die beim Reproduzieren des Problems helfen können (ein Beispielprojekt, Screenshots, Videos usw.).
Senden Sie das Feedback.
Während einer Leistungsablaufverfolgung sollten Sie die Aufzeichnung sofort beenden, wenn der langsame Vorgang oder die hohe CPU, die Sie gemeldet haben, endet. Wenn zu viele Informationen gesammelt werden, werden die ältesten Informationen überschrieben. Wenn die Ablaufverfolgung nicht bald (innerhalb weniger Sekunden) nach dem interessanten Vorgang beendet wird, werden nützliche Ablaufverfolgungsdaten überschrieben.
Fügen Sie keine Leistungsablaufverfolgungen direkt an vorhandene Feedbackelemente auf der Entwicklercommunity-Website an. Das Anfordern/Bereitstellen zusätzlicher Informationen ist ein unterstützter Workflow im integrierten 'Problem melden' Tool in Visual Studio. Wenn eine Leistungsablaufverfolgung erforderlich ist, um ein vorheriges Feedbackelement zu beheben, legen wir den Status des Feedbackelements auf "Weitere Informationen benötigen" fest, auf die auf die gleiche Weise geantwortet werden kann wie das Melden eines neuen Problems. Ausführliche Anweisungen finden Sie im Abschnitt "Zusätzliche Informationen benötigt" im Dokument des Werkzeugs 'Problem melden'.
Anmerkung
Wertvollstes Feedback: Bei fast allen Langsamkeits-/hohen CPU-Problemen ist das wertvollste Feedback eine allgemeine Beschreibung dessen, was Sie tun wollten, zusammen mit der Leistungsablaufverfolgung (*.etl.zip), die das Verhalten während dieser Zeit erfasst.
Erweiterte Leistungsüberwachung
Die Protokollierungsfunktionen des "Report-a-Problem-Tool" sind für die meisten Szenarien ausreichend. Es kann jedoch vorkommen, dass mehr Kontrolle über die Erfassung der Ablaufverfolgung erforderlich ist, z. B. eine Ablaufverfolgung mit höherer Puffergröße. Für diesen Fall ist das Tool PerfView besonders geeignet. Schritte zum manuellen Aufzeichnen von Leistungstraces mithilfe des PerfView-Tools finden Sie auf der Seite Aufzeichnung von Leistungstraces mit PerfView.
Out-of-Process-Probleme
Anmerkung
Beginnend mit Visual Studio 2019, Version 16.3, werden Out-of-Process-Protokolle automatisch an Feedback angefügt, das mit dem Tool „Problem melden“ übermittelt wird. Wenn das Problem jedoch direkt reproduzierbar ist, können Sie nach den folgenden Schritten weiterhin zusätzliche Informationen hinzufügen, um das Problem besser zu diagnostizieren.
Es gibt eine Reihe von Satellitenprozessen, die parallel zu Visual Studio ausgeführt werden und verschiedene Features außerhalb des Visual Studio-Hauptprozesses bereitstellen. Wenn in einem dieser Satellitenprozesse ein Fehler auftritt, wird er in der Regel auf der Visual Studio-Seite als "StreamJsonRpc.RemoteInvocationException" oder als "StreamJsonRpc.ConnectionLostException" angezeigt.
Was diese Arten von Problemen am meisten umsetzbar macht, besteht darin, zusätzliche Protokolle bereitzustellen, die mithilfe der folgenden Schritte gesammelt werden können:
Wenn dies ein direkt reproduzierbares Problem ist, löschen Sie zunächst den %temp%/servicehub/logs Ordner. Wenn Sie dieses Problem nicht reproduzieren können, halten Sie diesen Ordner intakt und ignorieren Sie die folgenden Aufzählungen:
- Legen Sie die globale Umgebungsvariable ServiceHubTraceLevel auf Alle fest
- Reproduzieren Sie das Problem.
Laden Sie das Microsoft Visual Studio- und .NET Framework-Protokollsammlungstool hierherunter.
Führen Sie das Tool aus. Dadurch wird eine ZIP-Datei an %temp%/vslogs.zipausgegeben. Fügen Sie diese Datei an Ihr Feedback an.
Verwandte Inhalte
- Melden eines Problems mit C++-
- Visual Studio-Entwicklercommunity
- Datenschutz für die Entwicklergemeinschaft Developer Community