add experimental alternative stack support

- I don't know why, but calling `xerror()` in `bt_handler()` causes
  `SIGSEGV` on some cases.
  Thus, replace all `xerror()` calls to `fprintf()` calls.