]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - gdb/breakpoint.c
watch_command_1: Fix dangling frame access
authorPedro Alves <palves@redhat.com>
Thu, 13 Apr 2017 15:15:34 +0000 (16:15 +0100)
committerPedro Alves <palves@redhat.com>
Thu, 13 Apr 2017 15:15:34 +0000 (16:15 +0100)
commit441d7c93782a1b1877bfa903dc8da56a6041bfb4
tree649f20b5b7af4565769c44e5eae6e2e19bbcff21
parent7296a62a2a237f6b1ad8db8c38b090e9f592c8cf
watch_command_1: Fix dangling frame access

While working on some changes to switch_to_thread, I inadvertently
make switch_to_thread call reinit_frame_cache more frequently, even
when the thread didn't change.  This exposed a latent bug in
watch_command_1, where we're referencing a frame after
creating/inserting breakpoints, which potentially calls
reinit_frame_cache if it needs to install breakpoints with a different
thread selected.

Handle this similarly to how it's already handled in other similar
cases.  I.e., save any frame-related information we might need before
creating a breakpoint.

gdb/ChangeLog:
2017-04-13  Pedro Alves  <palves@redhat.com>

* breakpoint.c (watch_command_1): Save watchpoint-frame info
before calling create_internal_breakpoint.
gdb/ChangeLog
gdb/breakpoint.c