Название: 4.8.1 Многопоточность глючит Отправлено: RedDog от Сентябрь 26, 2012, 15:07 Собрал в статику под виндой сабж с поддержкой OpenSSL. (по вики собирал)
Скопировал эту сборку в другую папку, очистил, пересобрал но без OpenSSL. Есть некоторый многопоточный проект (с SSL никак не связанный): 1. Собираю с OpenSSL. 2. Собираю без OpenSSL. в 1-м случае нормально работает, но требует SSL либы рядом положить. во 2-м случае крашится при выходе из потока. проект отлаженный в 4.7.4 работал месяца 3 в режиме 24х7 вообще без глюков. В чем может быть причина такой кривой сборки? Название: Re: 4.8.1 Многопоточность глючит Отправлено: Пантер от Сентябрь 26, 2012, 15:11 В кривой программе?
Название: Re: 4.8.1 Многопоточность глючит Отправлено: RedDog от Сентябрь 26, 2012, 16:03 В кривой программе? Я ж говорю, на 4.7.4 работает без багов, на 4.8.1 с SSL тоже багов не обнаружено.Название: Re: 4.8.1 Многопоточность глючит Отправлено: V1KT0P от Сентябрь 26, 2012, 20:52 В кривой программе? Я ж говорю, на 4.7.4 работает без багов, на 4.8.1 с SSL тоже багов не обнаружено.Название: Re: 4.8.1 Многопоточность глючит Отправлено: RedDog от Сентябрь 27, 2012, 10:58 Ну а что бэктрейс при падении говорит? знать бы еще как им пользоваться...Название: Re: 4.8.1 Многопоточность глючит Отправлено: V1KT0P от Сентябрь 27, 2012, 20:45 Ну а что бэктрейс при падении говорит? знать бы еще как им пользоваться...Название: Re: 4.8.1 Многопоточность глючит Отправлено: LisandreL от Сентябрь 28, 2012, 05:47 Запускаешь дебажную версию под дебагером Вы думаете он статическую версию с дебагом делал?Название: Re: 4.8.1 Многопоточность глючит Отправлено: V1KT0P от Сентябрь 28, 2012, 08:31 Запускаешь дебажную версию под дебагером Вы думаете он статическую версию с дебагом делал?Название: Re: 4.8.1 Многопоточность глючит Отправлено: RedDog от Сентябрь 28, 2012, 08:41 После сегфолта выдает дизасм:
Код: in ../../../gcc-4.4.0/libgcc/../gcc/emutls.c Название: Re: 4.8.1 Многопоточность глючит Отправлено: V1KT0P от Сентябрь 28, 2012, 09:01 После сегфолта выдает дизасм: Надо было в окне стека столбцы сильнее сузить, а то слишком широкие.Окно стека вот такое: Как я понял emutls.c это какой-то код для работы с TLS. И скорее всего этот код хочет OpenSSL, подымись по стеку и посмотри кто вызывает этот код и почему. Название: Re: 4.8.1 Многопоточность глючит Отправлено: gogi от Сентябрь 28, 2012, 10:10 Я ж говорю, на 4.7.4 работает без багов, на 4.8.1 с SSL тоже багов не обнаружено. А кто тебе безбажность 4.8.1 обещал? Вон на багтрекере можно вычитать, что люди до сих пор сидят на 4.7.x, а всё потому, что даже в 4.8.3 есть эпичные баги отрисовки!Название: Re: 4.8.1 Многопоточность глючит Отправлено: RedDog от Сентябрь 28, 2012, 10:14 Лады, зайдем с другого боку:
могут ли влиять либы SSL, которые лежать в папке mingw\lib, а так же хедеры SLL, лежащие в исходниках, при статической сборке без поддержки SSL? Название: Re: 4.8.1 Многопоточность глючит Отправлено: Igors от Сентябрь 28, 2012, 10:20 Лады, зайдем с другого боку: Такая логика мало применима. Любое изменение может вызвать баг. Напр меняется расклад памяти - неинициализированная область была заполнена нулями и благополучно работала (иногда годы). А теперь уже нет. И таких примеров не один. Отлаживайтесь, гадая на кофейной гуще Вы только теряете времямогут ли влиять либы SSL, которые лежать в папке mingw\lib, а так же хедеры SLL, лежащие в исходниках, при статической сборке без поддержки SSL? Название: Re: 4.8.1 Многопоточность глючит Отправлено: RedDog от Сентябрь 28, 2012, 14:04 Собственно многопоточность тут не при чем.
Создал пустой ГУИ проект с одной формой (сам никакого кода вообще не писал), собрал, запустил, закрыл форму - получил сегфолт с таким же выводом дизасма. Судя по отладке прошлого многопоточное приложения, что то в цикле обработке событий нарушено. Название: Re: 4.8.1 Многопоточность глючит Отправлено: Sancho_s_rancho от Сентябрь 28, 2012, 14:12 Погугли на тему emutls.c bug. Может это твой случай.
В gcc баги тоже случаются. Название: Re: 4.8.1 Многопоточность глючит Отправлено: V1KT0P от Сентябрь 28, 2012, 20:50 Собственно многопоточность тут не при чем. Попробуй взять другую версию MinGW или даже другую сборку, например niXman-овскую.Создал пустой ГУИ проект с одной формой (сам никакого кода вообще не писал), собрал, запустил, закрыл форму - получил сегфолт с таким же выводом дизасма. Судя по отладке прошлого многопоточное приложения, что то в цикле обработке событий нарушено. |