exit() in fewer cases

we now only exit() when we know the stack has been trashed, just warn in
other cases