Interface ICorDebugEvalICorDebugEval Interface

Fornece métodos para permitir que o depurador execute um código no contexto do código que está sendo depurado.Provides methods to enable the debugger to execute code within the context of the code being debugged.

MétodosMethods

MétodoMethod DescriçãoDescription
Método AbortAbort Method Anula a computação que esse ICorDebugEval objeto está executando no momento.Aborts the computation this ICorDebugEval object is currently performing.
Método CallFunctionCallFunction Method Define uma chamada para a função especificada.Sets up a call to the specified function. (Obsoleto na versão de .NET Framework 2,0; use ICorDebugEval2:: CallParameterizedFunction em vez disso.)(Obsolete in the .NET Framework version 2.0; use ICorDebugEval2::CallParameterizedFunction instead.)
Método CreateValueCreateValue Method Obtém um ponteiro de interface para um objeto "ICorDebugValue" do tipo especificado, com um valor inicial de zero ou NULL.Gets an interface pointer to an "ICorDebugValue" object of the specified type, with an initial value of zero or null. (Obsoleto no .NET Framework 2,0; use ICorDebugEval2:: CreateValueForType em vez disso.)(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::CreateValueForType instead.)
Método GetResultGetResult Method Obtém um ponteiro de interface para um ICorDebugValue que contém os resultados da avaliação.Gets an interface pointer to an ICorDebugValue that contains the results of the evaluation.
Método GetThreadGetThread Method Obtém um ponteiro de interface para o "ICorDebugThread" no qual essa avaliação está sendo executada ou será executada.Gets an interface pointer to the "ICorDebugThread" where this evaluation is executing or will execute.
Método IsActiveIsActive Method Obtém um valor que indica se este ICorDebugEval objeto está sendo executado no momento.Gets a value that indicates whether this ICorDebugEval object is currently executing.
Método NewArrayNewArray Method Aloca uma nova matriz do tipo e das dimensões do elemento especificado.Allocates a new array of the specified element type and dimensions. (Obsoleto no .NET Framework 2,0; use ICorDebugEval2:: NewParameterizedArray em vez disso.)(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::NewParameterizedArray instead.)
Método NewObjectNewObject Method Aloca uma nova instância de objeto e chama o método de Construtor especificado.Allocates a new object instance and calls the specified constructor method. (Obsoleto no .NET Framework 2,0; use ICorDebugEval2:: NewParameterizedObject em vez disso.)(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::NewParameterizedObject instead.)
Método NewObjectNoConstructorNewObjectNoConstructor Method Aloca uma nova instância de objeto do tipo especificado, sem tentar chamar um método de construtor.Allocates a new object instance of the specified type, without attempting to call a constructor method. (Obsoleto no .NET Framework 2,0; use ICorDebugEval2:: NewParameterizedObjectNoConstructor em vez disso.)(Obsolete in the .NET Framework 2.0; use ICorDebugEval2::NewParameterizedObjectNoConstructor instead.)
Método NewStringNewString Method Aloca um novo objeto de cadeia de caracteres com o conteúdo especificado.Allocates a new string object with the specified contents.

ComentáriosRemarks

Um ICorDebugEval objeto é criado no contexto de um thread específico que é usado para executar as avaliações.An ICorDebugEval object is created in the context of a specific thread that is used to perform the evaluations. Todos os objetos e tipos usados em uma determinada avaliação devem residir no mesmo domínio de aplicativo.All objects and types used in a given evaluation must reside within the same application domain. Esse domínio de aplicativo não precisa ser o mesmo que o domínio de aplicativo atual do thread.That application domain need not be the same as the current application domain of the thread. As avaliações podem ser aninhadas.Evaluations can be nested.

As operações da avaliação não são concluídas até que o depurador chame ICorDebugController:: Continuee receba um retorno de chamada ICorDebugManagedCallback:: EvalComplete .The evaluation's operations do not complete until the debugger calls ICorDebugController::Continue, and then receives an ICorDebugManagedCallback::EvalComplete callback. 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.If you need to use the evaluation functionality without allowing other threads to run, suspend the threads by using either ICorDebugController::SetAllThreadsDebugState or ICorDebugController::Stop before calling 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.Because user code is running when the evaluation is in progress, any debug events can occur, including class loads and breakpoints. O depurador receberá retornos de chamada, como de costume, para esses eventos.The debugger will receive callbacks, as normal, for these events. O estado da avaliação será visto como parte da inspeção do estado normal do programa.The state of the evaluation will be seen as part of the inspection of the normal program state. A cadeia de pilha será uma CHAIN_FUNC_EVAL cadeia (consulte a enumeração "CorDebugStepReason" e o método ICorDebugChain:: GetReason ).The stack chain will be a CHAIN_FUNC_EVAL chain (see the "CorDebugStepReason" enumeration and the ICorDebugChain::GetReason method). A API do depurador completo continuará a funcionar normalmente.The full debugger API will continue to operate as normal.

Se ocorrer uma situação de loop infinita ou deadlock, o código do usuário poderá nunca ser concluído.If a deadlocked or infinite looping situation arises, the user code may never complete. Nesse caso, você deve chamar ICorDebugEval:: Abort antes de retomar o programa.In such a case, you must call ICorDebugEval::Abort before resuming the program.

Observação

Esta interface não dá suporte para chamada remota, seja entre computadores ou processos cruzados.This interface does not support being called remotely, either cross-machine or cross-process.

RequisitosRequirements

Plataformas: confira Requisitos do sistema.Platforms: See System Requirements.

Cabeçalho: CorDebug.idl, CorDebug.hHeader: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.libLibrary: CorGuids.lib

.NET Framework versões:Disponível desde o 1.0Available since 1.0.NET Framework Versions: Disponível desde o 1.0Available since 1.0

Consulte tambémSee also