btrace: check for indirect jump return in _Unwind_RaiseException
authorMarkus Metzger <markus.t.metzger@intel.com>
Mon, 24 Sep 2018 09:33:11 +0000 (11:33 +0200)
committerMarkus Metzger <markus.t.metzger@intel.com>
Wed, 10 Oct 2018 10:27:55 +0000 (12:27 +0200)
commit2cb2ba9a5b7fe39f30604650efa64cff05cb72e4
tree608403cbc959280149a7a5481ca43acff36213b1
parent673fe0f0a7a0624819f1b4cdc289f43691567e91
btrace: check for indirect jump return in _Unwind_RaiseException

Some versions of _Unwind_RaiseException, e.g. on Fedora 28, use an
indirect jump to return to the exception handler.

This messes up the output of "record function-call-history /c" since the
return is interpreted as cross-function goto.  It had been detected by
gdb.btrace/exception.exp.

Add a heuristic for "_Unwind_*" functions to interpret an indirect jump
that ends in one of our caller functions as return to the first instance
of that function in our call stack.

gdb/
* btrace.c (ftrace_update_function): Add indirect jump heuristic.
gdb/ChangeLog
gdb/btrace.c