-Музыка

 -Поиск по дневнику

Поиск сообщений в _DOOMer_

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.10.2005
Записей:
Комментариев:
Написано: 19765


Детские ошибки

Понедельник, 17 Октября 2011 г. 23:21 + в цитатник
Вот так всегда -- забудешь добавить нужный флаг компилятору, и в рабочем на первый взгляд коде появляются мистические баги и падения "на пустом месте". Причем падения, зависящие от фаз луны каких-то внутренних состояний регистров процесса (или ешё чего-нить низкоуровневого) - те.е вполне рабочая софтина падает в одном месте, но не при каждом запуске.

А все почему* Потому что надо было собирать с флагом -Wall, и не забивать болт на warning'и (как я иногда это делаю). Тггда бы и увидел вот это:

src/core/highlightmodel.cpp:138:1: warning: control reaches end of non-void function [-Wreturn-type]

и добавил в конце метода data() у потомка QAbstractItemModel "ничего не значащую" строчку:

return QVariant();

Риттурнов такм и без этого достаточно было, но все были запрятаны за блоками условных переходов, явного возвращаемого значения "как бы не было". И как выяснилось, ноги у сегфолтов росли именно отсюда.

Вот только в другой модели, в этом же проекте, ничего подобного не было (при отсутствии вышеуказнного оператора в конце аналогичного метода).

Самое интересно, что в винде (как в виртуалке, так и на клиентской машине) все работало и так - с учетом того что собиралось также gcc, как и в этих наших чертовых линуксах.
Рубрики:  Программерские будни
Метки:  



Koldun-Boroda   обратиться по имени Вторник, 18 Октября 2011 г. 21:40 (ссылка)
кому-то детские ошибки а кто-то почти половину не понял =)
тачт огордись собой)
Ответить С цитатой В цитатник
_DOOMer_   обратиться по имени Вторник, 18 Октября 2011 г. 23:32 (ссылка)
Нуу... гордиться можно наверное только совсем-совсем чутка, и только потому что больше именно на такую ошибку я уже врядли напорюсь =)
Ответить С цитатой В цитатник
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку