Delen via


Bekijk de aanroepstack en gebruik het venster Aanroepstack in het foutopsporingsprogramma

Met behulp van het venster Aanroepstack kunt u de functie- of procedureaanroepen bekijken die zich momenteel in de stack bevinden. In het venster Aanroepstack ziet u de volgorde waarin methoden en functies worden aangeroepen. De aanroepstack is een goede manier om de uitvoeringsstroom van een app te onderzoeken en te begrijpen.

Wanneer symbolen voor foutopsporing niet beschikbaar zijn voor een deel van een aanroepstack, kan het venster Aanroepstack mogelijk niet de juiste informatie weergeven voor dat deel van de aanroepstack, in plaats daarvan:

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

Notitie

De dialoogvensters en menuopdrachten die u ziet, kunnen afwijken van de dialoogvensters die hier worden beschreven, afhankelijk van uw actieve instellingen of editie. Als u uw instellingen wilt wijzigen, selecteert u Import- en exportinstellingen in het menu Extra's. Zie Alle instellingen opnieuw instellen. Het venster Call Stack is vergelijkbaar met het perspectief foutopsporing in sommige IDE's, zoals Eclipse.

De aanroepstack weergeven in de debugger

Tijdens het debuggen selecteert u in het menu Foutopsporing de optie Windows > Oproepstack of drukt u op ctrl+alt+C.

schermopname van het venster Oproepstack. Een pijl identificeert het stackframe waar de uitvoeringspointer zich momenteel bevindt. Standaard wordt de informatie van dit stackframe weergegeven in de bron, Locals, Autos, Watchen Disassembly vensters. Als u de context van het foutopsporingsprogramma wilt wijzigen in een ander frame op de stack, schakelt u over naar een ander stackframe.

schermopname van het venster Oproepstack.

Een gele pijl identificeert het stackframe waar de uitvoeringspointer zich momenteel bevindt. Standaard wordt de informatie van dit stackframe weergegeven in de bron, Locals, Autos, Watchen Disassembly vensters. Als u de context van het foutopsporingsprogramma wilt wijzigen in een ander frame op de stack, schakelt u over naar een ander stackframe.

U kunt ook stackframes van uitzonderingen in de aanroepstack bekijken tijdens het debuggen. Zie De aanroepstack weergeven in de helper voor uitzonderingenvoor meer informatie.

Niet-gebruikerscode weergeven in het venster Aanroepstack

Als u externe of niet-gebruikerscode wilt weergeven, schakelt u de optie Externe code weergeven in via de rechtermuisknop op het venster Oproepstack en selecteert u Externe code weergeven.

Als u externe of niet-gebruikerscode wilt weergeven, schakelt u op de werkbalk van de aanroepstack de knop Externe code weergeven in of klikt u met de rechtermuisknop op het venster Aanroepstack en selecteert u Externe code weergeven.

Code die niet door de gebruiker is gemaakt, is code die niet wordt weergegeven wanneer Just My Code is ingeschakeld. In beheerde code worden frames voor niet-gebruikerscode standaard verborgen. De volgende notatie wordt weergegeven in plaats van de frames voor niet-gebruikerscode:

[<External Code>]

Overschakelen naar een ander stackframe (de context van het foutopsporingsprogramma wijzigen)

  1. Klik in het venster Aanroepstapel met de rechtermuisknop op het stackframe waarvan u de code en gegevens wilt weergeven.

    U kunt ook dubbelklikken op een frame in het venster Call Stack om naar dat frame over te schakelen.

  2. Selecteer Overschakelen naar frame.

    Er verschijnt een groene pijl met een krullende staart naast het stapelframe dat u hebt geselecteerd. De uitvoeringspointer blijft in het oorspronkelijke frame, dat nog steeds is gemarkeerd met de gele pijl. Als u Stap of Doorgaan selecteert in het menu Foutopsporing, wordt de uitvoering voortgezet in het oorspronkelijke frame, niet in het geselecteerde frame.

