IDebugEventCallbacks::ChangeDebuggeeState 方法 (dbgeng.h)
引擎在對目標進行或偵測變更時,會呼叫 ChangeDebuggeeState 回呼方法。
語法
HRESULT ChangeDebuggeeState(
[in] ULONG Flags,
[in] ULONG64 Argument
);
參數
[in] Flags
指定對目標所做的變更類型。 旗標 可能會採用下列其中一個值:
價值 | 描述 |
---|---|
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的可能值。
價值 描述 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 (include Dbgeng.h) |