> The Backtrace now looks like this:
> (gdb) bt
> #0 0x5c236783 in read () from /usr/lib/libc.so.5
> #1 0x5c0b11ee in wait_reply (cookie=0x5d252d44) at ../../include/winnt.h:1622
> #2 0x5c0b1483 in NTDLL_wait_for_multiple_objects (count=1, handles=0x5d252e10, flags=4,
> timeout=0x0) at sync.c:580
> #3 0x5c0b14d8 in NtWaitForMultipleObjects (count=1, handles=0x5d252e10, wait_all=0,
> alertable=0 '\0', timeout=0x0) at sync.c:598
> #4 0x5c096bab in WaitForMultipleObjectsEx (count=1, handles=0x5d252f44, wait_all=0,
> timeout=4294967295, alertable=0) at ../../scheduler/synchro.c:134
> #5 0x5c096a8a in WaitForSingleObject (handle=0x3c, timeout=4294967295)
> at ../../scheduler/synchro.c:62
> #6 0x5d00e1a7 in wodPlayer (pmt=0x0) at audio.c:1409
> #7 0x5c0976f1 in THREAD_Start () at ../../include/winnt.h:1622
> #8 0x5c0b16ab in SYSDEPS_StartThread (teb=0x5d253000) at sysdeps.c:141
>
> In frame #6 I have these values:
> (gdb) p wwo->msgRing
> $4 = {ring_buffer_size = 64, messages = 0x5c363bf8, msg_tosave = 0, msg_toget = 0,
> msg_event = 0x3c, msg_crst = {DebugInfo = 0x0, LockCount = -1, RecursionCount = 0,
> OwningThread = 0x0, LockSemaphore = 0x0, SpinCount = 0}}
> (gdb) p dwSleepTime
> $5 = 4294967295
>
> And the line number on frame 1 is bogus again:
I don't think so. Gdb displays the inline function (from winnt.h) which
is used in wait_reply... hence the output.
> Perhaps FreeBSD uses different registers? (I really don't have a clue).
It should work the same as Linux here...
I think more that's a discrepency in OSS handling between linux & *BSD
(or a more subtle bug somewhere)
could you rerun with WINEOPTIONS="-debugmsg +wave,+dsound,+wavemap"
TIA
A+
--
Eric Pouech