Summary: | КОМПАС 10 не запускается на сборке Wine через script | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Vitaly Lipatov <lav> |
Component: | Запуск ; Отладка ; Исключения | Assignee: | Anton Rudnev <mibori> |
Status: | CLOSED WORKSFORME | QA Contact: | Денис Баранов <baraka> |
Severity: | minor | ||
Priority: | P2 | CC: | kondratyuk, vitperov |
Version: | 1.0.9 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 3000 |
Description
Vitaly Lipatov
2008-12-26 01:35:32 MSK
Результаты экспериментов на заново склонированном и собраном через wine_build.sh репозитории 1. На евклиде локально из собственной home через winexp запускается. 2. На евклиде локально из собственной home через wwxp запускается. 3. На целларе swine kompas/kompas10lt через winexp запускается 4. На целларе swine kompas/kompas10lt через wwxp рушится с исключением Runtime error. Но если сделать так, чтобы по умолчанию не открывалась модель (т. е. не использовался gl), то программа работает, до тех пор пока эту модель не откроешь. 5. Запустить локально на евклиде бутылку с целлара не удалось. Из этого всего напрашивается только один вывод, когда мы запускаем с целлара через wwxp, используется целларовский gl, и он, как и следует ожидать, падает. Если через WINEDISABLEGEH=yes отрубить глобальный обработчик исключений, устанавливаемый компасом, то в случае запуска wwxp из удаленной бутылки на целларе при открытии модели можем наблюдать бектрейс: =>0 0x7b845528 RaiseException+0x84(code=3765269347, flags=1, nbargs=3, args=0x32e744) [/home/mibori/Projects/wine/dlls/kernel32/except.c:89] in kernel32 (0x0032e720) 1 0x7eb4b2b5 _CxxThrowException+0x3c(object=0x32e83c, type=0x7eb79df8) [/home/mibori/Projects/wine/dlls/msvcrt/cppexcept.c:464] in msvcrt (0x0032e750) 2 0x7eb49c5c MSVCRT___RTDynamicCast+0x255(cppobj=0x277c674, unknown=0, src=0x30e486c, dst=0x30e47e8, do_throw=0) [/home/mibori/Projects/wine/dlls/msvcrt/cpp.c:1170] in msvcrt (0x0032e880) 3 0x03075bb8 in k3dappa (+0x5bb8) (0x025abaa0) 4 0x00000001 (0x030b4dfc) 5 0x03077f30 in k3dappa (+0x7f30) (0x03077e00) 6 0x9090c303 (0x0b4d58b8) 7 0x00000000 (0x00000000) и сообщение Runtime Error:R6025 об ошибке R6025 написано по ссылке http://support.microsoft.com/kb/125749 Я пересобрал репозиторий, всё равно падает (wwxp). При запуске через winexp не падает. Вхожу в бутылку через swine -l поведение запуска в удаленной бутыле евклида соответствует поведению, когда мы запускаем компас на целларе локально. Запускаем локально на целларе: если winexp то все нормально если wwxp, то падает, когда открываем деталь (с тем же бэктрейсом при отключенном глобальном обработчике, что и сидя на евклиде, в удаленной бутылке на целларе) из этого ясно только то, что собранный репозиторий, при использовании gl на целларе вызывает падение, а на евклиде не вызывает. для конкретно собранного репозитория пока очевидна только разница работы на разных машинах стоит наверное еще покапаться с параметрами компиляции вот пример компиляция rpcrt4 для pub/Etersoft/WINE@Etersoft/1.0.9-eter39/WINEALTLinux/Sisiphus/logv i586-alt-linux-gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_RPCRT4_ -DCOM_NO_WINDOWS_H -DMSWMSG -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wtype-limits -Wpointer-arith -pipe -Wall -O2 -march=i586 -mtune=i686 -o rpcrt4_main.o rpcrt4_main.c для моего локального репозитория gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_RPCRT4_ -DCOM_NO_WINDOWS_H -DMSWMSG -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wtype-limits -Wpointer-arith -D_FORTIFY_SOURCE=2 -g -O0 -o rpcrt4_main.o rpcrt4_main.c по крайней мере число в параметре -O не влияет на ситуацию. также не влияет на ситуацию полное удаление строчки export CFLAGS="-D_FORTIFY_SOURCE=2 -g $PGFLAGS -O0" из скрипта. если добавить -O2 -march=i586 -mtune=i686 результат не меняется. Проблема не воспроизводится. |