Наткнулся на падение при загрузке десктопа при использование TDE R14.0.4 в Slackware 14.2/current x86. Проблема с пакетом tqt, встроенный анализатор выдаёт вот такой лог:
No symbol table info available.
#5 TQChar::unicode (this=0x8973000) at /tmp/build/tmp-tqt3/dependencies/tqt3/src/tools/ntqstring.h:199
No locals.
#6 TQString::utf8 (this=this@entry=0xbfa7a66c) at /tmp/build/tmp-tqt3/dependencies/tqt3/src/tools/qstring.cpp:5991
u = <optimized out>
i = <optimized out>
l = 569873234
rlen = 1709619703
rstr = {<TQMemArray<char>> = {<TQGArray> = {_vptr.TQGArray = 0xb678b898 <vtable for TQCString+8>, shd = 0x8943418}, <No data fields>}, <No data fields>}
cursor = 0x4ecb7057 ""
ch = 0x8973000
#7 0xb6912096 in TDEConfigBase::setGroup (this=0x891c650, group=...) at /tmp/build/tmp-tdelibs/tdelibs/tdecore/tdeconfigbase.cpp:84
No locals.
после ковыряние отладчиком место падения установлено как tdeconfigskeleton.cpp:953, причём всегда когда используется русская локаль в Тринити и smp-версия ядра. Знающие люди подсказали, что большое значение l = 569873234 мусорные данные и указывает на рассинхронизацию потоков. Значение u-i не видны из-за оптимизации, когда собираешь с опцией -O0 ошибка никак себя не проявляет. Подозреваю, что такой фокус происходит только на моём процессоре core2duo и на Slackware-системе потому, что другие ОС которые я у себя тестировал чтобы вызвать ошибку работают стабильно как часы.
Вопрос к специалистам: в чём тут может быть дело? Какие-то проблемы с библиотеками/настройкой ядра, кривой код, проц или что-то ещё? В какую примерно сторону копать чтобы выяснить причину? Вообще из-за чего такое может произойти? Может у кого есть аналогичное железо на подобном камне чтобы проверить работу?