Russian Qt Forum
Сентябрь 30, 2024, 20:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Никто не юзал Deleaker?  (Прочитано 9476 раз)
dr_Begemot
Гость
« : Май 07, 2010, 08:32 »

Никто не юзал Deleaker для контроля за утечками памяти?

Просто студия иногда показывает утечки памяти, все говорят забей, студия не видит, что отрабатывают некоторые деструкторы...
С другой стороны, утечки могут быть и не связаны именно с этим, а являться самыми что ни на есть утечками)))

Во общем решил попрообовать проверить приложение сторонней утилитой, в данном случае Deleaker'ом и вот что я получил:

Searching for allocated memory block: leaks detected
Searching for created GDI objects: leaks not detected
Searching for created USER objects: leaks not detected
Searching for created handles: leaks detected

Не могли бы вы разъяснить, что есть GDI, USER, и стоит ли обращать внимание на утечки памяти в  handles?
И что значит 1я строчка?

Спасибо)
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Май 07, 2010, 10:12 »

вроде как первая строчка это как раз new/delete, т.е. выделение памяти
Записан

Юра.
dr_Begemot
Гость
« Ответ #2 : Май 07, 2010, 11:13 »

вроде как первая строчка это как раз new/delete, т.е. выделение памяти

Думаете это м.б. серъезно?
А что про handles? Я подумал, м.б. это такие объекты, которые создаются, а их удаление берет на себя ОС, т.е. по завершению работы программы память освобождается.
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #3 : Май 07, 2010, 12:48 »

Цитировать
Думаете это м.б. серъезно?

о чем этот вопрос? если о серьезности утечки памяти, то конечно серьезно...

если о правдивости Deleaker - меня это тоже интересует, поскольку хочется проверить у себя утечки, чужой опыт приветствуется

handles - это ссылки виндозы на ее системные объекты, программа захватывала объекты и не освобождала их, это означает, что в какой-то момент свободных хэндлов может не хватить, и наступит облом, причем системный
Записан

2^7-1 == 127, задумайтесь...
dr_Begemot
Гость
« Ответ #4 : Май 07, 2010, 13:02 »

Цитировать
Думаете это м.б. серъезно?

о чем этот вопрос? если о серьезности утечки памяти, то конечно серьезно...

если о правдивости Deleaker - меня это тоже интересует, поскольку хочется проверить у себя утечки, чужой опыт приветствуется

handles - это ссылки виндозы на ее системные объекты, программа захватывала объекты и не освобождала их, это означает, что в какой-то момент свободных хэндлов может не хватить, и наступит облом, причем системный


протестил несколько проектов из qt-example Deleaker'ом, на них он пишет тоже что и у меня, т.е. detected на memory block и handles.
Записан
dr_Begemot
Гость
« Ответ #5 : Май 07, 2010, 13:05 »

Может ли это быть неким qt-шным багом, который разработчикам qt еще предстоит исправить?
Или просто Deleaker врет?

 Непонимающий
Записан
dr_Begemot
Гость
« Ответ #6 : Май 07, 2010, 13:15 »

Создал самый что ни на есть пустой проект на MFC. Запустил, прогнал через Deleaker.

Результат:

Searching for allocated memory block: leaks detected
Searching for created GDI objects: leaks not detected
Searching for created USER objects: leaks not detected
Searching for created handles: leaks not detected

Далее, создал проект win32 console application:
Код:
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

Результат работы Deleaker'а остался прежним:
Searching for allocated memory block: leaks detected
Searching for created GDI objects: leaks not detected
Searching for created USER objects: leaks not detected
Searching for created handles: leaks not detected

Исходя из этого можно сделать вывод, что на строчку про memory block можно не обращать внимания.
Остается вопрос с handles... м.б. в консольном приложении они и не затрагиваются вообще (или я ошибаюсь?), но в MFC то должны наверное!
Что с handles в Qt происходит, товарищи?  Непонимающий
Записан
umts
Гость
« Ответ #7 : Май 07, 2010, 20:37 »

Обнаружение утечек памяти в MS Visual Studio. Пока не подводило.
http://www.rsdn.ru/article/vcpp/leaks.xml
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Май 08, 2010, 00:01 »

>>Исходя из этого можно сделать вывод
вывод надо делать, когда программа покажет, где именно утечка. А если она говорит только, что "мол есть утечка", то такой программе место на помойке.
Записан

Юра.
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #9 : Май 08, 2010, 17:42 »

Цитировать
Остается вопрос с handles... м.б. в консольном приложении они и не затрагиваются вообще (или я ошибаюсь?), но в MFC то должны наверное!

handles используются когда начинаете работать с окнами

если уж взялись тестировать, проверьте плз на простейшем Qt-приложении с одним окном
Записан

2^7-1 == 127, задумайтесь...
dr_Begemot
Гость
« Ответ #10 : Май 11, 2010, 09:10 »

>>Исходя из этого можно сделать вывод
вывод надо делать, когда программа покажет, где именно утечка. А если она говорит только, что "мол есть утечка", то такой программе место на помойке.

Ну она в общем-то и показывает, тока ссылки на код, где происходит выделение6 якобы утекаемой памяти, находятся вне моего ведения))) Т.е. код либо Qt-шный, либо win api.
Записан
dr_Begemot
Гость
« Ответ #11 : Май 11, 2010, 09:11 »

Цитировать
Остается вопрос с handles... м.б. в консольном приложении они и не затрагиваются вообще (или я ошибаюсь?), но в MFC то должны наверное!

handles используются когда начинаете работать с окнами

если уж взялись тестировать, проверьте плз на простейшем Qt-приложении с одним окном


Я проверял несколько простейших примеров из qt-example:
Searching for allocated memory block: leaks detected
Searching for created GDI objects: leaks not detected
Searching for created USER objects: leaks not detected
Searching for created handles: leaks detected
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 22.