Russian Qt Forum
Ноябрь 26, 2024, 04:58
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Как найти маленькую утечеку ???
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как найти маленькую утечеку ??? (Прочитано 6883 раз)
alex12
Гость
Как найти маленькую утечеку ???
«
:
Сентябрь 01, 2009, 15:41 »
Программа очень интенсивно обновляет значения в большом количестве ячеек QTableWidget. Внутренний алгоритм большой и довольно сложный.
Происходит утечка памяти примерно 1 MB в час. Какие есть способы засечь причину, корме детального копания в коде? Какими инструментами можно воспользоваться для MingGW или Linux?
Записан
Rcus
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #1 :
Сентябрь 01, 2009, 15:49 »
То есть вы поискали по форуму и отвергли все инструменты которые предлагались тех случаях? А чем ваш особенный и чем не угодил тот же Valgrind?
Записан
alex12
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #2 :
Сентябрь 01, 2009, 16:07 »
За Valgrind - спасибо. Разбираюсь.
Записан
alex12
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #3 :
Сентябрь 01, 2009, 16:34 »
Valgrind дает кучу ошибок внутри Qt, а откуда утечка совершенно непонятно.
Записан
Rcus
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #4 :
Сентябрь 01, 2009, 16:41 »
Еще один... что у вас за версия Qt и Valgrind и опции запуска, может покажете лог? Может у нас разные представления о куче, но мне достаточно просто было отсеять ложные срабатывания от утечек памяти.
Записан
alex12
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #5 :
Сентябрь 01, 2009, 17:05 »
Тестовая Linux машина у меня несколько устарела.
OpenSUSE 11.1
gcc 4.3.1
Qt 4.4.3
valgrind-3.3.0
Запускаю так:
valgrind --leak-check=full --show-reachable=yes ./mkstudio
log:
http://transmeta.inkommet.ru/~alex/log.txt
Записан
Rcus
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #6 :
Сентябрь 01, 2009, 17:10 »
ну и ни одного срабатывания, в таком случае надо запустить на пару часиков под massif и потом разбирать деревья аллокаций
Записан
alex12
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #7 :
Сентябрь 01, 2009, 17:16 »
Большое спасибо. Буду разбираться. А есть ли способ не выводить в лог ложные срабатывания и откуда они вообще беруться?
Записан
Rcus
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #8 :
Сентябрь 01, 2009, 17:26 »
Насколько я знаю это просто глобальные объекты, освобождать которые нет смысла (они не захватывают системные ресурсы, а память и так возвращается полностью).
Еще можно не использовать show-reachable, по крайней мере мне эта опция не помогает (основные проблемы это либо утечки на чистых указателях, выявляемые memcheck'ом, либо неконтроллируемое заполнение контейнеров - выявляется massif'ом)
«
Последнее редактирование: Сентябрь 01, 2009, 17:29 от Rcus
»
Записан
crackedmind
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #9 :
Сентябрь 01, 2009, 17:56 »
Попробуй --gen-suppressions=yes
Записан
uriel
Гость
Re: Как найти маленькую утечеку ???
«
Ответ #10 :
Сентябрь 02, 2009, 06:55 »
Делал для себя подобный велосипед.
http://www.prog.org.ru/topic_10260_0.html
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...