summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2013-06-24 22:18:32 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2013-06-24 22:18:32 +0000
commit3e5d3a5aaf64994809c15f0af12dd9260cf456e3 (patch)
tree560e6561524ac51af8221f3d300129c705f4dfea
parentb9b26a166a203fda2e1422a2981831196cbd6598 (diff)
downloadppe42-binutils-3e5d3a5aaf64994809c15f0af12dd9260cf456e3.tar.gz
ppe42-binutils-3e5d3a5aaf64994809c15f0af12dd9260cf456e3.zip
* objfiles.h (pc_in_section): New prototype.
(in_plt_section): Remove name argument, replace prototype with static inline function. * mips-tdep.h: Include "objfiles.h". (in_mips_stubs_section): New function. * hppa-tdep.h (gdbarch_tdep): Remove name argument of in_solib_call_trampoline member. (hppa_in_solib_call_trampoline): Remove name argument. * objfiles.c (pc_in_section): New function. (in_plt_section): Remove function. * mips-linux-tdep.c: Include "objfiles.h". (mips_linux_in_dynsym_stub): Call in_mips_stubs_section. Remove name argument. Return 1 rather than the low 16-bit halfword of any instruction examined. (mips_linux_in_dynsym_resolve_code): Update mips_linux_in_dynsym_stub call accordingly. * mips-tdep.c (mips_stub_frame_sniffer): Use in_mips_stubs_section rather than an equivalent hand-coded sequence. * hppa-hpux-tdep.c (in_opd_section): Remove function. (hppa32_hpux_in_solib_call_trampoline): Remove name argument. (hppa64_hpux_in_solib_call_trampoline): Likewise. (hppa64_hpux_find_global_pointer): Use pc_in_section rather than in_opd_section. * hppa-tdep.c (hppa_stub_unwind_sniffer): Remove name argument on call to tdep->in_solib_call_trampoline. (hppa_in_solib_call_trampoline): Remove name argument, update according to in_plt_section change. (hppa_skip_trampoline_code): Update according to in_plt_section change. * aarch64-tdep.c (aarch64_stub_unwind_sniffer): Likewise. * arm-symbian-tdep.c (arm_symbian_skip_trampoline_code): Likewise. * arm-tdep.c (arm_stub_unwind_sniffer): Likewise. * hppa-linux-tdep.c (hppa_linux_find_global_pointer): Likewise. * hppabsd-tdep.c (hppabsd_find_global_pointer): Likewise. * nios2-tdep.c (nios2_stub_frame_sniffer): Likewise. * nto-tdep.c (nto_relocate_section_addresses): Likewise. * s390-tdep.c (s390_stub_frame_sniffer): Likewise. * sh-tdep.c (sh_stub_unwind_sniffer): Likewise. * solib-dsbt.c (dsbt_in_dynsym_resolve_code): Likewise. * solib-frv.c (frv_in_dynsym_resolve_code): Likewise. * solib-svr4.c (svr4_in_dynsym_resolve_code): Likewise. * solib-target.c (solib_target_in_dynsym_resolve_code): Likewise. * sparc-tdep.c (sparc_analyze_prologue): Likewise. * tic6x-tdep.c (tic6x_stub_unwind_sniffer): Likewise.
-rw-r--r--gdb/ChangeLog48
-rw-r--r--gdb/aarch64-tdep.c2
-rw-r--r--gdb/arm-symbian-tdep.c2
-rw-r--r--gdb/arm-tdep.c2
-rw-r--r--gdb/hppa-hpux-tdep.c22
-rw-r--r--gdb/hppa-linux-tdep.c2
-rw-r--r--gdb/hppa-tdep.c11
-rw-r--r--gdb/hppa-tdep.h10
-rw-r--r--gdb/hppabsd-tdep.c2
-rw-r--r--gdb/mips-linux-tdep.c29
-rw-r--r--gdb/mips-tdep.c10
-rw-r--r--gdb/mips-tdep.h10
-rw-r--r--gdb/nios2-tdep.c2
-rw-r--r--gdb/nto-tdep.c2
-rw-r--r--gdb/objfiles.c8
-rw-r--r--gdb/objfiles.h12
-rw-r--r--gdb/s390-tdep.c2
-rw-r--r--gdb/sh-tdep.c2
-rw-r--r--gdb/solib-dsbt.c2
-rw-r--r--gdb/solib-frv.c2
-rw-r--r--gdb/solib-svr4.c2
-rw-r--r--gdb/solib-target.c2
-rw-r--r--gdb/sparc-tdep.c2
-rw-r--r--gdb/tic6x-tdep.c2
24 files changed, 120 insertions, 70 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index adaf463a8b..ff023197c3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,51 @@
+2013-06-24 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * objfiles.h (pc_in_section): New prototype.
+ (in_plt_section): Remove name argument, replace prototype with
+ static inline function.
+ * mips-tdep.h: Include "objfiles.h".
+ (in_mips_stubs_section): New function.
+ * hppa-tdep.h (gdbarch_tdep): Remove name argument of
+ in_solib_call_trampoline member.
+ (hppa_in_solib_call_trampoline): Remove name argument.
+ * objfiles.c (pc_in_section): New function.
+ (in_plt_section): Remove function.
+ * mips-linux-tdep.c: Include "objfiles.h".
+ (mips_linux_in_dynsym_stub): Call in_mips_stubs_section. Remove
+ name argument. Return 1 rather than the low 16-bit halfword of
+ any instruction examined.
+ (mips_linux_in_dynsym_resolve_code): Update
+ mips_linux_in_dynsym_stub call accordingly.
+ * mips-tdep.c (mips_stub_frame_sniffer): Use in_mips_stubs_section
+ rather than an equivalent hand-coded sequence.
+ * hppa-hpux-tdep.c (in_opd_section): Remove function.
+ (hppa32_hpux_in_solib_call_trampoline): Remove name argument.
+ (hppa64_hpux_in_solib_call_trampoline): Likewise.
+ (hppa64_hpux_find_global_pointer): Use pc_in_section rather than
+ in_opd_section.
+ * hppa-tdep.c (hppa_stub_unwind_sniffer): Remove name argument
+ on call to tdep->in_solib_call_trampoline.
+ (hppa_in_solib_call_trampoline): Remove name argument, update
+ according to in_plt_section change.
+ (hppa_skip_trampoline_code): Update according to in_plt_section
+ change.
+ * aarch64-tdep.c (aarch64_stub_unwind_sniffer): Likewise.
+ * arm-symbian-tdep.c (arm_symbian_skip_trampoline_code):
+ Likewise.
+ * arm-tdep.c (arm_stub_unwind_sniffer): Likewise.
+ * hppa-linux-tdep.c (hppa_linux_find_global_pointer): Likewise.
+ * hppabsd-tdep.c (hppabsd_find_global_pointer): Likewise.
+ * nios2-tdep.c (nios2_stub_frame_sniffer): Likewise.
+ * nto-tdep.c (nto_relocate_section_addresses): Likewise.
+ * s390-tdep.c (s390_stub_frame_sniffer): Likewise.
+ * sh-tdep.c (sh_stub_unwind_sniffer): Likewise.
+ * solib-dsbt.c (dsbt_in_dynsym_resolve_code): Likewise.
+ * solib-frv.c (frv_in_dynsym_resolve_code): Likewise.
+ * solib-svr4.c (svr4_in_dynsym_resolve_code): Likewise.
+ * solib-target.c (solib_target_in_dynsym_resolve_code): Likewise.
+ * sparc-tdep.c (sparc_analyze_prologue): Likewise.
+ * tic6x-tdep.c (tic6x_stub_unwind_sniffer): Likewise.
+
2013-06-24 Joel Brobecker <brobecker@adacore.com>
* common/create-version.sh: Fix expansion of $host_alias
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 2d74429295..ea25cf610d 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -1094,7 +1094,7 @@ aarch64_stub_unwind_sniffer (const struct frame_unwind *self,
gdb_byte dummy[4];
addr_in_block = get_frame_address_in_block (this_frame);
- if (in_plt_section (addr_in_block, NULL)
+ if (in_plt_section (addr_in_block)
/* We also use the stub winder if the target memory is unreadable
to avoid having the prologue unwinder trying to read it. */
|| target_read_memory (get_frame_pc (this_frame), dummy, 4) != 0)
diff --git a/gdb/arm-symbian-tdep.c b/gdb/arm-symbian-tdep.c
index c1ac92b477..d7d34fdb53 100644
--- a/gdb/arm-symbian-tdep.c
+++ b/gdb/arm-symbian-tdep.c
@@ -38,7 +38,7 @@ arm_symbian_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
CORE_ADDR dest;
gdb_byte buf[4];
- if (!in_plt_section (pc, NULL))
+ if (!in_plt_section (pc))
return 0;
if (target_read_memory (pc, buf, 4) != 0)
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index b169e3578a..7c78a617f3 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -2907,7 +2907,7 @@ arm_stub_unwind_sniffer (const struct frame_unwind *self,
gdb_byte dummy[4];
addr_in_block = get_frame_address_in_block (this_frame);
- if (in_plt_section (addr_in_block, NULL)
+ if (in_plt_section (addr_in_block)
/* We also use the stub winder if the target memory is unreadable
to avoid having the prologue unwinder trying to read it. */
|| target_read_memory (get_frame_pc (this_frame), dummy, 4) != 0)
diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c
index 667904e7a5..88e59ba3e9 100644
--- a/gdb/hppa-hpux-tdep.c
+++ b/gdb/hppa-hpux-tdep.c
@@ -65,28 +65,13 @@
extern void _initialize_hppa_hpux_tdep (void);
extern initialize_file_ftype _initialize_hppa_hpux_tdep;
-static int
-in_opd_section (CORE_ADDR pc)
-{
- struct obj_section *s;
- int retval = 0;
-
- s = find_pc_section (pc);
-
- retval = (s != NULL
- && s->the_bfd_section->name != NULL
- && strcmp (s->the_bfd_section->name, ".opd") == 0);
- return (retval);
-}
-
/* Return one if PC is in the call path of a trampoline, else return zero.
Note we return one for *any* call trampoline (long-call, arg-reloc), not
just shared library trampolines (import, export). */
static int
-hppa32_hpux_in_solib_call_trampoline (struct gdbarch *gdbarch,
- CORE_ADDR pc, char *name)
+hppa32_hpux_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
struct bound_minimal_symbol minsym;
@@ -156,8 +141,7 @@ hppa32_hpux_in_solib_call_trampoline (struct gdbarch *gdbarch,
}
static int
-hppa64_hpux_in_solib_call_trampoline (struct gdbarch *gdbarch,
- CORE_ADDR pc, char *name)
+hppa64_hpux_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@@ -798,7 +782,7 @@ hppa64_hpux_find_global_pointer (struct gdbarch *gdbarch,
faddr = value_as_address (function);
- if (in_opd_section (faddr))
+ if (pc_in_section (faddr, ".opd"))
{
target_read_memory (faddr, buf, sizeof (buf));
return extract_unsigned_integer (&buf[24], 8, byte_order);
diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c
index dde237470d..52efea1e86 100644
--- a/gdb/hppa-linux-tdep.c
+++ b/gdb/hppa-linux-tdep.c
@@ -356,7 +356,7 @@ hppa_linux_find_global_pointer (struct gdbarch *gdbarch,
/* If the address is in the plt section, then the real function hasn't
yet been fixed up by the linker so we cannot determine the gp of
that function. */
- if (in_plt_section (faddr, NULL))
+ if (in_plt_section (faddr))
return 0;
faddr_sect = find_pc_section (faddr);
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index fe1b45bcba..53f8ed7f65 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -2417,7 +2417,7 @@ hppa_stub_unwind_sniffer (const struct frame_unwind *self,
if (pc == 0
|| (tdep->in_solib_call_trampoline != NULL
- && tdep->in_solib_call_trampoline (gdbarch, pc, NULL))
+ && tdep->in_solib_call_trampoline (gdbarch, pc))
|| gdbarch_in_solib_return_trampoline (gdbarch, pc, NULL))
return 1;
return 0;
@@ -2855,13 +2855,12 @@ hppa_in_dyncall (CORE_ADDR pc)
}
int
-hppa_in_solib_call_trampoline (struct gdbarch *gdbarch,
- CORE_ADDR pc, char *name)
+hppa_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc)
{
unsigned int insn[HPPA_MAX_INSN_PATTERN_LEN];
struct unwind_table_entry *u;
- if (in_plt_section (pc, name) || hppa_in_dyncall (pc))
+ if (in_plt_section (pc) || hppa_in_dyncall (pc))
return 1;
/* The GNU toolchain produces linker stubs without unwind
@@ -2918,13 +2917,13 @@ hppa_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
/* fallthrough */
}
- if (in_plt_section (pc, NULL))
+ if (in_plt_section (pc))
{
pc = read_memory_typed_address (pc, func_ptr_type);
/* If the PLT slot has not yet been resolved, the target will be
the PLT stub. */
- if (in_plt_section (pc, NULL))
+ if (in_plt_section (pc))
{
/* Sanity check: are we pointing to the PLT stub? */
if (!hppa_match_insns (gdbarch, pc, hppa_plt_stub, insn))
diff --git a/gdb/hppa-tdep.h b/gdb/hppa-tdep.h
index 3b1006694b..d2ce45927e 100644
--- a/gdb/hppa-tdep.h
+++ b/gdb/hppa-tdep.h
@@ -90,11 +90,9 @@ struct gdbarch_tdep
CORE_ADDR (*find_global_pointer) (struct gdbarch *, struct value *);
/* For shared libraries, each call goes through a small piece of
- trampoline code in the ".plt", or equivalent, section.
- IN_SOLIB_CALL_TRAMPOLINE evaluates to nonzero if we are currently
- stopped in one of these. */
- int (*in_solib_call_trampoline) (struct gdbarch *gdbarch,
- CORE_ADDR pc, char *name);
+ trampoline code in the ".plt" section. IN_SOLIB_CALL_TRAMPOLINE
+ evaluates to nonzero if we are currently stopped in one of these. */
+ int (*in_solib_call_trampoline) (struct gdbarch *gdbarch, CORE_ADDR pc);
/* For targets that support multiple spaces, we may have additional stubs
in the return path. These stubs are internal to the ABI, and users are
@@ -242,7 +240,7 @@ extern struct minimal_symbol *
extern struct hppa_objfile_private *hppa_init_objfile_priv_data (struct objfile *objfile);
extern int hppa_in_solib_call_trampoline (struct gdbarch *gdbarch,
- CORE_ADDR pc, char *name);
+ CORE_ADDR pc);
extern CORE_ADDR hppa_skip_trampoline_code (struct frame_info *, CORE_ADDR pc);
#endif /* hppa-tdep.h */
diff --git a/gdb/hppabsd-tdep.c b/gdb/hppabsd-tdep.c
index 18cf9a2863..4cfb1012df 100644
--- a/gdb/hppabsd-tdep.c
+++ b/gdb/hppabsd-tdep.c
@@ -47,7 +47,7 @@ hppabsd_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
/* If the address is in the .plt section, then the real function
hasn't yet been fixed up by the linker so we cannot determine the
Global Pointer for that function. */
- if (in_plt_section (faddr, NULL))
+ if (in_plt_section (faddr))
return 0;
faddr_sec = find_pc_section (faddr);
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index 1628645f9c..484b39f7fe 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -30,6 +30,7 @@
#include "trad-frame.h"
#include "tramp-frame.h"
#include "gdbtypes.h"
+#include "objfiles.h"
#include "solib.h"
#include "solib-svr4.h"
#include "solist.h"
@@ -666,25 +667,34 @@ mips_linux_core_read_description (struct gdbarch *gdbarch,
/* Check the code at PC for a dynamic linker lazy resolution stub.
- Because they aren't in the .plt section, we pattern-match on the
- code generated by GNU ld. They look like this:
+ GNU ld for MIPS has put lazy resolution stubs into a ".MIPS.stubs"
+ section uniformly since version 2.15. If the pc is in that section,
+ then we are in such a stub. Before that ".stub" was used in 32-bit
+ ELF binaries, however we do not bother checking for that since we
+ have never had and that case should be extremely rare these days.
+ Instead we pattern-match on the code generated by GNU ld. They look
+ like this:
lw t9,0x8010(gp)
addu t7,ra
jalr t9,ra
addiu t8,zero,INDEX
- (with the appropriate doubleword instructions for N64). Also
- return the dynamic symbol index used in the last instruction. */
+ (with the appropriate doubleword instructions for N64). As any lazy
+ resolution stubs in microMIPS binaries will always be in a
+ ".MIPS.stubs" section we only ever verify standard MIPS patterns. */
static int
-mips_linux_in_dynsym_stub (CORE_ADDR pc, char *name)
+mips_linux_in_dynsym_stub (CORE_ADDR pc)
{
gdb_byte buf[28], *p;
ULONGEST insn, insn1;
int n64 = (mips_abi (target_gdbarch ()) == MIPS_ABI_N64);
enum bfd_endian byte_order = gdbarch_byte_order (target_gdbarch ());
+ if (in_mips_stubs_section (pc))
+ return 1;
+
read_memory (pc - 12, buf, 28);
if (n64)
@@ -742,7 +752,7 @@ mips_linux_in_dynsym_stub (CORE_ADDR pc, char *name)
return 0;
}
- return (insn & 0xffff);
+ return 1;
}
/* Return non-zero iff PC belongs to the dynamic linker resolution
@@ -756,9 +766,10 @@ mips_linux_in_dynsym_resolve_code (CORE_ADDR pc)
if (svr4_in_dynsym_resolve_code (pc))
return 1;
- /* Pattern match for the stub. It would be nice if there were a
- more efficient way to avoid this check. */
- if (mips_linux_in_dynsym_stub (pc, NULL))
+ /* Likewise for the stubs. They live in the .MIPS.stubs section these
+ days, so we check if the PC is within, than fall back to a pattern
+ match. */
+ if (mips_linux_in_dynsym_stub (pc))
return 1;
return 0;
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 245ffd6bb4..5a4e26ca75 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -3588,15 +3588,7 @@ mips_stub_frame_sniffer (const struct frame_unwind *self,
if (target_read_memory (get_frame_pc (this_frame), dummy, 4) != 0)
return 1;
- if (in_plt_section (pc, NULL))
- return 1;
-
- /* Binutils for MIPS puts lazy resolution stubs into .MIPS.stubs. */
- s = find_pc_section (pc);
-
- if (s != NULL
- && strcmp (bfd_get_section_name (s->objfile->obfd, s->the_bfd_section),
- ".MIPS.stubs") == 0)
+ if (in_plt_section (pc) || in_mips_stubs_section (pc))
return 1;
/* Calling a PIC function from a non-PIC function passes through a
diff --git a/gdb/mips-tdep.h b/gdb/mips-tdep.h
index 096bcebbb4..91d7cb02cd 100644
--- a/gdb/mips-tdep.h
+++ b/gdb/mips-tdep.h
@@ -20,6 +20,8 @@
#ifndef MIPS_TDEP_H
#define MIPS_TDEP_H
+#include "objfiles.h"
+
struct gdbarch;
/* All the possible MIPS ABIs. */
@@ -184,4 +186,12 @@ extern void mips_write_pc (struct regcache *regcache, CORE_ADDR pc);
extern struct target_desc *mips_tdesc_gp32;
extern struct target_desc *mips_tdesc_gp64;
+/* Return non-zero if PC is in a MIPS SVR4 lazy binding stub section. */
+
+static inline int
+in_mips_stubs_section (CORE_ADDR pc)
+{
+ return pc_in_section (pc, ".MIPS.stubs");
+}
+
#endif /* MIPS_TDEP_H */
diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c
index 49f8271c48..5b9e2e6a37 100644
--- a/gdb/nios2-tdep.c
+++ b/gdb/nios2-tdep.c
@@ -1324,7 +1324,7 @@ nios2_stub_frame_sniffer (const struct frame_unwind *self,
if (target_read_memory (get_frame_pc (this_frame), dummy, 4) != 0)
return 1;
- if (in_plt_section (pc, NULL))
+ if (in_plt_section (pc))
return 1;
return 0;
diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c
index 748869f84d..b1a431ccaf 100644
--- a/gdb/nto-tdep.c
+++ b/gdb/nto-tdep.c
@@ -318,7 +318,7 @@ nto_relocate_section_addresses (struct so_list *so, struct target_section *sec)
int
nto_in_dynsym_resolve_code (CORE_ADDR pc)
{
- if (in_plt_section (pc, NULL))
+ if (in_plt_section (pc))
return 1;
return 0;
}
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 1e1b7bcc9f..759159c35a 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -1410,12 +1410,10 @@ find_pc_section (CORE_ADDR pc)
}
-/* In SVR4, we recognize a trampoline by it's section name.
- That is, if the pc is in a section named ".plt" then we are in
- a trampoline. */
+/* Return non-zero if PC is in a section called NAME. */
int
-in_plt_section (CORE_ADDR pc, char *name)
+pc_in_section (CORE_ADDR pc, char *name)
{
struct obj_section *s;
int retval = 0;
@@ -1424,7 +1422,7 @@ in_plt_section (CORE_ADDR pc, char *name)
retval = (s != NULL
&& s->the_bfd_section->name != NULL
- && strcmp (s->the_bfd_section->name, ".plt") == 0);
+ && strcmp (s->the_bfd_section->name, name) == 0);
return (retval);
}
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index adb1ef8d3c..84167e03f3 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -495,7 +495,17 @@ extern int have_minimal_symbols (void);
extern struct obj_section *find_pc_section (CORE_ADDR pc);
-extern int in_plt_section (CORE_ADDR, char *);
+/* Return non-zero if PC is in a section called NAME. */
+extern int pc_in_section (CORE_ADDR, char *);
+
+/* Return non-zero if PC is in a SVR4-style procedure linkage table
+ section. */
+
+static inline int
+in_plt_section (CORE_ADDR pc)
+{
+ return pc_in_section (pc, ".plt");
+}
/* Keep a registry of per-objfile data-pointers required by other GDB
modules. */
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 641bc80a36..6111bbf96a 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -2116,7 +2116,7 @@ s390_stub_frame_sniffer (const struct frame_unwind *self,
have trapped due to an invalid function pointer call. We handle
the non-existing current function like a PLT stub. */
addr_in_block = get_frame_address_in_block (this_frame);
- if (in_plt_section (addr_in_block, NULL)
+ if (in_plt_section (addr_in_block)
|| s390_readinstruction (insn, get_frame_pc (this_frame)) < 0)
return 1;
return 0;
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
index 53de7a2b2f..e8f1917a71 100644
--- a/gdb/sh-tdep.c
+++ b/gdb/sh-tdep.c
@@ -2036,7 +2036,7 @@ sh_stub_unwind_sniffer (const struct frame_unwind *self,
CORE_ADDR addr_in_block;
addr_in_block = get_frame_address_in_block (this_frame);
- if (in_plt_section (addr_in_block, NULL))
+ if (in_plt_section (addr_in_block))
return 1;
return 0;
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 01dc4b7cac..4fe24f82e6 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -764,7 +764,7 @@ dsbt_in_dynsym_resolve_code (CORE_ADDR pc)
return ((pc >= info->interp_text_sect_low && pc < info->interp_text_sect_high)
|| (pc >= info->interp_plt_sect_low && pc < info->interp_plt_sect_high)
- || in_plt_section (pc, NULL));
+ || in_plt_section (pc));
}
/* Print a warning about being unable to set the dynamic linker
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index 28fb4a49a2..65c7e012da 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -448,7 +448,7 @@ frv_in_dynsym_resolve_code (CORE_ADDR pc)
{
return ((pc >= interp_text_sect_low && pc < interp_text_sect_high)
|| (pc >= interp_plt_sect_low && pc < interp_plt_sect_high)
- || in_plt_section (pc, NULL));
+ || in_plt_section (pc));
}
/* Given a loadmap and an address, return the displacement needed
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 2c8d893dc4..6f8d0efa85 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1532,7 +1532,7 @@ svr4_in_dynsym_resolve_code (CORE_ADDR pc)
&& pc < info->interp_text_sect_high)
|| (pc >= info->interp_plt_sect_low
&& pc < info->interp_plt_sect_high)
- || in_plt_section (pc, NULL)
+ || in_plt_section (pc)
|| in_gnu_ifunc_stub (pc));
}
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index 483e5f9f02..570827687f 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -476,7 +476,7 @@ solib_target_in_dynsym_resolve_code (CORE_ADDR pc)
/* We don't have a range of addresses for the dynamic linker; there
may not be one in the program's address space. So only report
PLT entries (which may be import stubs). */
- return in_plt_section (pc, NULL);
+ return in_plt_section (pc);
}
struct target_so_ops solib_target_so_ops;
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index 2b38521a85..880d276888 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -855,7 +855,7 @@ sparc_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc,
dynamic linker patches up the first PLT with some code that
starts with a SAVE instruction. Patch up PC such that it points
at the start of our PLT entry. */
- if (tdep->plt_entry_size > 0 && in_plt_section (current_pc, NULL))
+ if (tdep->plt_entry_size > 0 && in_plt_section (current_pc))
pc = current_pc - ((current_pc - pc) % tdep->plt_entry_size);
insn = sparc_fetch_instruction (pc);
diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
index 045fc73ecb..d382b3d404 100644
--- a/gdb/tic6x-tdep.c
+++ b/gdb/tic6x-tdep.c
@@ -530,7 +530,7 @@ tic6x_stub_unwind_sniffer (const struct frame_unwind *self,
CORE_ADDR addr_in_block;
addr_in_block = get_frame_address_in_block (this_frame);
- if (in_plt_section (addr_in_block, NULL))
+ if (in_plt_section (addr_in_block))
return 1;
return 0;
OpenPOWER on IntegriCloud