In diesem Artikel erhalten Sie Informationen zum Anzeigen der Aufrufliste und Verwenden des Fensters „Aufrufliste“ im Debugger.

Mithilfe des Fensters Aufrufliste können Sie die Funktions- und Prozeduraufrufe anzeigen, die sich derzeit im Stapel befinden. Im Fenster Aufrufliste wird die Reihenfolge angezeigt, in der Methoden und Funktionen aufgerufen werden. Die Aufrufliste bietet eine nützliche Möglichkeit zum Untersuchen und Verstehen des Ausführungsablaufs einer App.

Wenn für einen Teil der Aufrufliste keine Debugsymbole verfügbar sind, können im Fenster Aufrufliste für diesen Teil der Aufrufliste möglicherweise keine korrekten Informationen angezeigt werden. Stattdessen wird Folgendes angezeigt:

[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]

Hinweis

Je nach den aktiven Einstellungen oder der Version unterscheiden sich die Dialogfelder und Menübefehle auf Ihrem Bildschirm möglicherweise von den hier beschriebenen. Wählen Sie im Menü Extras die Option Einstellungen importieren und exportieren aus, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Zurücksetzen aller Einstellungen. Das Fenster Aufrufliste ist mit der Debugperspektive in einigen IDEs wie Eclipse vergleichbar.

Anzeigen der Aufrufliste während des Debuggens

Während des Debuggens können Sie im Menü Debuggen die Option Windows > Aufrufliste auswählen oder ctrl+alt+C drücken.

Screenshot showing the Call Stack Window. Ein gelber Pfeil bezeichnet den Stapelrahmen, in dem sich der Ausführungszeiger derzeit befindet. Standardmäßig werden die Informationen dieses Stapelrahmens in der Quelle und in den Fenstern Lokale Variablen, Auto, Überwachung und Disassemblierung angezeigt. Wechseln Sie zu einem anderen Stapelrahmen, um den Debuggerkontext in einen anderen Rahmen auf dem Stapel zu ändern.

Screenshot showing the Call Stack Window.

Ein gelber Pfeil bezeichnet den Stapelrahmen, in dem sich der Ausführungszeiger derzeit befindet. Standardmäßig werden die Informationen dieses Stapelrahmens in der Quelle und in den Fenstern Lokale Variablen, Auto, Überwachung und Disassemblierung angezeigt. Wechseln Sie zu einem anderen Stapelrahmen, um den Debuggerkontext in einen anderen Rahmen auf dem Stapel zu ändern.

Sie können beim Debuggen auch Ausnahmestapelframes in der Aufrufliste anzeigen. Weitere Informationen finden Sie unter Anzeigen der Aufrufliste im Ausnahmehilfsprogramm.

Anzeigen von IDE-generiertem Code im Fenster „Aufrufliste“

Schalten Sie zum Anzeigen von externem oder IDE-generiertem Code „Externen Code anzeigen“ um, oder klicken Sie mit der rechten Maustaste auf das Fenster Aufrufliste, und wählen Sie Externen Code anzeigen aus.

Schalten Sie zum Anzeigen von externem oder IDE-generiertem Code auf der Symbolleiste für die Aufrufliste die Schaltfläche Externen Code anzeigen um, oder klicken Sie mit der rechten Maustaste auf das Fenster Aufrufliste, und wählen Sie Externen Code anzeigen aus.

IDE-generierter Code ist sämtlicher Code, der nicht angezeigt wird, wenn Nur eigenen Code aktiviert ist. Bei verwaltetem Code werden Rahmen mit IDE-generiertem Code standardmäßig ausgeblendet. Anstelle der Rahmen mit IDE-generiertem Code wird die folgende Notation angezeigt:

[<External Code>]

Wechseln zu einem anderen Stapelrahmen (Ändern des Debuggerkontexts)

  1. Klicken Sie im Fenster Aufrufliste mit der rechten Maustaste auf den Stapelrahmen, dessen Code und Daten angezeigt werden sollen.

    Alternativ können Sie auf einen Rahmen im Fenster Aufrufliste doppelklicken, um zu diesem Rahmen zu wechseln.

  2. Wählen Sie Switch to Frame (Zu Frame wechseln) aus.

    Neben dem ausgewählten Stapelrahmen wird ein grüner Pfeil in Form einer Welle angezeigt. Der Ausführungszeiger verbleibt im ursprünglichen Rahmen, der noch immer durch einen gelben Pfeil gekennzeichnet ist. Wenn Sie im Menü Debuggen den Befehl Schritt oder Weiter auswählen, wird die Ausführung nicht im neu ausgewählten, sondern im ursprünglichen Frame fortgesetzt.

