On Monday, 22 July 2019 at 22:05:17 UTC, adamgoldberg wrote:
Hey, I just happened to be writing a program in D an stumbled
upon a bug, that causes it to terminate after receiving a SEGV
signal, nothing wierd so far but it looks everything I tried
shows it is the break statement inside of a switch.
It seems to have a relatively random chance of occuring, and
also somewhat dependant on the compiler, and build mode used.
I'm short on time so instead of rewriting my SO post I will
just link it.
Here!
https://stackoverflow.com/questions/57153617/random-segmentation-fault-in-d-lang-on-switch-break
Hope someone can help!
Could be the statement in the actual switch(), which is accessing
a pointer "codecpar".
switch (stream.codecpar.codec_type)
^^^^^
This could be null and you aren't checking for it. I find that D
sometimes doesn't have the correct line numbers for debug info,
even when not doing an optimized build. So it could really be
anything in that function.
The root cause could be a lot of things though, some bad codegen
or otherwise. Could add a check to make sure though.