aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2024-05-16 17:01:47 -0400
committerSimon Marchi <simon.marchi@efficios.com>2024-07-15 14:34:12 -0400
commitb7513ebd18f4d930e8ff806609be1bf75a7b9b9a (patch)
tree6e33996071156ac4cbb849be25cc8f9820cf082d
parentda2732476dbd1b8a71510d999b6d18754d7ea58a (diff)
downloadgdb-b7513ebd18f4d930e8ff806609be1bf75a7b9b9a.zip
gdb-b7513ebd18f4d930e8ff806609be1bf75a7b9b9a.tar.gz
gdb-b7513ebd18f4d930e8ff806609be1bf75a7b9b9a.tar.bz2
gdb: pass program space to entry_point_address_query
Make the current program space bubble up one level. Change-Id: Ic3ad0869ca1afe41854f605a6f7eb092fca29ff8 Approved-By: Tom Tromey <tom@tromey.com> Reviewed-By: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
-rw-r--r--gdb/frame.c2
-rw-r--r--gdb/objfiles.c9
-rw-r--r--gdb/objfiles.h6
-rw-r--r--gdb/solib-frv.c2
4 files changed, 11 insertions, 8 deletions
diff --git a/gdb/frame.c b/gdb/frame.c
index 43efac0..e6ab547 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -2628,7 +2628,7 @@ inside_entry_func (const frame_info_ptr &this_frame)
{
CORE_ADDR entry_point;
- if (!entry_point_address_query (&entry_point))
+ if (!entry_point_address_query (current_program_space, &entry_point))
return false;
return get_frame_func (this_frame) == entry_point;
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index cf1f3ae..b9333b6 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -345,13 +345,12 @@ objfile::objfile (gdb_bfd_ref_ptr bfd_, const char *name, objfile_flags flags_)
set_objfile_per_bfd (this);
}
-/* If there is a valid and known entry point, function fills *ENTRY_P with it
- and returns non-zero; otherwise it returns zero. */
+/* See objfiles.h. */
int
-entry_point_address_query (CORE_ADDR *entry_p)
+entry_point_address_query (program_space *pspace, CORE_ADDR *entry_p)
{
- objfile *objf = current_program_space->symfile_object_file;
+ objfile *objf = pspace->symfile_object_file;
if (objf == NULL || !objf->per_bfd->ei.entry_point_p)
return 0;
@@ -368,7 +367,7 @@ entry_point_address (void)
{
CORE_ADDR retval;
- if (!entry_point_address_query (&retval))
+ if (!entry_point_address_query (current_program_space, &retval))
error (_("Entry point address is not known."));
return retval;
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 6a4724a..45a06ec 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -912,7 +912,11 @@ obj_section::set_offset (CORE_ADDR offset)
/* Declarations for functions defined in objfiles.c */
-extern int entry_point_address_query (CORE_ADDR *entry_p);
+/* If there is a valid and known entry point in PSPACE, fill *ENTRY_P with it
+ and return non-zero. */
+
+extern int entry_point_address_query (program_space *pspace,
+ CORE_ADDR *entry_p);
extern CORE_ADDR entry_point_address (void);
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index 39508fa..79052db 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -687,7 +687,7 @@ enable_break (void)
return 0;
}
- if (!entry_point_address_query (&entry_point))
+ if (!entry_point_address_query (current_program_space, &entry_point))
{
solib_debug_printf ("Symbol file has no entry point.");
return 0;