[sisyphus] PyQt + стили KDE = segfault
Dmitry Vukolov
kookish на bk.ru
Вс Фев 29 23:36:41 MSK 2004
Приветствую!
Продолжая недавно обсуждавшуюся тему падения скриптов, использующих
PyQt. Совет экспортировать KDE_MALLOC=no действительно помогает, за
исключением ещё одного случая.
При добавлении QToolButton/QPushButton к QToolBar и одновременно
использующемся стиле KDE (Keramika, Plastik и т.д.) у меня всегда
происходит segfault. Пример прилагается. У кого-нибудь ещё такое
поведение наблюдается с PyQt-3.10-alt1, sip-3.10-alt1, kdelibs-3.1.4-alt12?
Valgrind показывает ошибку, возникающую на уровне стиля KDE.
Соответственно установка стиля на встроенный в Qt в скрипте/Центре
настроек KDE или же удаление /usr/lib/kde3/plugins из Qt Library Paths
избавляют от segfault-ов. Однако хотелось бы понять, кто же всё-таки
виноват?
Проверив скрипт с PyQt-3.8-3mdk и sip-3.8-3mdk оказалось, что всё
работает идеально. Может быть это бага PyQt-3.10? Но в их рассылке за
последние полтора месяца, прошедшие с момента выпуска 3.10, похожих
сообщений не наблюдается. СтОит ли туда писАть?
--
Dmitry Vukolov
-------------- next part --------------
z'╣ЛmjшZr··э╡г+╧╤чtж╕zз(∙╤╚╣К-╖$Р╔К^фъЯ╖+a╒t╒мН8щ╪╜zюч╠иХ╣╚з┼V⌡∙Е+≈Зb╔ЙФj)╡+2╕╛Щ╚miхfz{lЪm4ЦM╤ВЧ╨С]]oOМ╒┴[j╩^╡зr
-------------- next part --------------
==4495== Invalid read of size 4
==4495== at 0x403E5AFD: __dynamic_cast (in /usr/lib/libstdc++.so.5.0.5)
==4495== by 0x45366B84: (within /usr/lib/kde3/plugins/styles/keramik.so)
==4495== by 0x453671DD: KeramikStyle::drawPrimitive(QStyle::PrimitiveElement, QPainter*, QRect const&, QColorGroup const&, unsigned, QStyleOption const&) const (in /usr/lib/kde3/plugins/styles/keramik.so)
==4495== by 0x4536AEAB: KeramikStyle::drawControl(QStyle::ControlElement, QPainter*, QWidget const*, QRect const&, QColorGroup const&, unsigned, QStyleOption const&) const (in /usr/lib/kde3/plugins/styles/keramik.so)
==4495== Address 0x0 is not stack'd, malloc'd or free'd
Подробная информация о списке рассылки Sisyphus