Автор Тема: Помогите диагностировать Wine ошибку...  (Прочитано 2679 раз)

Оффлайн San

  • Давно тут
  • **
  • Сообщений: 655
Добрый день. Что то уже мозг сломал? Помогите диагностировать Wine ошибку? У всех с похожей проблемой wine-приложения не запускаются, а у меня не завершаются!  ;-D

Имеем Систему:
$ cat /etc/altlinux-release
ALT p9 starter kit (Hypericum)
$ head -n 2 /etc/os-release
NAME="starter kit"
VERSION="p9 (Hypericum)"
$ uname -a
Linux desk-allsslogsrv 5.4.101-std-def-alt1 #1 SMP Fri Mar 5 16:54:28 UTC 2021 x86_64 GNU/Linux
# ll /proc/1/exe
lrwxrwxrwx 1 root root 0 мар 13  2021 /proc/1/exe -> /sbin/init
Установлен Wine:
$ rpm -qa | grep wine
i586-wine-5.20.0.1-alt1.i586
libwine-gl-5.20.0.1-alt1.x86_64
wine-docs-1.6-alt1.noarch
libkwineffects12-5.18.5-alt1.x86_64
wine-mono-5.1.1-alt1.noarch
i586-libwine-gl-5.20.0.1-alt1.i586
libwine-5.20.0.1-alt1.x86_64
i586-libkwineffects12-5.18.5-alt1.i586
i586-libwine-5.20.0.1-alt1.i586
winetricks-20210206-alt1.noarch
wine-gecko-2.47.1-alt1.noarch
После запуска приложения и его работы, при попытке завершить работу выпадает IMG_20210312_221306.png ну и соответственно при переходе на "Подробно" IMG_20210312_221329.png - Не информативное окно об ошибке. При этом как бы сам процесс остается в памяти, пока его не прибьешь...
$ top | grep ss_logger.exe
   5354 san       20   0 2743076  73824  39132 R  43,8   0,9   1:07.65 ss_logger.exe                                   
   5354 san       20   0 2743076  73824  39132 t  51,0   0,9   1:09.18 ss_logger.exe                                   
   5354 san       20   0 2743076  73824  39132 t  50,8   0,9   1:10.71 ss_logger.exe                                   
   5354 san       20   0 2743076  73824  39132 t  51,5   0,9   1:12.26 ss_logger.exe                                   
   5354 san       20   0 2743076  73824  39132 t  51,2   0,9   1:13.80 ss_logger.exe                                   
   5354 san       20   0 2743076  73824  39132 S  50,7   0,9   1:15.32 ss_logger.exe                                   
   5354 san       20   0 2743076  73824  39132 R  50,8   0,9   1:16.85 ss_logger.exe                                   
   5354 san       20   0 2743076  73824  39132 t  51,2   0,9   1:18.39 ss_logger.exe                                   
$ kill 5354
При запуске программы из консоли и дальнейшем закрытии в выводе консоли следующее:
$ wine ss_logger.exe
02fc:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
02fc:fixme:win:RegisterDeviceNotificationA The notification filter will requires an A->W when filter support is implemented
02fc:fixme:service:I_ScRegisterDeviceNotification Notification filters are not yet implemented.
wine: Unhandled page fault on write access to 0C54D7A4 at address 0040D892 (thread 02fc), starting debugger...
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
0354:fixme:dbghelp:elf_search_auxv can't find symbol in module
Завершено
0354:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr (nil)
$
Судя по форумам - 0354:fixme:dbghelp:elf_search_auxv can't find symbol in module - Это ответ Wine практически на все...  :-)

