ICLRDebugging::OpenVirtualProcess 方法
取得 ICorDebugProcess 介面,該介面對應至進程中載入的 Common Language Runtime (CLR) 模組。
語法
HRESULT OpenVirtualProcess(
[in] ULONG64 moduleBaseAddress,
[in] IUnknown * pDataTarget,
[in] ICLRDebuggingLibraryProvider * pLibraryProvider,
[in] CLR_DEBUGGING_VERSION * pMaxDebuggerSupportedVersion,
[in] REFIID riidProcess,
[out, iid_is(riidProcess)] IUnknown ** ppProcess,
[in, out] CLR_DEBUGGING_VERSION * pVersion,
[out] CLR_DEBUGGING_PROCESS_FLAGS * pdwFlags);
參數
moduleBaseAddress
[in]目標進程中模組的基底位址。 如果指定的模組不是 CLR 模組,則會傳回COR_E_NOT_CLR。
pDataTarget
[in]資料目標抽象概念,可讓 Managed 偵錯工具檢查進程狀態。 偵錯工具必須實作 ICorDebugDataTarget 介面。 您應該實 作 ICLRDebuggingLibraryProvider 介面,以支援電腦上未在本機安裝偵錯 CLR 的案例。
pLibraryProvider
[in]程式庫提供者回呼介面,允許依需求找到並載入版本特定的偵錯程式庫。 只有在 或 pFlags
不是 null
時 ppProcess
,才需要此參數。
pMaxDebuggerSupportedVersion
[in]此偵錯工具可以偵錯的最高 CLR 版本。 您應該指定這個偵錯工具支援的最新 CLR 版本的主要、次要和組建版本,並將修訂編號設定為 65535,以容納未來的就地 CLR 服務版本。
riidProcess
[in]要擷取之 ICorDebugProcess 介面的識別碼。 目前,唯一接受的值是IID_CORDEBUGPROCESS3、IID_CORDEBUGPROCESS2和IID_CORDEBUGPROCESS。
ppProcess
[out]所識別 riidProcess
之 COM 介面的指標。
pVersion
[in, out]CLR 的版本。 在輸入時,此值可以是 null
。 它也可以指向 CLR_DEBUGGING_VERSION 結構,在此情況下,結構欄位 wStructVersion
必須初始化為 0(零)。
在輸出中,傳 CLR_DEBUGGING_VERSION
回的結構會填入 CLR 的版本資訊。
pdwFlags
[out]有關指定執行時間的資訊旗標。 如需旗標的描述,請參閱CLR_DEBUGGING_PROCESS_FLAGS 主題。
傳回值
這個方法會傳回下列特定的 HRESULT,以及表示方法失敗的 HRESULT 錯誤。
HRESULT | 描述 |
---|---|
S_OK | 已成功完成命令。 |
E_POINTER | pDataTarget 為 null 。 |
CORDBG_E_LIBRARY_PROVIDER_ERROR | ICLRDebuggingLibraryProvider 回呼會傳回錯誤,或未提供有效的控制碼。 |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget 不會針對這個版本的執行時間實作必要的資料目標介面。 |
CORDBG_E_NOT_CLR | 指定的模組不是 CLR 模組。 當無法偵測到 CLR 模組時,也會傳回此 HRESULT,因為記憶體已損毀、模組無法使用,或 CLR 版本晚于填充碼版本。 |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | 此執行時間版本不支援此偵錯模型。 目前,.NET Framework 4 之前的 CLR 版本不支援偵錯模型。 此錯誤之後, pwszVersion 輸出參數仍會設定為正確的值。 |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | CLR 的版本大於這個偵錯工具所宣告支援的版本。 此錯誤之後, pwszVersion 輸出參數仍會設定為正確的值。 |
E_NO_INTERFACE | riidProcess 介面無法使用。 |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | 結構 CLR_DEBUGGING_VERSION 沒有 的可辨識值 wStructVersion 。 目前唯一接受的值是 0。 |
例外狀況
備註
需求
平台:請參閱系統需求。
標頭:CorDebug.idl、CorDebug.h
程式庫:CorGuids.lib
.NET Framework 版本: 自 4 起提供
.NET 版本: 自 .NET Core 2.1 起提供