Sdílet prostřednictvím


ICorDebugEval – rozhraní

Poskytuje metody umožňující ladicí program spouštět kód v kontextu laděného kódu.

Methods

Metoda Description
Abort – metoda Přeruší výpočet, který tento ICorDebugEval objekt právě provádí.
CallFunction – metoda Nastaví volání zadané funkce. (Zastaralé; místo toho použijte ICorDebugEval2::CallParameterizedFunction .)
CreateValue – metoda Získá ukazatel rozhraní na "ICorDebugValue" objektu zadaného typu, s počáteční hodnotou nula nebo null. (Zastaralé; použijte místo toho ICorDebugEval2::CreateValueForType .)
GetResult – metoda Získá ukazatel rozhraní na ICorDebugValue , který obsahuje výsledky vyhodnocení.
GetThread – metoda Získá ukazatel rozhraní na "ICorDebugThread", kde se toto vyhodnocení provádí nebo provede.
IsActive – metoda Získá hodnotu, která označuje, zda tento ICorDebugEval objekt je aktuálně spuštěn.
NewArray – metoda Přidělí nové pole zadaného typu prvku a dimenzí. (Zastaralé; místo toho použijte ICorDebugEval2::NewParameterizedArray .)
NewObject – metoda Přidělí novou instanci objektu a volá zadanou metodu konstruktoru. (Zastaralé; místo toho použijte ICorDebugEval2::NewParameterizedObject .)
NewObjectNoConstructor – metoda Přidělí novou instanci objektu zadaného typu bez pokusu o volání konstruktor metody. (Zastaralé; místo toho použijte ICorDebugEval2::NewParameterizedObjectNoConstructor .)
NewString – metoda Přidělí nový objekt řetězce se zadaným obsahem.

Poznámky

Objekt ICorDebugEval se vytvoří v kontextu konkrétního vlákna, které se používá k provádění vyhodnocení. Všechny objekty a typy použité v daném vyhodnocení se musí nacházet ve stejné doméně aplikace. Tato doména aplikace nemusí být stejná jako aktuální doména aplikace vlákna. Vyhodnocení je možné vnořit.

Operace vyhodnocení se nedokončí, dokud ladicí program nevolá ICorDebugController::Continue a pak přijme ICorDebugManagedCallback::EvalComplete zpětné volání. Pokud potřebujete použít funkci vyhodnocení bez povolení spuštění jiných vláken, pozastavte vlákna pomocí ICorDebugController::SetAllThreadsDebugState nebo ICorDebugController::Stop před voláním ICorDebugController::Continue.

Vzhledem k tomu, že uživatelský kód běží při vyhodnocování, může dojít k událostem ladění, včetně načtení třídy a zarážek. Ladicí program bude pro tyto události přijímat zpětná volání jako obvykle. Stav vyhodnocení bude považován za součást kontroly normálního stavu programu. Řetězec zásobníku CHAIN_FUNC_EVAL bude řetěz (viz výčet CorDebugStepReason a ICorDebugChain::GetReason metoda). Úplné rozhraní API ladicího programu bude dál fungovat normálně.

Pokud nastane situace zablokování nebo nekonečné smyčky, uživatelský kód se nemusí nikdy dokončit. V takovém případě musíte před obnovením programu volat ICorDebugEval::Abort .

Poznámka:

Toto rozhraní nepodporuje vzdálené zavolání, a to buď mezi počítači, nebo mezi procesy.

Požadavky

Platformy: Viz podporované operační systémy .NET.

Záhlaví: CorDebug.idl, CorDebug.h

Knihovna: CorGuids.lib

Verze .NET: K dispozici od rozhraní .NET Framework 1.0