Самое интересное, в том, что если запустить два разных процесса данной программы, то один из двух процессов завершается нормально, второй только через kill...
$ top | grep ss_logger.exe
   5394 san       20   0 2744208  72432  36764 S  26,7   0,9   0:24.29 ss_logger.exe                                   
   5407 san       20   0 2744676  72292  36592 S  13,3   0,9   0:22.80 ss_logger.exe                                   
   5394 san       20   0 2744208  72432  36764 S  20,3   0,9   0:24.90 ss_logger.exe                                   
   5407 san       20   0 2744676  72292  36592 S  20,3   0,9   0:23.41 ss_logger.exe                                   
   5394 san       20   0 2744208  72432  36764 S  20,9   0,9   0:25.53 ss_logger.exe                                   
   5407 san       20   0 2744676  72292  36592 S  20,5   0,9   0:24.03 ss_logger.exe                                   
   5394 san       20   0 2744208  72432  36764 S  20,9   0,9   0:26.16 ss_logger.exe                                   
   5407 san       20   0 2744676  72292  36592 S  19,6   0,9   0:24.62 ss_logger.exe                                   
   5394 san       20   0 2744208  72432  36764 S  19,9   0,9   0:26.76 ss_logger.exe                                   
   5407 san       20   0 2744676  72292  36592 S  19,6   0,9   0:25.21 ss_logger.exe                                   
   5407 san       20   0 2744676  72292  36592 S  20,6   0,9   0:25.83 ss_logger.exe                                   
   5394 san       20   0 2744208  72432  36764 S  20,3   0,9   0:27.37 ss_logger.exe                                   
   5394 san       20   0 2744208  72432  36764 S  20,3   0,9   0:27.98 ss_logger.exe                                   
   5394 san       20   0 2743140  73652  39004 R   8,6   0,9   0:28.24 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 S  42,2   0,9   0:29.51 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 R  51,3   0,9   0:31.05 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 R  51,8   0,9   0:32.61 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 S  51,3   0,9   0:34.16 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 R  50,8   0,9   0:35.69 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 R  49,7   0,9   0:37.18 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 t  51,2   0,9   0:38.72 ss_logger.exe                                   
   5394 san       20   0 2743140  73656  39004 S  50,8   0,9   0:40.25 ss_logger.exe                                   
$ kill 5394
Порядок, очередность и экземпляр программы при запуске и завершении значения не имеют (да и они по сути одинаковые, эти программы, немного к разным портам обращаются).
Просто ОДНА программа завершается:
$ wine ss_logger.exe
0334:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0334:fixme:win:RegisterDeviceNotificationA The notification filter will requires an A->W when filter support is implemented
0334:fixme:service:I_ScRegisterDeviceNotification Notification filters are not yet implemented.
ДРУГАЯ только через kill как было представлено выше...

Похоже что то я недоустановил? От Wine, а вот что понять не могу?


Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 551
    • Домашняя страница
    • Email
Библиотеки виндовые доустановить, а не WINE.
Андрей Черепанов (cas@)

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 77
Статус 0xc0000005 означает нарушение прав доступа, в данном случае обращение по 0-му адресу. Оригинальная ОС в таких условиях может тихо прибить процесс (поскольку он и так завершается, никто ничего не заметит). WinE предлагает запустить отладчик.

Оффлайн San

  • Давно тут
  • **
  • Сообщений: 655
Библиотеки виндовые доустановить, а не WINE.
Позвольте с Вами не согласиться. Отсутствие библиотек будет влиять на ОБА! Экземпляра программы!

У меня один экземпляр Запускается, Работает, Закрывается нормально... Второй экземпляр Запускается, Работает, НЕ Закрывается... При чем не важно какой. Случайный порядок. Барабашка просто...

Даже если виноваты библиотеки, Как понять чего не хватает? dotnet и vcrun - установлены. Почему дебагер виснет?
Статус 0xc0000005 означает нарушение прав доступа
Это ПЕРВАЯ мысль была. Потому что программы установленные через "Установку - удаление программ" не косячат. Программы лежат в папке "Utiltes", папка с правами для пользователя san - 777... Дебагер ни чего информативного не выдает, куда копать, не понимаю?
в данном случае обращение по 0-му адресу
Адрес "0" - это кто? Темр?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 551
    • Домашняя страница
    • Email
Обратитесь к разработчику этой программы за разъяснениями.
Андрей Черепанов (cas@)

