Share via


IDebugEventCallbacks::ChangeDebuggeeState 方法 (dbgeng.h)

當引擎對目標進行或偵測到變更時,會呼叫 ChangeDebuggeeState 回呼方法。

語法

HRESULT ChangeDebuggeeState(
  [in] ULONG   Flags,
  [in] ULONG64 Argument
);

參數

[in] Flags

指定對目標所做的變更類型。 旗標 可能會採用下列其中一個值:

Description
DEBUG_CDS_ALL 發生目標中的一般變更。 例如,目標已經執行,或引擎剛附加至目標。
DEBUG_CDS_REGISTERS 目標的處理器快取器已變更。
DEBUG_CDS_DATA 目標的數據空間已變更。
DEBUG_CDS_REFRESH 通知 GUI 用戶端重新整理調試程序視窗。

[in] Argument

提供有關目標中變更的其他資訊。 Argument 值解譯取決於 Flags 的值:

DEBUG_CDS_ALL
Argument 的值是零。
DEBUG_CDS_REGISTERS
如果單一緩存器已變更, Argument 的值就是該緩存器索引。 否則, Argument 的值會DEBUG_ANY_ID。
DEBUG_CDS_DATA
Argument 的值會指定哪些數據空間已變更。 下表包含 Argument 的可能值。
Description
DEBUG_DATA_SPACE_VIRTUAL 目標的虛擬記憶體已變更。
DEBUG_DATA_SPACE_PHYSICAL 目標的實體記憶體已變更。
DEBUG_DATA_SPACE_CONTROL 目標的控件記憶體已變更。
DEBUG_DATA_SPACE_IO 目標的 I/O 連接埠已接收輸入或輸出。
DEBUG_DATA_SPACE_MSR 目標 Model-Specific 註冊 (MSR) 已變更。
DEBUG_DATA_SPACE_BUS_DATA 目標的總線記憶體已變更。
 
DEBUG_CDS_REFRESH
下表包含 Argument 的可能值。
DEBUG_CDS_REFRESH_EVALUATE
DEBUG_CDS_REFRESH_EXECUTE
DEBUG_CDS_REFRESH_EXECUTECOMMANDFILE
DEBUG_CDS_REFRESH_ADDBREAKPOINT
DEBUG_CDS_REFRESH_REMOVEBREAKPOINT
DEBUG_CDS_REFRESH_WRITEVIRTUAL
DEBUG_CDS_REFRESH_WRITEVIRTUALUNCACHED
DEBUG_CDS_REFRESH_WRITEPHYSICAL
DEBUG_CDS_REFRESH_WRITEPHYSICAL2
DEBUG_CDS_REFRESH_SETVALUE
DEBUG_CDS_REFRESH_SETVALUE2
DEBUG_CDS_REFRESH_SETSCOPE
DEBUG_CDS_REFRESH_SETSCOPEFRAMEBYINDEX
DEBUG_CDS_REFRESH_SETSCOPEFROMJITDEBUGINFO
DEBUG_CDS_REFRESH_SETSCOPEFROMSTOREDEVENT
DEBUG_CDS_REFRESH_INLINESTEP
DEBUG_CDS_REFRESH_INLINESTEP_PSEUDO
 

傳回值

除非引擎指出遠程過程調用錯誤,否則會忽略傳回值;在此情況下,會停用此 IDebugEventCallbacks 物件的用戶端。

備註

只有在 IDebugEventCallbacks::GetInterestMask 傳回的遮罩中設定DEBUG_EVENT_CHANGE_DEBUGGEE_STATE旗標時,引擎才會呼叫 ChangeDebuggeeState

如需處理事件的詳細資訊,請參閱 監視事件。 如需管理目標記憶體的相關信息,包括緩存器和數據空間,請參閱 記憶體存取。 如需目標虛擬和實體記憶體的相關信息,請參閱 虛擬和實體記憶體。 如需目標控制記憶體、I/O 埠、MSR 和總線記憶體的相關信息,請參閱 其他數據空間

規格需求

需求
目標平台 桌面
標頭 dbgeng.h (包含 Dbgeng.h)