Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Een foutopsporingsengine (DE) werkt met de interpreter of het besturingssysteem om foutopsporingsservices te bieden, zoals uitvoeringsbeheer, onderbrekingspunten en expressie-evaluatie. De DE is verantwoordelijk voor het bewaken van de status van een programma dat wordt opgespoord. Hiervoor gebruikt de DE alle methoden die beschikbaar zijn in de ondersteunde runtime, ongeacht of deze afkomstig zijn van de CPU of van API's die door de runtime worden geleverd.
De Common Language Runtime (CLR) biedt bijvoorbeeld mechanismen voor het bewaken van een actief programma via de ICorDebugXXX-interfaces. Een DE die de CLR ondersteunt, maakt gebruik van de juiste ICorDebugXXX-interfaces om bij te houden of er fouten in een beheerd codeprogramma worden opgespoord. Vervolgens worden eventuele wijzigingen van de status doorgegeven aan de sessiedebug manager (SDM), die dergelijke informatie doorstuurt naar de Visual Studio IDE.
Opmerking
Een foutopsporingsengine is gericht op een specifieke runtime, dat wil gezegd, het systeem waarin het programma dat wordt opgespoord, wordt uitgevoerd. De CLR is de runtime voor beheerde code en de Win32-runtime is voor systeemeigen Windows-toepassingen. Als de taal die u maakt een van deze twee runtimes kan toepassen, levert Visual Studio al de benodigde foutopsporingsengines. U hoeft alleen maar een expressie-evaluator te implementeren.
Werking van foutopsporingsengine
De bewakingsservices worden geïmplementeerd via de DE-interfaces en kunnen ertoe leiden dat het foutopsporingspakket overgaat tussen verschillende operationele modi. Zie Operationele modi voor meer informatie. Er is doorgaans slechts één DE-implementatie per runtimeomgeving.
Opmerking
Hoewel er afzonderlijke DE-implementaties zijn voor Transact-SQL en JScript, delen VBScript en JScript één DE.
Met Visual Studio-foutopsporing kunnen foutopsporingsengines op twee manieren worden uitgevoerd: in hetzelfde proces als de Visual Studio-shell, of in hetzelfde proces als het doelprogramma dat wordt opgespoord. Het laatste formulier treedt meestal op wanneer het proces dat wordt opgespoord, daadwerkelijk een script is dat wordt uitgevoerd onder een interpreter. De foutopsporingsengine moet intieme kennis van de interpreter hebben om het script te kunnen bewaken. In dit geval is de interpreter eigenlijk een runtime; foutopsporingsengines zijn voor specifieke runtime-implementaties. Daarnaast kan de implementatie van één DE worden gesplitst over proces- en machinegrenzen (bijvoorbeeld externe foutopsporing).
De DE maakt de Visual Studio-foutopsporingsinterfaces beschikbaar. Alle communicatie is via COM. Of de DE in-process, out-of-process of op een andere computer is geladen, heeft geen invloed op de componentencommunicatie.
De DE werkt met een expressie-evaluatoronderdeel om de DE voor die specifieke runtime in staat te stellen de syntaxis van expressies te begrijpen. De DE werkt ook met een symboolhandleronderdeel voor toegang tot de symbolische foutopsporingsgegevens die door de taalcompilator worden gegenereerd. Zie De expressie-evaluator en symboolprovider voor meer informatie.