Udostępnij za pośrednictwem


Wersja debugowania funkcji alokacji stosu

Biblioteka uruchomieniowa c zawiera specjalne wersje funkcji Alokacja sterty do debugowania.Te funkcje mają takie same nazwy jak wydaniu wersji z _dbg do nich dopisany.W tym temacie opisano różnice między wersji funkcji CRT i wersji _dbg za pomocą malloc i _malloc_dbg jako przykłady.

Gdy _DEBUG jest zdefiniowany, CRT odwzorowuje wszystkie malloc wymaga, aby _malloc_dbg.W związku z tym, nie trzeba ponownie napisać kod using _malloc_dbg zamiast malloc do otrzymywania świadczeń podczas debugowania.

Chcesz wywołać _malloc_dbg , jednak.Wywołanie _malloc_dbg jawnie ma niektóre dodane korzyści:

  • Śledzenie _CLIENT_BLOCK wpisz alokacje.

  • Służy do przechowywania pliku i wiersza numer źródła gdzie nastąpiło żądanie alokacji.

Jeśli nie chcesz przekonwertować na malloc wzywa do _malloc_dbg, definiując można uzyskać informacji o pliku źródłowego _CRTDBG_MAP_ALLOC, co powoduje, że mapa preprocesora bezpośrednio wszystkie wywołania malloc do _malloc_dbg zamiast wpisywać opakowaniowy malloc.

Do śledzenia różnych typów przydziałów w blokach klienta, należy wywołać _malloc_dbg bezpośrednio i blockType parametr _CLIENT_BLOCK.

Gdy _DEBUG nie jest zdefiniowana, wzywa do malloc nie zostaną zakłócone, wzywa do _malloc_dbg są zdecydowane malloc, definicji _CRTDBG_MAP_ALLOC jest ignorowany i nie stanowi źródło pliku informacje odnoszące się do żądania alokacji.Ponieważ malloc , nie ma parametru typu bloku, wnioski o _CLIENT_BLOCK typy są traktowane jako standard alokacji.

Zobacz też

Inne zasoby

Techniki testowania CRT