Открываем компас. Открываем любой пример 3D модели, например "c:/Program Files/ASCON/KOMPAS-3D V10/Samples/Models$ ples/Models/Bracket.m3d" Пытаемся удалите какую нибудь частичку, происходит падение: wine: Unhandled page fault on read access to 0x00000033 at address 0x1ac6aed (thread 0057), starting debugger... Unhandled exception: page fault on read access to 0x00000033 in 32-bit code (0x01ac6aed). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b EIP:01ac6aed ESP:0033f6cc EBP:115a7520 EFLAGS:00210297( R- -- I S -A-P-C) EAX:02027fb0 EBX:11f804a0 ECX:0e0bb164 EDX:0000002b ESI:00000004 EDI:00000005 Stack dump: 0x0033f6cc: 115553b4 11555414 00000000 045f57ee 0x0033f6dc: 115553b4 00000000 045f670a 00000001 0x0033f6ec: 115a7520 045da598 00000000 115553b4 0x0033f6fc: 115a7520 11555410 00000000 02041a78 0x0033f70c: 00000000 00000000 00000000 00000000 0x0033f71c: 0033f7cc 04633788 00000002 045f66c1 Backtrace: =>0 0x01ac6aed in k2ddoc (+0x296aed) (0x115a7520) 1 0x044b260c ??_7Detail3D@@6BIfVarVariant@@@() in k3dobj2 (0x044b2644) 2 0x04445c40 in k3dobj2 (+0x45c40) (0x04445c30) 0x01ac6aed: call *0x8(%edx)
Виталий, как я понимаю, падение происходит при вызове (виртуальной?) функции 7Detail3D::BIfVarVariant для объекта, адрес которого оказывается нулевым. Есть ли возможность посмотреть, в чём может быть причина? Воспроизводится ли у Вас?
вылет у меня под ubuntu 9.04 повторяется. IfVarVariant - это интерфейс детали используемый в сборках для создания вставок. Посмотрели удаление в Bracket.m3d под windows, в этот интерфейс вообще не попадали. Более детально сейчас разбираться нет возможности из-за отпусков и перегруженности оставшихся сотрудников.
Достаточно непросто понять, с какими API-функциями связана данная проблема.
В 1.0.10-eter25/18 проблема воспроизводится.
Подтверждаю 1.0.10. В 1.0.9-eter44 не падает. Запускал через $ wwr 1.0.9 KOMPAS.EXE
Похоже, нужно сделать git bisect, чтобы выяснить причину изменений. Возможно ли запускать проверку на wwo, если программа требует HASP driver?
> Возможно ли запускать проверку на wwo, если > программа требует HASP driver? Можно добавить к USB-патчу для оригинального wine патч для Hardlock-а, чтобы можно было запускать с HASP.
Ошибка возникла из-за моего коммита: commit 864292c8798cc1fd3ade9271eeca0ea05fce0c17 Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Tue May 5 18:01:18 2009 +0400 comctl32: Implementation of tooltips for the treeview controls without TVS_NOTOOLTIPS style (eterbug #2617) В окне "Удалить объекты" есть treeview контрол, в которм перечисляются все удаляемые элементы. Для этого treeview создается tooltips (т.к. его dwStyle не содержит TVS_NOTOOLTIPS). После подтверждения удаления, окно закрывается, а treeview уничтожается. Tooltips при этом также уничтожается, но после этого к нему происходит обращение, вероятнее всего, со стороны Компаса. Тесты аналогичной ситуации, с уничтожаемым treeview контролом, такого падения не выявили. Это подтверждает, что обращение к tooltips, котрое привело к падению, было не со стороны wine. Решение заключается в том, чтобы создавать tooltips контрол для treeview только в случае необходимости вывести подсказку. Также удаление tooltips происходит более корректно - сначала удаляются элементы этого контрола с помощью TTM_DELTOOL.
WINE@Etersoft CAD 1.1.0 eter9/eter5 Принято.