New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Runtime Error

Сообщаем о найденных ошибках сюда

Re: Runtime Error

Postby Gloggy » Wed Jun 02, 2010 8:23 pm

ikm wrote:Сижу разбираюсь. Попробуй пока вставить после создания qapplication:
QThreadPool::globalInstance()->setMaxThreadCount( 1 )
будет ли продолжать падать?

Нет, после этого больше не падает! :) Но я так понимаю, за это придется платить производительностью где-то? ;)
Gloggy
Модератор
 
Posts: 516
Joined: Wed May 06, 2009 3:01 pm

Re: Runtime Error

Postby ikm » Wed Jun 02, 2010 8:28 pm

Да, производительность упадет, так что эту строчку убери, и попробуй вместо этого добавить try/catch в начале :)

Я сумел воспроизвести проблему в искусственном тесте, и судя по всему, всё так и есть. Жду проверки последнего теста (с try/catch в начале программы), после чего добавляю это в Git. В Qt багрепорт отправил. Вообще это баг проекта MinGW, но они там квёлые какие-то, решил писать более энергичным финским парням :)

Я очень удивлен, что такие проблемы вообще существуют. Все-таки mingw пользуется много народу, а никто до нас с этим не столкнулся. Чудеса. И кошмар :)
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: Runtime Error

Postby Gloggy » Wed Jun 02, 2010 8:34 pm

ikm wrote:Да, производительность упадет, так что эту строчку убери, и попробуй вместо этого добавить try/catch в начале :)

А можно чуть подробнее, чего поменять? Я не до конца понял! :) Можно диффчик мне для примера скинуть?
Gloggy
Модератор
 
Posts: 516
Joined: Wed May 06, 2009 3:01 pm

Re: Runtime Error

Postby ikm » Wed Jun 02, 2010 8:39 pm

Code: Select all
--- a/main.cc
+++ b/main.cc
@@ -19,6 +19,19 @@
 
 int main( int argc, char ** argv )
 {
+  // The following clause fixes a race in the MinGW runtime where throwing
+  // exceptions for the first time in several threads simultaneously can cause
+  // an abort(). This code throws first exception in a safe, single-threaded
+  // manner, thus avoiding that race.
+  {
+    class Dummy {};
+
+    try
+    { throw Dummy(); }
+    catch( Dummy )
+    {}
+  }
+
   if ( argc == 3 && strcmp( argv[ 1 ], "--show-error-file" ) == 0 )
   {
     // The program has crashed -- show a message about it
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: Runtime Error

Postby Gloggy » Wed Jun 02, 2010 8:50 pm

ikm wrote:Я сумел воспроизвести проблему в искусственном тесте, и судя по всему, всё так и есть. Жду проверки последнего теста (с try/catch в начале программы), после чего добавляю это в Git.

С try-catch тоже все работает. Я как чувстовал, что виноват MinGW!!! :)
Gloggy
Модератор
 
Posts: 516
Joined: Wed May 06, 2009 3:01 pm

Re: Runtime Error

Postby Gloggy » Wed Jun 02, 2010 8:56 pm

Gloggy wrote:Собираюсь применять атомный вариант - поставить Visual Studio и попытаться собрать GD при помощи Visual Studio.

Таки попробовал этот вариант. Понял, что там все не так просто. Много ошибок компиляции. Кое-что дважды определено, кое-что не компилируется (типа iconv), кое-где не хватает каких-то инклудов, пачками неопределенные идентификаторы идут. В общем, при ОЧЕНЬ сильном желании можно было бы добить, но если у нас есть нормальный фикс для mingw, то смысла особого нету.

Visual Studio 2010 Express Edition особого впечатления не произвел, кстати. Нормальные современные Java IDE (Eclipse, Netbeans, IntelliJ) - они вроде как в разы более продвинутые. Не ожидал!

Такое у меня нехорошее подозрение, что вот эти все грабли с падениями - они не в GD самом, а в mingw, перемудрили они там что-то с эксепшнами.

Как в воду глядел!!! ;)
Gloggy
Модератор
 
Posts: 516
Joined: Wed May 06, 2009 3:01 pm

Re: Runtime Error

Postby ikm » Wed Jun 02, 2010 8:57 pm

Поздравляю с нашей общей победой! Закоммиттил в git.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: Runtime Error

Postby ikm » Wed Jun 02, 2010 9:44 pm

Gloggy wrote:Visual Studio 2010 Express Edition особого впечатления не произвел, кстати

А меня Qt Creator всем устраивает :) Очень им доволен, лучшее, что есть сейчас.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: Runtime Error

Postby YuSu » Fri Jun 04, 2010 8:50 am

Без деталей - на WinXP у меня портабельная версия падала аналогичным образом (только при первой же попытке что-нибудь посмотреть). Сегодня после обновления полет уже несколько часов нормальный. летает, как птица.
спасибо за портабель!
YuSu
 
Posts: 18
Joined: Fri Dec 11, 2009 10:42 am

Previous

Return to Ошибки

Who is online

Users browsing this forum: No registered users and 1 guest