Interface ICorDebugEval
Fornece métodos para permitir que o depurador execute um código no contexto do código que está sendo depurado.
Métodos
Método | Descrição |
---|---|
Método Abort | Aborta a computação que este ICorDebugEval objeto está realizando no momento. |
Método CallFunction | Configura uma chamada para a função especificada. (Obsoleto no .NET Framework versão 2.0; 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 nulo. (Obsoleto no .NET Framework 2.0; 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 este ICorDebugEval objeto está em execução no momento. |
Método NewArray | Aloca uma nova matriz do tipo de elemento e dimensões especificados. (Obsoleto no .NET Framework 2.0; use ICorDebugEval2::NewParameterizedArray em vez disso.) |
Método NewObject | Aloca uma nova instância de objeto e chama o método construtor especificado. (Obsoleto no .NET Framework 2.0; 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 construtor. (Obsoleto no .NET Framework 2.0; use ICorDebugEval2::NewParameterizedObjectNoConstructor em vez disso.) |
Método NewString | Aloca um novo objeto de cadeia de caracteres com o conteúdo especificado. |
Comentários
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 no mesmo domínio de aplicativo. Esse domínio de aplicativo não precisa ser o mesmo que o domínio do aplicativo atual da thread. As funções podem ser aninhadas.
As operações da avaliação não são concluídas até que o depurador chame ICorDebugController::Continue, e 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á em execução quando a avaliação está em andamento, podem ocorrer quaisquer eventos de depuração, 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 completa do depurador continuará operando normalmente.
Se surgir uma situação de deadlock ou loop 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 pode ser chamada remotamente, seja entre computadores ou entre processos.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versões do .NET Framework: Disponíveis desde a versão 1.0