LINUX.ORG.RU

Методы диагностики падения приложения под wine

 ,


0

1

Есть ПО, наличие которого было бы крайне желательно под онтопиком. Падает с примерно такой ошибкой:

err:seh:setup_exception stack overflow 1728 bytes in thread 0061 eip 000000007bc61e09 esp 0000000000140f40 stack 0x140000-0x141000-0x240000

Соответственно, желаю я сиё ПО настолько сильно, что видимо горазд поупражняться с сорцами wine.

Есть какая то точка входа для обработки подобных логов, или просто отладчик в зубы и вперёд?

★★★★★

Ответ на: комментарий от panzerito

Интересно, похоже помогло даже диагностировать причину возникновения зацикливания seh обработчика.

Не знаешь, есть какой то способ задать место поиска библиотек?

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от panzerito

Да я пока сам не пойму чего там есть библиотеки и почему он пытается искать *.bpl файлы (куски от делфи и компонентов написанных в его стиле) как *.bpl.so.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от panzerito

Однако, если запустить из терминала офтопика, выходит что либы он находит и падает уже где то дальше.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Собери binutils для win32 и глянь objdump-ом какие либы приложение хочет.

Вроде такого:

binutils-win32/objdump -x ~/wine-portable-1.8.1/.wine/drive_c/EAGLE-7.1.0/bin/eagle.exe | grep DLL\ Name
        DLL Name: MPR.dll
        DLL Name: KERNEL32.dll
        DLL Name: USER32.dll
        DLL Name: GDI32.dll
        DLL Name: comdlg32.dll
        DLL Name: ADVAPI32.dll
        DLL Name: SHELL32.dll
        DLL Name: ole32.dll
        DLL Name: OLEAUT32.dll
        DLL Name: IMM32.dll
        DLL Name: WINMM.dll
        DLL Name: WINSPOOL.DRV
        DLL Name: WSOCK32.dll
        DLL Name: WS2_32.dll

panzerito
()
Ответ на: комментарий от pon4ik
WINEPATH="linux/native/path/to/libs1;linux/native/path/to/libs2" wine ...

dll.so: man wine

WINEDLLPATH

Specifies the path(s) in which to search for builtin dlls and Winelib applications. This is a list of directories separated by ":".

gag ★★★★★
()
Ответ на: комментарий от pon4ik

[offtop]Смотрю, что редактировать сообщения уже вообще нельзя. А вот это сообщение уже снова можно. Странно.[/offtop]

На всякий случай, это две разные переменные, а то может показаться, что нет.

gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)
Ответ на: комментарий от gag

В общем, какого то чёрта wine считает bpl dll'ки своими нативными модулями :) :

warn:module:load_builtin_dll failed to load .so lib for builtin L"C:\\Program Files\\app\\rtl160.bpl": /home/maxim/.wine/dosdevices/c:/Program Files/app/    rtl160.bpl: invalid ELF header

С сорцами я явно погорячился, сиё как то должно решаться конфигом.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Wine настолько кучсочно реализован, что там полно предупреждений. И каждое, кажущееся важным, надо проверить на релевантность. А известно, кто должен открывать эти *.bpl? Загрузчик или дельфи-рантайм?

gag ★★★★★
()
Ответ на: комментарий от gag

Да это практически обычные dll - в таблицу импорта вписаны . Часть загрузчик открывает(делфёвый рантайм и графическая либа вроде), часть потом(плагины) через dlopen(LoadModule) открывается.

pon4ik ★★★★★
() автор топика
Ответ на: комментарий от pon4ik

Да это практически обычные dll - в таблицу импорта вписаны

Тогда, вроде, должно быть достаточно, чтобы путь был правильно указан в WINEPATH. Я так запускаю проги, использующие dll'ки, разбросанные по разным каталогам.

Интересно, есть ли аналог BPL у Лазаруса. Тогда можно было бы легко воспроизвести проблему.

gag ★★★★★
()
Ответ на: комментарий от anonymous

Да с либами вроде всё ок в итоге оказалось, а вот vcl как то странно заводится под wine, видимо ему чего-то не хватает.

pon4ik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.