Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Чем вы пользуетесь для обнаружения утечек памяти и run-time ошибок в приложениях, использующих qt

Автор: Kawaii 16.4.2011, 22:24

Добрый день, появилась необходимость посмотреть утечки памяти в приложении, использую Visual Studio 2010, qt 4.7.2.
Возникло у меня два вопроса:
1. Вопрос первый - Чем вы пользуетесь для поиска утечек
Сама я буквально сегодня поизучала Memory Validator в работе, может чего то я не поняла из хелпа, но вот незадача - у меня есть приложение, падающее с ошибкой сегментирования, запускаю его в этом валидаторе, смотрю во вкладке "мемори", а там нет ни одной строки со значком "Memory Error", хотя по идее строка быть должна раз есть ошибка сегментирования, вобщем не понятно...
2. Вопрос второй - Если вы используете crt-шные отладочные функции, то как подключаете. Может я опять же что то недопонимаю, но вот подключила я таким вот образом (в main.cpp):
Этот код включаю после инклудов Qt и своих хэдеров:

#if defined(WIN32) && defined(_DEBUG)
     #define _CRTDBG_MAP_ALLOC
     #include <stdlib.h>
     #include <crtdbg.h>
     #define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__ )
     #define new DEBUG_NEW
#endif

А этот код внутри функции main

int main(int argc, char **argv) 
{
    #if defined(_MSC_VER) && defined(_DEBUG)
    _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#endif
//тут мой код дальше
}


Все компилится без ошибок но при запуске в дебаге в окне Output нет никакой информации, относящейся к утечкам памяти...



Автор: Litkevich Yuriy 16.4.2011, 23:33

насколько я знаю кроме линуксового valgrind-а ничего путнего нет (за даром).

Цитата(Kawaii @ 17.4.2011, 1:24) *
2. Вопрос второй - Если вы используете crt-шные отладочные функции
я использую только средства Qt:
qDebug() << "test value:" << value;

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)