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.