Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 6820 - Хронограф 3.0 Мастер: ошибки при открытии экранов   Make a simular bug
Summary: Хронограф 3.0 Мастер: ошибки при открытии экранов
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Запуск ; Отладка ; Исключения (show other bugs)
Version: 2.0
Hardware: PC All
: P4 minor
Target Milestone: ---
Assignee: Александр Морозов
QA Contact: Глеб Кордюков
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 6715
  Show dependency treegraph
 
In work:
Reported: 2011-01-21 11:40 MSK by Andrey Vusik
Modified: 2011-02-22 13:44 MSK (History)
4 users (show)

See Also:
Заявки RT: 11624
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Vusik 2011-01-21 11:40:59 MSK
Бутылка в eterhack rt/11624
Открываем экран "Данные о преподавателях", а потом любой другой либо просто выходим из него.
Получаем ошибки типа "access violation in adress 00000000....."
Comment 1 Глеб Кордюков 2011-01-24 12:34:21 MSK
Клиент проверил на текущей версии (21.01.2011) - сначала пару раз "Invalid pointer operation", затем "Access
violation at address 00890D17. Write of address 14467698" и уже потом "access violation in address
00000000"
Предыдущие описания ошибок касались новогодней версии - в этой похоже что-то поправили....
Comment 2 Виталий Перов 2011-01-24 17:20:35 MSK
Хм... Появляется графическое сообщение об ошибке.
В консоли ничего не появляется.
Отладка будет весьма затруднительной.

Где-то был полурабочий патч от mibori@. Можно попробовать применить его для перехвата исключений.

Ещё появляется сообщение "Internal exception c000001d. Посмотрел в исходниках wine, этот код соответствует:
ERROR_INVALID_FUNCTION,                 /* c000001d (STATUS_ILLEGAL_INSTRUCTION) */
Comment 3 Виталий Перов 2011-01-24 18:20:20 MSK
На решения баги потребуется много времени, и на данный момент заниматься этой багой не планирую. Чтобы бага не "застряла" перевешиваю на Сашу
Comment 4 Александр Морозов 2011-01-27 22:38:05 MSK
Первое исключение при закрытии экрана "Данные о преподавателях" возникает по адресу 0x8a9c94. Код в данном участке памяти судя по выводу info share в winedbg не относится к какой-то dll, а каким-то образом записан туда программой. Возможно, там вообще не код, и управление туда передаётся по ошибке.
Comment 5 Александр Морозов 2011-01-28 19:59:00 MSK
Сообщения об ошибках не появляются, если в WINPROC_CallProcWtoA не вызывать обработчик для WM_SIZE при lParam = 0x1a30310 и wParam = SIZE_RESTORED. Но это работает только для одного размера окна.
Comment 6 Александр Морозов 2011-01-28 20:06:45 MSK
Сообщения, игнорирование которых приводит к отсутствию ошибок, посылаются при открытии экрана. А ошибки возникают при закрытии.
Comment 7 Александр Морозов 2011-01-31 20:48:29 MSK
> Сообщения, игнорирование которых приводит к отсутствию ошибок, посылаются при
> открытии экрана. А ошибки возникают при закрытии.
Нет, это не так. Окну "Данные о преподавателях" сообщение посылается и при закрытии.
Comment 8 Александр Морозов 2011-02-01 20:23:07 MSK
Проблему можно обойти, если в USER_SetWindowPos возвращать FALSE при определённых значении WINDOWPOS. При этом не будет вызываться падающий обработчик.

USER_SetWindowPos вызывается из SetWindowPos (break_8074 - специальная функция, чтобы поставить точку останова на нужную ситуацию):
=>0 0x7e6db947 break_8074() [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/winpos.c:2047] in user32 (0x0033f0bc)
  1 0x7e6dc167 SetWindowPos+0x139(hwnd=0x33f0fc, hwndInsertAfter=0x2c, x=0, y=0x95c70000, cx=0xffffffff, cy=0x110014, flags=0x33f0fc) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/winpos.c:2232] in user32 (0x0033f12c)
  2 0x7e6dc167 SetWindowPos+0x139(hwnd=0x20142, hwndInsertAfter=(nil), x=0x16, y=0x16, cx=0x318, cy=0x1be, flags=0x8074) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/winpos.c:2232] in user32 (0x0033f1bc)
  3 0x7e6d8c42 show_window+0x3d5(hwnd=0x20142, cmd=0x4) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/winpos.c:1094] in user32 (0x0033f1ec)
  4 0x7e6d8f60 ShowWindow+0x5d(hwnd=0x20142, cmd=0x4) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/winpos.c:1194] in user32 (0x0033f22c)
  5 0x7e6845ea MDI_SwitchActiveChild+0x13c(ci=0x176684, hwndTo=(nil), activate=0) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/mdi.c:549] in user32 (0x0033f27c)
  6 0x7e684abc MDI_ChildActivate+0x119(client=0x100a2, child=(nil)) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/mdi.c:648] in user32 (0x0033f2dc)
  7 0x7e6847c4 MDIDestroyChild+0x154(client=0x100a2, ci=0x176684, child=0x20142, flagDestroy=0x1) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/mdi.c:587] in user32 (0x0033f3cc)
  8 0x7e6864b7 MDIClientWndProc_common+0x60e(hwnd=0x100a2, message=0x221, wParam=0x20142, lParam=0, unicode=0) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/mdi.c:1170] in user32 (0x0033f3fc)
  9 0x7e6e1913 MDIClientWndProcA+0x3c(hwnd=0x100a2, msg=0x221, wParam=0x20142, lParam=0) [/srv/amorozov/Projects/wine-etersoft-public/dlls/user32/winproc.c:1162] in user32 (0x0033f42c)
  10 0x7e6de62a WINPROC_wrapper+0x19() in user32 (0x0033f53c)
....... тут ещё много всего .......
Возможно, в WINE что-то не так с посылкой сообщений при использовании MDI.

Сделал хак. Отправил его в wine-patches-test.
Comment 9 Денис Баранов 2011-02-19 17:37:26 MSK
Принято.
WINE@Etersoft School 1.7.0 eter5/6