Interface ICorDebugEval
Fornece métodos para habilitar o depurador executar o código dentro do contexto de código que está sendo depurado.
interface ICorDebugEval : IUnknown {
HRESULT Abort ();
HRESULT CallFunction (
[in] ICorDebugFunction *pFunction,
[in] ULONG32 nArgs,
[in, size_is(nArgs)] ICorDebugValue *ppArgs[]
);
HRESULT CreateValue (
[in] CorElementType elementType,
[in] ICorDebugClass *pElementClass,
[out] ICorDebugValue **ppValue
);
HRESULT GetResult (
[out] ICorDebugValue **ppResult
);
HRESULT GetThread (
[out] ICorDebugThread **ppThread
);
HRESULT IsActive (
[out] BOOL *pbActive
);
HRESULT NewArray (
[in] CorElementType elementType,
[in] ICorDebugClass *pElementClass,
[in] ULONG32 rank,
[in, size_is(rank)] ULONG32 dims[],
[in, size_is(rank)] ULONG32 lowBounds[]
);
HRESULT NewObject (
[in] ICorDebugFunction *pConstructor,
[in] ULONG32 nArgs,
[in, size_is(nArgs)] ICorDebugValue *ppArgs[]
);
HRESULT NewObjectNoConstructor (
[in] ICorDebugClass *pClass
);
HRESULT NewString (
[in] LPCWSTR string
);
};
Métodos
Método |
Descrição |
---|---|
Anula a computação este ICorDebugEval objeto está executando no momento. |
|
Configura uma telefonar para a função especificada. (obsoleto no .NET estrutura versão 2.0; usar ICorDebugEval2::CallParameterizedFunction em vez disso.) |
|
Obtém um ponteiro de interface para um Interface ICorDebugValue objeto do tipo especificado, com um valor inicial de zero ou nulo. (obsoleto no .NET estrutura 2.0; usar ICorDebugEval2::CreateValueForType em vez disso.) |
|
Obtém um ponteiro de interface para um ICorDebugValue que contém os resultados da avaliação. |
|
Obtém um ponteiro de interface para o ICorDebugThread onde essa avaliação está em executar ou será executado. |
|
Obtém um valor que indica se este ICorDebugEval objeto está sendo executado no momento. |
|
Aloca uma nova matriz do tipo de elemento especificado e dimensões. (obsoleto no .NET estrutura 2.0; usar ICorDebugEval2::NewParameterizedArray em vez disso.) |
|
Aloca uma nova instância de objeto e chama o método construtor especificado. (obsoleto no .NET estrutura 2.0; usar ICorDebugEval2::NewParameterizedObject em vez disso.) |
|
Aloca uma nova instância de objeto do tipo especificado, sem tentar chamar um método construtor. (Obsoleta no .NET estrutura 2.0; use ICorDebugEval2::NewParameterizedObjectNoConstructor em vez disso.) |
|
Aloca um novo objeto de seqüência de caracteres com o Sumário especificado. |
Comentários
An ICorDebugEval objeto é criado no contexto de um segmento específico é usado para realizar avaliações. Todos os objetos e tipos usados em uma determinada avaliação precisam residir no mesmo domínio do aplicativo. Esse domínio do aplicativo não precisa ser iguais sistema autônomo o domínio do aplicativo corrente do segmento. As avaliações podem ser aninhadas.
Operações a avaliação não são concluídos até que o depurador chama ICorDebugController::Continuee, em seguida, recebe um ICorDebugManagedCallback::EvalCompleteretorno de chamada . Se você precisar usar a funcionalidade de avaliação sem permitir que outros threads executar, suspender os threads, usando qualquer um dos ICorDebugController::SetAllThreadsDebugState or ICorDebugController::Stop antes de chamar ICorDebugController::Continue.
Como o código do usuário está em execução quando a avaliação está em andamento, pode ocorrer qualquer evento de depurar, inclusive cargas de classe e pontos de interrupção. O depurador irá receber retornos de chamada, sistema autônomo normal, para esses eventos. O estado de avaliação será visto sistema autônomo parte de inspeção do estado normal do programa. A cadeia da pilha será um CHAIN_FUNC_EVAL cadeia (consulte a CorDebugStepReason enumeração e o ICorDebugChain::GetReason método). O depurador completo API continuará a operar sistema autônomo normal.
Se ocorrer uma situação de loop infinita ou bloqueada, o código do usuário pode nunca ser concluída. Nesse caso, você deve chamar ICorDebugEval::Abort antes de continuar o programa.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorDebug.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0