如何建立 Visual C++ 應用程式的偵錯符號

文章翻譯 文章翻譯
文章編號: 291585 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

您可能必須建立您可以使用偵錯傾印檔案時或當您執行即時偵錯的方式使用偵錯工具的 Windows 中的符號。如果要下載這些工具,請造訪下列 Microsoft 網站:
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
符號會讓偵錯工具知道來源和行資訊,在您的應用程式中使用的變數的資料和資料型別為您的程式的資訊。

本文將告訴您,如何建置發行版本的 Visual C++ 應用程式時建立符號檔特別.pdb 檔案。當您使用 Microsoft 產品支援服務時,可能會要求您提供這些檔案以協助技術支援工程師協助您判斷您遇到的問題的原因。基於這個理由是應用的一個很好的作法來建置具有每一特定的發行版本程式的符號檔案。

本文假設您已熟悉使用 Microsoft Visual C++ 來建置應用程式。在 Visual C++ 如需詳細資訊,請參閱文件明確有關如何建立符號檔。

其他相關資訊

有兩種類型的組建: 發行和偵錯。永遠設定為 發行 的運送給客戶的組建的組建類型。偵錯 組建常用的應用程式開發階段。建置這兩種類型才能進行偵錯,而且這兩種類型的組建必須具有對它們進行偵錯符號。一個重要的差異在於 Visual C++ 中的 [發行] 設定會在編譯器最佳化和 偵錯 的設定開啟編譯器最佳化關閉。當編譯器最佳化亮應用程式執行速度較快。然而,不一樣容易逐步執行程式碼,因為來源的程式碼行不會編譯以它們出現在原始碼的確切順序。因此,在專案的在開發] 階段是很容易偵錯 偵錯 組建。

在 Visual C++ 6.0 和 Visual C++.NET 開發環境藉由選取 [做為組建] 類型的 [偵錯 來建立偵錯組建,並且您可以藉由選取 [發行] 做為組建類型建立發行組建。如果您不使用 Visual C++ 開發環境您必須知道哪些編譯器和連結器選項來設定。

若要啟用偵錯發行組建的 Visual C++.NET 或為 Visual C++ 6.0,變更下列編譯器上 [Cl.exe 選項編譯您的組建的:

編譯器

  • 啟用 / Z7 Visual C++.NET
  • 啟用/Zi Visual C++ 6.0
  • 啟用 / O2
如需有關編譯器選項的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站:
http://msdn.microsoft.com/en-us/library/aa236704.aspx

連結器

  • 選取 / INCREMENTAL: 否
  • 選取 / DEBUG: [是]
  • 選取 / OPT: REF
  • 選取 / OPT: ICF
如需有關連結器選項的詳細資訊,請造訪下列 MSDN 網站:
http://msdn.microsoft.com/en-us/library/aa270751.aspx

在發行的組建在 Visual C++ 6.0 中啟用偵錯

若要啟用偵錯在 Visual C++ 6.0 開發環境中的發行組建中,請依照下列步驟執行:
  1. 按一下 [專案] 功能表 設定]
  2. 按一下 [Win32 發行組態
  3. 在 [C/C + +] 索引標籤上按一下 [一般,並再設定 [下列:
    • 設定 最佳化 (最大化速度最小化大小)。
    • 設定為 [程式資料庫 的 [偵錯資訊]。
  4. 在 [連結] 索引標籤上按一下 [一般,並再設定 [下列:
    • 請確定您按一下以選取 [產生偵錯資訊
    • 請確定清除 [以累加方式連結] 核取方塊。
  5. 直接,編輯 專案選項,然後再新增 / opt: ref、 icf
您現在可以偵錯發行組建應用程式。若要找出問題逐步執行程式碼,直到您找到失敗發生的位置,再決定不正確的參數或程式碼。如果程式在偵錯組建中運作,但在發行組建失敗,很可能其中一個編譯器最佳化公開您的原始程式碼中的缺失。

若要建立偵錯組建,使用下列選項:

編譯器

  • 啟用/ZI
  • 啟用/Od

連結器

  • debug /
  • / 累加: 是的
在完成這些步驟,並重新編譯應用程式之後,您必須在 \Debug 或您專案的 \Release 目錄中的.pdb 檔案根據組建組態。

?考

若需更多相關資訊,請參閱下列書籍:

Robbins 為名字在後。偵錯應用程式。 Microsoft 請按。

屬性

文章編號: 291585 - 上次校閱: 2006年11月27日 - 版次: 4.6
這篇文章中的資訊適用於:
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
關鍵字:?
kbmt kbdebug kbhowto kbsymbols KB291585 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:291585
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com