Я никогда раньше не использовал Valgrind, и сегодня я пытаюсь проверить утечки памяти в базовом приложении Qt Widget с помощью Memcheck от Valgrind. Приложение было создано с помощью следующих шагов:
- В Qt Creator (версия 4.8.1 на основе Qt 5.12.0) я создал базовый проект, выбрав Файл -> Новый файл или проект ... -> Приложение -> Приложение Qt Widgets, а затем нажал Выбрать ... -> Далее -> ... -> Готово.
- Скомпилируйте эту программу с GCC 8.2.0. набор инструментов в «режиме отладки» (с опцией -g3) в Ubuntu 18.10.
Попробуйте запустить результат с Valgrind (v. 3.13.0) с помощью следующей команды:
$ valgrind ./untitled
Результатом этой операции на Ubuntu 18.10 является:
==12228== Memcheck, a memory error detector
==12228== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==12228== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==12228== Command: ./untitled
==12228==
==12228==
==12228== Process terminating with default action of signal 11 (SIGSEGV)
==12228== General Protection Fault
==12228== at 0x15C006A7: ??? (in /usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so)
==12228== by 0x15C0DBC5: ??? (in /usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so)
==12228== by 0x15C0DFEB: ??? (in /usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so)
==12228== by 0x154B3172: ??? (in /usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so)
==12228== by 0x159AF457: ??? (in /usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so)
==12228== by 0x1587E5B1: ??? (in /usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so)
==12228== by 0x1587984D: ??? (in /usr/lib/x86_64-linux-gnu/dri/vmwgfx_dri.so)
==12228== by 0x14F8BD3D: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==12228== by 0x14F63C52: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==12228== by 0x14F5F323: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==12228== by 0x14F5FD3C: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==12228== by 0x14CFECF1: QXcbGlxWindow::createVisual() (in /opt/Software/Qt/5.12.0/gcc_64/plugins/xcbglintegrations/libqxcb-glx-integration.so)
==12228==
==12228== HEAP SUMMARY:
==12228== in use at exit: 3,561,397 bytes in 44,679 blocks
==12228== total heap usage: 347,392 allocs, 302,713 frees, 29,095,722 bytes allocated
==12228==
==12228== LEAK SUMMARY:
==12228== definitely lost: 14,216 bytes in 80 blocks
==12228== indirectly lost: 4,334 bytes in 203 blocks
==12228== possibly lost: 28,587 bytes in 457 blocks
==12228== still reachable: 3,448,988 bytes in 43,405 blocks
==12228== of which reachable via heuristic:
==12228== length64 : 3,376 bytes in 61 blocks
==12228== newarray : 2,048 bytes in 48 blocks
==12228== suppressed: 0 bytes in 0 blocks
==12228== Rerun with --leak-check=full to see details of leaked memory
==12228==
==12228== For counts of detected and suppressed errors, rerun with: -v
==12228== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 4)
Segmentation fault (core dumped)
Что я делаю неправильно?