Использование инструмента «Анализ памяти» в Qt Creator - PullRequest
8 голосов
/ 12 декабря 2011

Я использую Qt Creator для разработки приложения на C ++ и пытаюсь отследить некоторые утечки памяти.

Я следовал этим инструкциям * и установил Valgrind на моей машине с Ubuntu.

Я запускаю свое приложение из раздела «Анализ памяти», и после нажатия кнопки «Стоп» мне сообщают, что Tool Analyze Memory finished, 928 issues found. Однако в разделе анализа не отображаются результаты, который остается пустым.

Я что-то не так делаю? Где я могу найти результаты анализа памяти?


* Смущает, что инструкции запрашивают конфигурацию сборки 'release', но при выборе этого в Qt появляется предупреждение о том, что инструмент анализа памяти требует конфигурации отладки. Я пробовал оба пути.

Ответы [ 2 ]

11 голосов
/ 12 декабря 2011

Я проверил это в своем Qt Creator, и он работает. Я использую версию 2.3.1 с Qt 4.7.4 и Valgrind 3.7.0. Я проверил это на примере дропсайта с конфигурацией сборки Debug. Я также протестировал его с моим проектом на основе CMake ( скомпилировал с флагами -g и -O0), и он также работал. Убедитесь, что рядом со стартовой кнопкой выбрана кнопка Valgrind Memory Analyzer. На той же панели вы найдете значки со стрелками. Рядом с ними находится иконка воронки (я думаю). Нажмите на нее и убедитесь, что типы ошибок, которые вас интересуют, отмечены.

Если это не сработает, и вы не хотите использовать инструменты Valgrind из консоли, есть другие графические интерфейсы Valgrind , такие как Valkyrie.

РЕДАКТИРОВАТЬ: я обновил Qt Creator до версии 2.4.0rc1 и проверил его с моим проектом CMake. Он также не дал результатов, сообщив при этом о нескольких сотнях проблем. Решением этой проблемы была проверка External errors после нажатия на значок воронки.

EDIT2: в финальной версии 2.4.0 проблема была исправлена.

1 голос
/ 19 июня 2016

Вы не сделали ничего плохого.В меню Valgrind нажмите значок фильтра и выберите External Errors.Вы увидите все возникающие проблемы.Скорее всего, они не из вашего приложения, а связаны с Qt или другим, поэтому вы часто можете их игнорировать.

X issues found относится к общему количеству проблем;когда External Errors не выбран, отображаются только те, которые связаны с вашим приложением.Если ничего не появляется, Valgrind не обнаружил утечку памяти в вашем приложении.

...