IDebugEngine2::Attach
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
將偵錯引擎 (DE) 附加至程式或程式。 工作階段偵錯管理員 (SDM) 執行同處理序以 SDM DE 時呼叫。
語法
HRESULT Attach(
IDebugProgram2** pProgram,
IDebugProgramNode2** rgpProgramNodes,
DWORD celtPrograms,
IDebugEventCallback2* pCallback,
ATTACH_REASON dwReason
);
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]IDebugEventCallback2来用來將偵錯事件傳送至 SDM 物件。
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物件對應至所偵錯程式來查詢任何私用介面。
程式節點的方法呼叫中所指定的陣列之前pProgram
或rgpProgramNodes
,模擬,必要時上, 應該啟用IDebugProgram2
介面,表示程式節點。 一般來說,不過,此步驟並非必要。 如需詳細資訊,請參閱安全性問題。
另請參閱
IDebugEngine2
IDebugProgramNode2
IDebugProgram2
IDebugEventCallback2
ATTACH_REASON
IDebugEngineCreateEvent2
IDebugProgramCreateEvent2
IDebugLoadCompleteEvent2
IDebugEntryPointEvent2