Segfaults are a result of violating memory safety. They are the BEST case since you can actually detect the program yolo'd
Far worse is your program starts corrupting your data and suddenly you are executing a routine you had no intention of ever executing
Not really. Not all memory safety violations result in segfaults, and not all segfaults are the result of memory safety violations.
Which segfaults are NOT the result of memory safety violations?
Uh, most? Memory safety is about data races and concurrent access violations. De-referencing a nil pointer isn't a memory safety violation, for example. But I guess if you re-define memory safety to mean anything that can produce a segfault then sure.
In terms of the actual bugs encountered when developing modern C++ applications, logic bugs vastly outnumber segfaults and memory safety bugs, which are quite rare when you're writing business logic.
I fully agree. Memory safety issues are a small minority of C++ issues. Memory safety issues when you get them are very difficult to track down, and often have much broader/worse effects.
With an MMU, segfaults cause pretty abrupt and obvious failures for straying outside the heap or stack. Violating memory safety may cause subtle and unpredictable errors even in correct functions, which is a lot more dangerous.