x86: avoids bad frame pointers in backtrace

Backtrace will stop backtracing if it hits a non-canonical, non-kernel address.
It'll still record the PC, so we can see some evidence of the corruption.

Thanks to Drew for pointing this out and providing a fix.