Page 1 of 2

А GoldenDict можно собирать MS Visual C++?

PostPosted: Wed Jul 13, 2011 3:39 pm
by Tvangeste
Вот такой вопрос возник. Константин, ты не пробовал? Или оно сразу не подходит из-за того, что у нас всякие библиотеки, которые токмо Mingw и соберутся нормально?

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Wed Jul 13, 2011 4:16 pm
by Tvangeste
Собственно, для чего все это нужно.

Время от времени, довольно редко, но все же достаточно, чтобы раздражать мою нежную психику, GoldenDict во время обычного использования падает с ошибкой. Настроить нормальный post-mortem дебаггер для работы с mingw-based бинарниками у меня не получилось, хоть тресни. Dr. Mingw какой-то глючный, не работает как надо, и пользы от него ноль.

А вот нормальный виндовняный post-mortem дебаггер работает хорошо и четко, делает дампы, кажет бэктрейсы, НО так как GD собран mingw'ом, вместо хороших стектрейсов я вижу только абстрактные адреса, а не имена функций.

Вот, думаю, может если собрать GD Visual C++'ом, то смогу наконец-то увидеть где же заковыка...

Или есть какие-то другие способы? Запускать GD из-под gdb не подходит, слишком тормознуто все работает, и постоянно под GDB сидеть в ожидании ошибки не будешь...

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Wed Jul 13, 2011 4:38 pm
by Abs62
Время от времени, довольно редко, но все же достаточно, чтобы раздражать мою нежную психику, GoldenDict во время обычного использования падает с ошибкой.

Ага, давно пора этим заняться. ;)
Судя по симптомам (падения редкие, случайные, при одних и тех же условиях может упасть, а может и нет), где-то нарушается синхронизация потоков. Скажем, один поток обнуляет указатель, а второй в это время его использует. Краш.

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Wed Jul 13, 2011 4:45 pm
by Tvangeste
Abs62 wrote:Судя по симптомам (падения редкие, случайные, при одних и тех же условиях может упасть, а может и нет), где-то нарушается синхронизация потоков. Скажем, один поток обнуляет указатель, а второй в это время его использует. Краш.


Похоже на то. Вот что я вижу в дебаггере:

Code: Select all
Access violation - code c0000005


Image

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Mon Jul 18, 2011 7:42 am
by ikm
Когда-то давно программа собиралась MSVC, однако с тех пор прошло много времени, и, скорее всего, без доточки оно сейчас не соберется. Я бы рекомендовал все-таки разобраться, как получать нормальные бэктрейсы с mingw. Как минимум, надо использовать дебажную сборку, а дальше уже искать в интернете, как обычно :)

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Mon Jul 18, 2011 1:35 pm
by Tvangeste
ikm wrote:Я бы рекомендовал все-таки разобраться, как получать нормальные бэктрейсы с mingw. Как минимум, надо использовать дебажную сборку, а дальше уже искать в интернете, как обычно :)

Так засада еще и в том, что на дебажном билде, как обычно, ничего не падает! 8-)

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Mon Jul 18, 2011 2:26 pm
by Abs62
Падает. Просто реже, чем в релизном. Не каждый день. ;)

А подточить под VC не так и сложно. Только надо ещё и hunspell пересобрать под VC.

Кстати, я смотрю, в winlibs лежит libhunspell-1.2, а текущая вроде как 1.3.1. Есть резон обновить?

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Tue Jul 19, 2011 5:46 pm
by ikm
Обновить hunspell можно.

По поводу дебага - собрать релизную сборку с дебажными символами вполне можно, для этого надо поковыряться в настройках компилятора/линкера.

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Tue Jul 19, 2011 6:08 pm
by Abs62
Обновить hunspell можно.

А libiconv? В winlibs лежит версия 1.9.2.1747, а последняя официальная - 1.13.1. Я у себя с ней собрал - вроде как всё работает.

И убрать лишнее из winlibs. Там большая часть файлов для сборки не требуется.

Re: А GoldenDict можно собирать MS Visual C++?

PostPosted: Tue Jul 19, 2011 6:10 pm
by Tvangeste
Abs62 wrote:
Обновить hunspell можно.

А libiconv? В winlibs лежит версия 1.9.2.1747, а последняя официальная - 1.13.1. Я у себя с ней собрал - вроде как всё работает.

И убрать лишнее из winlibs. Там большая часть файлов для сборки не требуется.

Так совсем недавно обсуждали: viewtopic.php?f=11&t=1171

Да, надо бы все почистить, у кого руки дойдут. :)