偵錯準備:C++ 專案類型
本節說明如何偵錯由 Visual C++ 專案範本所建立的基本專案類型。
請注意,那些建立 DLL 作為其輸出的專案類型已被歸類為偵錯 DLL 專案,因為它們具有共同的功能。
本主題內容
建議的屬性設定
在所有 Unmanaged 偵錯情況中,某些屬性必須以相同的方式設定。 下表顯示建議的屬性設定。 此處未列出的設定,可能會因不同的 Unmanaged 專案類型而異。 如需詳細資訊,請參閱 C++ 偵錯組態的專案設定。
組態屬性 | C/C++ | 最佳化節點
屬性名稱 | 設定 |
---|---|
最佳化 | 設定為 [停用 (/0d)]。最佳化程式碼較難偵錯,因為產生的指令不能直接對應到您的原始程式碼。 如果您發現程式含有僅出現在最佳化程式碼中的 Bug,您可以開啟這個設定,但是請記住,顯示在 [反組譯碼] 視窗裡的程式碼是由最佳化原始程式碼所產生,可能與您在原始程式碼視窗所看到的內容不相符。 其他功能 (例如逐步執行) 可能無法如預期般地執行。 |
組態屬性 | 連結器 | 偵錯節點
屬性名稱 | 設定 |
---|---|
產生偵錯資訊 | 這個選項必須一律設定為 [是 (/DEBUG)],才能產生偵錯時需要的偵錯符號和檔案。 當應用程式開始運作時,就可以將其設定為關閉。 |
Win32 專案
Win32 應用程式是以 C 或 C++ 撰寫的傳統 Windows 程式。 在 Visual Studio 中可以直接偵錯這種類型的應用程式。
Win32 應用程式包括 MFC 應用程式和 ATL 專案。 它們會使用 Windows API,也可能會使用 MFC 或 ATL,但是不會使用 Common Language Runtime (CLR)。 但是,它們能呼叫使用 CLR 的 Managed 程式碼。
下列程序說明在 Visual Studio 內偵錯 Win32 專案的方法。 另一個偵錯 Win32 應用程式的方法,是在 Visual Studio 外部啟動應用程式,然後進行附加。 如需詳細資訊,請參閱附加至執行中的處理程序。
偵錯 C 或 C++ Win32 應用程式
在 Visual Studio 中開啟專案。
在 [偵錯] 功能表上選擇 [啟動]。
使用第一次查看偵錯工具中討論的技術進行偵錯。
手動設定偵錯組態
在 [檢視] 功能表上按一下 [屬性頁]。
如果 [組態屬性] 節點尚未開啟,請按一下將它開啟
選取 [一般],並將 [輸出] 列的值設定為 [偵錯]。
開啟 [C/C++] 節點,並選取 [一般]。
在 [偵錯] 列中,指定您希望編譯器產生的偵錯資訊類型。 您可能選擇的值包括 [程式資料庫 (/Zi)] 或 [編輯後繼續的程式資料庫 (/ZI)]。
選取 [最佳化],並在 [最佳化] 列的下拉清單中,選取 [停用 (/0d)]。
最佳化程式碼較難偵錯,因為產生的指令不能直接對應到您的原始程式碼。 如果您發現程式含有僅出現在最佳化程式碼中的錯誤,您可以啟動這個設定,但是請記住,顯示在 [反組譯碼] 視窗裡的程式碼是由最佳化原始程式碼所產生,可能無法對應至您在原始程式碼視窗所看到的內容。 逐步執行之類的功能,可能無法正確顯示中斷點和執行點。
開啟 [連結器] 節點,並選擇 [偵錯]。 在第一個 [產生] 資料列的下拉清單中,選取 [是 (/DEBUG)]。 進行偵錯時,一律要設定這個選項。
如需詳細資訊,請參閱 C++ 偵錯組態的專案設定。
相關內容
- 偵錯工具簡介
- C++ 偵錯組態的專案設定
- Attaching to a Running Program or Multiple Programs (附加至正在執行的程式或多個程式)
- Debug and Release Configurations (偵錯及發行組態)