https://bugs.winehq.org/show_bug.cgi?id=44518
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello folks,
I can't reproduce this, the app works as expected.
The app crashes *by design* if no printer is found. Whoever wrote this code should really think about proper error handling.
--- snip --- $ pwd /home/focht/.wine/drive_c/AQUAD_7
$ WINEDEBUG=+seh,+relay,+winspool wine ./aquad7.exe >>log.txt 2>&1 ... 002d:Call KERNEL32.CreateFileA(009219cc "C:\AQUAD_7\aquad7.ini",80000000,00000001,00000000,00000003,00000080,00000000) ret=00409887 002d:Ret KERNEL32.CreateFileA() retval=00000088 ret=00409887 ... 002d:Call winspool.drv.EnumPrintersA(00000001,00000000,00000005,00000000,00000000,0033fd70,0033fd6c) ret=00433cce 002d:trace:winspool:EnumPrintersA (0x1, (null), 5, (nil), 0, 0x33fd70, 0x33fd6c) ... 002d:trace:winspool:convert_printerinfo_W_to_A ((nil), (nil), 5, 0, 0) ... 002d:Ret winspool.drv.EnumPrintersA() retval=00000001 ret=00433cce 002d:Call winspool.drv.EnumPrintersA(00000001,00000000,00000005,00000000,00000000,0033fd70,0033fd6c) ret=00433d3c 002d:trace:winspool:EnumPrintersA (0x1, (null), 5, (nil), 0, 0x33fd70, 0x33fd6c) ... 002d:trace:winspool:convert_printerinfo_W_to_A ((nil), (nil), 5, 0, 0) ... 002d:Ret winspool.drv.EnumPrintersA() retval=00000001 ret=00433d3c 002d:Call KERNEL32.GetProfileStringA(00433e74 "windows",00433e6c "device",00433e68 "",0033f960,000003ff) ret=00433d6c 002d:Ret KERNEL32.GetProfileStringA() retval=00000000 ret=00433d6c 002d:Call winspool.drv.EnumPrintersA(00000006,00000000,00000004,00000000,00000000,0033f914,0033f910) ret=00433aca 002d:trace:winspool:EnumPrintersA (0x6, (null), 4, (nil), 0, 0x33f914, 0x33f910) 002d:trace:winspool:WINSPOOL_EnumPrintersW ignoring PRINTER_ENUM_CONNECTIONS 002d:Call advapi32.RegCreateKeyW(80000002,7e422da0 L"System\CurrentControlSet\Control\Print\Printers",0033f738) ret=7e417220 002d:Ret advapi32.RegCreateKeyW() retval=00000000 ret=7e417220 002d:Call advapi32.RegQueryInfoKeyA(00000088,00000000,00000000,00000000,0033f52c,00000000,00000000,00000000,00000000,00000000,00000000,00000000) ret=7e41728d 002d:Ret advapi32.RegQueryInfoKeyA() retval=00000000 ret=7e41728d 002d:trace:winspool:WINSPOOL_EnumPrintersW Found 0 printers ... 002d:trace:winspool:convert_printerinfo_W_to_A ((nil), (nil), 4, 0, 0) ... 002d:Ret winspool.drv.EnumPrintersA() retval=00000001 ret=00433aca 002d:Call user32.LoadStringA(00400000,0000ff0b,0033f530,00000400) ret=00406a3e 002d:Ret user32.LoadStringA() retval=0000001b ret=00406a3e 002d:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0033f918) ret=00432db6 002d:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b4465af ip=7b4465af tid=002d 002d:trace:seh:raise_exception info[0]=00432db6 002d:trace:seh:raise_exception info[1]=00921ba4 002d:trace:seh:raise_exception info[2]=00910e2c 002d:trace:seh:raise_exception info[3]=ffffffff 002d:trace:seh:raise_exception info[4]=009204a8 002d:trace:seh:raise_exception info[5]=0033fd78 002d:trace:seh:raise_exception info[6]=0033f934 002d:trace:seh:raise_exception eax=7b434d2d ebx=00910e2c ecx=0000001c edx=0033f874 esi=0033f918 edi=0033f8e0 002d:trace:seh:raise_exception ebp=0033f8b8 esp=0033f854 cs=33340023 ds=33002b es=7bd1002b fs=64320063 gs=7bd1006b flags=00000212 ... 002d:Call KERNEL32.UnhandledExceptionFilter(0033f3f0) ret=004044d0 wine: Unhandled exception 0x0eedfade in thread 2d at address 0x0000:0x7b4465af (thread 002d), starting debugger... ... 002d:err:seh:setup_exception_record stack overflow 876 bytes in thread 002d eip f75cbed8 esp 00240fc4 stack 0x240000-0x241000-0x340000 --- snip ---
0x0eedfade is Delphi external exception code which crossed the module boundaries to SEH.
In this case it's an internal exception: 'EPrinter', 'No default printer selected' that "escaped" the Delphi runtime and the top-level SEH doesn't understand = can't handle it.
Anyway this is not a bug, the app would behave exactly the same if all printers are removed on a Windows machine.
--- quote ---- Running it from terminal also throws the same error which I attached earlier on. --- quote ----
Which one?
The output from comment #0? -> INVALID bug -> no printer = crash is expected The output from comment #3? -> INVALID bug -> messed up WINEPREFIX
If you don't post more specific information no one can/will help you.
Create a full relay log by running the app in terminal from installation directory and *attach* the log file this ticket (compress if too large).
You might want to start some Wine builtin first to bootstrap "warmup" the prefix ('wine notepad' from another terminal) to avoid too many noise from other Wine processes (although there exist +pid to filter for).
--- snip --- $ pwd /home/focht/.wine/drive_c/AQUAD_7
$ WINEDEBUG=+seh,+relay,+winspool wine ./aquad7.exe >>log.txt 2>&1 --- snip ---
$ sha1sum aqd7_e_prg_setup.exe c32c154ac32305c65cb2500936cc848d64df653f aqd7_e_prg_setup.exe
$ du -sh aqd7_e_prg_setup.exe 2.0M aqd7_e_prg_setup.exe
$ wine --version wine-3.2
Regards