Название: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 06, 2013, 21:54 Доброго времени суток!
Столкнулся с такой проблемой: Запускаю приложение, отрабатывает как нужно, но после закрытия выскакивает окно с ошибкой(в прикр. файле) Уже несколько дней бьюсь, не могу понять почему. Примерно знаю после чего такая ерунда, но как исправить не знаю. Помогите, кто может. В прикрепленном файле проект, Qt4 Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: kambala от Октябрь 06, 2013, 22:44 наверное где-то удаляешь уже удаленный указатель, проверь свои free/delete
Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 06, 2013, 22:56 Так в том то и дело, что ничего не удаляю, практически.
Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: kambala от Октябрь 06, 2013, 23:13 компилятор от visual studio 2012, никаких ошибок не вываливается при завершении. но при запуске под дебаггером вылазит 2 предупреждения (это наверное какие-то системные):
Цитировать :0: warning: Exception at 0x7510c41f, code: 0x6ba: RPC server unavailable, flags=0x1 (execution cannot be continued) (first chance) когда открывается окно выбора папки иЦитировать :0: warning: Exception at 0x7510c41f, code: 0x406d1388: Startup complete, flags=0x0 (first chance) где-то в процессе прохода по папкам.попробуй может очистить полностью проект и поудалять все build-папки. Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 06, 2013, 23:23 Очищал, удалял. Под убунтой тоже ложится.
У меня она отваливается когда сканирую весь диск C. Очень много файлов, видимо. Но только на нем ложится. Даже не только целый диск. Например, папку c:\Windows Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: kambala от Октябрь 06, 2013, 23:34 У меня она отваливается когда сканирую весь диск C. Очень много файлов, видимо. Но только на нем ложится. с этого и надо было начать. так у меня тоже вываливается ошибка. вот стек на всякий случай:Даже не только целый диск. Например, папку c:\Windows Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 06, 2013, 23:49 Думал проблема в QReadWriteLock, заменил на QMutex. Не помогло(
Что можете посоветовать? Или тут проблема очевидна? Update: Думал, может ошибка в том, что InfoCollectThread наследуется от QObject. Переписал все на обработку событий вместо сигналов/слотов - эффекта нет( Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 07, 2013, 03:30 Метод тыка показал, что проблема в удалении объектов DirectoryTreeItem.
Только вот если не удалять, утечка будет(( Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: Bepec от Октябрь 07, 2013, 06:51 Может вы сначала удаляете родителя, а потом пытаетесь детей? Родитель сам беспокоится о детях.
Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 07, 2013, 10:57 Я вообще не удаляю - предоставляю это QTreeWidget
Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 07, 2013, 12:05 А что, если объекты DirectoryTreeItem создаются в других потоках, а удаляются в главном?
Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: lit-uriy от Октябрь 07, 2013, 19:29 GUI-компоненты не могут существовать в других потоках кроме основного (это есть в документации по Qt)
Название: Re: Ошибка: Debug Assertion Failed(нарушение дебаженой кучи) Отправлено: timocov от Октябрь 08, 2013, 00:34 В общем. Не знаю что точно помогло. Но сделал DirectoryTreeItem наследником от QObject(ну и удалять стал QObject::deleteLater()), и добавил отдельный класс для отображения на экране, и вроде работает.
Всем спасибо, кто помогал. |