2011-06-20 65 views
2

我有一個只發生在發佈模式的錯誤,這是一個問題,因爲我無法定期調試我的代碼。斷點說:「斷點不會被命中,沒有符號被載入這個文件。」我已經嘗試了許多人發佈的關於這個問題的其他解決方案,但是它們都不適用於發佈模式。對於如何在發佈模式下查找錯誤或者如何定期在發佈模式下調試代碼,有任何建議嗎?Visual Studio 2008斷點將不會被擊中

回答

4

您需要在您的項目中啓用調試符號。

如果這是一個C++項目,你需要做兩件事情讓調試信息:

1)在「項目設置」下的「配置屬性」 - >「C/C++」 - >「常規「,則需要將」調試信息格式「設置爲」程序數據庫(/ Zi)「。

2)在「配置屬性」 - >「連接器」 - >「調試」下的「項目設置」中,確保將「生成調試信息」設置爲「是(/ DEBUG)」。

然後,構建(編譯和鏈接)過程將生成一個帶有調試信息的PDB ...通常在您的exe文件旁邊,但帶有一個pdb擴展名。

現在,當您從Visual Studio運行項目時,應該能夠調試並設置斷點。

其他語言有相似的設置,雖然位置稍有不同。

+0

感謝您的幫助!這確實生成了一個PDB,但我仍然無法調試我的代碼,它給出了相同的錯誤。任何其他想法? – anthv123

+0

我認爲問題是我試圖調試的文件不是.exe的一部分。出於某種原因在調試模式下,它們是該.exe的一部分,它也被命名爲不同的東西 – anthv123

+0

您正在構建或使用DLL嗎?你需要確保那些調試信息也可用。 – Adisak

0

默認情況下,發佈配置不生成.pdb文件(其中包含無法加載的符號)。您可以在您的項目屬性中啓用此選項。另外請注意,默認情況下,您的代碼將進行優化。這可能會影響斷點,因此經常在調試發佈版本時,我會創建多個斷點(因爲無法加載符號,所以這不是您的問題)。

如果您在構建該程序的同一臺計算機上運行,​​則通常會找到.pdb文件和源代碼。如果沒有,請確保.pdb文件與.exe位於同一目錄中,以便運行時/調試器可以找到符號。

相關問題