Search
Friday, 30th of October 2020, 2:23:22 UTC
10:00:06
Shinmera
sometimes creating a channel converter segment on OSX crashes with a memory fault
10:00:28
Shinmera
lldb shows only empty stack frames
10:00:52
Shinmera
I already looked at the function that allocates it, it does ///nothing///
10:03:15
Shinmera
well, not nothing of course, but nothing that should cause it to crash.
10:05:18
Shinmera
and trying to start with lldb causes it to crash loading libmpg
10:27:16
Shinmera
5.1 conversion also memfaults on windows, but does not do so on Linux
10:27:28
Shinmera
And on Windows stack frames are similarly useless
10:37:41
Shinmera
borodust: FWIW the bundle trick doesnt' do anything.
10:50:03
Shinmera
but unsigning it does.
12:41:09
Shinmera
windows //sometimes// crashes on 5.1, but not always. Other times it works fine
12:53:44
borodust
Shinmera: thanks for heads up, that would certainly come in handy for me later
12:58:08
Shinmera
I've added a note about it to cl-steamworks
13:53:36
Shinmera
so bizarre, the audio thread keeps running but the render thread runs into an exception with 5.1 audio
14:00:45
Shinmera
okey, gdb is not completely useless on Windows, thank god
14:05:02
Shinmera
but not useful enough. fuck.
14:05:21
SAL9000
Shinmera: https://x64dbg.com/ might help
14:05:21
Colleen
x64dbg.com/ Website (HTML), Title: x64dbg
14:11:17
Shinmera
does this thing understand DWARF
14:13:12
SAL9000
Shinmera: that was a WIP last time I looked; currently only the windows stack unwind weirdness is decoded :(
14:15:36
Shinmera
At least this time I got a memfault in the audio thread rather than anything else.
14:15:41
Shinmera
It's trying to access -1
14:15:52
SAL9000
something doing array[i--] ?
14:15:59
Shinmera
not sure, I can't get a trace.
14:16:51
Shinmera
well, a trace that's useful, anyway.
14:17:51
SAL9000
yeah. I've mostly used x64dbg for dealing with "there is no stack" situations... staring at asm/hex dumps trying to figure out which function it is by inspection, etc.
14:17:57
Shinmera
there's some stuff in the new channel conversion that does something akin to this, but I'd think it should be good
14:18:14
Shinmera
it does delay[(delay_i - i*2) % delay_size]
14:18:19
Shinmera
but that should be safe, no?
14:19:14
SAL9000
I'm suspicious of that i*2, also behaviour of % on negative numbers can be fun
14:19:27
SAL9000
maybe toss an assert in there (under #if DEBUG)
14:19:44
Shinmera
that it doesn't exceed delay_size?
14:20:04
SAL9000
assert((delay_i - i*2) >= 0);
14:20:16
Shinmera
pretty sure that explicitly should wrap around.
14:20:51
SAL9000
in that case, validate that the index is inside the range of delay
Friday, 30th of October 2020, 14:23:22 UTC