[12/14] gdb: pass program space to entry_point_address

Message ID 20240711195307.1544451-13-simon.marchi@polymtl.ca
State New
Headers
Series Some random program space cleanups |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-arm success Build passed
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 success Build passed
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 success Test passed
linaro-tcwg-bot/tcwg_gdb_check--master-arm success Test passed

Commit Message

Simon Marchi July 11, 2024, 7:52 p.m. UTC
  Make the current program space reference bubble up one level.

Change-Id: Ifc9b8186abaefb10caf99f79ae09e526fa65c882
---
 gdb/arc-tdep.c   | 2 +-
 gdb/arch-utils.c | 2 +-
 gdb/infcall.c    | 2 +-
 gdb/objfiles.c   | 6 +++---
 gdb/objfiles.h   | 4 +++-
 5 files changed, 9 insertions(+), 7 deletions(-)
  

Patch

diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
index 9491107ecffb..4fc1ea1dc464 100644
--- a/gdb/arc-tdep.c
+++ b/gdb/arc-tdep.c
@@ -861,7 +861,7 @@  arc_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr,
 		     struct regcache *regcache)
 {
   *real_pc = funaddr;
-  *bp_addr = entry_point_address ();
+  *bp_addr = entry_point_address (current_program_space);
   return sp;
 }
 
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 83e29470bf78..fb5634d5fa07 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -56,7 +56,7 @@  displaced_step_at_entry_point (struct gdbarch *gdbarch)
   CORE_ADDR addr;
   int bp_len;
 
-  addr = entry_point_address ();
+  addr = entry_point_address (current_program_space);
 
   /* Inferior calls also use the entry point as a breakpoint location.
      We don't want displaced stepping to interfere with those
diff --git a/gdb/infcall.c b/gdb/infcall.c
index edac9a741791..559fcb7f9a6a 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -1271,7 +1271,7 @@  call_function_by_hand_dummy (struct value *function,
 	CORE_ADDR dummy_addr;
 
 	real_pc = funaddr;
-	dummy_addr = entry_point_address ();
+	dummy_addr = entry_point_address (current_program_space);
 
 	/* A call dummy always consists of just a single breakpoint, so
 	   its address is the same as the address of the dummy.
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 2a2fbd3ef01b..ea6ba4c20b26 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -360,14 +360,14 @@  entry_point_address_query (program_space *pspace, CORE_ADDR *entry_p)
   return 1;
 }
 
-/* Get current entry point address.  Call error if it is not known.  */
+/* See objfiles.h.  */
 
 CORE_ADDR
-entry_point_address (void)
+entry_point_address (program_space *pspace)
 {
   CORE_ADDR retval;
 
-  if (!entry_point_address_query (current_program_space, &retval))
+  if (!entry_point_address_query (pspace, &retval))
     error (_("Entry point address is not known."));
 
   return retval;
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 199dea0a9ba4..0a28c6558ca5 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -913,7 +913,9 @@  obj_section::set_offset (CORE_ADDR offset)
 extern int entry_point_address_query (program_space *pspace,
 				      CORE_ADDR *entry_p);
 
-extern CORE_ADDR entry_point_address (void);
+/* Get the entry point address in PSPACE.  Call error if it is not known.  */
+
+extern CORE_ADDR entry_point_address (program_space *pspace);
 
 extern void build_objfile_section_table (struct objfile *);