Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:jcmvbkbc:wine_mcbc

This is an old revision of the document!


Wine под МСВС

Начало истории для меня

Патчи для компиляции wine в МСВС 3.0 изм.13

Проблемы времени выполнения

wine-preloader падает с segmentation fault после загрузки кода приложения, при попытке начать его исполнение.

Ход разборок:

gdb --args /home/dumb/rpmbuild/BUILD/wine-20070915/loader/wine-preloader /home/dumb/rpmbuild/BUILD/wine-20070915/loader/wine-kthread ./NOTEPAD.EXE
(gdb) run
...
jumping to 600019c0

Program received signal SIGSEGV, Segmentation fault.
0x60005240 in ?? ()

disassemble не работает, потому что исполняемый сегмент загружен самим wine-preloader

(gdb) x/64i $eip-32
0x60005220:     call   0x6000195c
0x60005225:     add    $0x20,%esp
0x60005228:     mov    0x164(%ebx),%eax
0x6000522e:     mov    (%eax),%edx
0x60005230:     lea    0xf(%edx),%eax
0x60005233:     and    $0xf0,%al
0x60005235:     sub    %eax,%esp
0x60005237:     mov    %esp,0xffffff6c(%ebp)
0x6000523d:     add    $0xfffffffc,%esp
0x60005240:     push   %edx
(gdb) info registers
eax            0x1000   4096
ecx            0x802    2050
edx            0x1000   4096
ebx            0x60013868       1610692712
esp            0xbfffdf58       0xbfffdf58
ebp            0xbffff074       0xbffff074
esi            0x63f2b  409387
edi            0x0      0
eip            0x60005240       0x60005240
eflags         0x10293  66195
cs             0x23     35
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x0      0
gs             0x0      0

получается, после сдвига стека на 0x1000 вниз все сломалось. wine-preloader зарезервировал маленький стек? пошел курить исходники

etc/users/jcmvbkbc/wine_mcbc.1192289289.txt.gz · Last modified: 2008/01/03 02:32 (external edit)