2016-09-15 51 views
0

我有問題編輯&繼續功能升級VS2015升級3.我目前的版本是MS VS社區2015年,版本14.0.25431.01,更新3在Visual Studio 2015更新3編輯並繼續不起作用我

我明白,在調試中只能應用一些更改。這是我的經驗,直到我安裝VS2015更新3.此後,任何更改總是被拒絕,即編輯&繼續無用。我相信在我的項目中設置是正確的,(或者至少以前是VS的以前版本)。

我將不勝感激任何幫助。在此先感謝

步驟來重現問題:

  1. 創建默認的控制檯應用程序。使用默認的Win32 Debug配置構建它。
  2. 設定斷點例如在行22讀取HMODULE hModule = ::GetModuleHandle(nullptr);
  3. 啓動調試器。它停在22行
  4. 修改從if (hModule != nullptr)if (hModule != NULL)
  5. 按調試工具欄上的應用變化,(或按執行,一步執行下一行或什麼迫使VS調試器來實現更改並繼續調試
  6. 線24
  7. 的改變未被接受時產生錯誤,請參閱所附的圖片。 enter image description here

事實上,在任何天然的Win32調試C++應用程序的任何變化不能在MS VS調試會話應用。

Libor Jendele

+0

你可以附上圖片或錯誤?它似乎從你的問題中缺失。 – Ramkumar

+0

好的,我剛剛檢查了你的內部反饋項目@MSFT。我*猜*是你有/ d2Zi +(或其他編譯器選項),覆蓋/ ZI(編輯並繼續) - 你可以檢查嗎? – Ramkumar

回答

1

重新編譯期間的警告ignoring unknown option '-Z+'表示原始CPP文件是使用未公開的編譯器開關/ d2Zi +(根據this似乎用/ Zo替換)編譯的。此開關基本上用於通過優化代碼獲得更豐富的調試信息(here's a good post about it by Bruce Dawson *)。如果CPP文件沒有用/ ZI編譯,調試器/編譯器應該拒絕在編輯和重新編譯過程中重新編譯它,但是這會導致錯誤,導致在重新編譯期間出現這種隨機/不可診斷的錯誤。

正確的修復方法是用/ Zo(它是交換機的已記錄和支持的版本)替換/ d2Zi +,或者從cl命令行完全刪除/ d2Zi +,因爲AFAIK不會爲「調試」配置和編輯並繼續應該照常工作。如果在調試>選項下啓用了EnC,但是這已經過時並且當前不正確 - 它實際上是VS中的「啓用本機兼容模式」選項。注意:Bruce的博客提到如果啓用了EnC,則Release配置的豐富調試信息不​​可用。 2015與/ d2Zi +不兼容(防止優化調試過於豐富和詳細)。

0

在VS 2012 Update 3中有一個breaking changes in Edit & Continue。報價:

允許預編譯(僅限本機):調試選項調試>選項>常規>允許預編譯(僅限本機)不再支持Visual Studio 2015 Update 3和默認調試器。

禁用此選項,重建解決方案,然後重試。它應該工作。

+0

@ user1969843,Nikita的建議很有幫助,它確實對VS2015更新3中的VC++的Edit&Continue功能有一些要求/更新:https://blogs.msdn.microsoft.com/vcblog/2016/07/01/c -edit-and-continue-in-visual-studio-2015-update-3/ –

+0

@JackZhai很高興聽到,請投票贊成,以表明其有用 – Nikita

+0

感謝您的回覆。我檢查了所有必需的設置是否正確,(包括禁用允許預編譯)。我做了重建;問題依然存在! 我遇到的麻煩是因爲「新增全局或靜態變量'SG228034'被添加了」msg,看到附帶的png出錯了。在每個項目中,我編輯並繼續,「應用更改」在錯誤列表中生成類似錯誤消息!我不知道我的解決方案中有這樣的變量;我不會改變它。這必須在內部生成。請找到我的解決方案的鏈接https://app.box.com/s/d2d3bslq5gi1xijsvc3eem1241a9cb31 任何其他想法? – user1969843

相關問題