Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Fornece métodos para habilitar o depurador a executar código no contexto do código que está sendo depurado.
Methods
| Método | Description |
|---|---|
| Método Abort | Anula a computação 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 igual a zero ou nulo. (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" em que essa avaliação está sendo executada ou será executada. |
| Método IsActive | Obtém um valor que indica se esse ICorDebugEval objeto está sendo executado no momento. |
| Método NewArray | Aloca uma nova matriz do tipo de elemento e dimensões especificados. (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 de cadeia de caracteres 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 no mesmo domínio do 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 executem, 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, 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 completa do depurador continuará operando normalmente.
Se ocorrer uma situação de looping sem deadlock ou infinito, o código do usuário poderá nunca ser concluído. Nesse caso, você deve chamar ICorDebugEval::Abort antes de retomar o programa.
Observação
Essa interface não dá suporte a ser chamada remotamente, seja entre máquinas ou entre processos.
Requirements
Plataformas: Consulte sistemas operacionais com suporte do .NET.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versões do .NET: Disponível desde o .NET Framework 1.0