共用方式為


診斷服務

Mfc 程式庫會提供許多診斷服務,會使偵錯程式更容易。 這些診斷的服務包括巨集和全域函式,可讓您追蹤您的程式的記憶體配置、 傾印的物件內容,在執行階段,且在 run time 時列印偵錯訊息。 巨集和全域函式的診斷服務分為以下類別:

  • 一般的診斷巨集

  • 一般的診斷函式和變數

  • 物件的診斷功能

這些巨集和函式都可以為所有類別都衍生自CObject MFC 偵錯和發行版本中。 不過,所有除非DEBUG_NEW驗證不執行任何動作,在發行版本。

帶有括在偵錯程式庫中所有配置的記憶體區塊會號以一系列的 「 保護位元組 」。如果這些位元組會被打擾依錯誤的記憶體寫入,診斷的常式可以報告問題。 如果您將包含行:

#define new DEBUG_NEW

在實作檔案中,所有電話會儲存在記憶體配置發生的事,檔名和行數字。 此函式 CMemoryState::DumpAllObjectsSince 會顯示此額外資訊,並讓您找出記憶體遺漏。 參考的類別也 CDumpContext 如需有關診斷輸出。

此外,c 執行階段程式庫也支援一組可用來偵錯應用程式的診斷功能。 如需詳細資訊,請參閱偵錯常式在執行階段程式庫的參考。

MFC 一般診斷巨集

判斷提示

列印一則訊息,並再中止程式,如果指定的運算式評估為 ,則為 FALSE 中的文件庫的偵錯版本。

ASSERT_KINDOF

測試物件是物件的指定類別或衍生自指定類別的類別。

ASSERT_VALID

測試物件的內部的有效性,藉由呼叫其AssertValid成員函式。 通常覆寫從CObject

DEBUG_NEW

提供檔名和行號的偵錯模式中的所有物件配置,可以協助您尋找記憶體遺漏。

DEBUG_ONLY

類似於 ASSERT ,但不會測試值的運算式。 適合應該只在偵錯模式中執行的程式碼。

追蹤

提供printf-要在文件庫的偵錯版本的功能。

請確認

類似於 ASSERT 但會評估程式庫也像偵錯版本的發行版本中的運算式。

MFC 一般診斷變數和函式

afxDump

傳送的全域變數 CDumpContext 偵錯工具的 [輸出] 視窗,或偵錯終端機的資訊。

afxMemDF

全域變數,控制偵錯記憶體配置器的行為。

AfxCheckError

用來通過測試的全域變數 SCODE 是否就會發生錯誤以及,如果是的話,就會擲回適當的錯誤。

AfxCheckMemory

檢查全部目前配置的記憶體。

AfxDump

如果呼叫在偵錯工具時,將偵錯時傾出物件的狀態。

AfxDumpStack

產生目前的堆疊的映像。 這個函式永遠會以靜態方式連結。

AfxEnableMemoryLeakDump

啟用記憶體遺漏傾印。

AfxEnableMemoryTracking

會開啟或關閉追蹤的記憶體。

AfxIsMemoryBlock

確認已正確地配置記憶體區塊。

AfxIsValidAddress

確認記憶體位址範圍是程式的範圍內。

AfxIsValidString

判斷字串的指標是否有效。

AfxSetAllocHook

可讓每個記憶體配置中的函式呼叫。

MFC 物件診斷函式

AfxDoForAllClasses

執行指定的函式,所有CObject-衍生類別,可支援執行階段型別檢查。

AfxDoForAllObjects

執行指定的函式,所有CObject-衍生物件配置與

請參閱

概念

MFC 巨集和全域變數