Delen via


Een visuele kaart van de aanroepstack maken tijdens foutopsporing (C#, Visual Basic, C++, JavaScript)

Maak een codekaart om de aanroepstack visueel te traceren terwijl je aan het debuggen bent. U kunt notities maken op de kaart om bij te houden wat de code doet, zodat u zich kunt richten op het vinden van fouten.

Zie Codekaarten bekijken en opnieuw rangschikken voor meer informatie over opdrachten en acties die u kunt gebruiken met codekaarten.

Belangrijk

U kunt codetoewijzingen alleen maken in Visual Studio Enterprise-editie.

Hier volgt een kort overzicht van een codeoverzicht:

Foutopsporing met aanroepstacks op codekaarten

De aanroepstack in kaart brengen

  1. Start de foutopsporing in een Visual Studio Enterprise C#-, Visual Basic-, C++- of JavaScript-project door Foutopsporing>starten te selecteren of op F5 te drukken.

  2. Nadat uw app de onderbrekingsmodus ingaat of u een functie binnenstapt, selecteert u 'Debug>Code Map' of drukt u op Ctrl+Shift+`.

    De huidige aanroepstack wordt oranje weergegeven op een nieuwe codekaart:

    Zie aanroepstack op codekaart

De codekaart wordt automatisch bijgewerkt terwijl u doorgaat met foutopsporing. Het wijzigen van kaartitems of indeling heeft geen invloed op de code. U kunt alles op de kaart hernoemen, verplaatsen of verwijderen.

Als u meer informatie wilt over een item, plaatst u de muisaanwijzer erop en bekijkt u de knopinfo van het item. U kunt legenda ook selecteren op de werkbalk om te zien wat elk pictogram betekent.

Codekaart Legenda

Opmerking

Het bericht Het diagram is mogelijk gebaseerd op een oudere versie van de code boven aan de codetoewijzing, wat betekent dat de code mogelijk is gewijzigd nadat u de kaart voor het laatst hebt bijgewerkt. Een aanroep op de kaart bestaat bijvoorbeeld mogelijk niet meer in code. Sluit het bericht en probeer de oplossing opnieuw te bouwen voordat u de kaart opnieuw bijwerkt.

Externe code koppelen

Standaard wordt alleen uw eigen code op de kaart weergegeven. Externe code op de kaart weergeven:

  • Klik met de rechtermuisknop in het venster Aanroepstack en selecteer Externe code weergeven:

    Externe code weergeven met behulp van het venster Aanroepstack

  • Of schakel het selectievakje Just My Code inschakelen in Visual Studio uit:

    Deze optie is beschikbaar in het deelvenster Extra (of Foutopsporing) >Opties onder de sectie Alle instellingen>Foutopsporing>Algemeen:

    Schermopname van het selecteren van de optie Just My Code inschakelen in Visual Studio.

    Deze optie is beschikbaar in het dialoogvenster Extra (of Foutopsporing) >Opties onder de sectie Foutopsporing>Algemeen:

    Externe code weergeven met het dialoogvenster Opties

De indeling van de kaart beheren

Het wijzigen van de indeling van de kaart heeft geen invloed op de code.

Als u de indeling van de kaart wilt beheren, selecteert u het menu Indeling op de kaartwerkbalk.

In het menu Indeling kunt u het volgende doen:

  • Wijzig de standaardindeling.
  • Stop met het automatisch herschikken van de kaart door Automatisch rangschikken tijdens foutopsporing uit te schakelen.
  • Rangschik de kaart zo weinig mogelijk wanneer u items toevoegt door de selectie van incrementele indeling op te heffen.

Notities maken over de code

U kunt opmerkingen toevoegen om bij te houden wat er in de code gebeurt.

Als u een opmerking wilt toevoegen, klikt u met de rechtermuisknop op de codekaart en selecteert uNieuwe opmerking> en typt u de opmerking.

Druk op Shift+Enter om een nieuwe regel toe te voegen aan een opmerking.

Opmerking toevoegen om stack aan te roepen op codeoverzicht

De kaart bijwerken met de volgende aanroepstack

Wanneer u uw app uitvoert naar het volgende onderbrekingspunt of stapt in een functie, voegt de kaart automatisch nieuwe aanroepstacks toe.

Codeoverzicht bijwerken met volgende aanroepstack

Als u wilt voorkomen dat de kaart automatisch nieuwe aanroepstacks toevoegt, selecteert u Aanroepstack op codekaart automatisch op de werkbalk van de codekaart. De kaart blijft bestaande aanroepstacks markeren. Als u de huidige aanroepstack handmatig aan de kaart wilt toevoegen, drukt u op Ctrl+Shift+`.

Gerelateerde code toevoegen aan de kaart

Nu u een kaart hebt, kunt u in C# of Visual Basic items zoals velden, eigenschappen en andere methoden toevoegen om bij te houden wat er in de code gebeurt.

Als u naar de definitie van een methode in de code wilt gaan, dubbelklikt u op de methode in de kaart of selecteert u deze en drukt u op F12 of klikt u er met de rechtermuisknop op en selecteert u Ga naar definitie.

Ga naar codedefinitie voor een methode op codeoverzicht

Als u items wilt toevoegen die u aan de kaart wilt bijhouden, klikt u met de rechtermuisknop op een methode en selecteert u de items die u wilt bijhouden. De laatst toegevoegde items worden groen weergegeven.

Velden gerelateerd aan een methode op de aanroepstapel codekaart

Opmerking

Als u items aan de kaart toevoegt, worden standaard ook de bovenliggende groepsknooppunten, zoals de klasse, naamruimte en assembly, toegevoegd. U kunt deze functie in- en uitschakelen door de knop Ouders opnemen te selecteren op de werkbalk van de codekaart of door op Ctrl te drukken terwijl u items toevoegt.

Velden weergeven in een methode op een aanroepstackcodekaart

Ga door met het bouwen van de kaart om meer code te zien.

Bekijk methoden die gebruikmaken van een veld: stackcodetoewijzing aanroepen

Methoden die een veld gebruiken voor het aanroepen van stackcodetoewijzing

Fouten zoeken met behulp van de kaart

Door uw code te visualiseren, kunt u sneller fouten vinden. Stel dat u een fout in een tekening-app onderzoekt. Wanneer u een lijn tekent en deze ongedaan wilt maken, gebeurt er niets totdat u een andere lijn tekent.

U stelt dus onderbrekingspunten in de clear, undoen Repaint methoden in, start foutopsporing en bouwt een kaart zoals deze:

Nog een call stack toevoegen aan code map

Je merkt op dat alle gebruikersgebaren op de kaart Repaint oproepen, met uitzondering van undo. Dit verklaart mogelijk waarom undo dit niet onmiddellijk werkt.

Nadat je de bug hebt opgelost en de app blijft uitvoeren, voegt de kaart de nieuwe aanroep van undo naar Repaint toe:

Nieuwe methode-aanroep toevoegen aan de aanroepstack op de codemap

De kaart delen met anderen

U kunt een kaart exporteren, naar anderen verzenden met Microsoft Outlook, deze opslaan in uw oplossing en deze controleren in versiebeheer.

Als u de kaart wilt delen of opslaan, gebruikt u Delen in de werkbalk van de codekaart.

Overzicht van aanroepstackcode delen met anderen