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

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

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 物件,就可以查詢任何私人介面。

    在呼叫 或 rgpProgramNodespProgram指定數位中程序節點的方法之前,如有需要,應該在表示程序節點的IDebugProgram2介面上啟用模擬。 不過,通常不需要此步驟。 如需詳細資訊,請參閱 安全性問題

另請參閱