Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа с Valgrind
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt инструментарий
RazrFalcon
Решил проверить свое приложение при помощи Valgrind.
Некоторые ошибки по исправлял, но остались две нерешенные:
1,426 (8 direct, 1,418 indirect) bytes in 1 blocks are definitely lost in loss record 752 of 791
  in QMKVExtractor::QMKVExtractor(QWidget*) in src/qmkvextractor.cpp:19
  1: operator new(unsigned int) in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so
  2: QMKVExtractor::QMKVExtractor(QWidget*) in <a href="file:///media/data/Additional/Programing/qmkvextractor-build-desktop/../qmkvextractor/src/qmkvextractor.cpp:19" >src/qmkvextractor.cpp:19</a>
  3: main in <a href="file:///media/data/Additional/Programing/qmkvextractor-build-desktop/../qmkvextractor/src/main.cpp:27" >src/main.cpp:27</a>

97,024 (444 direct, 96,580 indirect) bytes in 3 blocks are definitely lost in loss record 791 of 791
  in QFontDatabase::load(QFontPrivate const*, int) in /usr/lib/libQtGui.so.4.7.4
  1: operator new(unsigned int) in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so
  2: QFontDatabase::load(QFontPrivate const*, int) in /usr/lib/libQtGui.so.4.7.4
  3: /media/data/Additional/Programing/qmkvextractor-build-desktop/qmkvextractor

в qmkvextractor.cpp:19 находится:
18:  settings = new QSettings(QSettings::NativeFormat, QSettings::UserScope,
19:                           "QMKVExtractor", "qmkve");
Что здесь не верно? И в чем заключается вторая ошибка?

ну и последнее: что значат все эти значения:
1,426 (8 direct, 1,418 indirect) bytes in 1 blocks are definitely lost in loss record 752 of 791

Спасибо.
panter_dsd
А settings удаляешь потом?
RazrFalcon
Нет. Он же в главном окне используется, и удаляется при закрытии проги.
А использую я его не только в конструкторе, то есть на протяжении все жизни программы.
panter_dsd
А с чего ты взял, что он удаляется? Или используй умный указатель, или в деструкторе главного окна вручную удаляй.
RazrFalcon
А разве он сам не удалится при закрытии программы?
panter_dsd
Удалится, конечно. Но валгринд все равно покажет тебе утечку.
RazrFalcon
Спасибо. Теперь исчезло это предупреждение.

PS: вторая ошибка, видимо, как то связана с КДЕ
panter_dsd
А второе скорее всего синглтон, так что все в норме.
RazrFalcon
Еще один "баг" нашел:
Conditional jump or move depends on uninitialised value(s)
  in CleanerThread::removeAttribute(QString const&amp;) in src/cleanerthread.cpp:101
  1: /lib/libc-2.14.1.so
  2: strdup in /lib/libc-2.14.1.so
  3: /usr/lib/libQtCore.so.4.7.4
  4: QProcess::start(QString const&amp;, QStringList const&amp;, QFlags&lt;QIODevice::OpenModeFlag&gt;) in /usr/lib/libQtCore.so.4.7.4
  5: CleanerThread::removeAttribute(QString const&amp;) in src/cleanerthread.cpp:101
  6: CleanerThread::startNext() in src/cleanerthread.cpp:35
  7: CleanerThread::CleanerThread(QStringList, QStringList, ToThread, QObject*) in src/cleanerthread.cpp:27
  8: MainWindow::on_actionStart_triggered() in src/mainwindow.cpp:95
  9: MainWindow::qt_metacall(QMetaObject::Call, int, void**) in moc_mainwindow.cpp:92
  10: QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) in /usr/lib/libQtCore.so.4.7.4
  11: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) in /usr/lib/libQtCore.so.4.7.4
  12: QAction::triggered(bool) in /usr/lib/libQtGui.so.4.7.4
  13: /lib/libc-2.14.1.so
И так несколько раз. Почитал про эту ошибку, но она про не инициализированые переменные, но у меня 101-я строка:
99: QStringList args;
100: args<<"-c"<<file;
101: proc.start("gunzip",args);


В чем баг?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.