gdb: add program_space parameter to mark_breakpoints_out

Make the current_program_space reference bubble up one level.

Change-Id: Idc8ed78d23bf3bb2969f6963d8cc049f26901c29
Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
Simon Marchi
2024-02-07 11:53:19 -05:00
committed by Simon Marchi
parent 38065394e9
commit c72348e3b4
4 changed files with 9 additions and 8 deletions

View File

@@ -4216,13 +4216,13 @@ remove_breakpoint (struct bp_location *bl)
return remove_breakpoint_1 (bl, REMOVE_BREAKPOINT); return remove_breakpoint_1 (bl, REMOVE_BREAKPOINT);
} }
/* Clear the "inserted" flag in all breakpoints. */ /* See breakpoint.h. */
void void
mark_breakpoints_out (void) mark_breakpoints_out (program_space *pspace)
{ {
for (bp_location *bl : all_bp_locations ()) for (bp_location *bl : all_bp_locations ())
if (bl->pspace == current_program_space) if (bl->pspace == pspace)
bl->inserted = 0; bl->inserted = 0;
} }
@@ -4248,7 +4248,7 @@ breakpoint_init_inferior (enum inf_context context)
if (gdbarch_has_global_breakpoints (current_inferior ()->arch ())) if (gdbarch_has_global_breakpoints (current_inferior ()->arch ()))
return; return;
mark_breakpoints_out (); mark_breakpoints_out (pspace);
for (breakpoint &b : all_breakpoints_safe ()) for (breakpoint &b : all_breakpoints_safe ())
{ {

View File

@@ -1764,8 +1764,9 @@ extern void breakpoint_set_inferior (struct breakpoint *b, int inferior);
extern void breakpoint_set_task (struct breakpoint *b, int task); extern void breakpoint_set_task (struct breakpoint *b, int task);
/* Clear the "inserted" flag in all breakpoints. */ /* Clear the "inserted" flag in all breakpoints locations in PSPACE. */
extern void mark_breakpoints_out (void);
extern void mark_breakpoints_out (program_space *pspace);
extern struct breakpoint *create_jit_event_breakpoint (struct gdbarch *, extern struct breakpoint *create_jit_event_breakpoint (struct gdbarch *,
CORE_ADDR); CORE_ADDR);

View File

@@ -1247,7 +1247,7 @@ follow_exec (ptid_t ptid, const char *exec_file_target)
value that was overwritten with a TRAP instruction). Since value that was overwritten with a TRAP instruction). Since
we now have a new a.out, those shadow contents aren't valid. */ we now have a new a.out, those shadow contents aren't valid. */
mark_breakpoints_out (); mark_breakpoints_out (current_program_space);
/* The target reports the exec event to the main thread, even if /* The target reports the exec event to the main thread, even if
some other thread does the exec, and even if the main thread was some other thread does the exec, and even if the main thread was

View File

@@ -3628,7 +3628,7 @@ generic_mourn_inferior (void)
/* Mark breakpoints uninserted in case something tries to delete a /* Mark breakpoints uninserted in case something tries to delete a
breakpoint while we delete the inferior's threads (which would breakpoint while we delete the inferior's threads (which would
fail, since the inferior is long gone). */ fail, since the inferior is long gone). */
mark_breakpoints_out (); mark_breakpoints_out (inf->pspace);
if (inf->pid != 0) if (inf->pid != 0)
exit_inferior (inf); exit_inferior (inf);