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

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

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Ошибка при закрытии программы.

Автор: silver47 10.9.2011, 21:48

Доброго времени суток. При закрытии программы, случается, что появляется сообщение о том, что программа выполнила недопустимую операцию и тд по списку. Научите, пожалуйста, как её отловить.

Qt 4.7.4 + QtCreator 2.3.0
Window 7

Автор: RazrFalcon 10.9.2011, 22:22

Копипаст текста ошибки в студию.

Автор: silver47 10.9.2011, 22:35

Скрин ошибки в файле 2.png
Файл 1.png содержит скрин дебагера сразу после вылета. Красным подчернул два моих метода.

Да приложение многопоточное, но потоки к тому моменту, как происходит вылет, уже отработали, завершились и были удалены (через сигнал fihished и слот deleteLater).

Понимаю, что наверняка, пытаюсь уничтожить то, что уничтожено ранее, но не знаю как это найти.

 

Автор: RazrFalcon 11.9.2011, 0:01

Я хз, но может

if (d->recursive()) { ...

Автор: Алексей1153 11.9.2011, 0:06

exception code 0xc0000005 - это попытка залезть в чужую память. Это либо выход за край динамического массива, либо попытка доступа к возвращённому в кучу блоку памяти

судя по всему, объект, на который указывает (-вал) указатель d - капут

ещё вариант (для дебага актуально ) - неинициализированный указатель. он там у тебя не нулевой, а что-нибудь вроде 0xcccccccc

Автор: silver47 11.9.2011, 5:23

Это 100% попытка доступа к памяти, возвращенной в кучу. Но указатель d, это не моё, это QMutex. Моё подчеркнуто красным, там всего 2 файла.

Автор: silver47 11.9.2011, 8:19

Эмм... кажется вопрос закрыт. Не совсем понимаю причем тут это.

В общем, создавался отдельный поток и запускался на выполнение не с помощью thread->start(); а напрямую: thread->run();. Заменил второе на первое и все как рукой сняло. Уже полчаса как не могу повторить вылет.

P.S. посоветуйте литературу про потоки на Qt.

Автор: Litkevich Yuriy 11.9.2011, 8:47

а программа не консольная?

Автор: silver47 11.9.2011, 8:52

Была когда-то консольной. С ней как раз проблем не было, после того как прикрутил ГУИ c треем, вот все и началось.

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