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+