共用方式為


.NET 偵錯 (Unmanaged API 參考)

本節中的文章說明 Common Language Runtime (CLR) 所提供的 Unmanaged API,以支持偵錯在 Windows、Linux 或 macOS作系統上執行的 .NET 應用程式。

這些文章說明在 .NET Core 2.0 或更新版本中引進的 API,或在 .NET Framework 中引進但可在 .NET (Core) 上使用的 API。 如需 .NET Framework 特定的非受控 API,請參閱 .NET Framework 偵錯

列舉項目

CorDebugBlockingReason 列舉
指定執行緒可能在指定物件上遭到封鎖的原因。

CorDebugChainReason 列舉
指出啟動呼叫鏈的原因。

CorDebugCodeInvokeKind 列舉
描述匯出的函式如何叫用 Managed 程式碼。

CorDebugCodeInvokePurpose 列舉
描述匯出函式呼叫 Managed 程式碼的原因。

CorDebugCreateProcessFlags 列舉
提供可用於呼叫 ICorDebug::CreateProcess 方法的其他偵錯選項。

CorDebugDebugEventKind 列舉
指出其資訊由 DecodeEvent 方法解碼的事件類型。

CorDebugDecodeEventFlagsWindows 列舉
提供 Windows 平臺上偵錯事件的其他資訊。

CorDebugExceptionCallbackType 列舉
指出從 ICorDebugManagedCallback2::Exception 事件所產生的回呼類型。

CorDebugExceptionFlags 列舉
提供例外狀況的其他相關資訊。

CorDebugExceptionUnwindCallbackType 列舉
指出回呼在回溯階段期間發出訊號的事件。

CorDebugGCType 列舉
指出記憶體回收器是在工作站或伺服器上執行。

CorDebugGenerationTypes 列舉
指定在受管理資料堆上產生記憶體區域。

CorDebugHandleType 列舉
指出控點類型。

CorDebugIlToNativeMappingTypes 列舉
指出特定範圍的原生指令是否對應至特殊程式碼區域。

CorDebugIntercept 列舉
指出可以逐步執行的程式碼類型。

CorDebugInterfaceVersion 列舉
指定 .NET Framework 的版本,或引進介面的 .NET Framework 版本。

CorDebugInternalFrameType 列舉
識別堆疊框架的類型。

CorDebugJITCompilerFlags 列舉
包含影響受控 Just-In-Time (JIT) 編譯器行為的值。

CorDebugMappingResult 列舉
提供如何取得指令指標 (IP) 值的詳細資料。

CorDebugMDAFlags 列舉
指定引發受控偵錯小幫手 (MDA) 的執行緒狀態。

CorDebugNGenPolicy 列舉
提供值,以判斷偵錯工具是否從原生映像快取載入原生 (NGen) 映像。

CorDebugPlatform 列舉
提供 ICorDebugDataTarget::GetPlatform 方法所使用的目標平臺值。

CorDebugRecordFormat 列舉
描述位元組陣列中資料的格式,其中包含原生例外狀況偵錯事件的相關資訊。

CorDebugRegister 列舉
指定與指定處理器架構相關聯的暫存器。

CorDebugSetContextFlag 列舉
指出內容是否來自堆疊上的作用中 (或分葉) 框架,或已從另一個框架展開計算。

CorDebugStateChange 列舉
描述必須根據處理程序變更捨棄的快取資料量。

CorDebugStepReason 列舉
指出個別步驟的結果。

CorDebugThreadState 列舉
指定要偵錯的執行緒狀態。

CorDebugUnmappedStop 列舉
指定可觸發步進器停止程式碼執行的未對應程式碼類型。

CorDebugUserState 列舉
指出執行緒的使用者狀態。

CorGCReferenceType 列舉
識別要記憶體回收的物件來源。

COR_PUB_ENUMPROCESS列舉
識別要列舉的處理程序類型。

ILCodeKind 列舉
提供值,指定偵錯工具是否能夠存取區域變數或分析器 ReJIT 檢測中新增的程式碼。

