ICorDebugEval 接口

提供使调试器能够在正在调试的代码的上下文中执行代码的方法。

方法

方法 说明
Abort 方法 中止此 ICorDebugEval 对象当前正在执行的计算。
CallFunction 方法 设置对指定函数的调用。 (在 .NET Framework 版本 2.0 中已过时;请改用 ICorDebugEval2::CallParameterizedFunction。)
CreateValue 方法 获取指向指定类型的“ICorDebugValue”对象的接口指针,初始值为零或 null。 (在 .NET Framework 2.0 中已过时;请改用 ICorDebugEval2::CreateValueForType。)
GetResult 方法 获取指向包含评估结果的 ICorDebugValue 的接口指针。
GetThread 方法 获取指向正在其中执行或将在其中执行此评估的“ICorDebugThread”的接口指针。
IsActive 方法 获取一个值,该值指示此 ICorDebugEval 对象当前是否正在执行。
NewArray 方法 分配指定的元素类型和维度的新数组。 (在 .NET Framework 2.0 中已过时;请改用 ICorDebugEval2::NewParameterizedArray。)
NewObject 方法 分配一个新对象实例并调用指定的构造函数方法。 (在 .NET Framework 2.0 中已过时;请改用 ICorDebugEval2::NewParameterizedObject。)
NewObjectNoConstructor 方法 分配指定类型的新对象实例,而不尝试调用构造函数方法。 (在 .NET Framework 2.0 中已过时;请改用 ICorDebugEval2::NewParameterizedObjectNoConstructor。)
NewString 方法 分配具有指定内容的新字符串对象。

备注

ICorDebugEval 对象是在用于执行评估的特定线程的上下文中创建的。 在给定评估中使用的所有对象和类型必须驻留在同一应用程序域中。 该应用程序域不需要与线程的当前应用程序域相同。 评估可以嵌套。

只有在调试器调用 ICorDebugController::Continue 并随后收到 ICorDebugManagedCallback::EvalComplete 回调之后,评估的操作才会完成。 如果需要使用评估功能且不允许其他线程运行,请在调用 ICorDebugController::Continue 之前使用 ICorDebugController::SetAllThreadsDebugStateICorDebugController::Stop 暂停线程。

由于在评估过程中用户代码正在运行,因此可能会发生任何调试事件,包括类加载和断点事件。 调试器将如常接收这些事件的回调。 评估状态将被视为正常程序检查状态的一部分。 堆栈链将是一个 CHAIN_FUNC_EVAL 链(请参阅“CorDebugStepReason”枚举和 ICorDebugChain::GetReason 方法)。 完整的调试器 API 将继续如常运行。

如果出现死锁或无限循环,用户代码可能永远不会完成。 在这种情况下,必须在恢复程序之前调用 ICorDebugEval::Abort

备注

此接口不支持跨计算机或跨进程远程调用。

要求

平台:请参阅系统要求

标头:CorDebug.idl、CorDebug.h

库:CorGuids.lib

.NET Framework 版本:自 1.0 起可用

另请参阅