Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het Visual Studio-foutopsporingsprogramma biedt veel krachtige functies om fouten in uw apps op te sporen. Dit onderwerp biedt een snelle manier om enkele van de basisfuncties te leren.
Een nieuw project maken
Open Visual Studio en maak een project.
Als het startvenster nog niet is geopend, selecteert u Het startvenster bestand>. Selecteer in het startvenster Een nieuw project maken. Typ 'Leeg project' in het zoekvak en selecteer vervolgens de sjabloon C++ Leeg project .
Als je de projecttemplate niet ziet, open dan de Visual Studio Installer. Kies de Desktop ontwikkeling met C++ workload, vervolgens kies Wijzig.
Visual Studio maakt het project.
Maak een nieuw bronbestand met de naam
MyDbgApp.cpp
In MyDbgApp.cpp, vervang de volgende code
int main() { return 0; }
met deze code (niet verwijderen
#include "stdafx.h"
):#include <list> #include <iostream> using namespace std; void doWork() { list <int> c1; c1.push_back(10); c1.push_back(20); const list <int> c2 = c1; const int &i = c2.front(); const int &j = c2.front(); cout << "The first element is " << i << endl; cout << "The second element is " << j << endl; } int main() { doWork(); }
Een onderbrekingspunt instellen
Een breakpoint is een markering die aangeeft waar Visual Studio je lopende code moet pauzeren, zodat je de waarden van variabelen, het gedrag van het geheugen, of of een tak van de code wordt uitgevoerd, kunt bekijken. Dit is de meest eenvoudige functie in foutopsporing.
Om het breakpoint in te stellen, klikt u in de marge links van de
doWork
functieaanroep (of selecteer de coderegel en druk op F9).Druk nu op F5 (of kies Debug > Start Debugging).
De foutopsporingstool pauzeert waar je het breekpunt hebt ingesteld. De instructie waarin het foutopsporingsprogramma en de uitvoering van apps is onderbroken, wordt aangegeven met de gele pijl. De regel met de
doWork
functieaanroep is nog niet uitgevoerd.Hint
Als je een breakpoint in een lus of recursie hebt, of als je veel breakpoints hebt die je regelmatig doorloopt, gebruik dan een voorwaardelijke breakpoint om ervoor te zorgen dat je code ALLEEN wordt gepauzeerd wanneer aan specifieke voorwaarden is voldaan. Een voorwaardelijke breakpoint bespaart tijd en kan het ook gemakkelijker maken om problemen op te lossen die moeilijk te reproduceren zijn.
Wanneer u fouten met betrekking tot geheugen wilt opsporen in C++, kunt u ook onderbrekingspunten gebruiken om adreswaarden (zoeken naar NULL) en verwijzingsaantallen te controleren.
Navigeren in code
Er zijn verschillende commando's om de debugger opdracht te geven door te gaan. We tonen een nuttige codenavigatieopdracht die beschikbaar is vanaf Visual Studio 2017.
Terwijl gepauzeerd op het breekpunt, beweeg je de muis over de verklaring c1.push_back(20)
totdat de groene knop Run to click verschijnt, en druk dan op de Run to click knop.
De app blijft doorgaan met uitvoeren, roept doWork
aan, en stopt bij de regel code waar u op de knop klikte.
Veelgebruikte toetsenbordopdrachten om door code te stappen zijn onder andere F10 en F11. Voor meer diepgaande instructies, zie Eerste blik op de debugger.
Inspecteer variabelen in een datatip
In de huidige regel van code (aangegeven door de gele uitvoeringsaanwijzer), beweeg uw muis over het
c1
object om een datatip te tonen.In de gegevensinfo ziet u de huidige waarde van de
c1
variabele en kunt u de eigenschappen ervan inspecteren. Wanneer je aan het debuggen bent en je ziet een waarde die je niet verwacht, dan zit er waarschijnlijk een fout in de voorgaande of aanroepende regels van de code.Breid de datatip uit om naar de huidige eigenschapswaarden van het
c1
-object te kijken.Als u de datatip wilt vastmaken zodat u de waarde kunt blijven zien terwijl u code uitvoert op
c1
, klikt u op het kleine speldpictogram. (U kunt de vastgezette datatip naar een handige locatie verplaatsen.)
Bewerk code en ga verder met debuggen
Als je een wijziging identificeert die je wilt testen in je code terwijl je midden in een foutopsporingssessie zit, kun je dat ook doen.
Klik op de tweede instantie van
c2.front()
en wijzigc2.front()
inc2.back()
.Druk op F10 (of Debug > Step Over) om een paar keer verder te gaan met de debugger en de bewerkte code uit te voeren.
F10 voert de debugger één instructie tegelijk uit, maar stapt over functies heen in plaats van erin te stappen (de code die u overslaat, wordt nog steeds uitgevoerd).
Zie Bewerken en Doorgaan voor meer informatie over het gebruik van bewerken en doorgaan en de beperkingen van functies.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u het foutopsporingsprogramma start, code doorloopt en variabelen inspecteert. U wilt misschien een globaal overzicht krijgen van de debugging-functies, samen met links naar meer informatie.