Dela via


Felsökningsmotor

En felsökningsmotor (DE) fungerar med tolken eller operativsystemet för att tillhandahålla felsökningstjänster som körningskontroll, brytpunkter och uttrycksutvärdering. DE är ansvarig för att övervaka statusen på ett program som felsöks. För att göra detta använder DE de metoder som är tillgängliga för den i den körning som stöds, oavsett om det är från processorn eller från API:er som tillhandahålls av körningen.

Till exempel tillhandahåller CLR (Common Language Runtime) mekanismer för att övervaka ett program som körs via ICorDebugXXX-gränssnitten. En DE som stöder CLR använder lämpliga ICorDebugXXX-gränssnitt för att hålla reda på ett hanterat kodprogram som debuggas. Den kommunicerar sedan eventuella tillståndsändringar till sessionsfelsökhanteraren (SDM), som vidarebefordrar sådan information till Visual Studio IDE.

Anmärkning

En felsökningsmotor riktar in sig på en specifik körmiljö, det vill säga det system där programmet som felsöks körs. CLR är körningen för hanterad kod och Win32-körningen är för interna Windows-program. Om det språk du skapar kan rikta in sig på någon av dessa två körningar tillhandahåller Visual Studio redan de felsökningsmotorer som krävs. Allt du behöver implementera är en uttrycksutvärdering.

Felsöka motorfunktion

Övervakningstjänsterna implementeras via DE-gränssnitten och kan leda till att felsökningspaketet övergår mellan olika driftlägen. Mer information finns i Driftlägen. Det finns vanligtvis bara en DE-implementering per körningsmiljö.

Anmärkning

Det finns separata DE-implementeringar för Transact-SQL och JScript, men VBScript och JScript delar en enda DE.

Visual Studio-felsökning gör det möjligt för felsökningsmotorer att köra ett av två sätt: antingen i samma process som Visual Studio-gränssnittet eller i samma process som målprogrammet som debuggas. Den senare formen inträffar vanligtvis när processen som avlusas faktiskt är ett skript som körs under en tolk. Felsökningsmotorn måste ha intim kunskap om tolken för att kunna övervaka skriptet. I det här fallet är tolken faktiskt en runtime; felsökningsmotorer är avsedda för specifika runtime-implementeringar. Dessutom kan implementeringen av en enda DE delas upp över process- och datorgränser (till exempel fjärrfelsökning).

DE exponerar Visual Studio-felsökningsgränssnitten. All kommunikation sker via COM. Oavsett om DE laddas i processen, utanför processen, eller på en annan dator, påverkar det inte komponentkommunikationen.

DE fungerar med en uttrycksutvärderingskomponent för att aktivera DE för just den körningen för att förstå syntaxen för uttryck. DE fungerar också med en symbolhanterarkomponent för att få åtkomst till den symboliska felsökningsinformation som genereras av språkkompilatorn. Mer information finns i Uttrycksutvärdering och Symbolprovider.

Se även