IDebugEngine2::Attach
將偵錯引擎 (DE) 附加至程式或程式。 當 DE 正在對 SDM 執行行程內時,由工作階段偵錯管理員 (SDM) 呼叫。
語法
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
參數
pProgram
[in]IDebugProgram2 對象的陣列,代表要附加的程式。 這些是埠程式。
rgpProgramNodes
[in]代表程序節點的 IDebugProgramNode2 物件數位,每個程式各一個。 此陣列中的程序節點代表與中的 pProgram
程式相同。 系統會提供程式節點,讓 DE 能夠識別要附加的程式。
celtPrograms
[in]和陣列中的pProgram
rgpProgramNodes
程式和/或程序節點數目。
pCallback
[in] 要用來將偵錯事件傳送至 SDM 的 IDebugEventCallback2 物件。
dwReason
[in]來自 ATTACH_REASON 列舉的值,指定附加這些程式的原因。 如需詳細資訊,請參閱<備註>一節。
傳回值
如果成功,則會傳回 S_OK
;否則,會傳回錯誤碼。
備註
附加至程式有三個原因,如下所示:
ATTACH_REASON_LAUNCH
表示 DE 正在附加至程式,因為使用者啟動包含它的進程。ATTACH_REASON_USER
表示使用者已明確要求 DE 附加至程式(或包含程序的進程)。ATTACH_REASON_AUTO
表示 DE 正在附加至特定程式,因為它已經在對特定進程中的其他程式進行偵錯。 這也稱為自動附加。呼叫此方法時,DE 必須依序傳送這些事件:
IDebugEngineCreateEvent2 (如果尚未針對偵錯引擎的特定實例傳送它)
-
此外,如果附加
ATTACH_REASON_LAUNCH
的原因是 ,DE 必須傳送 IDebugEntryPointEvent2 事件。一旦 DE 取得 對應至所偵錯程式的 IDebugProgramNode2 物件,就可以查詢任何私人介面。
在呼叫 或
rgpProgramNodes
所pProgram
指定數位中程序節點的方法之前,如有需要,應該在表示程序節點的IDebugProgram2
介面上啟用模擬。 不過,通常不需要此步驟。 如需詳細資訊,請參閱 安全性問題。