共用方式為


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]程式和/或程式中的節點數目pProgramrgpProgramNodes陣列。

pCallback
[in]IDebugEventCallback2来用來將偵錯事件傳送至 SDM 物件。

dwReason
[in]介於ATTACH_REASON列舉,指定附加這些程式的原因。 如需詳細資訊,請參閱<備註>一節。

傳回值

如果成功,傳回S_OK; 否則傳回錯誤碼。

備註

有三個原因,讓您附加至程式中,,如下所示︰

  • ATTACH_REASON_LAUNCH表示 DE 附加至程式,因為使用者啟動包含它的處理序。

  • ATTACH_REASON_USER表示使用者明確要求 DE 附加至程式 (或包含程式的處理序)。

  • ATTACH_REASON_AUTO表示 DE 附加到特定的程式,因為它已經偵錯其他程式的特定處理程序。 這也稱為自動附加。

呼叫這個方法時,DE 必須傳送這些事件順序︰

  1. IDebugEngineCreateEvent2 (如果它沒有已傳送的偵錯引擎的特定執行個體)

  2. IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2

此外,如果附加的原因是ATTACH_REASON_LAUNCH,DE 需要傳送給IDebugEntryPointEvent2事件。

一次 DE 取得IDebugProgramNode2物件對應至所偵錯程式來查詢任何私用介面。

程式節點的方法呼叫中所指定的陣列之前pProgramrgpProgramNodes,模擬,必要時上, 應該啟用IDebugProgram2介面,表示程式節點。 一般來說,不過,此步驟並非必要。 如需詳細資訊,請參閱安全性問題

另請參閱

IDebugEngine2
IDebugProgramNode2
IDebugProgram2
IDebugEventCallback2
ATTACH_REASON
IDebugEngineCreateEvent2
IDebugProgramCreateEvent2
IDebugLoadCompleteEvent2
IDebugEntryPointEvent2