On Wednesday, 29 September 2021 at 12:15:30 UTC, Steven
Schveighoffer wrote:
On 9/29/21 6:57 AM, JN wrote:
What makes the difference on whether a crash stacktrace gets
printed or not?
Sometimes I get a nice clean stacktrace with line numbers,
sometimes all I get is "segmentation fault error -1265436346"
(pseudo example) and I need to run under debugger to get the
crash location.
segmentation faults are memory access errors. It means you are
accessing a memory address that is not valid for your
application. If you are accessing the wrong memory, it means
something is terribly wrong in your program.
[...]
So on Linux, I don't know the behavior on other OSs, the kernel
sends SIGSEGV to your process which, if unhandled, simply
terminates your program.
It's an abnormal termination and thus the D runtime or whatever
library that in a normal case takes care of printing the traces
doesn't get a chance to do so anymore.
You also change the signal in your handler to get a core dump,
look here
http://www.alexonlinux.com/how-to-handle-sigsegv-but-also-generate-core-dump