Проверка утечки памяти в Windows с QT и MinGW32 - PullRequest
9 голосов
/ 24 декабря 2010

В последнее время я занимаюсь разработкой на C ++ с QT Creator. Все хорошо, и я почти готов упаковывать и распространять свою заявку. Но, очевидно, перед любым выпуском вам лучше убедиться, что у вас все в порядке. Итак, я на стадии тестирования, и что-то подсказывает мне, что у меня есть небольшие проблемы с памятью. Ничего серьезного, но мне нравится зацикливаться на этом; -).

Поэтому я решил попробовать некоторые библиотеки обнаружения утечек памяти. Для начала я посмотрел на этот вопрос. Я не принял во внимание Purify и Insure ++ из-за затрат. Кто-то еще предложил использовать компилятор MSVC, чтобы я мог использовать процедуры проверки памяти CRT. Что я рассмотрел, но пока отказался из-за последствий, которые оно может иметь при использовании отладчика из QT Creator.

Затем я наткнулся на DUMA , которую я должен был скомпилировать с помощью компилятора MinGW32, который поставляется с QT. Тем не менее, я обнаружил, что он не очень хорошо работает с QT из-за невероятного количества ошибок сегментации. Я знаю, что именно так работает DUMA, но я почти уверен, что не все испортил, поскольку DUMA пытался заставить меня поверить.

Еще одна вещь, которую я попробовал, была google-performance-tools , которую я, к сожалению, не могу скомпилировать с версией MinGW32, поставляемой с QT, даже если я добавлю необходимые зависимости.

Все это подводит меня к моему вопросу: есть ли какое-нибудь рабочее решение для разработчиков QT Creator, которые хотят проверить свои программы на утечки памяти?

Спасибо

Ответы [ 2 ]

6 голосов
/ 25 февраля 2011

Лично я считаю комбо valgrind / memcheck / callgrind / kcachegrind слишком мощным, чтобы его можно было пропустить из-за утечек памятии анализ производительности.Быть свободным (бесплатно) особенно приятно, поскольку я не могу лично позволить себе оплату некоторых из этих профессиональных инструментов.

Я работаю над кроссплатформенным приложением Qt уже пару лет.По мере разработки я переключаюсь между окнами и linux, когда хочу протестировать функции и возможности.Тем не менее, я всегда делаю анализ производительности в Linux.Утечки памяти и проблемы с производительностью, которые я нахожу, всегда возникают у моей команды разработчиков поверх Qt.Поэтому, когда эти проблемы будут устранены, независимо от того, будут ли они идентифицированы в Linux, преимущества будут перенесены в Windows.

Я предлагаю вам исследовать настройку среды сборки чистого linux, в которой вы можете протестировать. Возможно, самое простое решение длявам нужно будет создать виртуальную машину для анализа производительности.Моя предпочтительная комбинация - VirtualBox и Ubuntu .

0 голосов
/ 24 декабря 2010

Может быть, вы можете использовать эти библиотеки для Windows

Крючки для Маллока [gnu.org] Backtrace [gnu.org] valgrind [valgrind.org]

...