[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