Dll && memory leak
От: undefined undefined
Дата: 04.09.01 10:03
Оценка:
Господа доброый день

Передыстория:Написанна библиотека классов (экспортируется из dll ) для работы с SQL Server-ом, все класы есть потомками CObject.

Проблема: При подключении к проекту неявным образом (через Link) библиотека в Release версии приложения выгружается некорректно, к такому выводу я пришел протестировав его с помощью NuMega-вского BoundsChecker-а (Вижуала етого не показывает). При завершении
приложения вываливается с десяток Memory leak и Resource leak.

Приемер Memory leak 33796 bytes allocated by operator new in plex.cpp (29), HANDLE: 0x02F8BF80

Ето байдень вываливается при использовании CFile в одном из классов библиотеки файл открывается с
помощью CArchive считываю инфо закрываю архив закрываю файл по идее все коректно..

Господа кто сталкивался с такой проблемой большая просьба со мной связаться ICQ 128948485

Зарание благодарен.

P.S. (я думаю что что-то намутил с деструкторами...)
Re: BoundsChecker для Visual C++?
От: Valentin Россия  
Дата: 05.09.01 05:37
Оценка:
не подскажешь, где взять BoundsChecker для Visual C++?
Re: Dll && memory leak
От: sluge  
Дата: 05.09.01 09:26
Оценка:
Здравствуйте undefined, вы писали:

U>Господа доброый день


U>Передыстория:Написанна библиотека классов (экспортируется из dll ) для работы с SQL Server-ом, все класы есть потомками CObject.


U>Проблема: При подключении к проекту неявным образом (через Link) библиотека в Release версии приложения выгружается некорректно, к такому выводу я пришел протестировав его с помощью NuMega-вского BoundsChecker-а (Вижуала етого не показывает). При завершении

U>приложения вываливается с десяток Memory leak и Resource leak.

U>Приемер Memory leak 33796 bytes allocated by operator new in plex.cpp (29), HANDLE: 0x02F8BF80


U>Ето байдень вываливается при использовании CFile в одном из классов библиотеки файл открывается с

U>помощью CArchive считываю инфо закрываю архив закрываю файл по идее все коректно..

U>Господа кто сталкивался с такой проблемой большая просьба со мной связаться ICQ 128948485


U>Зарание благодарен.


U>P.S. (я думаю что что-то намутил с деструкторами...)


у меня было что-то подобное
в DLL выделялась память(создавался объект класса), в другой DLL удалялась
Purify иногда показывала MemoryLeak, но не постоянно, пожтому отловить не удавалось
при переходе к резилу приложение через 2-3 сек работы падало
оказалось что проблема в удалении
в общем, с тех пор я всегда удаляю памятьв том же модуле что и выделял, может с файлами то же самое?
Re[2]: BoundsChecker для Visual C++?
От: LOK Украина  
Дата: 05.09.01 17:51
Оценка:
Здравствуйте Valentin, вы писали:

V>не подскажешь, где взять BoundsChecker для Visual C++?


На халяву его не роздают :-)....на ближайшем рынке..
Re[2]: Dll && memory leak
От: LOK Украина  
Дата: 05.09.01 17:58
Оценка:
Здравствуйте sluge, вы писали:

S>у меня было что-то подобное

S>в DLL выделялась память(создавался объект класса), в другой DLL удалялась
S>Purify иногда показывала MemoryLeak, но не постоянно, пожтому отловить не удавалось
S>при переходе к резилу приложение через 2-3 сек работы падало
S>оказалось что проблема в удалении
S>в общем, с тех пор я всегда удаляю памятьв том же модуле что и выделял, может с файлами то же самое?

Работу с файлами я привел для примера...
Но динамически с памятю я работаю ...
в основном освобождается она в деструкторе ...класов..
по идее все корректно... фиг его знает что а не Вижуал блин

Кстати я пробовал создать приложение на основе диалогового окна (голое ниччего там не делал как визард создал так все и оставил ) и скомпилить его со статически подключаемыми библиотеками, BoundsChecker тоже намалевал :-) мне Memory Leak-ов немного...

Или Чекер глюкавый или одно из двух :-)

Ладно. Большое спасибо за ответ. будем юзать
Re[3]: Dll && memory leak
От: Alex Ostapenko Россия  
Дата: 10.09.01 07:28
Оценка:
Здравствуйте LOK, вы писали:

LOK>Здравствуйте sluge, вы писали:


S>>у меня было что-то подобное

S>>в DLL выделялась память(создавался объект класса), в другой DLL удалялась
S>>Purify иногда показывала MemoryLeak, но не постоянно, пожтому отловить не удавалось
S>>при переходе к резилу приложение через 2-3 сек работы падало
S>>оказалось что проблема в удалении
S>>в общем, с тех пор я всегда удаляю памятьв том же модуле что и выделял, может с файлами то же самое?

LOK>Работу с файлами я привел для примера...

LOK>Но динамически с памятю я работаю ...
LOK>в основном освобождается она в деструкторе ...класов..
LOK>по идее все корректно... фиг его знает что а не Вижуал блин

LOK>Кстати я пробовал создать приложение на основе диалогового окна (голое ниччего там не делал как визард создал так все и оставил ) и скомпилить его со статически подключаемыми библиотеками, BoundsChecker тоже намалевал :-) мне Memory Leak-ов немного...


LOK>Или Чекер глюкавый или одно из двух :-)


БаундЧекеру не всегда стоит верить. Судя по моим наблюдениям, освобождение ресурсов в DllMain он вообще любит не замечать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.