Udostępnij za pośrednictwem


Służby diagnostyczne

Biblioteka klas Microsoft Foundation dostarcza wiele usług diagnostycznych, które debugowanie programów łatwiejsze.Te usługi diagnostyczne zawierać makra i funkcje globalne, które umożliwiają śledzenie pamięci programu alokacje, zrzutu zawartość obiektów w czasie wykonywania i drukować komunikaty debugowania w czasie wykonywania.Makra i funkcje globalne dla usług diagnostycznych są podzielone na następujące kategorie:

  • Ogólne makra diagnostyczne

  • Ogólne funkcje diagnostyczne i zmiennych

  • Funkcje diagnostyczne obiektu

Te makra i funkcje są dostępne dla wszystkich klas pochodnych CObject w wersji Debug i Release MFC.Jednakże, wszystkie z wyjątkiem DEBUG_NEW i Sprawdź nic w wersji wydania.

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

#define new DEBUG_NEW

w pliku wykonania wszystkich wzywa do Nowy będzie przechowywany numer nazwy pliku i linii, gdzie alokacja pamięci miała miejsce.Funkcja CMemoryState::DumpAllObjectsSince będą wyświetlane w tym dodatkowe informacje, co pozwala zidentyfikować przecieki pamięci.Należy się także odnieść do klasy CDumpContext dodatkowe informacje na temat diagnostyczne wyjściowego.

Ponadto biblioteka uruchomieniowa c obsługuje także zestaw funkcji diagnostycznych, które można używać do debugowania aplikacji.Aby uzyskać więcej informacji, zobacz Debugowania procedur w Run-Time Library Reference.

Makra diagnostyczne ogólne MFC

POTWIERDZENIA

Drukuje wiadomość, a następnie przerywa program, jeśli określony wyrażenie FALSE w wersji debugowej biblioteki.

ASSERT_KINDOF

Testy, które obiekt jest obiektem określonej klasy lub klas pochodnych określonej klasy.

ASSERT_VALID

Badania ważności wewnętrznego obiektu, wywołując jego AssertValid funkcji składowej; Zazwyczaj zastąpiona z CObject.

DEBUG_NEW

Dostarcza nazwę pliku i numer wiersza dla wszystkich przydziałów obiekt w trybie debugowania do znajdowania przecieki pamięci.

DEBUG_ONLY

Podobny do ASSERT , ale nie sprawdza wartość wyrażenia; przydatne dla kodu, który powinien wykonać tylko w trybie debugowania.

TRACE

Zawiera printf-jak zdolności w wersji debugowej biblioteki.

SPRAWDŹ

Podobny do ASSERT , ale oblicza wyrażenie w wersji biblioteki, a także w wersji.

Zmienne diagnostyczne ogólne MFC i funkcje

afxDump

Zmienna globalna, która wysyła CDumpContext informacji w oknie danych wyjściowych debugera lub terminal debugowania.

afxMemDF

Zmienna globalna kontroluje zachowanie debugowania programu przydzielania pamięci.

AfxCheckError

Zmienna globalna, używane do testowania przekazany SCODE czy go jest błąd i, jeśli tak, zgłasza błąd właściwe.

AfxCheckMemory

Sprawdza integralność wszystkich aktualnie przydzielono pamięci.

AfxDump

Jeśli wywołana, która znajduje się w debugerze, zrzuca stan obiektu podczas debugowania.

AfxDumpStack

Generowanie obrazu bieżącego stosu.Ta funkcja jest zawsze połączony statycznie.

AfxEnableMemoryLeakDump

Włącza zrzut przeciek pamięci.

AfxEnableMemoryTracking

Włącza śledzenie i wyłączanie pamięci.

AfxIsMemoryBlock

Weryfikuje, że blok pamięci została prawidłowo przydzielona.

AfxIsValidAddress

Weryfikuje, że zakres adresów pamięci jest w obrębie granic tego programu.

AfxIsValidString

Określa, czy wskaźnik na ciąg znaków jest prawidłowy.

AfxSetAllocHook

Umożliwia wywołania funkcji na każdej alokacji pamięci.

Funkcje diagnostyczne obiektu MFC

AfxDoForAllClasses

Wykonuje funkcję we wszystkich CObject-uzyskane klas, które obsługują kontrola typów w czasie wykonywania.

AfxDoForAllObjects

Wykonuje funkcję we wszystkich CObject-pochodzących z obiektów, które zostały przyznane z Nowy.

Zobacz też

Koncepcje

Makra MFC i Globals