提供使调试器能够在所调试代码的上下文中执行代码的方法。
Methods
| 方法 | Description |
|---|---|
| Abort 方法 | 中止此 ICorDebugEval 对象当前正在执行的计算。 |
| CallFunction 方法 | 设置对指定函数的调用。 (已过时;请改用 ICorDebugEval2::CallParameterizedFunction 。) |
| CreateValue 方法 | 获取指向指定类型的“ICorDebugValue”对象的接口指针,其初始值为零或 null。 (已过时;请改用 ICorDebugEval2::CreateValueForType 。) |
| GetResult 方法 | 获取指向包含计算结果的接口指针 ICorDebugValue 。 |
| GetThread 方法 | 获取指向执行或将执行此计算的“ICorDebugThread”的接口指针。 |
| IsActive 方法 | 获取一个值,该值指示此 ICorDebugEval 对象当前是否正在执行。 |
| NewArray 方法 | 分配指定元素类型和维度的新数组。 (已过时;请改用 ICorDebugEval2::NewParameterizedArray 。) |
| NewObject 方法 | 分配新的对象实例并调用指定的构造函数方法。 (已过时;请改用 ICorDebugEval2::NewParameterizedObject 。) |
| NewObjectNoConstructor 方法 | 分配指定类型的新对象实例,而不尝试调用构造函数方法。 (已过时;请改用 ICorDebugEval2::NewParameterizedObjectNoConstructor 。) |
| NewString 方法 | 分配具有指定内容的新字符串对象。 |
注解
对象 ICorDebugEval 是在用于执行计算的特定线程的上下文中创建的。 给定评估中使用的所有对象和类型必须驻留在同一应用程序域中。 该应用程序域不需要与线程的当前应用程序域相同。 计算可以嵌套。
在调试器调用 ICorDebugController::Continue 之前,评估的作不会完成,然后接收 ICorDebugManagedCallback::EvalComplete 回调。 如果需要使用评估功能而不允许其他线程运行,请在调用 ICorDebugController::Continue 之前使用 ICorDebugController::SetAllThreadsDebugState 或 ICorDebugController::Stop 挂起线程。
由于评估正在进行时用户代码正在运行,因此可能发生任何调试事件,包括类加载和断点。 调试器将接收这些事件的回调(正常)。 评估状态将被视为正常程序状态检查的一部分。 堆栈链将是一个 CHAIN_FUNC_EVAL 链(请参阅“CorDebugStepReason”枚举和 ICorDebugChain::GetReason 方法)。 完整的调试器 API 将继续正常运行。
如果出现死锁或无限循环情况,则用户代码可能永远不会完成。 在这种情况下,必须在恢复程序之前调用 ICorDebugEval::Abort 。
注释
此接口不支持远程调用,无论是跨计算机还是跨进程。
要求
平台: 请参阅 .NET 支持的作系统。
页眉: CorDebug.idl、CorDebug.h
图书馆: CorGuids.lib
.NET 版本: 自 .NET Framework 1.0 起可用