Russian Qt Forum

Qt => Общие вопросы => Тема начата: walk от Май 10, 2011, 19:13



Название: [SOLVED] Программа крешится под Mac OS, под Linux и Win нормально. WTF?
Отправлено: walk от Май 10, 2011, 19:13
Разрабатываю кроссплатформенную программу на Qt. Попиксельная обработка изображений через интерфейс класса QImage. И вот засада: падает при входе в рекурсивную функцию, но только на Маке. Казалось бы, стек увеличь? Увеличивал до невероятных размеров, при помощи QMAKE_LFLAGS += -Wl,-stack_size,0x10000000 - никакого влияния. Да и глубина вызовов на момент падения не такая уж большая, порядка 3000, функция лёгкая.

Диагностика: Bus error.

Не встречался никто с таким? Что бы это могло быть?


Название: Re: Программа крешится под Mac OS, под Linux и Win нормально. WTF?
Отправлено: Авварон от Май 10, 2011, 20:07
Бас эррор - это что-то с ИО связанное. У меня такое было когда диск накрылся:)


Название: Re: Программа крешится под Mac OS, под Linux и Win нормально. WTF?
Отправлено: walk от Май 10, 2011, 20:20
В контексте Mac OS "bus error" - нарушение доступа к памяти, сегфолт, короче.


Название: Re: Программа крешится под Mac OS, под Linux и Win нормально. WTF?
Отправлено: walk от Май 11, 2011, 10:52
Проблема решена. Было переполнение программного стека. Переделал функцию из рекурсивной в итеративную.


Название: Re: Программа крешится под Mac OS, под Linux и Win нормально. WTF?
Отправлено: Авварон от Май 11, 2011, 12:57
В контексте Mac OS "bus error" - нарушение доступа к памяти, сегфолт, короче.
Вы не правы