診斷服務
MFC 程式庫提供可偵錯程式更容易許多診斷服務。 這些診斷服務包括在執行階段期間,在執行階段,讓您追蹤程式的記憶體配置,傾印物件內容,並列印偵錯訊息的巨集和全域函式。 巨集和全域函式診斷服務的群組可分類如下:
一般診斷巨集
一般診斷函式和變數
物件診斷函式
這些巨集和函式為從 CObject 衍生的所有類別具有 MFC 偵錯版本和發行版本。 不過,所有除了 DEBUG_NEW 和 VERIFY 不會在發行版本。
在偵錯程式庫中,所有配置的記憶體區塊會以一系列「保護位元組」。如果這些位元組而迷失記憶體寫入呼叫了,則診斷常式可以報告問題。 如果包含行:
#define new DEBUG_NEW
在您的實作檔,對 new 的所有呼叫都會儲存檔案名稱和行號記憶體配置發生問題的位置。 CMemoryState::DumpAllObjectsSince 函式會顯示這項資訊,可讓您識別記憶體遺漏。 也會參考類別 CDumpContext 有關診斷輸出的詳細資訊。
此外, C 執行階段程式庫也支援您使用偵錯應用程式的一組診斷功能。 如需詳細資訊,請參閱執行階段程式庫參考中的除錯程序。
MFC一般診斷巨集
列印訊息再中止程式,如果指定的運算式評估為在程式庫的偵錯版本的 FALSE 。 |
|
測試物件是指定之類別的物件從指定的類別衍生自或的類別。 |
|
藉由呼叫它的 AssertValid 成員函式會測試物件的內部有效性;通常會覆寫 CObject。 |
|
提供檔名和行號所有物件配置的在偵錯模式協助尋找記憶體遺漏。 |
|
類似於 ASSERT ,但是不會測試運算式的值;對於在偵錯模式只應該執行的程式碼。 |
|
提供在程式庫的偵錯版本的 printf相同的功能。 |
|
類似於 ASSERT ,但是評估運算式在程式庫的發行版本以及在偵錯版本。 |
MFC 一般診斷函式和變數
CDumpContext 傳送資訊到偵錯工具的全域變數輸出視窗或到偵錯 Terminal Ready。 |
|
控制偵錯記憶體配置器行為的全域變數。 |
|
用於的全域變數測試成功 SCODE 看它是否為錯誤,因此,如果是,則會擲回適當的錯誤。 |
|
目前檢查所有的完整性配置記憶體。 |
|
如果呼叫,以便在偵錯工具,傾印物件的狀態,在偵錯時。 |
|
產生目前堆疊上的影像。 這個函式是靜態的只能連接。 |
|
啟用記憶體遺漏傾印。 |
|
開啟和關閉追蹤記憶體。 |
|
確認適當配置記憶體區塊。 |
|
確認記憶體位址範圍在程式的範圍內。 |
|
判斷字串的指標是否有效。 |
|
啟用會在每次記憶體配置的函式。 |
MFC 物件診斷函式
執行所有 CObject的指定函式-支援執行階段型別檢查的衍生類別。 |
|
執行所有 CObject的指定函式-配置與 new的衍生物件。 |