Służby diagnostyczne

Biblioteka klas Microsoft Foundation dostarcza wiele usług diagnostycznych, które ułatwiają debugowanie programów łatwiejsze. Te usługi diagnostyczne zawierają makra i funkcje globalne, które umożliwiają śledzenie pamięci programu alokacje, zrzutu zawartość obiektów w czasie wykonywania i wydrukować komunikatów debugowania w czasie wykonywania. Makra i funkcje globalne dla usługi diagnostyczne są zgrupowane w następujących kategoriach:

Te makra i funkcje są dostępne dla wszystkich klas pochodzących z CObject w debugowania i wydanie wersji MFC. Jednakże wszystkie z wyjątkiem DEBUG_NEW i Sprawdź, czy nie rób nic w wersji.

W bibliotece programu Debug wszystkich bloków pamięci przydzielone są oddzielona z serii "straży bajty." Jeśli te bajty są zakłócany przez zapisu wadliwe pamięci, procedur diagnostycznych może zgłosić problem. Jeśli dołączysz wiersz

# define nowych DEBUG_NEW

w pliku wdrażania wszystkich wywołań nowego będzie przechowywać numer pliku i linii, gdzie odbyły się alokacji pamięci. Funkcja CMemoryState::DumpAllObjectsSince wyświetli to dodatkowe informacje, co pozwala zidentyfikować przecieki pamięci. Należy się także odnieść do klasy CDumpContext dodatkowe informacje na temat diagnostycznych wyjściowy.

Ponadto c run-time library obsługuje również zestaw funkcji diagnostycznych, których można użyć do debugowania aplikacji. Aby uzyskać więcej informacji, zobacz Debugowania procedur w Run-Time Library Reference.

MFC ogólnej diagnostyki makra

POTWIERDZAJ Drukuje wiadomość i następnie przerywa programu, jeśli określone wyrażenie ma wartość FAŁSZ wersja debugowania biblioteki.
ASSERT_KINDOF Badania, których obiekt jest obiektem określonej klasy lub klas pochodnych określonej klasy.
ASSERT_VALID Badania wewnętrznych ważności obiektu przez wywołanie funkcji członek jego AssertValid ; zazwyczaj zastąpiona z CObject.
DEBUG_NEW Podaje nazwę pliku i linia numer dla wszystkich przydziałów obiektu w trybie debugowania do znajdowania przecieki pamięci.
ŚLEDZENIA Zapewnia printf-jak zdolności w wersji debugowej biblioteki.
TRACE0 Podobne do śledzenia , ale ma format ciągu bez argumentów.
TRACE1 Podobne do śledzenia , ale ma format ciągu z pojedynczym argumentem.
TRACE2 Podobne do śledzenia , ale ma format ciągu z dwóch argumentów.
TRACE3 Podobne do śledzenia , ale ma format ciągu z trzech argumentów.
SPRAWDŹ, CZY Podobnie na ASSERT ale oblicza wyrażenie w wersji biblioteki, a także w wersji debugera.

MFC ogólnej diagnostyki zmiennych i funkcje

afxDump Zmienną globalną, która wysyła informacje o CDumpContext , aby oknie wyjściowych debugera lub terminalu debugowania.
afxMemDF Zmienną globalną, która steruje zachowaniem debugowania przydzielania pamięci.
afxTraceEnabled Zmienna globalna pozwala włączyć lub wyłączyć wyjście z makra śledzenia.
afxTraceFlags Zmienna globalna używanych do włączania wbudowane funkcje raportowania MFC.
AfxCheckError Zmienna globalna używane do testowania przekazany SCODE czy występuje błąd, i jeśli tak, generuje odpowiednie błąd.
AfxCheckMemory Kontrole integralności wszystkich aktualnie alokowana pamięć.
AfxDump Jeśli jest wywołana w debugerze, zrzuca stan obiektu podczas debugowania.
AfxDumpStack Generowanie obrazu bieżącego stosu. Ta funkcja jest zawsze powiązana statycznie.
AfxEnableMemoryTracking Włącza pamięci śledzenia Włączanie i wyłączanie.
AfxIsMemoryBlock Weryfikuje, właściwie przydzielone bloku pamięci.
AfxIsValidAddress Weryfikuje, że zakres adresów pamięci mieści się w granicach programu.
AfxIsValidString Określa, czy wskaźnik ciąg jest prawidłowa.
AfxSetAllocHook Umożliwia wywołania funkcji w każdej alokacji pamięci.

Funkcje diagnostyczne obiektu MFC

AfxDoForAllClasses Wykonuje funkcję na wszystkich CObject-pochodnych klas, które obsługują, kontrola typów w czasie wykonywania.
AfxDoForAllObjects Wykonuje funkcję na wszystkich CObject-pochodnych obiekty, które zostały przyznane z nowych.

Index