Qt 4.8.7 артефакты памяти

Мне нужно использовать Qt 4.8.7 для Embedded Linux, чтобы создать очень простой проект для тестирования.
Проект включает в себя 2 формы — диалог (состоит из QTextEdit и кнопки. Кнопка очищается
QTextEdit и QClipboard) и MainWindow (состоит из кнопки, которая выполняет диалог).

Я редактирую текст, копирую его часть. Затем очистите редактор и буфер обмена. Я не могу вставить текст после этого,
но я сбрасываю память с помощью gcore и вижу текст, который я скопировал (несколько копий в виде HTML).
Что эти объекты остались в памяти? Это временные объекты или утечки памяти?
Или я использую что-то неправильно.

0

Решение

Если у вас уже есть ядро ​​на базе ELF от Linux на платформе x86, и ваш процесс использовал libc malloc, один из способов понять, что это за объекты (временные объекты или утечки), — это использовать бесплатное программное обеспечение с открытым исходным кодом. https://github.com/vmware/chap чтобы понять это. После того, как вы построили Chap, вы начинаете это так:

глава -Имя-файла ядра

Затем, чтобы ответить на ваш конкретный вопрос, введите в командной строке следующие команды:

перенаправить на

шоу просочилось

шоу на якоре

показать бесплатно

Затем посмотрите в каждом из 3 полученных текстовых файлов шаблон, который вы видели в ядре. Если паттерн виден в выводе «show leaked», у вас есть утечка. Если это видно в выходных данных «show anchored», объекты, скорее всего, удерживаются в каком-либо контейнере, но все же существует вероятность, что он утек. Если это видно в выходных данных «show free», это из временного выделения, которое теперь было освобождено.

В качестве альтернативы, если вы уже знаете виртуальный адрес этого шаблона и хотите увидеть, как он использовался, после запуска главы на данном ядре вы можете просто использовать следующую команду:

описывать виртуальный адрес в шестнадцатеричном-

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]