Compartilhar via


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

Método ICorDebugEval::Abort

Anula a computação este ICorDebugEval objeto está executando no momento.

Método ICorDebugEval::CallFunction

Configura uma telefonar para a função especificada. (obsoleto no .NET estrutura versão 2.0; usar ICorDebugEval2::CallParameterizedFunction em vez disso.)

Método ICorDebugEval::CreateValue

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.)

Método ICorDebugEval::GetResult

Obtém um ponteiro de interface para um ICorDebugValue que contém os resultados da avaliação.

Método ICorDebugEval::GetThread

Obtém um ponteiro de interface para o ICorDebugThread onde essa avaliação está em executar ou será executado.

Método ICorDebugEval::IsActive

Obtém um valor que indica se este ICorDebugEval objeto está sendo executado no momento.

Método ICorDebugEval::NewArray

Aloca uma nova matriz do tipo de elemento especificado e dimensões. (obsoleto no .NET estrutura 2.0; usar ICorDebugEval2::NewParameterizedArray em vez disso.)

Método ICorDebugEval::NewObject

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.)

Método ICorDebugEval::NewObjectNoConstructor

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.)

Método ICorDebugEval::NewString

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

Consulte também

Referência

Interface ICorDebugEval2

Interface ICorDebugThread

Interface ICorDebugValue

Outros recursos

Interfaces de depuração