Russian Qt Forum
Ноябрь 24, 2024, 15:35
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Никто не юзал Deleaker?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Никто не юзал Deleaker? (Прочитано 9573 раз)
dr_Begemot
Гость
Никто не юзал Deleaker?
«
:
Май 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
Сообщений: 3880
Re: Никто не юзал Deleaker?
«
Ответ #1 :
Май 07, 2010, 10:12 »
вроде как первая строчка это как раз new/delete, т.е. выделение памяти
Записан
Юра.
dr_Begemot
Гость
Re: Никто не юзал Deleaker?
«
Ответ #2 :
Май 07, 2010, 11:13 »
Цитата: lit-uriy от Май 07, 2010, 10:12
вроде как первая строчка это как раз new/delete, т.е. выделение памяти
Думаете это м.б. серъезно?
А что про handles? Я подумал, м.б. это такие объекты, которые создаются, а их удаление берет на себя ОС, т.е. по завершению работы программы память освобождается.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Никто не юзал Deleaker?
«
Ответ #3 :
Май 07, 2010, 12:48 »
Цитировать
Думаете это м.б. серъезно?
о чем этот вопрос? если о серьезности утечки памяти, то конечно серьезно...
если о правдивости Deleaker - меня это тоже интересует, поскольку хочется проверить у себя утечки, чужой опыт приветствуется
handles - это ссылки виндозы на ее системные объекты, программа захватывала объекты и не освобождала их, это означает, что в какой-то момент свободных хэндлов может не хватить, и наступит облом, причем системный
Записан
2^7-1 == 127, задумайтесь...
dr_Begemot
Гость
Re: Никто не юзал Deleaker?
«
Ответ #4 :
Май 07, 2010, 13:02 »
Цитата: Гурман от Май 07, 2010, 12:48
Цитировать
Думаете это м.б. серъезно?
о чем этот вопрос? если о серьезности утечки памяти, то конечно серьезно...
если о правдивости Deleaker - меня это тоже интересует, поскольку хочется проверить у себя утечки, чужой опыт приветствуется
handles - это ссылки виндозы на ее системные объекты, программа захватывала объекты и не освобождала их, это означает, что в какой-то момент свободных хэндлов может не хватить, и наступит облом, причем системный
протестил несколько проектов из qt-example Deleaker'ом, на них он пишет тоже что и у меня, т.е. detected на memory block и handles.
Записан
dr_Begemot
Гость
Re: Никто не юзал Deleaker?
«
Ответ #5 :
Май 07, 2010, 13:05 »
Может ли это быть неким qt-шным багом, который разработчикам qt еще предстоит исправить?
Или просто Deleaker врет?
Записан
dr_Begemot
Гость
Re: Никто не юзал Deleaker?
«
Ответ #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
Гость
Re: Никто не юзал Deleaker?
«
Ответ #7 :
Май 07, 2010, 20:37 »
Обнаружение утечек памяти в MS Visual Studio. Пока не подводило.
http://www.rsdn.ru/article/vcpp/leaks.xml
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Никто не юзал Deleaker?
«
Ответ #8 :
Май 08, 2010, 00:01 »
>>Исходя из этого можно сделать вывод
вывод надо делать, когда программа покажет, где именно утечка. А если она говорит только, что "мол есть утечка", то такой программе место на помойке.
Записан
Юра.
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Никто не юзал Deleaker?
«
Ответ #9 :
Май 08, 2010, 17:42 »
Цитировать
Остается вопрос с handles... м.б. в консольном приложении они и не затрагиваются вообще (или я ошибаюсь?), но в MFC то должны наверное!
handles используются когда начинаете работать с окнами
если уж взялись тестировать, проверьте плз на простейшем Qt-приложении с одним окном
Записан
2^7-1 == 127, задумайтесь...
dr_Begemot
Гость
Re: Никто не юзал Deleaker?
«
Ответ #10 :
Май 11, 2010, 09:10 »
Цитата: lit-uriy от Май 08, 2010, 00:01
>>Исходя из этого можно сделать вывод
вывод надо делать, когда программа покажет, где именно утечка. А если она говорит только, что "мол есть утечка", то такой программе место на помойке.
Ну она в общем-то и показывает, тока ссылки на код, где происходит выделение6 якобы утекаемой памяти, находятся вне моего ведения))) Т.е. код либо Qt-шный, либо win api.
Записан
dr_Begemot
Гость
Re: Никто не юзал Deleaker?
«
Ответ #11 :
Май 11, 2010, 09:11 »
Цитата: Гурман от Май 08, 2010, 17:42
Цитировать
Остается вопрос с 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
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...