Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Вниз

Инструменты для поиска "утечки" памяти в проекте   Найти похожие ветки 

 
DelphiN!   (2008-02-25 13:16) [0]

Есть большой проект, в котором имеется "утечка" памяти, необходимо ее устранить, а чем вооружиться не знаю. Большой плюс в инструменте для поиска "утечек" был бы - возможность просматривать содержимое прирастающей памяти, чтобы на основе этих данных делать выводы о местонахождении ошибки.
 Был бы признателен за рекомендацию инструментов и прочие советы по поиску мест утечек памяти в проекте

Проект написан в Delphi 6


 
Правильный_Вася   (2008-02-25 13:20) [1]

MemProof


 
Andy BitOff ©   (2008-02-25 13:32) [2]

EurekaLog
http://www.eurekalog.com/


 
ANTPro ©   (2008-02-25 13:38) [3]

FastMM4


 
Dimaxx ©   (2008-02-25 17:10) [4]

MemCheck
http://v.mahon.free.fr/pro/freeware/memcheck/


 
VirEx ©   (2008-02-25 17:56) [5]


> [3] ANTPro ©   (25.02.08 13:38)
> FastMM4

спасибо, даж перевод (на русском) сообщений есть :)


 
DVM ©   (2008-02-25 19:06) [6]

FastMM4 не покажет утечки объектов GDI, User и т.д. Надо иметь в виду.


 
TUser ©   (2008-02-26 05:58) [7]

GC рулит, но его у нас нет :)


 
Mystic ©   (2008-02-26 11:55) [8]

> GC рулит, но его у нас нет :)

От задачи зависит.


 
VirEx ©   (2008-02-26 17:34) [9]

Вопрос такой.
В execute выполняется некий код со string (uppercase, inttostr,...), thandle.
Есть кнопка прерывающая выполнение.
Ежели пару раз прервать нить и заново запустить, будут утечки памяти.
Как избежать утечек?


 
Mystic ©   (2008-02-26 18:29) [10]

А как прервать? Если TerminateThread(), то избавится от утечет памяти никак нельзя. Если поток заканчивает свое выполнение выходом из Execute(), никаких утечек не будет


 
VirEx ©   (2008-02-26 18:55) [11]

яяясно...


 
VirEx ©   (2008-02-26 19:25) [12]

а есть ли каконибудь метод нотификации для нити, при котором можно было выйти в функцию финализации компонента и спокойно прибить эту нить


 
тимохов   (2008-02-28 00:13) [13]

как не попиарица http://timokhov.blogspot.com/2007/03/delphi-2007-iii-fastmm.html (остальное не читать :-Р )

сам пользуюсь давно, несмотря на кривой стек с лишними записями (сам Ле Риш говорит, что не фига в дельфи невозможно 100% разобрать стек вызовов) найти мне ВСЕГДА удавалось место утечки.


 
Mystic ©   (2008-02-28 10:19) [14]

> а есть ли каконибудь метод нотификации для нити, при котором
> можно было выйти в функцию финализации компонента и спокойно
> прибить эту нить


Все зависит от того, что делает поток. Если он ждет каких-то нотификаций через WatForSingleObject или WaitForMultipleObject, то можно просто сделать специальный event (CreateEvent), который будет срабатывать в том случае, когда надо завершить поток. Если это вычисления, то тут я не знаю лучшего способа, чем проверять значение Terminated. Правда в мечтах написать функцию RaiseExceptionInThread(Thread: THandle; E: Exception), которая бы бросала исключение в указанный поток (таким образом можно было бы легко прерывать вычисления без постоянных проверок), но пока думаю, как бы это сделать...


 
pasha_golub ©   (2008-02-28 10:35) [15]

AQTime



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.344 c
2-1205424109
HelloEverybody
2008-03-13 19:01
2008.04.13
Компилятор пропускает команду...


2-1205583312
alex_kasycky
2008-03-15 15:15
2008.04.13
Залипающие кнопки


2-1205907552
Fr1K
2008-03-19 09:19
2008.04.13
DBgr1d Проблемы


8-1178055969
XProger
2007-05-02 01:46
2008.04.13
Быстрый скриншот


15-1204114557
Джо
2008-02-27 15:15
2008.04.13
Посоветуйте хостинг в Украине





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский