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




Reply via email to