Partilhar via


ICorDebugEval Interface

Fornece métodos para permitir que o depurador execute código no contexto da depuração do código.

Métodos

Método Descrição
Método Abortar Aborta a computação que este ICorDebugEval objeto está atualmente a executar.
Método CallFunction Configura uma chamada para a função especificada. (Obsoleto no .NET Framework versão 2.0; em alternativa, utilize ICorDebugEval2::CallParameterizedFunction.)
Método CreateValue Obtém um ponteiro de interface para um objeto "ICorDebugValue" do tipo especificado, com um valor inicial de zero ou nulo. (Obsoleto no .NET Framework 2.0; em alternativa, utilize ICorDebugEval2::CreateValueForType.)
Método GetResult Obtém um ponteiro de interface para um ICorDebugValue que contém os resultados da avaliação.
Método GetThread Obtém um ponteiro de interface para o "ICorDebugThread" onde esta avaliação está a ser executada ou será executada.
Método IsActive Obtém um valor que indica se este ICorDebugEval objeto está atualmente em execução.
Método NewArray Aloca uma nova matriz do tipo e dimensões do elemento especificado. (Obsoleto no .NET Framework 2.0; em vez disso, utilize ICorDebugEval2::NewParameterizedArray.)
Método NewObject Aloca uma nova instância de objeto e chama o método de construtor especificado. (Obsoleto no .NET Framework 2.0; em alternativa, utilize ICorDebugEval2::NewParameterizedObject.)
Método NewObjectNoConstructor Aloca uma nova instância de objeto do tipo especificado, sem tentar chamar um método de construtor. (Obsoleto no .NET Framework 2.0; utilize ICorDebugEval2::NewParameterizedObjectNoConstructor.)
Método NewString Atribui um novo objeto de cadeia com os conteúdos especificados.

Observações

Um ICorDebugEval objeto é criado no contexto de um thread específico que é utilizado para realizar as avaliações. Todos os objetos e tipos utilizados numa determinada avaliação têm de residir no mesmo domínio de aplicação. Esse domínio de aplicação não tem de ser o mesmo que o domínio de aplicação atual do thread. As avaliações podem ser aninhadas.

As operações da avaliação não são concluídas até que o depurador chame ICorDebugController::Continue e, em seguida, receba uma chamada de retorno ICorDebugManagedCallback::EvalComplete . Se precisar de utilizar a funcionalidade de avaliação sem permitir a execução de outros threads, suspenda os threads utilizando ICorDebugController::SetAllThreadsDebugState ou ICorDebugController::Stop antes de chamar ICorDebugController::Continue.

Uma vez que o código de utilizador está em execução quando a avaliação está em curso, podem ocorrer eventos de depuração, incluindo cargas de classe e pontos de interrupção. O depurador receberá chamadas de retorno, normalmente, para estes eventos. O estado da avaliação será visto como parte da inspeção do estado normal do programa. A cadeia de pilha será uma CHAIN_FUNC_EVAL cadeia (veja a enumeração "CorDebugStepReason" e o método ICorDebugChain::GetReason ). A API de depurador completa continuará a funcionar normalmente.

Se surgir uma situação de ciclo infinita ou impasse, o código do utilizador poderá nunca ser concluído. Nesse caso, tem de chamar ICorDebugEval::Abort antes de retomar o programa.

Nota

Esta interface não suporta ser chamada remotamente, seja entre máquinas ou entre processos.

Requisitos

Plataformas: Veja Requisitos de Sistema.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

.NET Framework Versões: Disponível desde 1.0

Ver também