Странная трассировка стека из профиля памяти [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Странная трассировка стека из профиля памяти [закрыто]

Сообщение Anonymous »

Я профилирую память большого сервиса C++, используя очиститель адресов, в частности его функцию __sanitizer_print_memory_profile. После вызова этой функции я смотрю на напечатанные трассировки выделения и среди «обычных» трассировок (например, main -> foo ->operator new -> malloc) вижу вот это:

Код: Выделить всё

259188664 bytes (38%) in 31679 allocations
#0 0x00000092b40b in malloc ../../.././libsanitizer/asan/asan_malloc_linux.cpp:67
#1 0x000002447f0b in operator new(unsigned long) ../../.././libstdc++-v3/libsupc++/new_op.cc:50
Это вся трассировка. New назывался «из ниоткуда», что затем вызывало malloc 31 679 раз. Всего было выделено 259 МБ. Стоит отметить, что очиститель адресов показывает только «живые» выделения. Те, которые выделены, но не освобождены.
Может кто-нибудь объяснить, что происходит? Как найти код, который отображает выделение?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ry-profile
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»