LIBRARY_PROVIDER_INDEX_TYPE列舉
傳遞給連結庫提供者的索引資訊類型是所要求模組或運行時間 (coreclr) 模組的身分識別。

LoggingLevelEnum 列舉
指出當受控執行緒記錄事件時寫入事件記錄檔的描述性訊息的嚴重性層級。

LogSwitchCallReason 列舉
指出在偵錯/追蹤交換器上執行的作業。

VariableLocationType 列舉
指出變數的原生位置類型。

WriteableMetadataUpdateMode 列舉
提供值,指定偵錯工具是否可以看到中繼資料的記憶體內更新。

Functions

CloseCLREnumeration 函式
關閉 EnumerateCLRs 函式所傳回之句柄陣列中的任何有效 CLR 繼續啟動事件,並釋放句柄和字串路徑數位的記憶體。

CloseResumeHandle 函式
關閉 CreateProcessForLaunch 函式所傳回的句柄。

CLRCreateInstance 函式
提供 ICLRDebugging 介面。

CreateDebuggingInterfaceFromVersion 函式
接受 從 CreateVersionStringFromModule 函式傳回的 CLR 版本字串,並傳回對應的調試程式介面。

CreateDebuggingInterfaceFromVersionEx 函式
接受 從 CreateVersionStringFromModule 函式傳回的 CLR 版本字串,並傳回對應的調試程式介面。

CreateDebuggingInterfaceFromVersion2 函式
接受 從 CreateVersionStringFromModule函式傳回的 CLR 版本字串,並傳回對應的調試程式介面。

CreateDebuggingInterfaceFromVersion3 函式
接受 從 CreateVersionStringFromModule 函式傳回的 CLR 版本字串,並傳回對應的調試程式介面。

CreateProcessForLaunch 函式
可支援跨平臺的 Windows CreateProcess 子集。

CreateVersionStringFromModule 函式
從目標進程中的 CLR 路徑建立版本字串。

EnumerateCLRs 函式
提供一個機制來列舉進程中的CLR。

GetStartupNotificationEvent 函式
建立或開啟事件句柄,此句柄將由任何載入指定目標進程中的 Common Language Runtime (CLR) 發出訊號。

RegisterForRuntimeStartup 函式
當 .NET 運行時間在指定的進程中啟動時,執行回呼。

RegisterForRuntimeStartupEx 函式
當 .NET 運行時間在指定的進程中啟動時,執行回呼。

RegisterForRuntimeStartup3 函式
當 .NET 運行時間在指定的進程中啟動時,執行回呼。

ResumeProcess 函式
使用 CreateProcessForLaunch 函式所傳回的繼續句柄繼續程式。

UnregisterForRuntimeStartup 函式
停止/取消運行時間啟動通知。

函式指標

PSTARTUP_CALLBACK函式指標
指向 .NET 運行時間啟動 RegisterForRuntimeStartup API 時所呼叫的函式。

介面

ICLRDebuggingLibraryProvider2 介面
包含 ProvideLibrary2 方法,可讓調試程式提供版本特定偵錯連結庫的路徑。

ICLRDebuggingLibraryProvider3 介面
包含回呼方法,可讓 .NET 一般和單一檔案應用程式視需要找到並載入 Common Language Runtime 版本特定的偵錯連結庫。

ICorDebug 介面
提供可讓開發人員在 CLR 環境中偵錯應用程式的方法。

ICorDebugAppDomain 介面
提供偵錯應用程式網域的方法。

ICorDebugAppDomain2 介面
提供使用陣列、指標、函數指標和 ByRef 類型的方法。 此介面是介面的 ICorDebugAppDomain 延伸。

ICorDebugAppDomain3 介面
提供在應用程式網域中使用 Windows 執行階段類型的方法。 此介面是 和 ICorDebugAppDomainICorDebugAppDomain2 介面的延伸。

ICorDebugAppDomain4 介面
以邏輯方式擴充 ICorDebugAppDomain 介面,以從 COM 可呼叫包裝函式取得受控物件。

