What does abort() do?

robitabu:
What does actually abort() do in Arduino?

It clearly has undesirable side-effects. Why would you want to use it?