Fix aarch64 handling of error code.

In the is_signal_frame call, there is an error return path that can
return a non-zero value. Unfortunately, only zero is considered an
error, so this causes the frame to be handled incorrectly.

Once this was fixed, I also modified the code so that if the treating
the unwind as in a signal frame fails, we can fall back and try a couple
of different paths.

It turns out this is_signal_frame check was broken on arm too.

Bug: 18100846

Change-Id: I519aea7594352be60df665457eb2986ab4f0f513
3 files changed