This article is currently in the process of being translated into Dutch (~98% done).
De tool vensters
Als je in Visual Studio aan het debuggen bent, zullen de tool vensters onderaan het scherm veranderen en zullen er nieuwe verschijnen (tenzij je die hebt uitgezet). Die vensters hebben namen als "Locals", "Watch", "Call stack" en "Immediate window" en ze hebben allemaal te maken met de debugging 'experience'. In dit hoofdstuk kijken we naar elk van hen en laten we zien wat ze voor je kunnen doen.
Locals
Dit venster is het simpelste van allemaal. Als een pauzepunt wordt bereikt, worden alle locale variabelen hier in een lijst verzameld, waardoor je een snel overzicht krijgt over hun naam, type en waarde. Je kunt zelfs rechts-klikken in het raster en kiezen voor "Edit value", om een variabele een nieuwe waarde te geven. Hierdoor kun je je code testen onder andere condities dan de huidige.
Watch
Het Watch venster is een beetje zoals het Locals venster, maar hier kun je beslissen welke variabelen worden gevolgd, locale of globale. Je kunt te bewaken variabelen toevoegen door ze uit het code venster, of uit het Locals venster te slepen, of door hun naam op de laatste lege regel te schrijven. Jouw variabelen blijven in het Watch venster totdat je ze weer verwijdert, maar ze worden alleen maar bijgewerkt als je binnen de huidige scope aan het debuggen bent. Bijvoorbeeld een variabele in functie A wordt niet bijgewerkt als je door functie B 'stapt'. Net als bij het Locals venster kun je een bewaakte variabele rechts-klikken en "Edit value" selecteren om de huidige waarde van de variabele te wijzigen.
Call Stack
Het Call Stack venster toont je de huidige hiërarchie van de opgeroepen functies. Bijvoorbeeld als functie A functie B oproept die vervolgens C oproept en die weer D, dan zal het Call Stack venster dat laten zien, en kun je naar elk van de functiedeclaraties springen. Je kunt ook zien welke parameters aan elke functie werden toegevoegd. In de eenvoudige voorbeelden waarmee tot nu toe hebben gewerkt, lijkt dit geen zin te hebben omdat het bijhouden van welke functie welke functie oproept triviaal is. Maar zodra je code een hoger niveau van complexiteit bereikt en je hebt functies in classes welke functies in andere classes oproepen, dan kan de Call Stack een echte redder zijn.
Immediate window
Het Immediate venster is wellicht het nuttigste van allemaal. Je kunt er code regels in de huidige context van de debugger mee uitvoeren. Hierdoor kun je variabelen checken, hun waarde veranderen of alleen maar een regel code testen. Je hoeft hem alleen maar in het venster in te toetsen, op Enter te drukken en de regel zal worden uitgevoerd. Toets de naam van een variabele in, en de waarde ervan wordt getoond. Geef een variabele een waarde door a = 5 in te toetsen. Het resultaat (als dat er is) daarvan wordt getoond en elke verandering die je aanbrengt, wordt weerspiegeld als je verder gaat met het uitvoeren van de code. Het Immediate venster is als een C# terminal waar je code kunt invoeren en meteen het resultaat te zien krijgt. Als je er eenmaal aan gewend bent, zou je er wel eens aan verslaafd kunnen worden. Ik in ieder geval wel.