Главная страница
    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.007 c
15-1201783465
DevilDevil
2008-01-31 15:44
2008.04.13
Помогите компонентом-табличкой...


4-1186600664
cerber
2007-08-08 23:17
2008.04.13
запуск документа ворд из ресурса.


15-1204265877
kiberg
2008-02-29 09:17
2008.04.13
Заполнение массива


2-1205758991
savyhinst
2008-03-17 16:03
2008.04.13
Повернуть картинку


15-1203982965
BlackSun
2008-02-26 02:42
2008.04.13
Полупрозрачный заголовок формы в XP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский