Reproducing concurrency failures from crash stacks