Debuging Wine

Jarmo jarmonik at mbnet.fi
Wed Jun 11 23:50:27 CDT 2003


Hi,

I am trying to have Orbiter running under winex in Linux. I have plenty of 
experience in programming but I haven't used much debuggers.  I would have 
few questions. 

What is the difference between dll load methods "builtin" and "so" when 
debugging witch one should be used ?

When using "so" mode this error is generated. I added "_ftol" in libmsvcrt.so 
and that error is no longer generated. Is that right thing to do ?

When using "builtin" mode these errors won't appear. But it will crash the 
same way.


----------------------------------------------------------------------------------------------------
fixme:win32:ELF_FindExportedFunction function ftol not found: 
/usr/local/lib/libwine.so: undefined symbol: ftol
err:win32:PE_fixup_imports No implementation for MSVCRT.dll.237(_ftol) 
imported from C:\Orbit_new\Modules\Luna.dll, setting to 0xdeadbeef

fixme:win32:ELF_FindExportedFunction function ??3 at YAXPAX@Z not found: 
/usr/local/lib/libwine.so: undefined symbol: ??3
err:win32:PE_fixup_imports No implementation for MSVCRT.dll.16(??3 at YAXPAX@Z) 
imported from C:\Orbit_new\Modules\Luna.dll, setting to 0xdeadbeef

fixme:win32:ELF_FindExportedFunction function ?terminate@@YAXXZ not found: 
/usr/local/lib/libwine.so: undefined symbol: ?terminate
err:win32:PE_fixup_imports No implementation for 
MSVCRT.dll.46(?terminate@@YAXXZ) imported from C:\Orbit_new\Modules\Luna.dll, 
setting to 0xdeadbeef
---------------------------------------------------------------------------------------------------



What are these ?

No debug information in 32bit DLL 'DDRAW.DLL' (0x406c8000)
*** Invalid address 0x40011f80 (_end+0x478)

from msvcrt.spec:
@ forward -noimport _ftol ntdll._ftol
@ cdecl ?terminate@@YAXXZ() MSVCRT_terminate


This is the final crash.

------------------------------------------------------------------------------------------------
First chance exception: page fault on read access to 0xdead001e in 32-bit code 
(0xdead001e).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:2007 GS:0007
 EIP:dead001e ESP:406a287c EBP:004b3b88 EFLAGS:00210202(  R- 00  I   - - 1 )
 EAX:406f08a0 EBX:403a62d4 ECX:433c0e10 EDX:433c0e00
 ESI:403a62d4 EDI:00000000
Stack dump:
0x406a287c (MSVCRT.DLL.193+0x3f48ec):  004513ca 403a62d4 433c0e00 433c0e10
0x406a288c (MSVCRT.DLL.193+0x3f48fc):  00000001 00000000 433c0e20 406cbdf0
0x406a289c (MSVCRT.DLL.193+0x3f490c):  403a62d4 433fdbc0 406cb900 00000000
0x406a28ac (MSVCRT.DLL.193+0x3f491c):  00000000 00000000 406cb900 00000000
0x406a28bc (MSVCRT.DLL.193+0x3f492c):  00000000 433fdbc0 0047017a 00470185
0x406a28cc (MSVCRT.DLL.193+0x3f493c):  406f08a0 40738820 ff000000 406a2a28
0x406a28dc (MSVCRT.DLL.193+0x3f494c):

0400: sel=2007 base=4011b460 limit=00000000 32-bit rw-
Backtrace:
=>0 0xdead001e (MSVCRT.DLL._winver+0x99fe36ce) (ebp=004b3b88)
  1 0x433c0de0 (MSACM32.DLL.acmStreamUnprepareHeader+0x33d190) (ebp=00000001)

0xdead001e (MSVCRT.DLL._winver+0x99fe36ce): *** Invalid address 0xdead001e 
(MSVCRT.DLL._winver+0x99fe36ce)
-- no code --
----------------------------------------------------------------------------------------------------

I know very little about this. It seems that processor is trying to execute 
code in 0xdead001e. That would indicate a missing function. If that what it 
is. What is the missing function ?  Where it shoud be ? What is calling it ?
What is "1e" in 0xdead001e

I dumped MSACM32.DLL and it does not inport any MSVCRT.DLL functions.
acmStreamUnprepareHeader disassembly doesn't show anything weard either.

Regards,
Jarmo









More information about the wine-devel mailing list