Schalten Sie die Schaltfläche Alle Threads anzeigen um, um alle zugehörigen Threads im Fenster Parallele Stapel anzuzeigen.

Sie können nach relevanten Aufrufstapelrahmen suchen, indem Sie relevante Suchbegriffe in das Suchfeld eingeben, das sich in der oberen linken Ecke des Fensters „Aufrufliste“ befindet. Die entsprechenden Aufrufstapelrahmen werden hervorgehoben.

Anzeigen des Quellcodes für eine Funktion in der Aufrufliste

Klicken Sie im Fenster Aufrufliste mit der rechten Maustaste auf die Funktion, deren Quellcode Sie anzeigen möchten, und wählen Sie Gehe zu Quellcode aus.

Ausführung bis zu einer angegebenen Funktion im Fenster „Aufrufliste“

Wählen Sie im Fenster Aufrufliste die Funktion aus, klicken Sie mit der rechten Maustaste darauf, und wählen Sie dann die Option Ausführen bis Cursor aus.

Festlegen eines Haltepunkts am Punkt der Beendigung eines Funktionsaufrufs

Weitere Informationen finden Sie unter Festlegen von Breakpoints in Debuggerfenstern.

Anzeigen von Aufrufen für oder von anderen Threads

Klicken Sie mit der rechten Maustaste auf das Fenster Aufrufliste, und wählen Sie Aufrufe zu/von anderen Threads einschließen aus.

Visuelle Überwachung der Aufrufliste

(Nur) in Visual Studio Enterprise können Sie Code Maps für die Aufrufliste während des Debuggens anzeigen.

Öffnen Sie das Kontextmenü im Fenster Aufrufliste. Klicken Sie auf Aufrufliste auf Code Map anzeigen (STRG + UMSCHALT + ` ).

Weitere Informationen finden Sie unter Erstellen einer visuellen Map der Aufrufliste während des Debuggens (C#, Visual Basic, C++, JavaScript).

Show Call Stack on Code Map

Anzeigen des Disassemblierungscodes für eine Funktion in der Aufrufliste (C#, C++, Visual Basic, F#)

Klicken Sie im Fenster Aufrufliste mit der rechten Maustaste auf die Funktion, deren Disassemblycode Sie anzeigen möchten, und wählen Sie Gehe zu Disassembly aus.

Ändern der Anzeige optionaler Informationen

Klicken Sie im Fenster Aufrufliste mit der rechten Maustaste, und legen Sie <Gewünschte Informationen> anzeigen fest, oder heben Sie die Festlegung auf.

Automatisches Dekompilieren von externem .NET-Code

Ab Visual Studio 2022, Version 17.7, können Sie .NET-Code automatisch dekompilieren, indem Sie im Fenster „Aufrufliste“ auf externen Code doppelklicken. Weitere Informationen finden Sie unter Generieren von Quellcode aus .NET-Assemblys beim Debuggen.

Laden von Symbolen für ein Modul (C#, C++, Visual Basic, F#)

Im Fenster Aufrufliste können Sie Debugsymbole für Code laden, für den derzeit keine Symbole geladen sind. Bei diesen Symbolen kann es sich um .NET-Symbole oder Systemsymbole handeln, die von den öffentlichen Microsoft-Symbolservern heruntergeladen wurden, oder um Symbole in einem Symbolpfad auf dem Computer, den Sie debuggen.

Weitere Informationen finden Sie unter Angeben von Symbol- und Quelldateien.

So laden Sie Symbole

  1. Klicken Sie im Fenster Aufrufliste mit der rechten Maustaste auf einen Stapelrahmen, für den keine Symbole geladen werden. Der Rahmen wird abgeblendet.

  2. Zeigen Sie auf Symbole laden, und klicken Sie dann auf Microsoft-Symbolserver (wenn verfügbar). Folgen Sie andernfalls dem Symbolpfad.

So legen Sie den Symbolpfad fest

  1. Wählen Sie im Fenster Aufrufliste im Kontextmenü die Option Symboleinstellungen aus.

    Das Dialogfeld Optionen wird geöffnet, und die Seite Symbole wird angezeigt.

  2. Klicken Sie auf Symboleinstellungen.

  3. Klicken Sie im Dialogfeld Optionen auf das Ordnersymbol.

    Im Feld Speicherorte für Symboldateien (.pdb) wird ein Cursor angezeigt.

  4. Geben Sie einen Verzeichnispfadnamen zum Symbolspeicherort auf dem Computer ein, den Sie debuggen. Beim lokalen und Remotedebuggen ist dies ein Pfad auf Ihrem lokalen Computer.

  5. Klicken Sie auf OK, um das Dialogfeld Optionen zu schließen.