Erstellen einer visuellen Zuordnung der Aufrufliste beim Debuggen (C#, Visual Basic, C++, JavaScript)

Erstellen Sie eine Code Map, um die Aufrufliste während des Debuggens visuell zu verfolgen. Sie können Notizen auf der Code Map vermerken, um das Verhalten des Codes zu verfolgen, sodass Sie sich auf das Suchen von Fehlern konzentrieren können.

Nähere Informationen zu Befehlen und Aktionen, die Sie für Code Maps verwenden können, finden Sie unter Durchsuchen und Neuanordnen von Code Maps.

Wichtig

Sie können Code Maps nur in Visual Studio Enterprise erstellen.

Hier ist eine Code Map dargestellt:

Debugging with call stacks on code maps

Zuordnen der Aufrufliste

  1. Beginnen Sie in Visual Studio Enterprise in einem C#-, Visual Basic-, C++- oder JavaScript-Projekt mit dem Debuggen, indem Sie Debuggen>Debuggen starten auswählen oder F5 drücken.

  2. Gehen Sie wie folgt vor, nachdem Ihre App den Anhaltemodus erreicht hat oder Sie in eine Funktion gesprungen sind: Wählen Sie Debuggen>Code Map aus, oder drücken Sie STRG+UMSCHALT+` .

    Die aktuelle Aufrufliste wird in einer neuen Code Map orange dargestellt:

    See call stack on code map

Die Code Map wird automatisch aktualisiert, wenn Sie das Debuggen fortsetzen. Änderungen von Elementen oder des Layouts der Code Map haben keinerlei Auswirkung auf den Code. Sie können beliebigen Code in der Zuordnung gerne umbenennen, verschieben oder entfernen.

Bewegen Sie den Mauszeiger auf ein Element, und sehen Sie sich die QuickInfo an, um weitere Informationen zu einem Element zu erhalten. Sie können auch in der Symbolleiste die Option Legende auswählen, um Informationen zu den einzelnen Symbolen zu erhalten.

Code Map Legend

Hinweis

Die Meldung Das Diagramm basiert möglicherweise auf einer älteren Version des Codes oben in der Code Map bedeutet, dass sich der Code seit der letzten Aktualisierung der Code Map ggf. geändert hat. Zum Beispiel befindet sich möglicherweise ein Aufruf für die Zuordnung nicht mehr im Code. Schließen Sie die Meldung, und versuchen Sie dann, die Projektmappe vor der erneuten Aktualisierung der Zuordnung neu zu erstellen.

Code Map: Externer Code

Standardmäßig wird nur Ihr eigener Code in der Code Map angezeigt. Zeigen Sie externen Code in der Code Map wie folgt an:

  • Klicken Sie mit der rechten Maustaste in das Fenster Aufrufliste, und wählen Sie Externen Code anzeigen aus:

    Display external code using the Call Stack window

  • Alternativ können Sie in Visual Studio unter Tools (oder Debuggen) >Optionen>Debuggen die Option Nur meinen Code aktivieren deaktivieren:

    Show external code using Options dialog

Steuern des Layouts der Code Map

Wenn Sie das Layout der Code Map ändern, hat dies keinerlei Auswirkung auf den Code.

Wählen Sie zum Steuern des Layouts der Code Map in der Symbolleiste das Menü Layout aus.

Im Menü Layout können Sie Folgendes durchführen:

  • Ändern Sie das Standardlayout.
  • Beenden Sie das Verhalten, bei dem die Elemente der Code Map automatisch neu angeordnet werden, indem Sie die Option Automatisches Layout beim Debugging deaktivieren.
  • Legen Sie fest, dass die Elemente in der Code Map beim Hinzufügen von neuen Elementen so wenig wie möglich neu angeordnet werden sollen, indem Sie die Option Inkrementelles Layout deaktivieren.

Aufzeichnen von Notizen zum Code

Sie können Kommentare hinzufügen, um nachzuverfolgen, was im Code geschieht.

Klicken Sie zum Hinzufügen eines Kommentars mit der rechten Maustaste in die Code Map, wählen Sie Bearbeiten>Neuer Kommentar aus, und geben Sie dann den Kommentar ein.

Drücken Sie UMSCHALT+EINGABE, um in einem Kommentar eine neue Zeile hinzuzufügen.

Add comment to call stack on code map

Aktualisieren der Zuordnung mit der nächsten Aufrufliste

Wenn Sie Ihre App bis zum nächsten Breakpoint ausführen oder in eine Funktion springen, werden der Code Map automatisch neue Aufruflisten hinzugefügt.

Update code map with next call stack

Wählen Sie auf der Code-Map-Symbolleiste die Option Show call stack on code map automatically aus, um zu verhindern, dass in der Code Map automatisch neue Aufruflisten hinzugefügt werden. Aufruflisten, die in der Code Map bereits vorhanden sind, werden weiterhin hervorgehoben. Drücken Sie STRG+UMSCHALT+` , um die aktuelle Aufrufliste der Code Map manuell hinzuzufügen.

Hinzufügen von zugehörigem Code zur Zuordnung

Nachdem Sie nun über eine Code Map verfügen, können Sie in C# oder Visual Basic Elemente hinzufügen, z. B. Felder, Eigenschaften und andere Methoden, um nachzuverfolgen, was im Code geschieht.

Sie können auf die Definition einer Methode im Code zugreifen, indem Sie in der Code Map auf die Methode doppelklicken oder diese auswählen und F12 drücken. Alternativ können Sie auch mit der rechten Maustaste darauf klicken und dann Zu Definition wechseln auswählen.

Go to code definition for a method on code map

Klicken Sie mit der rechten Maustaste auf eine Methode, und wählen Sie die nachzuverfolgenden Elemente aus, um diese der Code Map hinzuzufügen. Die zuletzt hinzugefügten Elemente werden grün dargestellt.

Fields related to a method on call stack code map

Hinweis

Standardmäßig werden beim Hinzufügen von Elementen zur Zuordnung auch die übergeordnete Gruppenknoten, wie Klasse, Namespace und Assembly, hinzugefügt. Sie können dieses Feature ein- und ausschalten, indem Sie in der Code Map-Symbolleiste die Schaltfläche Übergeordnete Elemente einschließen auswählen oder beim Hinzufügen von Elementen STRG drücken.

Show fields in a method on call stack code map

Setzen Sie das Erstellen der Zuordnung fort, um weiteren Code anzuzeigen.

See methods that use a field: call stack code map

Methods that use a field on call stack code map

Suchen von Fehlern mithilfe der Zuordnung

Durch die Visualisierung des Codes können Sie Fehler schneller finden. Angenommen, Sie untersuchen einen Fehler in einer App zum Erstellen von Zeichnungen. Wenn Sie eine Linie zeichnen und versuchen, sie rückgängig zu machen, geschieht nichts, bis Sie eine andere Zeile zeichnen.

Legen Sie die Haltepunkte clear, undo und Repaint fest, starten Sie das Debugging, und erstellen Sie eine Zuordnung wie die folgende:

Add another call stack to code map

Sie stellen fest, dass alle Benutzergesten in der Zuordnung die Repaint-Funktion aufrufen, außer undo. Dies erklärt möglicherweise, warum undo nicht sofort funktioniert.

Wenn Sie den Fehler korrigiert haben und die Ausführung der App fortsetzen, fügt die Code Map den neuen Aufruf von undo der Funktion Repaint hinzu:

Add new method call to call stack on code map

Freigeben der Code Map für andere Benutzer

Sie können eine Code Map exportieren, per Microsoft Outlook an andere Benutzer senden, in Ihrer Lösung speichern und in die Versionskontrolle einchecken.

Verwenden Sie in der Code Map-Symbolleiste die Option Freigeben, um die Code Map freizugeben oder zu speichern.

Share call stack code map with others