PR symtab/17855
authorJoel Brobecker <brobecker@adacore.com>
Sat, 31 Jan 2015 20:43:02 +0000 (12:43 -0800)
committerDoug Evans <xdje42@gmail.com>
Sat, 31 Jan 2015 20:43:02 +0000 (12:43 -0800)
gdb/ChangeLog:

PR symtab/17855
* symfile.c (clear_symtab_users): Move call to breakpoint_re_set
to end.

gdb/ChangeLog
gdb/symfile.c

index 111cc457f42f22ada21e06971fb36b66d3e1a7bd..42c91aaab97434437dfcd9e64058c31cfea06cbb 100644 (file)
@@ -1,3 +1,9 @@
+2015-01-31  Joel Brobecker  <brobecker@adacore.com>
+
+       PR symtab/17855
+       * symfile.c (clear_symtab_users): Move call to breakpoint_re_set
+       to end.
+
 2015-01-31  Doug Evans  <xdje42@gmail.com>
 
        * NEWS: Mention inlined scripts in .debug_gdb_scripts section.
index 86a758a52cd61245eee2dacc05d7852cd19e9f51..96c7951be7bdddf4986db2df53ee697a62c86a75 100644 (file)
@@ -3028,8 +3028,6 @@ clear_symtab_users (int add_flags)
   clear_current_source_symtab_and_line ();
 
   clear_displays ();
-  if ((add_flags & SYMFILE_DEFER_BP_RESET) == 0)
-    breakpoint_re_set ();
   clear_last_displayed_sal ();
   clear_pc_function_cache ();
   observer_notify_new_objfile (NULL);
@@ -3043,6 +3041,10 @@ clear_symtab_users (int add_flags)
   /* Varobj may refer to old symbols, perform a cleanup.  */
   varobj_invalidate ();
 
+  /* Now that the various caches have been cleared, we can re_set
+     our breakpoints without risking it using stale data.  */
+  if ((add_flags & SYMFILE_DEFER_BP_RESET) == 0)
+    breakpoint_re_set ();
 }
 
 static void