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