ICorDebugEval Interface
Biedt methoden om het foutopsporingsprogramma in staat te stellen code uit te voeren binnen de context van de code die wordt opgespoord.
Methoden
Methode | Beschrijving |
---|---|
Methode Afbreken | Hiermee wordt de berekening afgebroken die dit ICorDebugEval object momenteel uitvoert. |
Methode CallFunction | Hiermee stelt u een aanroep naar de opgegeven functie in. (Verouderd in de .NET Framework versie 2.0; gebruik in plaats daarvan ICorDebugEval2::CallParameterizedFunction.) |
Methode CreateValue | Hiermee haalt u een interfaceaanwijzer op naar een 'ICorDebugValue'-object van het opgegeven type, met een beginwaarde van nul of null. (Verouderd in de .NET Framework 2.0; gebruik in plaats daarvan ICorDebugEval2::CreateValueForType.) |
Methode GetResult | Hiermee haalt u een interfaceaanwijzer op naar een ICorDebugValue die de resultaten van de evaluatie bevat. |
Methode GetThread | Hiermee wordt een interfaceaanwijzer opgehaald naar de 'ICorDebugThread' waar deze evaluatie wordt uitgevoerd of wordt uitgevoerd. |
Methode IsActive | Hiermee wordt een waarde opgehaald die aangeeft of dit ICorDebugEval object momenteel wordt uitgevoerd. |
Methode NewArray | Hiermee wijst u een nieuwe matrix toe van het opgegeven elementtype en de opgegeven dimensies. (Verouderd in de .NET Framework 2.0; gebruik in plaats daarvan ICorDebugEval2::NewParameterizedArray.) |
Methode NewObject | Wijst een nieuw objectexemplaren toe en roept de opgegeven constructormethode aan. (Verouderd in de .NET Framework 2.0; gebruik in plaats daarvan ICorDebugEval2::NewParameterizedObject.) |
Methode NewObjectNoConstructor | Wijst een nieuw objectexemplaren van het opgegeven type toe, zonder een constructormethode aan te roepen. (Verouderd in de .NET Framework 2.0; gebruik in plaats daarvan ICorDebugEval2::NewParameterizedObjectNoConstructor.) |
Methode NewString | Wijst een nieuw tekenreeksobject toe met de opgegeven inhoud. |
Opmerkingen
Een ICorDebugEval
object wordt gemaakt in de context van een specifieke thread die wordt gebruikt om de evaluaties uit te voeren. Alle objecten en typen die in een bepaalde evaluatie worden gebruikt, moeten zich in hetzelfde toepassingsdomein bevinden. Dat toepassingsdomein hoeft niet hetzelfde te zijn als het huidige toepassingsdomein van de thread. Evaluaties kunnen worden genest.
De bewerkingen van de evaluatie worden pas voltooid als het foutopsporingsprogramma ICorDebugController::Continue aanroept en vervolgens een ICorDebugManagedCallback::EvalComplete-callback ontvangt. Als u de evaluatiefunctionaliteit wilt gebruiken zonder andere threads uit te voeren, kunt u de threads onderbreken met behulp van ICorDebugController::SetAllThreadsDebugState of ICorDebugController::Stop voordat u ICorDebugController::Continue aanroept.
Omdat gebruikerscode wordt uitgevoerd wanneer de evaluatie wordt uitgevoerd, kunnen foutopsporingsevenementen optreden, waaronder het laden van klassen en onderbrekingspunten. Het foutopsporingsprogramma ontvangt zoals gebruikelijk callbacks voor deze gebeurtenissen. De status van de evaluatie wordt gezien als onderdeel van de inspectie van de normale programmastatus. De stackketen wordt een CHAIN_FUNC_EVAL
keten (zie de opsomming CorDebugStepReason en de methode ICorDebugChain::GetReason ). De API voor het volledige foutopsporingsprogramma blijft gewoon werken.
Als zich een impasse of oneindige lussituatie voordoet, wordt de gebruikerscode mogelijk nooit voltooid. In een dergelijk geval moet u ICorDebugEval::Abort aanroepen voordat u het programma hervat.
Notitie
Deze interface biedt geen ondersteuning voor extern aanroepen, zowel tussen machines als tussen processen.
Vereisten
Platforms: Zie Systeemvereisten.
Header: CorDebug.idl, CorDebug.h
Bibliotheek: CorGuids.lib
.NET Framework versies: beschikbaar sinds 1.0