共用方式為


編輯後繼續 (C++)

您可以在 C++ 專案中使用「熱重新載入」功能(之前稱為「編輯並繼續」)。 如需此功能限制的相關資訊,請參閱 支援的程式碼變更 (C++)。

您可以在 C++ 專案中使用 [編輯並繼續]。 如需 [編輯並繼續] 限制的詳細資訊,請參閱 支援的程式碼變更 (C++)。

/Zo (增強最佳化偵錯) 編譯器選項會將額外資訊新增至 .pdb (符號) 檔案,供使用非 /Od (停用(偵錯)) 選項編譯的二進位檔使用。

/Zo 選項會停用編輯並繼續功能,如 如何:偵錯已最佳化的程式碼中所述。

啟用或停用熱重新載入

如果您在目前偵錯工作階段期間編輯程式碼時不希望套用變更,您可能想要停用 Hot Reload 的自動叫用。 您可以視需要重新啟用自動 Hot Reload。

這很重要

如需必要的組建設定和功能相容性的其他相關資訊,請參閱 Visual Studio 2015 Update 3 中的 C++ 編輯並繼續

  1. 如果您目前處於偵錯工作階段中,請停止偵錯 (Shift + F5)。
  1. 開啟 [工具>選項] 窗格,然後展開 [ 所有設定>偵錯>.NET/C++ 熱重載 ] 區段。

  2. 若要在連接偵錯工具 (F5) 啟動時啟用熱重新載入,請選取右窗格中的 [啟用熱重新載入 ] 複選框。

    選取核取方塊之後,您可以設定下列選項:

    熱重新載入選項 Description 預設
    繼續時自動套用變更 (僅限原生) 當您繼續附加偵錯工具時套用變更 (F5)。 已啟用
    警告過時的程式碼 當偵錯工具遇到已修改但無法立即套用的程式碼時,啟用警告。 已啟用
    不偵錯時啟用 在無偵錯工具連接的狀態下啟動時,啟用熱重新載入(Ctrl + )。 已啟用
    在檔案儲存時套用 儲存檔案時套用變更。 Disabled
    記錄詳細程度 設定啟用熱重新載入時的記錄層級。 從 最小詳細診斷中進行選擇。 最低限度
  1. 開啟 工具>選項 對話方塊,然後展開 Debugging>.NET/C++ 熱重新載入 區段。

  2. 選取下列一或所有選項以啟用此功能:

    • 啟用熱重新載入:在連接偵錯工具 (F5) 的情況下啟動時啟用熱重新載入。

    • 啟動時若未連接偵錯工具,啟用熱重新載入Ctrl + )。

    • 檔案儲存時啟用熱重新載入:儲存檔案時啟用熱重新載入。

    • 記錄冗長度:設定啟用熱重新載入時的記錄層級。 從 [最小 ] (預設)、[ 詳細] 或 [ 診斷] 中進行選擇。

    變更這些設定會影響您處理的所有專案。 變更設定後,您不需要重建應用程式。 如果您從命令列或 makefile 建置應用程式,但您在 Visual Studio 環境中進行偵錯,如果您設定選項 /ZI ,您仍然可以使用 [編輯並繼續]。

  3. 請選擇 [確定]

啟用或停用"編輯後繼續"功能

如果您正在對不希望在目前偵錯工作階段中套用的程式碼進行編輯,您可能會想要停用 [編輯並繼續] 的自動啟用功能。 您可以視需要重新啟用自動編輯和繼續。

這很重要

如需必要的組建設定和功能相容性的其他相關資訊,請參閱 Visual Studio 2015 Update 3 中的 C++ 編輯並繼續

  1. 如果您目前處於偵錯工作階段中,請停止偵錯 (Shift + F5)。

  2. 開啟 工具>選項 對話方塊,然後展開 偵錯>一般 區段。

  3. 若要啟用 [編輯並繼續],請選取 [ 啟用編輯並繼續 ] 核取方塊。 若要停用該選項,請清除核取方塊。

  4. [編輯並繼續 ] 群組中,選取或清除 [啟用原生編輯並繼續 ] 核取方塊。

    變更此設定會影響您處理的所有專案。 變更此設定之後,您不需要重建應用程式。 如果您從命令列或 makefile 建置應用程式,但您在 Visual Studio 環境中進行偵錯,如果您設定選項 /ZI ,您仍然可以使用 [編輯並繼續]。

明確執行程式碼變更。

在 C++ 中,編輯和繼續可以透過兩種方式套用程式碼變更。 當您選擇執行命令時,可以隱含地套用程式碼變更,也可以使用「 套用程式碼變更」 命令明確地套用程式碼變更。

當您明確套用程式碼變更時,您的程式會保持中斷模式 - 不會執行。

  • 若要明確套用程式碼變更,請在 [偵錯] 功能表上選擇 [套用程式碼變更]。

如何停止程式碼變更

當 [編輯後繼續] 正在套用程式代碼變更時,您可以停止作業。

若要停止套用程式代碼變更:

  • [偵錯] 功能表上,選擇 [停止套用程式碼變更]。

    只有在套用程式代碼變更時,才會顯示此功能表項。

    如果您選擇此選項,則不會認可任何程式碼變更。

重設執行點

某些程式碼變更可能會導致執行點在 [編輯並繼續] 套用變更時移至新位置。 此功能會盡可能準確地放置執行點,但結果可能並非在所有情況下都是正確的。

在 C++ 中,當執行點變更時,對話方塊會通知您。 在繼續偵錯之前,您應該先確認位置正確。 如果不正確,請使用 [設定下一個陳述式 ] 命令。 如需詳細資訊,請參閱 設定要執行的下一個陳述式

使用過時的程式碼

在某些情況下,編輯並繼續無法立即將程式碼變更套用至可執行檔,但如果您繼續偵錯,稍後可能能夠套用程式碼變更。 如果您編輯呼叫目前函式的函式,或將超過 64 個位元組的新變數新增至呼叫堆疊上的函式,就會發生這種情況。

在這種情況下,偵錯工具會繼續執行原始程式碼,直到可以套用變更為止。 陳舊的程式碼會在個別的來源視窗中顯示為暫存的來源檔案視窗,例如標題為 enc25.tmp。 編輯後的來源會繼續顯示在原始來源視窗中。 如果您嘗試編輯過時的程式碼,則會出現警告訊息。