]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb: add program_space parameter to disable_breakpoints_in_shlibs
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 7 Feb 2024 16:53:21 +0000 (11:53 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Fri, 9 Feb 2024 16:09:55 +0000 (11:09 -0500)
Make the current_program_space reference bubble up one level.

Change-Id: Ide917aa306bff1872d961244901d79f65d2da62e
Approved-By: Andrew Burgess <aburgess@redhat.com>
gdb/breakpoint.c
gdb/breakpoint.h
gdb/solib.c
gdb/windows-nat.c

index 8d8e97400e376d7894d13367209fbab81fae7302..5f05657a8b3e0c855c8d8448faa1069e0cf68135 100644 (file)
@@ -7972,11 +7972,10 @@ create_and_insert_solib_event_breakpoint (struct gdbarch *gdbarch, CORE_ADDR add
   return b;
 }
 
-/* Disable any breakpoints that are on code in shared libraries.  Only
-   apply to enabled breakpoints, disabled ones can just stay disabled.  */
+/* See breakpoint.h.  */
 
 void
-disable_breakpoints_in_shlibs (void)
+disable_breakpoints_in_shlibs (program_space *pspace)
 {
   for (bp_location *loc : all_bp_locations ())
     {
@@ -7992,7 +7991,7 @@ disable_breakpoints_in_shlibs (void)
           || (b->type == bp_jit_event)
           || (b->type == bp_hardware_breakpoint)
           || (is_tracepoint (b)))
-         && loc->pspace == current_program_space
+         && loc->pspace == pspace
          && !loc->shlib_disabled
          && solib_name_from_address (loc->pspace, loc->address)
          )
index 8530a71279455abda69a168cce36848edc483846..226e4d06993e6b1c3f15e1ffa2158383abd3f5de 100644 (file)
@@ -1802,7 +1802,10 @@ extern void remove_solib_event_breakpoints (void);
    delete at next stop disposition.  */
 extern void remove_solib_event_breakpoints_at_next_stop (void);
 
-extern void disable_breakpoints_in_shlibs (void);
+/* Disable any breakpoints that are on code in shared libraries in PSPACE.
+   Only apply to enabled breakpoints, disabled ones can just stay disabled.  */
+
+extern void disable_breakpoints_in_shlibs (program_space *pspace);
 
 /* This function returns true if B is a catchpoint.  */
 
index 0a888430cf9babe5fcfe81a4220771bb5c394a58..98cda039a8331d00741d7cdabf9139878e37bea5 100644 (file)
@@ -1187,7 +1187,7 @@ clear_solib (void)
 {
   const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
 
-  disable_breakpoints_in_shlibs ();
+  disable_breakpoints_in_shlibs (current_program_space);
 
   current_program_space->so_list.clear_and_dispose ([] (solib *so) {
     notify_solib_unloaded (current_program_space, *so);
index 48b0d10d24c74e59903ab394e50c4d84d7aada61..7f3044fc61de11511909c2ee3b33c796c694b55d 100644 (file)
@@ -1906,7 +1906,7 @@ windows_nat_target::do_initial_windows_stuff (DWORD pid, bool attaching)
   inf = current_inferior ();
   if (!inf->target_is_pushed (this))
     inf->push_target (this);
-  disable_breakpoints_in_shlibs ();
+  disable_breakpoints_in_shlibs (current_program_space);
   windows_clear_solib ();
   clear_proceed_status (0);
   init_wait_for_inferior ();