Оффлайн San

  • Давно тут
  • **
  • Сообщений: 655
Обратитесь к разработчику этой программы за разъяснениями.
Андрей Степанович, разработчик программы - мой друг. Он сам в шоке, пояснить ни чего не может. На ЛЮБОЙ Винде, начиная с 98 - его программа работает... (Программа для личного использования, под конкретное оборудование...)

Программа работала на P8 Workstation без проблем. Как сравнить компоненты и библиотеки wine с той системой?

Или как заставить работать дебагер?

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 5 760
А в wine эмуляция какой винды выставлена?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 551
    • Домашняя страница
    • Email
Вот и попросите друга вставить отладку. Исходный код же есть. Можете посмотреть версию wine и запускать на старой версии с помощью playonlinux.
Андрей Черепанов (cas@)

Оффлайн trs

  • Давно тут
  • **
  • Сообщений: 77
Адрес "0" - это кто? Темр?
Это адрес в оперативной памяти. И права доступа тоже к памяти. Извините, что запутал. По 0-му адресу страница памяти не подключена, а процессор пытается выполнить там команду. Откуда взялся 0, это другой вопрос. Если в старых версиях WinE работало, можно предположить, что связано со сменой формата исполняемых файлов на PE, но это пальцем в небо. Если друг написал программу, он наверняка сможет найти, запустив под отладчиком. Тем более при наличии исходников.

Оффлайн San

  • Давно тут
  • **
  • Сообщений: 655
А в wine эмуляция какой винды выставлена?
Windows 7
Вот и попросите друга вставить отладку.
Теперь по порядку, расскажите: МНЕ - как человеку далекому от программирования, как объяснить ЕМУ - человеку далекому от Linux, как запустить режим отладки его программы на Linux? Пожалуйста...

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 5 760
Теперь по порядку, расскажите: МНЕ - как человеку далекому от программирования, как объяснить ЕМУ - человеку далекому от Linux, как запустить режим отладки его программы на Linux? Пожалуйста...
для начала пусть даст вам debug сборку с отладочной информацией.
и попробуйте запустить с выставленной в wine - XP.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 18 551
    • Домашняя страница
    • Email
Он программист, он должен знать слово "отладка".
Андрей Черепанов (cas@)

Оффлайн San

  • Давно тут
  • **
  • Сообщений: 655
для начала пусть даст вам debug сборку с отладочной информацией.
Простите за назойливость, но нужно мозг расправить в одну прямую...  :-P
Т.е., что бы мне не запутаться дальше... ЭТО Его программа, но с встроенным модулем дебагера? И я ее запущу на wine?
попробуйте запустить с выставленной в wine - XP
Завтра попробую.
Он программист, он должен знать слово "отладка".
Он ЕЕ как бы отладил. На любой винде начиная с Windows 98 она работает! Работала и на моем предыдущем Linux-е... Но Там wine шел из коробки... Сейчас я пытаю starterkit... Пытаюсь все что мне нужно - Собрать САМ! Вот пока не все получается... Обращаюсь к Более Продвинутым!

Оффлайн San

  • Давно тут
  • **
  • Сообщений: 655
Можете посмотреть версию wine и запускать на старой версии с помощью playonlinux.
А по Плайонлинукс есть мануалы для Alt?

# apt-cache search playonlinux
winewizard - Wine Wizard is a new GUI for Wine written in Qt
i586-playonlinux - Play your Windows games on Linux
i586-playonlinux - Play your Windows games on Linux - Это Он?
« Последнее редактирование: 14.03.2021 15:12:42 от San »

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 5 760
Т.е., что бы мне не запутаться дальше... ЭТО Его программа, но с встроенным модулем дебагера? И я ее запущу на wine?
Нет, это программа с информацией для её отладки, которую обычно удаляют.
Покажите ему https://wiki.winehq.org/Wine_Developer%27s_Guide/Debugging_Wine и он наверняка вам расскажет что делать  ;-)