共用方式為


附加至的程式

您已使用適當的連接埠來登錄您的程式後,您必須將偵錯工具附加至您要偵錯的程式。

選擇如何附加

有三種方法,此工作階段偵錯管理員 (SDM) 嘗試附加至正在偵錯的程式。

  1. 程式會啟動偵錯引擎,透過IDebugEngineLaunch2::LaunchSuspended (解譯的語言,例如典型) 的方法,SDM 會取得IDebugProgramNodeAttach2介面從IDebugProgramNode2要附加至該程式相關聯的物件。 如果可以取得 SDM IDebugProgramNodeAttach2介面,然後呼叫 SDM IDebugProgramNodeAttach2::OnAttach方法。 IDebugProgramNodeAttach2::OnAttach方法傳回S_OK以指出沒有未附加到程式,且可以附加至程式進行其他嘗試。

  2. 如果可以取得 SDM IDebugProgramEx2與要附加至 SDM 呼叫該程式的介面IDebugProgramEx2::Attach方法。 這種方法是一般由連接埠提供者從遠端啟動的程式。

  3. 如果程式無法連接到IDebugProgramNodeAttach2::OnAttachIDebugProgramEx2::Attach方法,SDM 就會將這個偵錯引擎 (如果尚未載入) 載入藉由呼叫CoCreateInstance函式,然後呼叫IDebugEngine2::Attach方法。 這種方法是在本機啟動連接埠提供者的程式。

    您也可呼叫自訂的通訊埠供應商的IDebugEngine2::Attach中的自訂通訊埠供應商的實作方法IDebugProgramEx2::Attach方法。 通常這種情況下,自訂的連接埠提供者會啟動遠端機器上的偵錯引擎。

工作階段偵錯管理員 (SDM) 呼叫方法附件是IDebugEngine2::Attach方法。

如果您要偵錯時,應用程式相同的處理序中執行您 DE,那麼您就必須實作下列的方法IDebugProgramNode2

IDebugEngine2::Attach呼叫方法時,請遵循下列步驟的實作中IDebugEngine2::Attach方法:

  1. 傳送IDebugEngineCreateEvent2 SDM 事件物件。 如需詳細資訊,請參閱 事件傳送

  2. 呼叫IDebugProgram2::GetProgramId上的方法IDebugProgram2物件傳遞至IDebugEngine2::Attach方法。

    這會傳回GUID ,用來識別程式。 GUID必須儲存在該物件代表 DE,程式在本機,而且它必須傳回何時IDebugProgram2::GetProgramId上呼叫方法IDebugProgram2介面。

    注意事項注意事項

    如果您決定使用IDebugProgramNodeAttach2介面,該程式的GUID傳遞至IDebugProgramNodeAttach2::OnAttach方法。這GUID用於程式的GUID所傳回的IDebugProgram2::GetProgramId方法。

  3. 傳送IDebugProgramCreateEvent2事件的物件,以通知 SDM 的局部IDebugProgram2 DE 代表程式建立物件。 如需詳細資訊,請參閱 事件傳送

    注意事項注意事項

    這並不相同IDebugProgram2物件傳遞至IDebugEngine2::Attach方法。先前傳遞IDebugProgram2物件的連接埠只辨認出來,而且是不同的物件。

請參閱

參考

IDebugEngineLaunch2::LaunchSuspended

IDebugProgram2

IDebugProgramCreateEvent2

IDebugProgramNodeAttach2

IDebugProgramNodeAttach2::OnAttach

IDebugProgramNode2

IDebugProgram2::GetProgramId

IDebugProgramEx2

IDebugProgramEx2::Attach

IDebugEngine2::Attach

概念

啟動為基礎的附件

事件傳送