ICorDebugEval 介面
提供方法讓偵錯工具執行所偵錯的程式碼內容中的程式碼。
方法
方法 |
描述 |
---|---|
中止此 ICorDebugEval 物件目前正在執行的計算。 |
|
設定指定函式的呼叫。 (.NET Framework 2.0 版中已不再使用;請改用 ICorDebugEval2::CallParameterizedFunction)。 |
|
取得指定之型別的 ICorDebugValue 介面 物件的介面指標,其初始值為零或 null (.NET Framework 2.0 中已不再使用;請改用 ICorDebugEval2::CreateValueForType)。 |
|
取得 ICorDebugValue 的介面指標,包含評估的結果。 |
|
取得 ICorDebugThread 的介面指標,評估正在這裡執行或即將執行。 |
|
取得值,指出目前是否正在執行此 ICorDebugEval 物件。 |
|
配置指定元素型別和維度的新陣列。 (.NET Framework 2.0 中已不再使用;請改用 ICorDebugEval2::NewParameterizedArray)。 |
|
配置新物件執行個體,並呼叫指定的建構函式方法。 (.NET Framework 2.0 中已不再使用;請改用 ICorDebugEval2::NewParameterizedObject)。 |
|
配置指定型別的新物件執行個體,而不嘗試呼叫建構函式方法。 (.NET Framework 2.0 中已不再使用;請改用 ICorDebugEval2::NewParameterizedObjectNoConstructor)。 |
|
以指定之內容配置新的字串物件。 |
備註
ICorDebugEval 物件是在用來執行評估之特定執行緒的內容中建立的。 指定的評估中使用的所有物件和型別都必須位在相同應用程式定義域中。 該應用程式定義域不需和此執行緒的目前應用程式定義域相同。 評估可以是巢狀結構。
直到偵錯工具呼叫 ICorDebugController::Continue,然後接收 ICorDebugManagedCallback::EvalComplete 回呼為止,都不會完成評估的作業。 如果需要使用評估功能,但不允許執行其他執行緒,請先使用 ICorDebugController::SetAllThreadsDebugState 或 ICorDebugController::Stop 暫止執行緒,再呼叫 ICorDebugController::Continue。
因為在進行評估時使用者程式碼會同時執行,所以任何偵錯事件都會發生,包括類別載入和中斷點。 偵錯工具會照常接收這些事件的回呼。 評估的狀態會被視為一般程式狀態檢查的一部分。 堆疊鏈結將會是 CHAIN_FUNC_EVAL 鏈結 (請參閱 CorDebugStepReason 列舉型別和 ICorDebugChain::GetReason 方法)。 完整偵錯工具 API 會繼續正常運作。
如果發生死結或無限迴圈的狀況,使用者程式碼可能永遠不會完成。 在此情況下,繼續程序之前必須先呼叫 ICorDebugEval::Abort。
注意事項 |
---|
這個介面不支援遠端呼叫,不論是跨電腦或跨處理序。 |
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorDebug.idl、CorDebug.h
**程式庫:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0