crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Ошибка при закрытии программы.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
silver47 Дата 11.9.2011, 8:52
  Была когда-то консольной. С ней как раз проблем не было, после того как прикрутил ГУИ c треем, вот все и началось.
Litkevich Yuriy Дата 11.9.2011, 8:47
  а программа не консольная?
silver47 Дата 11.9.2011, 8:19
  Эмм... кажется вопрос закрыт. Не совсем понимаю причем тут это.

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

P.S. посоветуйте литературу про потоки на Qt.
silver47 Дата 11.9.2011, 5:23
  Это 100% попытка доступа к памяти, возвращенной в кучу. Но указатель d, это не моё, это QMutex. Моё подчеркнуто красным, там всего 2 файла.
Алексей1153 Дата 11.9.2011, 0:06
  exception code 0xc0000005 - это попытка залезть в чужую память. Это либо выход за край динамического массива, либо попытка доступа к возвращённому в кучу блоку памяти

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

ещё вариант (для дебага актуально ) - неинициализированный указатель. он там у тебя не нулевой, а что-нибудь вроде 0xcccccccc
RazrFalcon Дата 11.9.2011, 0:01
  Я хз, но может
if (d->recursive()) { ...
silver47 Дата 10.9.2011, 22:35
  Скрин ошибки в файле 2.png
Файл 1.png содержит скрин дебагера сразу после вылета. Красным подчернул два моих метода.

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

Понимаю, что наверняка, пытаюсь уничтожить то, что уничтожено ранее, но не знаю как это найти.
RazrFalcon Дата 10.9.2011, 22:22
  Копипаст текста ошибки в студию.
silver47 Дата 10.9.2011, 21:48
  Доброго времени суток. При закрытии программы, случается, что появляется сообщение о том, что программа выполнила недопустимую операцию и тд по списку. Научите, пожалуйста, как её отловить.

Qt 4.7.4 + QtCreator 2.3.0
Window 7
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 18:46