您可以在 C++ 專案中使用「熱重新載入」功能(之前稱為「編輯並繼續」)。 如需此功能限制的相關資訊,請參閱 支援的程式碼變更 (C++)。
您可以在 C++ 專案中使用 [編輯並繼續]。 如需 [編輯並繼續] 限制的詳細資訊,請參閱 支援的程式碼變更 (C++)。
/Zo (增強最佳化偵錯) 編譯器選項會將額外資訊新增至 .pdb (符號) 檔案,供使用非 /Od (停用(偵錯)) 選項編譯的二進位檔使用。
此 /Zo 選項會停用編輯並繼續功能,如 如何:偵錯已最佳化的程式碼中所述。
啟用或停用熱重新載入
如果您在目前偵錯工作階段期間編輯程式碼時不希望套用變更,您可能想要停用 Hot Reload 的自動叫用。 您可以視需要重新啟用自動 Hot Reload。
這很重要
如需必要的組建設定和功能相容性的其他相關資訊,請參閱 Visual Studio 2015 Update 3 中的 C++ 編輯並繼續。
- 如果您目前處於偵錯工作階段中,請停止偵錯 (Shift + F5)。
開啟 [工具>選項] 窗格,然後展開 [ 所有設定>偵錯>.NET/C++ 熱重載 ] 區段。
若要在連接偵錯工具 (F5) 啟動時啟用熱重新載入,請選取右窗格中的 [啟用熱重新載入 ] 複選框。
選取核取方塊之後,您可以設定下列選項:
熱重新載入選項 Description 預設 繼續時自動套用變更 (僅限原生) 當您繼續附加偵錯工具時套用變更 (F5)。 已啟用 警告過時的程式碼 當偵錯工具遇到已修改但無法立即套用的程式碼時,啟用警告。 已啟用 不偵錯時啟用 在無偵錯工具連接的狀態下啟動時,啟用熱重新載入(Ctrl + )。 已啟用 在檔案儲存時套用 儲存檔案時套用變更。 Disabled 記錄詳細程度 設定啟用熱重新載入時的記錄層級。 從 最小、 詳細或 診斷中進行選擇。 最低限度
開啟 工具>選項 對話方塊,然後展開 Debugging>.NET/C++ 熱重新載入 區段。
選取下列一或所有選項以啟用此功能:
啟用熱重新載入:在連接偵錯工具 (F5) 的情況下啟動時啟用熱重新載入。
啟動時若未連接偵錯工具,啟用熱重新載入(Ctrl + )。
在檔案儲存時啟用熱重新載入:儲存檔案時啟用熱重新載入。
記錄冗長度:設定啟用熱重新載入時的記錄層級。 從 [最小 ] (預設)、[ 詳細] 或 [ 診斷] 中進行選擇。
變更這些設定會影響您處理的所有專案。 變更設定後,您不需要重建應用程式。 如果您從命令列或 makefile 建置應用程式,但您在 Visual Studio 環境中進行偵錯,如果您設定選項
/ZI,您仍然可以使用 [編輯並繼續]。請選擇 [確定]。
啟用或停用"編輯後繼續"功能
如果您正在對不希望在目前偵錯工作階段中套用的程式碼進行編輯,您可能會想要停用 [編輯並繼續] 的自動啟用功能。 您可以視需要重新啟用自動編輯和繼續。
這很重要
如需必要的組建設定和功能相容性的其他相關資訊,請參閱 Visual Studio 2015 Update 3 中的 C++ 編輯並繼續。
如果您目前處於偵錯工作階段中,請停止偵錯 (Shift + F5)。
開啟 工具>選項 對話方塊,然後展開 偵錯>一般 區段。
若要啟用 [編輯並繼續],請選取 [ 啟用編輯並繼續 ] 核取方塊。 若要停用該選項,請清除核取方塊。
在 [編輯並繼續 ] 群組中,選取或清除 [啟用原生編輯並繼續 ] 核取方塊。
變更此設定會影響您處理的所有專案。 變更此設定之後,您不需要重建應用程式。 如果您從命令列或 makefile 建置應用程式,但您在 Visual Studio 環境中進行偵錯,如果您設定選項
/ZI,您仍然可以使用 [編輯並繼續]。
明確執行程式碼變更。
在 C++ 中,編輯和繼續可以透過兩種方式套用程式碼變更。 當您選擇執行命令時,可以隱含地套用程式碼變更,也可以使用「 套用程式碼變更」 命令明確地套用程式碼變更。
當您明確套用程式碼變更時,您的程式會保持中斷模式 - 不會執行。
- 若要明確套用程式碼變更,請在 [偵錯] 功能表上選擇 [套用程式碼變更]。
如何停止程式碼變更
當 [編輯後繼續] 正在套用程式代碼變更時,您可以停止作業。
若要停止套用程式代碼變更:
在 [偵錯] 功能表上,選擇 [停止套用程式碼變更]。
只有在套用程式代碼變更時,才會顯示此功能表項。
如果您選擇此選項,則不會認可任何程式碼變更。
重設執行點
某些程式碼變更可能會導致執行點在 [編輯並繼續] 套用變更時移至新位置。 此功能會盡可能準確地放置執行點,但結果可能並非在所有情況下都是正確的。
在 C++ 中,當執行點變更時,對話方塊會通知您。 在繼續偵錯之前,您應該先確認位置正確。 如果不正確,請使用 [設定下一個陳述式 ] 命令。 如需詳細資訊,請參閱 設定要執行的下一個陳述式。
使用過時的程式碼
在某些情況下,編輯並繼續無法立即將程式碼變更套用至可執行檔,但如果您繼續偵錯,稍後可能能夠套用程式碼變更。 如果您編輯呼叫目前函式的函式,或將超過 64 個位元組的新變數新增至呼叫堆疊上的函式,就會發生這種情況。
在這種情況下,偵錯工具會繼續執行原始程式碼,直到可以套用變更為止。 陳舊的程式碼會在個別的來源視窗中顯示為暫存的來源檔案視窗,例如標題為 enc25.tmp。 編輯後的來源會繼續顯示在原始來源視窗中。 如果您嘗試編輯過時的程式碼,則會出現警告訊息。