ICorDebugAppDomainEnum 介面
提供從列舉中下一個位置開始傳回指定數目 ICorDebugAppDomain 的值的方法。

ICorDebugArrayValue 介面
ICorDebugHeapValue 子類代表單維或多維數組。

ICorDebugAssembly 介面
代表組合。

ICorDebugAssembly2 介面
代表組合。 此介面是介面的 ICorDebugAssembly 延伸。

ICorDebugAssembly3 介面
以邏輯方式擴充 ICorDebugAssembly 介面,以提供容器元件及其包含元件的支援。 僅適用於 .NET 原生。

ICorDebugAssemblyEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugAssembly 陣列。

ICorDebugBlockingObjectEnum 介面
提供 CorDebugBlockingObject 結構清單的列舉值。

ICorDebugBoxValue 介面
ICorDebugHeapValue 子類別代表一個裝箱值類別物件。

ICorDebugBreakpoint 介面
代表函式中的中斷點或值的監看點。

ICorDebugBreakpointEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugBreakpoint 陣列。

ICorDebugChain 介面
代表實體或邏輯呼叫堆疊的區段。

ICorDebugChainEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugChain 陣列。

ICorDebugClass 介面
代表類型,可以是基本類型,也可以是複雜類型 (亦即使用者定義)。 如果類型是泛型, ICorDebugClass 則代表未實例化的泛型類型。

ICorDebugClass2 介面
表示泛型類別或方法參數類型 Type為 的類別。 此介面延伸 ICorDebugClass.

ICorDebugCode 介面
代表通用中繼語言 (CIL) 程式碼或原生程式碼的區段。

ICorDebugCode2 介面
提供擴充 ICorDebugCode的功能的方法。

ICorDebugCode3 介面
提供擴充 ICorDebugCodeICorDebugCode2 的方法,以提供受控傳回值的相關資訊。

ICorDebugCode4 介面
提供方法,讓偵錯工具能夠列舉函式中的區域變數和引數。

ICorDebugCodeEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugCode 陣列。

ICorDebugComObjectValue 介面
提供擷取快取介面物件的方法。

ICorDebugContext 介面
代表內容物件。 這個介面尚未實現。

ICorDebugController 介面
代表一個範圍,可以ProcessAppDomain控制程式碼執行內容的範圍,可以控制程式碼執行內容。

ICorDebugDataTarget 介面
提供回呼介面,提供特定目標進程的存取權。

ICorDebugDataTarget2 介面
以邏輯方式擴充 ICorDebugDataTarget 介面。 僅適用於 .NET 原生。

ICorDebugDataTarget3 介面
以邏輯方式擴充 ICorDebugDataTarget 介面,以提供載入模組的相關資訊。 僅適用於 .NET 原生。

ICorDebugDebugEvent 介面
定義所有 ICorDebug 偵錯事件衍生的基本介面。 僅適用於 .NET 原生。

ICorDebugEditAndContinueErrorInfo 介面
已過時。 請勿使用此介面。

ICorDebugEditAndContinueSnapshot 介面
已過時。 請勿使用此介面。

ICorDebugEnum 介面
作為偵錯列舉器的抽象基底介面。

ICorDebugErrorInfoEnum 介面
已過時。 請勿使用此介面。

ICorDebugEval 介面
提供方法,讓偵錯工具能夠在正在偵錯的程式碼內容內執行程式碼。

ICorDebugEval2 介面
擴充 ICorDebugEval 以提供泛型類型的支援。

ICorDebugExceptionDebugEvent 介面
擴充 ICorDebugDebugEvent 介面以支援例外狀況事件。 僅適用於 .NET 原生。

ICorDebugExceptionObjectCallStackEnum 介面
提供內嵌在例外狀況物件中的呼叫堆疊資訊列舉值。

ICorDebugExceptionObjectValue 介面
擴充 ICorDebugObjectValue 介面,以提供來自受控例外狀況物件的堆疊追蹤資訊。

ICorDebugFrame 介面
代表目前堆疊上的框架。

ICorDebugFrameEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugFrame 陣列。

ICorDebugFunction 介面
代表受控函式或方法。

ICorDebugFunction2 介面
邏輯上擴充, ICorDebugFunction 以提供 Just My Code 逐步偵錯的支援。

ICorDebugFunction3 介面
以邏輯方式擴充 ICorDebugFunction 介面,以提供來自 ReJIT 要求的程式代碼存取權。

ICorDebugFunctionBreakpoint 介面
延伸 ICorDebugBreakpoint 至支援函式內的中斷點。

ICorDebugGCReferenceEnum 介面
提供將進行記憶體回收的物件列舉值。

ICorDebugGenericValue 介面
其子 ICorDebugValue 類別適用於所有值。 此介面提供值的 Get 和 Set 方法。

ICorDebugGuidToTypeEnum 介面
提供對應 GUID 及其對應 ICorDebugType 物件的物件列舉值。

ICorDebugHandleValue 介面
ICorDebugReferenceValue 子類別代表偵錯工具已建立記憶體回收控制碼的參考值。

ICorDebugHeapEnum 介面
提供受控堆積上物件的列舉值。

ICorDebugHeapSegmentEnum 介面
提供受控堆積記憶體區域的列舉值。

ICorDebugHeapValue 介面
的子類別 ICorDebugValue 代表 CLR 記憶體回收器所收集的物件。

ICorDebugHeapValue2 介面
其延伸 ICorDebugHeapValue 模組提供執行階段控制碼的支援。

ICorDebugHeapValue3 介面
公開物件的監視器鎖定屬性。

ICorDebugILCode 介面
代表中間語言 (IL) 程式碼的區段。

ICorDebugILCode2 介面
以邏輯方式擴充 ICorDebugILCode 介面,以提供傳回函式區域變數簽章權杖的方法,並將分析器的檢測中繼語言 (IL) 位移對應至原始方法 IL 位移。

ICorDebugILFrame 介面
代表 CIL 程式碼的堆疊框架。

ICorDebugILFrame2 介面
ICorDebugILFrame邏輯擴展。

ICorDebugILFrame3 介面
提供封裝函式傳回值的方法。

ICorDebugILFrame4 介面
提供方法,可讓您存取中間語言 (IL) 程式碼堆疊框架中的區域變數和程式碼。 參數會指定偵錯工具是否有權存取分析器 ReJIT 檢測中新增的變數和程式碼。

ICorDebugInstanceFieldSymbol 介面
代表實例欄位的除錯符號資訊。 僅適用於 .NET 原生。

ICorDebugInternalFrame 介面
識別偵錯工具的框架類型。

ICorDebugInternalFrame2 介面
提供內部框架的相關資訊,包括與 ICorDebugFrame 物件相關的堆疊位址和位置。

ICorDebugLoadedModule 介面
提供載入模組的相關資訊。 僅適用於 .NET 原生。

ICorDebugManagedCallback 介面
提供處理偵錯工具回呼的方法。

ICorDebugManagedCallback2 介面
提供支援偵錯工具例外狀況處理和受控偵錯小幫手 (MDA) 的方法。 ICorDebugManagedCallback2 是 的邏輯延伸 ICorDebugManagedCallback

ICorDebugManagedCallback3 介面
提供回呼方法,指出已引發已啟用的自訂偵錯工具通知。

ICorDebugMDA 介面
代表受控偵錯小幫手 (MDA) 訊息。

ICorDebugMemoryBuffer 介面
代表記憶體內部緩衝區。 僅適用於 .NET 原生。

ICorDebugMergedAssemblyRecord 介面
提供有關合併組件的資訊。 僅適用於 .NET 原生。

ICorDebugMetaDataLocator 介面
提供中繼資料資訊給偵錯工具。

ICorDebugModule 介面
代表 CLR 模組,它是可執行檔或動態連結程式庫 (DLL)。

ICorDebugModule2 介面
作為 的邏輯延伸 ICorDebugModule

ICorDebugModule3 介面
建立動態模組的符號讀取器。

