Als je een van de vele programmeurs bent die debuggen met
console.log of iets dergelijks, mis je een heleboel functies die debuggers kunnen bieden. Als u vaak vastloopt bij het opsporen van logische bugs, kunt u proberen deze functie van uw IDE te gebruiken.
Moving Past console.log
Natuurlijk is het in veel situaties zeer noodzakelijk om debug-uitvoer naar de console te loggen. Soms is het goed om gewoon een object te loggen en de waarde te bekijken waarop het is ingesteld, wat veel basisproblemen kan oplossen.
Maar zodra het ingewikkelder wordt, kan een debugger nuttig zijn. Met debuggers kunt u breekpunten in uw code instellen en over de uitvoering heen stappen. Ze stellen u ook in staat om het geheugen van uw toepassing te inspecteren terwijl het verandert met de uitvoering van de functie. Dit kan cruciaal zijn om problemen op te sporen.
Ze zijn vrij eenvoudig te gebruiken. De exacte implementatie hangt af van uw IDE, maar bij de meeste kunt u onderbrekingspunten instellen door op de zijbalk te klikken, die meestal een rode cirkel weergeeft om aan te geven dat de code daar stopt.

Dan kun je gewoon op start klikken en de debugger pauzeert wanneer het breekpunt is bereikt (als dat ooit is). U kunt bijvoorbeeld een onderbrekingspunt instellen wanneer een bepaalde knop wordt ingedrukt, en het programma zou normaal werken totdat de knop werd ingedrukt. Nadat het breekpunt is bereikt, wordt het programma volledig gepauzeerd.
Terwijl het is gepauzeerd, kunt u de variabelen van de toepassing bekijken. Dit is configureerbaar en wordt automatisch ingesteld op wat Visual Studio nuttig vindt. U kunt variabelen handmatig bekijken of alleen de lokale variabelen bekijken.

In dit geval is het handig om de onbewerkte gegevens voor de klas te bekijken. De klasse list, bijvoorbeeld, lijkt gewoon een
object[] te zijn. In de praktijk heeft het echter veel andere variabelen in de klasse zelf. Niet genoeg om vanzelfsprekend te zijn, maar het is interessant om alles te kunnen zien wat wordt toegewezen.
Stap in, stap uit, stap over
Het is natuurlijk niet zo handig om het programma te pauzeren, dus debuggers hebben tools om de uitvoering in wezen frame voor frame af te spelen, in dit geval regel voor regel.
Je vindt de bedieningselementen in Visual Studio hier bovenaan, rood onderstreept.

Deze doen allemaal verschillende dingen.
- Step Into zorgt ervoor dat de debugger regel voor regel gaat, maar laat je ook in principe elke regel zien die wordt uitgevoerd. Als u een van uw functies aanroept, zal deze naar die functie gaan of "instappen". Zodra de functie terugkeert, zal deze uitstappen.
- Step Over gaat ook regel voor regel, maar is in dit geval beperkt tot het huidige bereik. Het gaat niet in op functieaanroepen, maar gaat gewoon letterlijk naar de volgende regel in uw broncode, ongeacht hoeveel functies er uiteindelijk worden aangeroepen.
- Step Out spoelt in principe snel vooruit tot de volgende
return-instructie, waarbij u uit het huidige stapelframe stapt. Hiermee kun je functies verlaten nadat je genoeg hebt gezien.
Met deze drie bedieningselementen heb je volledige controle over het programma en kun je zo veel of zo weinig van de uitvoering zien als je wilt.
Terwijl je door de code bladert, kun je het geheugen en de lokale variabelen voor elke functie bekijken, hun waarden onderzoeken en zien hoe ze veranderen als je vooruit in de tijd stapt.
Voorwaardelijke breekpuntinstellingen
In Visual Studio kunnen breekpunten meer zijn dan alleen "stoppen op deze regel code". U kunt voorwaardelijke onderbrekingspunten instellen die alleen worden geactiveerd wanneer aan bepaalde voorwaarden of waarden wordt voldaan.
Klik met de rechtermuisknop op een breekpunt en selecteer 'Voorwaarden'.

Vanaf hier kun je een if-statement instellen dat wordt gecontroleerd voordat het breekpunt wordt uitgevoerd.