“The replayed execution’s address spaces, register contents, syscall data etc are exactly the same in every run.”
Record a crash once, then replay it as many times as you need, down to the same pointer addresses. Set a watchpoint on a bad value and run backward to the line that wrote it. The demo debugs Firefox, which is exactly the kind of program where a bug never fails the same way twice. Most developers still debug with printf and hope.