[Bug 3088] New: Borland BC++4.5 Regression
Wine Bugs
wine-bugs at winehq.org
Thu Jun 30 08:42:05 CDT 2005
http://bugs.winehq.org/show_bug.cgi?id=3088
Summary: Borland BC++4.5 Regression
Product: Wine
Version: unspecified
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: wine-patches
AssignedTo: wine-bugs at winehq.org
ReportedBy: pgr at arcelectronicsinc.com
BC++4.5 copied from working Win95 install.
Compile from CVS
2005-06-16 15:49 CDT ok
2005-06-16 15:52 CDT bad
Before the patch in the IDE I can open a project and edit files and make or
build all from the menus. After that patch on build all it crashes at a point
that looks like it is in linking phase. If I edit a file and do a make the exe
is made without a problem.
I never could get winedbg to start the program as it crashes into the debugger
before it starts any of the borland GUI starts.
Looking at the patch
+
+ /* Note: the following checks depend on the asm code generated by winebuild */
+
+ if (addr[0] == 0xff && addr[1] == 0x25) /* indirect jmp */
+ {
+ ptr = *(const void * const*)(addr + 2); /* get indirect jmp target
address */
+ }
+ else /* check for import thunk */
+ {
+ if (addr[0] != 0x50) return FALSE; /* pushl %%eax */
+ if (addr[1] != 0x9c) return FALSE; /* pushfl */
+ if (addr[2] != 0xe8 || addr[3] || addr[4] || addr[5] || addr[6]) return
FALSE; /* call .+0 */
+ if (addr[7] != 0x58) return FALSE; /* popl %%eax */
+ if (addr[8] != 0x05) return FALSE; /* addl offset,%%eax */
+ ptr = addr + 7 + *(const int *)(addr + 9);
+ }
it looks as if the method to detect a wine thunk is not safe as borland compiled
programs could use the same opcode sequence.
cvs update -D 050616
bash-3.00$ wine c:\\BC45\\BIN\\BCW.EXE
fixme:toolhelp:InterruptRegister16 (0000, 0x12b70e29), stub.
#compile finished
#run program from ide causes crash and the following output when killed.
fixme:toolhelp:NotifyRegister16 (11bf,2437155d,2), semi-stub.
fixme:toolhelp:InterruptUnRegister16 (0000), stub.
fixme:toolhelp:InterruptRegister16 (11bf, 0x245712bc), stub.
fixme:toolhelp:NotifyUnregister16 (11bf), semi-stub.
fixme:toolhelp:InterruptUnRegister16 (11bf), stub.
fixme:toolhelp:InterruptRegister16 (0000, 0x12b70e29), stub.
Killed
cvs update -D 050617
fixme:toolhelp:InterruptRegister16 (0000, 0x12b70e29), stub.
wine: Unhandled exception (thread 000a), starting debugger...
WineDbg starting on pid 0x8
fixme:dbghelp:SymLoadModule Should have successfully loaded debug information
for image C:\BC45\BIN\BCW.EXE
Unhandled exception: stack overflow in 32-bit code (0x7fc559f9).
fixme:dbghelp:addr_to_linear Failed to linearize address 7f9a:0000e19c (mode 0)
In 32 bit mode.
Register dump:
CS:0073 SS:112f DS:13d7 ES:20df FS:003b GS:0033
EIP:7fc559f9 ESP:ca1d00d8 EBP:0000b908 EFLAGS:00010212( - 00 - RIA1)
EAX:77bc16bc EBX:0000b843 ECX:00000000 EDX:000013d7
ESI:00000214 EDI:00000538
Stack dump:
0x112f:0x00d8: 0206 0000 5c2e 0000 0000 0000 1127 0000
0x112f:0x00e8: 6680 7fc7 0000 2470 7fc7 b908 0003 1127
0x112f:0x00f8: db80 7fc5 ef00 abcd 0000 0000 0000 0000
Backtrace:
fixme:dbghelp:addr_to_linear Failed to linearize address 7f9a:0000e19c (mode 0)
=>1 0x7fc559f9 __wine_call_from_16_regs+0x11 in winedos (0x000dc468)
2 0x00000000 (0x00000000)
0x7fc559f9 __wine_call_from_16_regs+0x11 in winedos: xchgl %eax,0x4(%esp)
Modules:
Module Address Debug info Name (67 modules)
ELF 0x77807000-77843000 Deferred advapi32<elf>
\-PE 0x77820000-77843000 \ advapi32
ELF 0x77843000-778c7000 Deferred gdi32<elf>
\-PE 0x77860000-778c7000 \ gdi32
ELF 0x778c7000-779e0000 Deferred user32<elf>
\-PE 0x778f0000-779e0000 \ user32
ELF 0x77aeb000-77b00000 Deferred winevdm<elf>
\-PE 0x77af0000-77b00000 \ bcw
ELF 0x77b2e000-77c30000 Deferred kernel32<elf>
\-PE 0x77b50000-77c30000 \ kernel32
ELF 0x77d45000-77d50000 Deferred libnss_files.so.2
ELF 0x77d62000-77d85000 Deferred libm.so.6
ELF 0x77d85000-77e7a000 Deferred libwine_unicode.so.1
ELF 0x77e8c000-77f00000 Deferred ntdll<elf>
\-PE 0x77eb0000-77f00000 \ ntdll
ELF 0x77f00000-77f03000 Deferred <wine-loader>
ELF 0x7f305000-7f32a000 Deferred winspool.drv<elf>
\-PE 0x7f310000-7f32a000 \ winspool.drv
ELF 0x7f32a000-7f3d2000 Deferred comctl32<elf>
\-PE 0x7f340000-7f3d2000 \ comctl32
ELF 0x7f3d2000-7f3f0000 Deferred iphlpapi<elf>
\-PE 0x7f3e0000-7f3f0000 \ iphlpapi
ELF 0x7f3f0000-7f437000 Deferred rpcrt4<elf>
\-PE 0x7f410000-7f437000 \ rpcrt4
ELF 0x7f437000-7f4b8000 Deferred ole32<elf>
\-PE 0x7f450000-7f4b8000 \ ole32
ELF 0x7f4b8000-7f50f000 Deferred shlwapi<elf>
\-PE 0x7f4d0000-7f50f000 \ shlwapi
ELF 0x7f50f000-7f5c8000 Deferred shell32<elf>
\-PE 0x7f530000-7f5c8000 \ shell32
ELF 0x7f5c8000-7f650000 Deferred comdlg32<elf>
\-PE 0x7f5e0000-7f650000 \ comdlg32
ELF 0x7fa5b000-7fa70000 Deferred midimap.drv<elf>
\-PE 0x7fa60000-7fa70000 \ midimap.drv
ELF 0x7fb89000-7fbab000 Deferred msacm32<elf>
\-PE 0x7fb90000-7fbab000 \ msacm32
ELF 0x7fbab000-7fbc4000 Deferred msacm.drv<elf>
\-PE 0x7fbb0000-7fbc4000 \ msacm.drv
ELF 0x7fbc4000-7fc3e000 Deferred winmm<elf>
\-PE 0x7fbd0000-7fc3e000 \ winmm
ELF 0x7fc3e000-7fc9d000 Stabs winedos<elf>
\-PE 0x7fc50000-7fc9d000 \ winedos
ELF 0x7fcad000-7fcca000 Deferred imm32<elf>
\-PE 0x7fcc0000-7fcca000 \ imm32
ELF 0x7fcca000-7fccd000 Deferred iso8859-1.so
ELF 0x7fcce000-7fcec000 Deferred ximcp.so.2
ELF 0x7fcec000-7fcf0000 Deferred libxrandr.so.2
ELF 0x7fd02000-7fd0b000 Deferred libxcursor.so.1
ELF 0x7fd0b000-7fd13000 Deferred libxrender.so.1
ELF 0x7fd22000-7fd25000 Deferred xlcdef.so.2
ELF 0x7fd25000-7fd90000 Deferred libgl.so.1
ELF 0x7fd90000-7fe5d000 Deferred libx11.so.6
ELF 0x7fe5d000-7fe6b000 Deferred libxext.so.6
ELF 0x7fe6b000-7fe70000 Deferred libxxf86vm.so.1
ELF 0x7fe70000-7fe88000 Deferred libice.so.6
ELF 0x7fe88000-7fe91000 Deferred libsm.so.6
ELF 0x7fea3000-7ff21000 Deferred winex11.drv<elf>
\-PE 0x7fec0000-7ff21000 \ winex11.drv
ELF 0x7ff21000-7ff41000 Deferred libexpat.so.0
ELF 0x7ff41000-7ff70000 Deferred libfontconfig.so.1
ELF 0x7ff70000-7ff82000 Deferred libz.so.1
ELF 0x7ff82000-7ffee000 Deferred libfreetype.so.6
ELF 0xb7e7f000-b7e83000 Deferred libdl.so.2
ELF 0xb7e83000-b7fad000 Deferred libc.so.6
ELF 0xb7fad000-b7fbf000 Deferred libpthread.so.0
ELF 0xb7fbf000-b7fd7000 Deferred libwine.so.1
ELF 0xb7fea000-b8000000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
00000008 (D) C:\BC45\BIN\BCW.EXE
0000000a 0 <==
00000009 0
WineDbg terminated on pid 0x8
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the wine-bugs
mailing list