ICorDebugModule4 介面
提供一種方法,可判斷模組是否以對應/水合格式載入記憶體。

ICorDebugModuleBreakpoint 介面
擴展 ICorDebugBreakpoint 以提供對特定模塊的訪問。

ICorDebugModuleDebugEvent 介面
擴充 ICorDebugDebugEvent 介面以支援模組層級事件。 僅適用於 .NET 原生。

ICorDebugModuleEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugModule 陣列。

ICorDebugMutableDataTarget 介面
擴充 ICorDebugDataTarget 介面,以支援可變的數據目標。

ICorDebugNativeFrame 介面
用於原生框架的 ICorDebugFrame 專用實作。

ICorDebugNativeFrame2 介面
提供測試子系和父系框架關聯性的方法。

ICorDebugObjectEnum 介面
實作 ICorDebugEnum 方法,並依物件的相對虛擬位址 (RVA) 列舉物件陣列。

ICorDebugObjectValue 介面
ICorDebugValue 子類別代表包含物件的值。

ICorDebugObjectValue2 介面
延伸 ICorDebugObjectValue 至支援繼承和覆寫。

ICorDebugProcess 介面
代表正在執行 Managed 程式碼的進程。

ICorDebugProcess2 介面
ICorDebugProcess邏輯擴展。

ICorDebugProcess3 介面
控制自訂偵錯工具通知。

ICorDebugProcess4 介面
提供進程外執行控制的支援。

ICorDebugProcess5 介面
擴充 ICorDebugProcess 介面,以支援存取受控堆積、提供受控物件記憶體回收的相關資訊,以及判斷偵錯工具是否從應用程式的本機原生映像快取載入映像。

ICorDebugProcess6 介面
以邏輯方式擴充 ICorDebugProcess 介面,以啟用功能,例如解碼原生例外狀況偵錯事件中編碼的受控偵錯事件和虛擬模組分割。 僅適用於 .NET 原生。

ICorDebugProcess7 介面
提供一種方法,可設定偵錯工具來處理目標進程中的記憶體內中繼資料更新。

ICorDebugProcess8 介面
以邏輯方式擴充 ICorDebugProcess 介面,以啟用或停用特定類型的 ICorDebugManagedCallback2 例外狀況回呼。

ICorDebugProcess11 介面
提供一種方法,可列舉 .NET 執行階段用來儲存描述 .NET 類型和方法的內部資料結構的原生記憶體範圍。 傳回的資訊與使用 SOS eeheap -loader 指令所顯示的資訊相同。

ICorDebugProcessEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugProcess 陣列。

ICorDebugReferenceValue 介面
支援 ICorDebugValue 參考類型的子類別。

ICorDebugRegisterSet 介面
代表目前執行程式碼之電腦上可用的暫存器集。

ICorDebugRegisterSet2 介面
擴充具有超過 64 個暫存器的硬體平台的功能 ICorDebugRegisterSet

ICorDebugRemote 介面
提供啟動受控偵錯工具或將受控偵錯工具附加至遠端目標進程的功能。

ICorDebugRemoteTarget 介面
提供可讓您在 CLR 環境中偵錯 Silverlight 型應用程式的方法。

ICorDebugRuntimeUnwindableFrame 介面
提供需要共用語言執行階段 (CLR) 才能展開框架的非受控方法的支援。

ICorDebugStackWalk 介面
提供取得執行緒堆疊上受控方法或框架的方法。

ICorDebugStaticFieldSymbol 介面
代表靜態欄位的偵錯符號資訊。 僅適用於 .NET 原生。

ICorDebugStepper 介面
代表偵錯工具所執行的程式碼執行步驟,作為命令發出和完成之間的識別碼,並提供取消步驟的方法。

ICorDebugStepper2 介面
提供對 Just My Code (JMC) 偵錯的支援。

ICorDebugStepperEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugStepper 陣列。

ICorDebugStringValue 介面
其子 ICorDebugHeapValue 類別適用於字串值。

