freenode/#shirakumo - IRC Chatlog
Search
19:49:26
selwyn
gdb spat out this https://plaster.tymoon.eu/view/2106#2106 but idk how much i trust it
19:49:55
Shinmera
well the interesting part is that even if it isn't to be trusted it shows that bip_request_read is not inlined like it should be.
19:52:22
selwyn
most of the time gdb refuses to give a backtrace > Backtrace stopped: previous frame identical to this frame (corrupt stack?)
19:59:53
Shinmera
the good news we can gather from it is that SBCL is not interferring. Or in the very least it's unlikely it is interferring with the trace.
20:00:15
Shinmera
so either this /has/ to be in request_read somehow (I guess start breakpointing that or something) or it's corrupted way earlier.
20:18:00
Shinmera
I don't know. If it were just corruption it would be unlikely to always be the same way, no?
20:23:14
Shinmera
offset where things are allocated in C, thereby moving where the corruption happens.
20:55:24
Shinmera
okey, so it claims the error is in bip_request_read somewhere, meaning you'll want to instert prints (and flushes) into all branches to check whether the values are valid that it gets.
21:04:19
selwyn
why isn't this written as a while loop? https://github.com/Shirakumo/libmixed/blob/master/src/bip.h#L68
21:04:20
Colleen
github.com/Shirakumo/libmix... Website (HTML), Title: libmixed/bip.h at master · Shirakumo/libmixed · GitHub
21:15:09
selwyn
ok so it really does look like the debugger is invoked in the interior of the execution of bip_request_read
21:16:30
Shinmera
if gdb on windows weren't useless you should be able to have it spit out the local variables of the frame for you, too, inculding stuff like showing struct contents.
21:16:51
Shinmera
dunno how to do that though -- I usually use lldb where that stuff is much easier (but lldb is super broken on windows)
21:41:26
selwyn
need to take some time to think what to do next. nothing looks particularly suspicious inside bip_request_read
21:41:49
selwyn
perhaps... make bip_request_read a dummy method that just doesn't do any reading? and then see if stuff still crashes
22:13:16
Shinmera
besides it's not like the read/write functions do anything other than just reading and writing struct fields
22:20:08
Shinmera
the windows backend doesn't do any cross-thread sync anyway so it should work just the same.
22:21:21
Shinmera
another thing to see is look at the assembly generated for the function to see what it actually translates this stuff to
22:27:14
Shinmera
who knows. maybe needs an __attribute__(inline) or __atribute_(always_inline) or something.