I think one has to ship two executables anyway, Debug mode and Release mode. I don’t know if there is a performance hit in Release mode for debugging symbols. But either way, if a program starts misbehaving, then running it in Debug mode is almost a must, to see if any array bounds are violated, etc. So as long as a beautiful stacktrace happens in Debug mode, that would be a good start.
I remember struggling with this with Intel compilers, that the bounds check didn’t give me a stacktrace, and it was very hard to figure out where it was coming from. However I thought they have some option to enable the stacktrace. GFortran does.