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::SetAllThreadsDebugState 或 ICorDebugController::Stop 暫止執行緒,然後再呼叫 ICorDebugController::Continue。
因為使用者程式碼是在評估進行中時執行,所以可能會發生任何偵錯事件,包括類別載入和中斷點。 偵錯工具會像平常一樣接收這些事件的回呼。 評估的狀態將視為正常程式狀態檢查的一部分。 堆疊鏈結將是 CHAIN_FUNC_EVAL
鏈結 (請參閱 "CorDebugStepReason" 列舉和 ICorDebugChain::GetReason 方法)。 完整的偵錯工具 API 會繼續正常運作。
如果引發了死結或無限迴圈情況,使用者程式碼可能永遠不會完成。 在這種情況下,您必須先呼叫 ICorDebugEval::Abort,然後再繼續執行程式。
注意
這個介面不支援跨電腦或跨處理序的遠端呼叫。
規格需求
平台:請參閱系統需求。
標頭:CorDebug.idl、CorDebug.h
程式庫:CorGuids.lib
.NET Framework版本:自 1.0 起提供