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
Drukuje wiadomość, a następnie przerywa program, jeśli określony wyrażenie FALSE w wersji debugowej biblioteki. |
|
Testy, które obiekt jest obiektem określonej klasy lub klas pochodnych określonej klasy. |
|
Badania ważności wewnętrznego obiektu, wywołując jego AssertValid funkcji składowej; Zazwyczaj zastąpiona z CObject. |
|
Dostarcza nazwę pliku i numer wiersza dla wszystkich przydziałów obiekt w trybie debugowania do znajdowania przecieki pamięci. |
|
Podobny do ASSERT , ale nie sprawdza wartość wyrażenia; przydatne dla kodu, który powinien wykonać tylko w trybie debugowania. |
|
Zawiera printf-jak zdolności w wersji debugowej biblioteki. |
|
Podobny do ASSERT , ale oblicza wyrażenie w wersji biblioteki, a także w wersji. |
Zmienne diagnostyczne ogólne MFC i funkcje
Zmienna globalna, która wysyła CDumpContext informacji w oknie danych wyjściowych debugera lub terminal debugowania. |
|
Zmienna globalna kontroluje zachowanie debugowania programu przydzielania pamięci. |
|
Zmienna globalna, używane do testowania przekazany SCODE czy go jest błąd i, jeśli tak, zgłasza błąd właściwe. |
|
Sprawdza integralność wszystkich aktualnie przydzielono pamięci. |
|
Jeśli wywołana, która znajduje się w debugerze, zrzuca stan obiektu podczas debugowania. |
|
Generowanie obrazu bieżącego stosu.Ta funkcja jest zawsze połączony statycznie. |
|
Włącza zrzut przeciek pamięci. |
|
Włącza śledzenie i wyłączanie pamięci. |
|
Weryfikuje, że blok pamięci została prawidłowo przydzielona. |
|
Weryfikuje, że zakres adresów pamięci jest w obrębie granic tego programu. |
|
Określa, czy wskaźnik na ciąg znaków jest prawidłowy. |
|
Umożliwia wywołania funkcji na każdej alokacji pamięci. |
Funkcje diagnostyczne obiektu MFC
Wykonuje funkcję we wszystkich CObject-uzyskane klas, które obsługują kontrola typów w czasie wykonywania. |
|
Wykonuje funkcję we wszystkich CObject-pochodzących z obiektów, które zostały przyznane z Nowy. |