_CrtDumpMemoryLeaks
Zrzuty wszystkich bloków pamięci w stercie debugowania po wystąpieniu przecieku pamięci (tylko wersja debugowania).
Składnia
int _CrtDumpMemoryLeaks( void );
Wartość zwracana
_CrtDumpMemoryLeaks
Zwraca wartość TRUE
, jeśli zostanie znaleziony przeciek pamięci. W przeciwnym razie funkcja zwraca FALSE
wartość .
Uwagi
Funkcja _CrtDumpMemoryLeaks
określa, czy od początku wykonywania programu wystąpił wyciek pamięci. Po znalezieniu wycieku informacje nagłówka debugowania dla wszystkich obiektów w stercie są po cenach dumpingowych w postaci czytelnej dla użytkownika. Gdy _DEBUG
nie jest zdefiniowana, wywołania do _CrtDumpMemoryLeaks
są usuwane podczas przetwarzania wstępnego.
_CrtDumpMemoryLeaks
Program jest często wywoływany na końcu wykonywania programu, aby sprawdzić, czy wszystkie pamięci przydzielone przez aplikację zostały zwolnione. Funkcja może być wywoływana automatycznie po zakończeniu programu, włączając _CRTDBG_LEAK_CHECK_DF
pole bitowe _crtDbgFlag
flagi _CrtSetDbgFlag
przy użyciu funkcji .
_CrtDumpMemoryLeaks
wywołuje _CrtMemCheckpoint
polecenie w celu uzyskania bieżącego stanu sterty, a następnie skanuje stan bloków, które nie zostały uwolnione. Gdy napotkano niezapłacony blok, _CrtDumpMemoryLeaks
wywołania _CrtMemDumpAllObjectsSince
funkcji zrzutu informacji dla wszystkich obiektów przydzielonych w stercie od początku wykonywania programu.
Domyślnie wewnętrzne bloki czasu wykonywania języka C (_CRT_BLOCK
) nie są uwzględniane w operacjach zrzutu pamięci. Funkcja _CrtSetDbgFlag
może służyć do włączania _CRTDBG_CHECK_CRT_DF
bitu _crtDbgFlag
w celu uwzględnienia tych bloków w procesie wykrywania przecieków.
Aby uzyskać więcej informacji na temat funkcji stanu sterta i _CrtMemState
struktury, zobacz Funkcje raportowania stanu stert. Aby uzyskać więcej informacji na temat przydzielania, inicjowania i zarządzania blokami pamięci w wersji debugowania sterty podstawowej, zobacz szczegóły sterty debugowania CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Biblioteki
Debugowanie tylko wersji bibliotek czasu wykonywania języka C.
Przykład
Aby zapoznać się z przykładem korzystania z programu _CrtDumpMemoryLeaks
, zobacz crt_dbg1
.