Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2013, 18:13   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию Чем ловить утечки памяти?

Всем доброго. Мне нужно научится ловить утечки памяти на WinAPI без применения подобных EurekaLOG и иже с ней.
Какие функции позволяют посмотреть и контролировать размер выделенной памяти?
Вообще если делать ловлю блох на WinAPI, какая стратегия наиболее оптимальная. В интернете пока что нарыл только статьи, где используются разного рода библиотеки и возможности ЯВУ (будь то Делфи или Плюсы) - встроенные возможности. Понятное дело рыть буду дальше, но если у кого есть по этому вопросу наработки, или ссылки просьба поделится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.08.2013, 19:05   #2
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Как на счет
Код:
if Assigned(Объект) then { что-то тут };
А в целом, имхо, самостоятельно ловит утечки дело неблагодарное =)
Lardes вне форума Ответить с цитированием
Старый 28.08.2013, 19:47   #3
asmprog
Пользователь
 
Регистрация: 10.08.2013
Сообщений: 67
По умолчанию

имхо, утечки как раз таки надо самостоятельно ловить. по ф-циям - VirtualQuery[Ex] - посмотрите у Рихтера целая глава "Исследование виртуальной памяти"(+программа пример VMMap). вообще, конечно, писать код нужно так, чтобы понимать где и что освобождается, но если проект уже большой - тогда на плюсах удобно глобальные new/delete подменить для мониторинга(для Delphi тоже нечто вроде оберток для GetMem/FreeMem etc) - не знаю, насколько это от EurekaLOG отличается, но знать потом где выделяется кусок памяти, про который потом "забывают" бывает полезно. "ловить блох" на WinAPI особого смысла не имеет, т.к. многие собственный менеджер памяти реализуют и получается, что следить уже надо за ним.
asmprog вне форума Ответить с цитированием
Старый 28.08.2013, 19:53   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Как на счет
Ну да, этим конечно не побрезгую, просто в программе создается иерархия обьектов. Дерево с тысячами веток. А на ветках тысячи листьев. Какие-то из листьев опадать не желают, несмотря на то что я целый день отладчиком как миноискателем орудую.
А вот какие... С другой стороны используется ADO, SMTP, DBF провы, и другие вкусности винды, пока что ума не приложу на что грешить.
Цитата:
самостоятельно ловит утечки дело неблагодарное
Ну я думаю это мне в будущем пригодится. Хотя бы примерное представление как действовать с чужими большими проектами.
Цитата:
посмотрите у Рихтера
Хм... Как-то он в голову не пришел.
Цитата:
многие собственный менеджер памяти реализуют и получается, что следить уже надо за ним
Ну да... И это тоже.
I'm learning to live...

Последний раз редактировалось Stilet; 28.08.2013 в 19:56.
Stilet вне форума Ответить с цитированием
Старый 28.08.2013, 20:56   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Если используете Visual Studio гляньте на crtdbg.h
Ref: http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx
waleri вне форума Ответить с цитированием
Старый 28.08.2013, 23:00   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Stilet

Мне нужно научится ловить утечки памяти на WinAPI без применения подобных EurekaLOG и иже с ней.

бесплатные но превосходящие по возможностям DebugCRT утилиты - Visual Leak Detector, Dr. Memory, если нужно чего покруче - AQTime - помимо утечек, оно еще кучу всего умеет, но придется выложить свои кровные денежки, или украсть ((:
Rififi вне форума Ответить с цитированием
Старый 28.08.2013, 23:15   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

За бесплатку спс. - гляну.
Кьютайм не катит. Не имею права, а покупать не хоццо
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2013, 13:46   #8
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Stilet, нашел тут несколько вещей. ReportMemoryLeaksOnShutdown, Memory Management on the Win32 Platform и парочка исходников.

P.S. Это всё для XE3, как на счет других версий без понятия
Вложения
Тип файла: zip RTL.zip (18.4 Кб, 10 просмотров)
Lardes вне форума Ответить с цитированием
Старый 29.08.2013, 14:15   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Lardes
Ага читал. Но у меня D5. Так что это наверное отпадает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2013, 18:48   #10
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Stilet, а что мешает поставить FastMM вручную? У меня он прекрасно работает в Delphi 6.
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утечки памяти YourLastSong Общие вопросы C/C++ 26 02.11.2011 22:56
Утечки памяти volod3000 Общие вопросы Delphi 0 22.06.2011 00:08
утечки памяти KOLANICH Общие вопросы C/C++ 3 30.01.2011 00:15
Утечки памяти. c++ learner Общие вопросы C/C++ 3 29.11.2010 15:01
InterBase 7.1 - утечки памяти. pushkin42 БД в Delphi 2 21.03.2007 16:15