ICorDebugSymbolProvider 介面
提供可用來擷取偵錯符號資訊的方法。 僅適用於 .NET 原生。

ICorDebugSymbolProvider2 介面
以邏輯方式擴充 ICorDebugSymbolProvider 介面,以擷取其他偵錯符號資訊。 僅適用於 .NET 原生。

ICorDebugThread 介面
代表進程中的執行緒。 實例的 ICorDebugThread 存留期與它所代表的執行緒存留期相同。

ICorDebugThread2 介面
作為 的邏輯延伸 ICorDebugThread

ICorDebugThread3 介面
提供 ICorDebugStackWalk 和對應介面的進入點。

ICorDebugThread4 介面
提供執行緒封鎖資訊。

ICorDebugThreadEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugThread 陣列。

ICorDebugType 介面
代表類型,可以是基本類型,也可以是複雜類型 (亦即使用者定義)。 如果類型是泛型, ICorDebugType 則代表具現化的泛型類型。

ICorDebugType2 介面
擴充 ICorDebugType 介面,以擷取基底類型或複雜 (使用者定義) 類型的類型識別碼。

ICorDebugTypeEnum 介面
實作 ICorDebugEnum 方法,並列舉 ICorDebugType 陣列。

ICorDebugUnmanagedCallback 介面
提供與 CLR 不直接相關的原生事件通知。

ICor偵錯值
代表正在偵錯的程式中的讀取或寫入值。

ICor偵錯值2
延伸至 ICorDebugValue 提供支援 ICorDebugType

ICorDebugValue3 介面
擴充 「ICorDebugValue」 和 「ICorDebugValue2」 介面,以支援大於 2 GB 的陣列。

ICorDebugValue中斷點
擴充 ICorDebugBreakpoint 以提供對特定值的存取。

ICorDebugValueEnum
實作 ICorDebugEnum 方法,並列舉 ICorDebugValue 陣列。

ICorDebugVariableHome 介面
表示函數的局部變數或引數。

ICorDebugVariableHomeEnum 介面
提供函式中局部變數和引數的列舉值。

ICorDebugVariableSymbol 介面
擷取變數的偵錯符號資訊。 僅適用於 .NET 原生。

ICorDebugVirtualUnwinder 介面
提供協助堆疊展開的方法。 僅適用於 .NET 原生。

結構體系

CodeChunkInfo 結構
代表記憶體中的單一程式碼區塊。

COR_ACTIVE_FUNCTION
包含執行程框架中目前作用中的函式的相關資訊。

COR_ARRAY_LAYOUT結構
提供記憶體中陣列物件配置的相關資訊。

COR_DEBUG_IL_TO_NATIVE_MAP
包含用來將通用中繼語言 (CIL) 程式碼對應至原生程式碼的位移。

COR_DEBUG_STEP_RANGE
包含程式碼範圍的位移資訊。

COR_FIELD結構
提供物件中欄位的相關資訊。

COR_GC_REFERENCE結構
包含要記憶體回收之物件的相關資訊。

COR_HEAPINFO結構
提供記憶體回收堆積的一般資訊,包括是否可列舉。

COR_HEAPOBJECT結構
提供受管理資料堆上物件的相關資訊。

COR_IL_MAP
指定函數相對偏移的變更。

COR_SEGMENT結構
包含受管理堆積中記憶體區域的相關資訊。

COR_TYPEID結構
包含類型識別碼。

COR_TYPE_LAYOUT結構
提供記憶體中物件配置的相關資訊。

COR_VERSION
儲存 Common Language 執行階段的標準四部分版本號碼。

CorDebugBlockingObject 結構
定義封鎖執行緒的物件,以及封鎖執行程的原因。

CorDebugEHClause 結構
代表指定中繼語言 (IL) 片段的例外狀況處理 (EH) 子句。

CorDebugExceptionObjectStackFrame 結構
代表例外狀況物件的堆疊框架資訊。

CorDebugGuidToTypeMapping 結構
將 Windows 執行階段 GUID 對應至其對應 ICorDebugType 的物件。