Usługi diagnostyczne
Biblioteki Microsoft Foundation Class dostarcza wielu diagnostyczne usług, które ułatwiają debugowanie programów łatwiejsze.Te usługi diagnostyczne zawierać makra i funkcje globalne, które pozwalają śledzić swój program pamięci alokacji, Zrzuć zawartość obiektów w czasie wykonywania i wydrukować komunikaty debugowania w czasie wykonywania.Makra i funkcje globalne dla usług diagnostycznych są podzielone na następujące kategorie:
Ogólne makra diagnostyczne
Podstawowe funkcje diagnostyczne i zmiennych
Obiekt funkcji diagnostycznych
Te makra i funkcje są dostępne dla wszystkich klas pochodzące z CObject w wersji Debug i Release MFC.Jednakże, wszystkie z wyjątkiem DEBUG_NEW i Sprawdź nic nie w wersji wydania.
W bibliotece programu Debug wszystkich bloków alokacji pamięci są na równi z serii "guard bajtów." Jeśli tych bajtów jest zakłócany przez wadliwe pamięci zapisu, procedur diagnostycznych może zgłosić problem.Czy uwzględnić wiersz:
#define new DEBUG_NEW
w pliku implementacji wszystkich wywołań Nowy będą przechowywane nazwy pliku i numerem wiersza którym nastąpiło alokacji pamięci.Funkcja CMemoryState::DumpAllObjectsSince będą wyświetlane te dodatkowe informacje to pozwala zidentyfikować przecieki pamięci.Należy się także odnieść do klasy CDumpContext dodatkowe informacje na temat diagnostyczne dane wyjściowe.
Ponadto biblioteki wykonawczej C obsługuje również zestaw funkcji diagnostycznych używanych do debugowania aplikacji.Aby uzyskać więcej informacji, zobacz Debugowania procedur w Skorowidzu Run-Time Library.
Makra diagnostyczne ogólne MFC
Drukuje wiadomość i następnie przerywa program określony wyrażenie ma wartość FALSE w wersji debugowej biblioteki. |
|
Testy, które obiekt jest obiektem określonej klasy lub klasy pochodzącej od określonej klasy. |
|
Testy wewnętrzne ważności obiektu, wywołując jego AssertValid funkcji składowej; Zazwyczaj nadpisane przez CObject. |
|
Dostarcza nazwę pliku i numerem wiersza dla wszystkich przydziałów obiektu w trybie debugowania jako pomocy w znalezieniu przecieki pamięci. |
|
Podobny do ASSERT , ale nie sprawdza wartość wyrażenia; przydatne dla kodu, należy wykonać tylko w trybie debugowania. |
|
Zawiera printf-zdolność w wersji debugowej biblioteki, np. |
|
Podobny do ASSERT , ale oblicza wyrażenie w wersji z biblioteki, jak również w wersji Debug. |
Zmienne diagnostyczne ogólne MFC i funkcje
Zmienna globalna, która wysyła CDumpContext informacji do okna danych wyjściowych debugera lub terminal debugowania. |
|
Zmienna globalna, która steruje zachowaniem debugowania program przydzielania pamięci. |
|
Zmienna globalna używane do testowania przekazany SCODE Aby sprawdzić, czy błąd i, jeśli tak, wygeneruje odpowiedni komunikat. |
|
Sprawdza integralność wszystkich aktualnie przydzielonej pamięci. |
|
Jeśli wywoływana, podczas gdy 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 lub wyłącza śledzenie pamięci. |
|
Sprawdza prawidłowo przydzielany blok pamięci. |
|
Sprawdza, czy w jego granicach zakresu adresów pamięci. |
|
Określa, czy wskaźnik na ciąg jest prawidłowy. |
|
Włącza wywołujący funkcję na każdej alokacji pamięci. |
Funkcji diagnostycznych obiektu MFC
Wykonuje funkcję na wszystkich CObject-pochodnych klas, które obsługują kontrola typów w czasie wykonywania. |
|
Wykonuje funkcję na wszystkich CObject-pochodzących z obiektów, które zostały przydzielone z Nowy. |