使用執行階段架構來判斷偵錯引擎 (DE) 實作策略。 您可以針對您要偵錯的程式建立同程偵錯引擎。 建立進程內的偵錯引擎以供 Visual Studio 工作階段偵錯管理員 (SDM) 使用。 或者,為兩個應用程式建立一個獨立進程的偵錯引擎。 以下指南應該可以幫助您在這三種策略之間進行選擇。
指導方針
雖然 DE 可能會獨立於程序之外運行於 SDM 和您正在偵錯的程式,但通常並沒有必要這樣做。 跨進程界限的呼叫相對較慢。
已針對 Win32 原生執行時間環境和一般語言執行時間環境提供偵錯引擎。 如果您必須取代任一環境的 DE,您應該透過 SDM 以同程方式建立 DE。
否則,您可以創建 SDM 的進程內 DE,或創建您正偵錯程式的進程內 DE。 您必須考慮 DE 的運算式評估器是否需要經常存取程式符號存放區。 或者,如果符號存放區可以載入記憶體以進行快速存取。 此外,請考慮以下方法:
如果運算式評估器與符號存放區之間沒有太多呼叫,或符號存放區可以讀入 SDM 記憶體空間,請建立 SDM 的同進程 DE。 當偵錯引擎附加至您的程式時,您必須將偵錯引擎的 CLSID 傳回給 SDM。 SDM 會使用此 CLSID 來建立 DE 的進程內實例。
如果 DE 必須呼叫程式以存取符號庫,請將 DE 作為該程式同一進程的一部分進行執行。 在此情況下,程式會建立 DE 的實例。