Gebruik de knop Alle threads weergeven om alle gerelateerde threads in het venster Parallel Stack weer te geven. Het venster Parallelle Stacks biedt visualisaties van de aanroepstacks voor apps met meerdere threads.

U kunt zoeken naar relevante call stack-frames door relevante zoektermen te typen in het zoekvak in de linkerbovenhoek van het call stack-venster. De gerelateerde aanroep-stackframes worden gemarkeerd.

De broncode voor een functie in de aanroepstack weergeven

In het venster Aanroepstack, klikt u met de rechtermuisknop op de functie waarvan u de broncode wilt zien en selecteert u Ga naar broncode.

Navigeer naar een specifieke functie vanuit het tabblad Aanroepstack

Selecteer in het venster Aanroepstack de functie, klik met de rechtermuisknop en kies Uitvoeren naar Cursor.

Een onderbrekingspunt instellen op het afsluitpunt van een functie-aanroep

Zie Een onderbrekingspunt instellen bij een aanroepstackfunctie.

Oproepen van of naar een andere thread weergeven

Klik met de rechtermuisknop op het venster Oproepstack en selecteer Oproepen naar/van andere threads opnemen.

De aanroepstack visueel traceren

In Visual Studio Enterprise (alleen) kunt u codetoewijzingen voor de aanroepstack weergeven tijdens foutopsporing.

Open in het venster Oproepstack het snelmenu. Kies Oproepstack weergeven op Codemap (Ctrl + Shift + `).

Voor meer informatie, zie methoden in kaart brengen op de aanroepstack tijdens het opsporen van fouten.

Oproepstack weergeven op codekaart

Bekijk de demontagecode voor een functie op de aanroepstack (C#, C++, Visual Basic, F#)

Klik in het venster Aanroepstapel met de rechtermuisknop op de functie waarvan u de disassemblagecode wilt zien en selecteer Ga naar disassemblage.

De optionele informatie wijzigen die wordt weergegeven

Klik met de rechtermuisknop in het venster Aanroepstack en stel in of wis de gewenste informatie om weer te geven <>.

Automatisch externe .NET-code decompileren

Vanaf Visual Studio 2022 versie 17.7 kunt u .NET-code automatisch decompileren door te dubbelklikken op externe code in het venster Aanroepstapel. Zie Broncode genereren van .NET-assembly's tijdens foutopsporingvoor meer informatie.

Symbolen laden voor een module (C#, C++, Visual Basic, F#)

In het venster Aanroepstack kunt u foutopsporingssymbolen laden voor code die momenteel geen symbolen bevat. Deze symbolen kunnen .NET of systeemsymbolen zijn gedownload van de openbare Microsoft-symboolservers of symbolen in een symboolpad op de computer waarop u fouten opspoort.

Zie Symbool opgeven (.pdb) en bronbestanden.

Symbolen laden

  1. Klik in het venster Aanroepstack met de rechtermuisknop op het stackframe waarvoor geen symbolen geladen zijn. Het frame wordt grijs weergegeven.

  2. Wijs naar Symbolen laden en selecteer Microsoft Symbol Servers (indien beschikbaar) of blader naar het symbolenpad.

Het symboolpad instellen

  1. Kies in het venster Oproepstacksymboolinstellingen in het snelmenu.

    Het dialoogvenster Opties wordt geopend en de pagina Symbolen wordt weergegeven.

  2. Selecteer Symboolinstellingen.

  3. Klik in het dialoogvenster Opties op het mapicoon.

    In het -symboolbestand (.pdb)-locaties-vak verschijnt een cursor.

  4. Voer een mappadnaam in naar de symboollocatie op de computer waarop u foutopsporing uitvoert. Voor lokale en externe foutopsporing is dit een pad op uw lokale computer.

  5. Selecteer OK- om het dialoogvenster Opties te sluiten.