After playing a lot of streams in successions, eventually fmod crashes. Access violation at 0x00005. It appears the crash is on the Fmod thread ?? as it doesn’t show any of my functions.

The call stack looks like:
FMOD! 00353ccb()
FMOD! 00340fad()

And the position is the following (dunno if this helps at all):
00353CCB cmp byte ptr [esi+234h],0
00353CD2 je 00353E52
00353CD8 push dword ptr [esi+84h]
00353CDE call 00351039
00353CE3 test al,al
00353CE5 jne 00353E52
00353CEB cmp dword ptr [esi+24h],0
00353CEF fldz
00353CF1 je 00353D17
00353CF3 push dword ptr [esi+84h]
00353CF9 fstp st(0)
00353CFB call 003509C9
00353D00 mov dword ptr [ebp-4],eax
00353D03 mov eax,[0036BAD8]
00353D08 fild dword ptr [ebp-4]
00353D0B fmul dword ptr [eax+44h]
00353D0E mov eax,dword ptr [esi+24h]
00353D11 fidiv dword ptr [eax+130h]
00353D17 lea eax,[esi+10Ch]
00353D1D fld st(0)
00353D1F fadd dword ptr [eax]
00353D21 fstp dword ptr [eax]
00353D23 fadd dword ptr [esi+110h]
00353D29 fst dword ptr [esi+110h]
00353D2F fcomp dword ptr ds:[36230Ch]
00353D35 fnstsw ax
00353D37 test ah,5
00353D3A jp 00353D42
00353D3C and dword ptr [ebp-4],0
00353D40 jmp 00353DA0
00353D42 push dword ptr [esi+84h]
00353D48 call 003509C9
00353D4D fld dword ptr [esi+110h]
00353D53 cdq
00353D54 mov edi,eax
00353D56 mov ebx,edx
00353D58 call 00361A42
00353D5D push edx
00353D5E push eax
00353D5F push ebx
00353D60 push edi
00353D61 call 00361B80
00353D66 push 0
00353D68 push 3E8h
00353D6D push edx
00353D6E push eax
00353D6F call 00361BC0
00353D74 and dword ptr [ebp-0Ch],0
00353D78 mov dword ptr [ebp-8],edx
00353D7B and dword ptr [ebp-8],80000000h
00353D82 and edx,7FFFFFFFh
00353D88 mov dword ptr [ebp-14h],eax
00353D8B mov dword ptr [ebp-10h],edx
00353D8E fild qword ptr [ebp-14h]
00353D91 fild qword ptr [ebp-0Ch]
00353D94 fchs
00353D96 faddp st(1),st
00353D98 call 00361A42
00353D9D mov dword ptr [ebp-4],eax
00353DA0 push dword ptr [esi+84h]
00353DA6 mov edi,dword ptr [esi+104h]
00353DAC call 003509C9
00353DB1 cdq
00353DB2 mov ecx,eax
00353DB4 mov eax,dword ptr [esi+0F8h]
00353DBA mov ebx,edx
00353DBC cdq
00353DBD push edx
00353DBE push eax
00353DBF push ebx
00353DC0 push ecx
00353DC1 call 00361B80
00353DC6 push 0
00353DC8 push 3E8h
00353DCD push edx
00353DCE push eax
00353DCF call 00361BC0
00353DD4 mov ecx,eax
00353DD6 mov eax,dword ptr [esi+108h]
00353DDC test eax,eax
00353DDE je 00353DE2
00353DE0 mov ecx,eax
00353DE2 mov ebx,dword ptr [ebp-4]
00353DE5 cmp ebx,ecx
00353DE7 jbe 00353E04
00353DE9 test byte ptr [esi+80h],2
00353DF0 je 00353E02
00353DF2 mov eax,ebx
00353DF4 sub ecx,edi
00353DF6 sub eax,edi
00353DF8 xor edx,edx
00353DFA div eax,ecx
00353DFC add edx,edi
00353DFE mov ebx,edx
00353E00 jmp 00353E04
00353E02 mov ebx,ecx
00353E04 mov eax,dword ptr [esi+50h]
00353E07 test eax,eax
00353E09 je 00353E5A
00353E0B mov ecx,dword ptr [eax+10h]
00353E0E mov edi,dword ptr [eax+8]
00353E11 lea edx,[eax+4]
00353E14 cmp ecx,edx
00353E16 jne 00353E26
00353E18 cmp edi,edx
00353E1A je 00353E26

Any thoughts?


  • You must to post comments

yes, this is running WinXp pro… i guess i will have to do some more investigating to see what causes the problem, but the callstack nor the state of other threads isn’t helping…



  • You must to post comments

How about you try setting breakpoints and single-stepping through each part of your program that uses FMOD, and see what your program is doing before the crash…

  • You must to post comments

It’s not that easy, because the crash doesn’t happen until sounds have been played many times over, so it’s hard to predict when it will happen…

  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.