PR python/19293 - invalidate frame cache when unwinders change
authorTom Tromey <tom@tromey.com>
Thu, 9 Jun 2016 21:20:09 +0000 (15:20 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 12 Jul 2016 19:56:07 +0000 (13:56 -0600)
commite0f3fd7c44cebec7d787893b9c800e7de509cb32
tree482011f3bd7e241f048825d653d56f2ab45a4cd5
parentcf143069f39b4feeeca175f88b6d1a5c1cb0fee4
PR python/19293 - invalidate frame cache when unwinders change

PR python/19293 notes that when a Python unwinder is disabled, the
frame cache is not invalidated.  This means that disabling an unwinder
doesn't have any immediate effect -- but in my experience it's often
the case that I want to enable or disable an unwinder in order to see
what happens.

This patch adds a new gdb.invalidate_cached_frames function and
arranges for the relevant bits of library code to call it.  I've only
partially documented this function, considering a warning sufficient
without going into all the reasons ordinary code should not call it.
The name of the new function was taken from a comment in frame.h next
to reinit_frame_cache.

No new test as I think the updates to the existing test are sufficient
to show that the code is working as intended.

Built and regtested on x86-64 Fedora 23.

2016-07-12  Tom Tromey  <tom@tromey.com>

PR python/19293:
* python/lib/gdb/command/unwinders.py (do_enable_unwinder): Call
gdb.invalidate_cached_frames.
* python/lib/gdb/unwinder.py (register_unwinder): Call
gdb.invalidate_cached_frames.
* python/python.c (gdbpy_invalidate_cached_frames): New function.
(python_GdbMethods): Add entry for invalidate_cached_frames.

2016-07-12  Tom Tromey  <tom@tromey.com>

PR python/19293:
* python.texi (Frames In Python): Document
gdb.invalidate_cached_frames.

2016-07-12  Tom Tromey  <tom@tromey.com>

PR python/19293:
* gdb.python/py-unwind-maint.exp: Update tests.
gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/python.texi
gdb/python/lib/gdb/command/unwinders.py
gdb/python/lib/gdb/unwinder.py
gdb/python/python.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-unwind-maint.exp