Partilhar via


ICorDebugEval Interface

Fornece métodos para permitir que o depurador execute código dentro do contexto do código que está sendo depurado.

Methods

Método Description
Método Abort Anula o cálculo que este ICorDebugEval objeto está executando no momento.
Método CallFunction Configura uma chamada para a função especificada. (Obsoleto; use ICorDebugEval2::CallParameterizedFunction em vez disso.)
Método CreateValue Obtém um ponteiro de interface para um objeto "ICorDebugValue" do tipo especificado, com um valor inicial de zero ou null. (Obsoleto; use ICorDebugEval2::CreateValueForType em vez disso.)
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á sendo executada ou será executada.
Método IsActive Obtém um valor que indica se esse ICorDebugEval objeto está em execução no momento.
Método NewArray Aloca uma nova matriz do tipo de elemento especificado e dimensões. (Obsoleto; use ICorDebugEval2::NewParameterizedArray em vez disso.)
Método NewObject Aloca uma nova instância de objeto e chama o método de construtor especificado. (Obsoleto; use ICorDebugEval2::NewParameterizedObject em vez disso.)
Método NewObjectNoConstructor Aloca uma nova instância de objeto do tipo especificado, sem tentar chamar um método de construtor. (Obsoleto; use ICorDebugEval2::NewParameterizedObjectNoConstructor em vez disso.)
Método NewString Aloca um novo objeto string com o conteúdo especificado.

Observações

Um ICorDebugEval objeto é criado no contexto de um thread específico que é usado para executar as avaliações. Todos os objetos e tipos usados em uma determinada avaliação devem residir dentro do mesmo domínio de aplicativo. Esse domínio de aplicativo não precisa ser o mesmo que o domínio de aplicativo 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 um retorno de chamada ICorDebugManagedCallback::EvalComplete . Se você precisar usar a funcionalidade de avaliação sem permitir que outros threads sejam executados, suspenda os threads usando ICorDebugController::SetAllThreadsDebugState ou ICorDebugController::Stop antes de chamar ICorDebugController::Continue.

Como o código do usuário está sendo executado quando a avaliação está em andamento, qualquer evento de depuração pode ocorrer, incluindo cargas de classe e pontos de interrupção. O depurador receberá retornos de chamada, normalmente, para esses 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 (consulte a enumeração "CorDebugStepReason" e o método ICorDebugChain::GetReason ). A API do depurador completo continuará a operar normalmente.

Se surgir uma situação de bloqueio ou looping infinito, o código do usuário pode nunca ser concluído. Nesse caso, você deve chamar ICorDebugEval::Abort antes de retomar o programa.

Observação

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

Requerimentos

Plataformas: Consulte Sistemas operacionais suportados pelo .NET.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

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