summaryrefslogtreecommitdiff
path: root/gdb/hppa-hpux-tdep.c
diff options
context:
space:
mode:
authorRandolph Chung <tausq@debian.org>2005-12-09 11:25:04 +0000
committerRandolph Chung <tausq@debian.org>2005-12-09 11:25:04 +0000
commitdfd3824b5919ab7b9500bd8065699bbdbccbf4cb (patch)
treea3bbe52a8c3bbc0e0c117bf79f90339c190065e7 /gdb/hppa-hpux-tdep.c
parentd94bc6515a22dcf62797367c538dc5cf5dfa40bf (diff)
downloadgdb-dfd3824b5919ab7b9500bd8065699bbdbccbf4cb.tar.gz
2005-12-09 Randolph Chung <tausq@debian.org>
PR corefiles/2026 * hppa-hpux-tdep.c (hppa_hpux_core_osabi_sniffer): Check for HPUX ELF core files. (_initialize_hppa_hpux_tdep): Install sniffer for ELF core files. * config/pa/hpux.mh: Compile corelow.o.
Diffstat (limited to 'gdb/hppa-hpux-tdep.c')
-rw-r--r--gdb/hppa-hpux-tdep.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c
index fab8d6e7b7b..b0cdd5dc360 100644
--- a/gdb/hppa-hpux-tdep.c
+++ b/gdb/hppa-hpux-tdep.c
@@ -2064,6 +2064,24 @@ hppa_hpux_core_osabi_sniffer (bfd *abfd)
{
if (strcmp (bfd_get_target (abfd), "hpux-core") == 0)
return GDB_OSABI_HPUX_SOM;
+ else if (strcmp (bfd_get_target (abfd), "elf64-hppa") == 0)
+ {
+ asection *section;
+
+ section = bfd_get_section_by_name (abfd, ".kernel");
+ if (section)
+ {
+ bfd_size_type size;
+ char *contents;
+
+ size = bfd_section_size (abfd, section);
+ contents = alloca (size);
+ if (bfd_get_section_contents (abfd, section, contents,
+ (file_ptr) 0, size)
+ && strcmp (contents, "HP-UX") == 0)
+ return GDB_OSABI_HPUX_ELF;
+ }
+ }
return GDB_OSABI_UNKNOWN;
}
@@ -2076,6 +2094,9 @@ _initialize_hppa_hpux_tdep (void)
gdbarch_register_osabi_sniffer (bfd_arch_unknown,
bfd_target_unknown_flavour,
hppa_hpux_core_osabi_sniffer);
+ gdbarch_register_osabi_sniffer (bfd_arch_hppa,
+ bfd_target_elf_flavour,
+ hppa_hpux_core_osabi_sniffer);
gdbarch_register_osabi (bfd_arch_hppa, 0, GDB_OSABI_HPUX_SOM,
hppa_hpux_som_init_abi);