診斷服務
Mfc 程式庫會提供許多診斷服務,會使偵錯程式更容易。 這些診斷的服務包括巨集和全域函式,可讓您追蹤您的程式的記憶體配置、 傾印的物件內容,在執行階段,且在 run time 時列印偵錯訊息。 巨集和全域函式的診斷服務分為以下類別:
一般的診斷巨集
一般的診斷函式和變數
物件的診斷功能
這些巨集和函式都可以為所有類別都衍生自CObject MFC 偵錯和發行版本中。 不過,所有除非DEBUG_NEW和驗證不執行任何動作,在發行版本。
帶有括在偵錯程式庫中所有配置的記憶體區塊會號以一系列的 「 保護位元組 」。如果這些位元組會被打擾依錯誤的記憶體寫入,診斷的常式可以報告問題。 如果您將包含行:
#define new DEBUG_NEW
在實作檔案中,所有電話新會儲存在記憶體配置發生的事,檔名和行數字。 此函式 CMemoryState::DumpAllObjectsSince 會顯示此額外資訊,並讓您找出記憶體遺漏。 參考的類別也 CDumpContext 如需有關診斷輸出。
此外,c 執行階段程式庫也支援一組可用來偵錯應用程式的診斷功能。 如需詳細資訊,請參閱偵錯常式在執行階段程式庫的參考。
MFC 一般診斷巨集
列印一則訊息,並再中止程式,如果指定的運算式評估為 ,則為 FALSE 中的文件庫的偵錯版本。 |
|
測試物件是物件的指定類別或衍生自指定類別的類別。 |
|
測試物件的內部的有效性,藉由呼叫其AssertValid成員函式。 通常覆寫從CObject。 |
|
提供檔名和行號的偵錯模式中的所有物件配置,可以協助您尋找記憶體遺漏。 |
|
類似於 ASSERT ,但不會測試值的運算式。 適合應該只在偵錯模式中執行的程式碼。 |
|
提供printf-要在文件庫的偵錯版本的功能。 |
|
類似於 ASSERT 但會評估程式庫也像偵錯版本的發行版本中的運算式。 |
MFC 一般診斷變數和函式
傳送的全域變數 CDumpContext 偵錯工具的 [輸出] 視窗,或偵錯終端機的資訊。 |
|
全域變數,控制偵錯記憶體配置器的行為。 |
|
用來通過測試的全域變數 SCODE 是否就會發生錯誤以及,如果是的話,就會擲回適當的錯誤。 |
|
檢查全部目前配置的記憶體。 |
|
如果呼叫在偵錯工具時,將偵錯時傾出物件的狀態。 |
|
產生目前的堆疊的映像。 這個函式永遠會以靜態方式連結。 |
|
啟用記憶體遺漏傾印。 |
|
會開啟或關閉追蹤的記憶體。 |
|
確認已正確地配置記憶體區塊。 |
|
確認記憶體位址範圍是程式的範圍內。 |
|
判斷字串的指標是否有效。 |
|
可讓每個記憶體配置中的函式呼叫。 |
MFC 物件診斷函式
執行指定的函式,所有CObject-衍生類別,可支援執行階段型別檢查。 |
|
執行指定的函式,所有CObject-衍生物件配置與新。 |