]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb: pass program space to no_shared_libraries
authorSimon Marchi <simon.marchi@polymtl.ca>
Thu, 11 Jul 2024 16:39:35 +0000 (12:39 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Mon, 15 Jul 2024 18:34:12 +0000 (14:34 -0400)
Make the current program space reference bubble up one level.  Pass
`current_program_space` everywhere, except in some cases where we can
get the pspace another way, and it's relatively obvious that it's the
same as the current program space.

Change-Id: Id86b79f1e44f92a398f49d137d57457174dfa96d
Approved-By: Tom Tromey <tom@tromey.com>
Reviewed-By: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
gdb/infcmd.c
gdb/infrun.c
gdb/progspace.c
gdb/remote.c
gdb/solib.c
gdb/solib.h
gdb/symfile.c
gdb/target.c

index 5738bf05bf6b64fa308feb292dda5d457794c066..4ed55f1342ccc72e55e42bbeff5edb738deb321e 100644 (file)
@@ -2827,7 +2827,7 @@ detach_command (const char *args, int from_tty)
   /* If the solist is global across inferiors, don't clear it when we
      detach from a single inferior.  */
   if (!gdbarch_has_global_solist (inf->arch ()))
-    no_shared_libraries ();
+    no_shared_libraries (inf->pspace);
 
   if (deprecated_detach_hook)
     deprecated_detach_hook ();
@@ -2853,7 +2853,7 @@ disconnect_command (const char *args, int from_tty)
   query_if_trace_running (from_tty);
   disconnect_tracing ();
   target_disconnect (args, from_tty);
-  no_shared_libraries ();
+  no_shared_libraries (current_program_space);
   init_thread_list ();
   update_previous_thread ();
   if (deprecated_detach_hook)
index b2dfd0c96b15b61512bc4bbd691329b66f600f26..06b454bf78f7340128873f95dc7f2d868e6f30dd 100644 (file)
@@ -1317,7 +1317,7 @@ follow_exec (ptid_t ptid, const char *exec_file_target)
   /* Also, loading a symbol file below may trigger symbol lookups, and
      we don't want those to be satisfied by the libraries of the
      previous incarnation of this process.  */
-  no_shared_libraries ();
+  no_shared_libraries (current_program_space);
 
   inferior *execing_inferior = current_inferior ();
   inferior *following_inferior;
index 580ebfbb6d1a0218cba502bd0496199648f70b16..224b61e0d7f8833c608d655237bcf56d79b267a9 100644 (file)
@@ -115,7 +115,7 @@ program_space::~program_space ()
   set_current_program_space (this);
 
   breakpoint_program_space_exit (this);
-  no_shared_libraries ();
+  no_shared_libraries (this);
   free_all_objfiles ();
   /* Defer breakpoint re-set because we don't want to create new
      locations for this pspace which we're tearing down.  */
index 4869e7624f924ce1658ed09d7c6707b04810dcca..188795d19035789c4c2c0e43cb92a09886a8459d 100644 (file)
@@ -6271,7 +6271,7 @@ remote_target::open_1 (const char *name, int from_tty, int extended_p)
     }
 
   /* First delete any symbols previously loaded from shared libraries.  */
-  no_shared_libraries ();
+  no_shared_libraries (current_program_space);
 
   /* Start the remote connection.  If error() or QUIT, discard this
      target (we'd otherwise be in an inconsistent state) and then
index 8faf4d73a527080d1e2aed245a16fbf15270b171..8b97cc61f64cd15cc285ad7a4edca65db5b5ab5b 100644 (file)
@@ -1237,15 +1237,15 @@ sharedlibrary_command (const char *args, int from_tty)
 /* See solib.h.  */
 
 void
-no_shared_libraries ()
+no_shared_libraries (program_space *pspace)
 {
   /* The order of the two routines below is important: clear_solib notifies
      the solib_unloaded observers, and some of these observers might need
      access to their associated objfiles.  Therefore, we can not purge the
      solibs' objfiles before clear_solib has been called.  */
 
-  clear_solib (current_program_space);
-  objfile_purge_solibs (current_program_space);
+  clear_solib (pspace);
+  objfile_purge_solibs (pspace);
 }
 
 /* Implements the command "nosharedlibrary", which discards symbols
@@ -1256,7 +1256,7 @@ no_shared_libraries ()
 static void
 no_shared_libraries_command (const char *ignored, int from_tty)
 {
-  no_shared_libraries ();
+  no_shared_libraries (current_program_space);
 }
 
 /* See solib.h.  */
index 6b275c580fa4eef2bca1d46b438d481f2f67c0c5..25ed77c10509d3ee7d5123c9228119f2cb608459 100644 (file)
@@ -80,9 +80,9 @@ extern bool solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size);
 
 extern bool in_solib_dynsym_resolve_code (CORE_ADDR);
 
-/* Discard symbols that were auto-loaded from shared libraries.  */
+/* Discard symbols that were auto-loaded from shared libraries in PSPACE.  */
 
-extern void no_shared_libraries ();
+extern void no_shared_libraries (program_space *pspace);
 
 /* Synchronize GDB's shared object list with inferior's.
 
index 7c283289e620e52cfcc5d8bf43dd7a264983040d..6b722214663b1fadc185e2b8843befc55b878d28 100644 (file)
@@ -1209,7 +1209,7 @@ symbol_file_clear (int from_tty)
 
   /* solib descriptors may have handles to objfiles.  Wipe them before their
      objfiles get stale by free_all_objfiles.  */
-  no_shared_libraries ();
+  no_shared_libraries (current_program_space);
 
   current_program_space->free_all_objfiles ();
 
index 0ca708729a7a829aa203ae364be1fb99e723a8e4..18027037d3bd7c25c512f42d39f0390fed00cdae 100644 (file)
@@ -2452,7 +2452,7 @@ target_pre_inferior ()
      memory regions and features.  */
   if (!gdbarch_has_global_solist (current_inferior ()->arch ()))
     {
-      no_shared_libraries ();
+      no_shared_libraries (current_program_space);
 
       invalidate_target_mem_regions ();