2013-06-25 45 views
0

我正在使用最初在VS 2006中構建的簽出的Visual Studio C++項目。我想放置斷點以查看某些函數的調用方式,並更好地遵循工作流程。在發佈模式下進行調試或更改_iterator_debug_level?

我在發佈模式下重建了Visual Studio 2010中的代碼,它的構建和運行良好。不幸的是,從一些研究中,我瞭解到某些斷點不能在釋放模式下被觸發,我需要在調試模式下構建代碼來觸發斷點。

但是,當我嘗試以調試模式構建代碼時,鏈接器抱怨具有錯誤_ITERATOR_DEBUG_LEVEL的.lib文件。有沒有一種方法可以在.lib中更改_ITERATOR_DEBUG_LEVEL,以便在調試模式下構建它?如果沒有,是否有任何方法在發佈模式或ReleaseWithDebug模式下擊中這些斷點?

回答

0

我剛看到這篇文章從Hansleman最近:

http://www.hanselman.com/blog/DebugVsReleaseTheBestOfBothWorlds.aspx

它使用的調試設置的組合和ini文件基本上說,你可以編譯優化(釋放)和調試,而不重新編譯(調試) 。

+0

謝謝你 - 我試圖遵循這些步驟。我已經做了一些研究,但我不確定它是什麼意思發出調試符號 - 這是否意味着創建或查找.pdbs?我在哪裏可以在我的項目屬性中執行此操作?我曾嘗試在調試>選項和設置>調試>符號中添加符號文件位置,但我一直未能找到所有的.pdbs –

+0

pdbs通常是在生成項目時生成的。我正在查看C#屬性,因此它可能在C++屬性中有所不同,但我先轉到「構建」選項卡,然後選擇「高級」,並確保選中「調試信息」已滿。通常在選擇調試配置時爲您選擇。 –

+0

謝謝 - 我最終只是轉換類似於您提供的文章的設置,因此我可以在發佈模式下進行調試。 –

0

您可以通過配置項目屬性頁如下調試C++在釋放模式:

  1. 在C/C++節點 - >常規節點。 將「調試信息格式」設置爲「C7兼容(/ Z7)」或「程序 數據庫(/ Zi)」。
  2. 在鏈接器節點 - >常規節點下。將「啓用增量鏈接」設置爲「否(/ INCREMENTAL:NO)」。
  3. 在鏈接器節點 - >調試節點下。將「生成調試信息」設置爲「是(/ DEBUG)」。
  4. 在鏈接器節點 - >優化節點下。將「參考」設置爲「/ OPT:REF」
  5. 在鏈接器節點 - >優化節點下。將「啓用COMDAT摺疊」設置爲「/ OPT:ICF」。

您現在可以在您的發佈版本應用程序中調試並逐步完成代碼。

注:當設置屬性確保你選擇了正確的配置和平臺(組合框在屬性頁面的頂部)

相關問題