IDE 可以運作三種模式,如下所示:
-
自訂偵錯引擎 (DE) 如何在這些模式之間轉換是實作決策,需要您熟悉轉換機制。 DE 可能會或可能不會直接實現這些模式。 這些模式實際上是偵錯套件模式,可根據使用者動作或來自 DE 的事件進行切換。 例如,從執行模式轉換至中斷模式是由來自 DE 的停止事件所引發。 從中斷到執行模式或步驟模式的轉換是由執行步驟或執行等操作的使用者引發的。 如需 DE 轉換的詳細資訊,請參閱 執行控制。
設計模式
設計模式是 Visual Studio 偵錯的非執行狀態,在此期間您可以在應用程式中設定偵錯功能。
在設計模式期間,只會使用少數偵錯功能。 開發人員可以選擇設定中斷點或建立監視表達式。 當 IDE 處於設計模式時,絕不會載入或呼叫 DE。 與 DE 的互動僅在運行和休息模式下發生。
執行模式
當程式在 IDE 的偵錯工作階段中執行時,就會發生執行模式。 應用程式會執行,直到終止、中斷點為止,或直到引發例外為止。 當應用程式執行至終止時,DE 會轉換成設計模式。 當命中斷點或拋出例外時,DE 會切換至中斷模式。
休息模式
中斷模式會在暫停執行偵錯程式時發生。 中斷模式為開發人員提供中斷時應用程式的快照集,並允許開發人員分析應用程式的狀態並變更應用程式的執行方式。 開發人員可以檢視和編輯程式碼、檢查或修改資料、重新啟動應用程式、結束執行或從同一點繼續執行。
當DE傳送同步停止事件時,會進入中斷模式。 同步停止事件 (也稱為停止事件) 會通知工作階段偵錯管理員 (SDM) 和 IDE,正在偵錯的應用程式已停止執行程式碼。 IDebugBreakpointEvent2 和 IDebugExceptionEvent2 介面是停止事件的範例。
透過呼叫下列其中一個方法,停止的事件會繼續,將偵錯工具從中斷模式轉換成執行或逐步模式:
步進模式
當程式逐步執行程式碼的下一行,或進入、超越或退出函數時,就會發生步驟模式。 步驟是透過呼叫 方法Step來執行。 此方法需要 DWORD將 STEPUNIT 和 STEPKIND 列舉指定為輸入參數。
當程式成功逐步執行至下一行程式碼或進入函式,或執行至游標或設定的中斷點時,DE 會自動轉換回中斷模式。