提供方法,讓偵錯工具能夠在正在偵錯的程式碼內容內執行程式碼。
Methods
| 方法 | Description |
|---|---|
| 中止方法 | 中止此 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 起提供