Make gdb.PendingFrame.read_register handle "user" registers.
authorKevin Buettner <kevinb@redhat.com>
Wed, 28 Sep 2016 05:45:19 +0000 (22:45 -0700)
committerKevin Buettner <kevinb@redhat.com>
Wed, 16 Nov 2016 18:38:44 +0000 (11:38 -0700)
commit33cc7d368f420326606695daafd6292e2779c6af
treed695614addf8e1c850faad0b5c9bd5d2f8addc60
parent41b56feb5063aee4fefb4a991eb796d1e8a7475e
Make gdb.PendingFrame.read_register handle "user" registers.

The C function, pending_framepy_read_register(), which implements
the python interface gdb.PendingFrame.read_register does not handle
the so called "user" registers like "pc".  An assertion error is
triggered due to the user registers having numbers larger than or
equal to gdbarch_num_regs(gdbarch).

With the VALUE_FRAME_ID tweak in place, the call to
get_frame_register_value() can simply be replaced by a call to
value_of_register(), which handles both real registers as well as the
user registers.

gdb/ChangeLog:

* python/py-unwind.c (pending_framepy_read_register): Use
value_of_register() instead of get_frame_register_value().
gdb/ChangeLog
gdb/python/py-unwind.c