diff options
author | Randolph Chung <tausq@debian.org> | 2006-03-01 05:19:13 +0000 |
---|---|---|
committer | Randolph Chung <tausq@debian.org> | 2006-03-01 05:19:13 +0000 |
commit | 477e69e8fd0b70c4afa73cfbefb9be2253850bd8 (patch) | |
tree | 00608fd088ca25d9d34fdb01a2cbf28f1886eded /gdb | |
parent | 848359acedca430105ccf1dd52deb6f323ca877b (diff) | |
download | gdb-477e69e8fd0b70c4afa73cfbefb9be2253850bd8.zip gdb-477e69e8fd0b70c4afa73cfbefb9be2253850bd8.tar.gz gdb-477e69e8fd0b70c4afa73cfbefb9be2253850bd8.tar.bz2 |
2006-03-01 Randolph Chung <tausq@debian.org>
* hppa-hpux-tdep.c (initialize_hp_cxx_exception_support): Use
TDEP->is_elf to determine if we are working with a SOM binary.
(null_symtab_and_line): Remove unused variable.
* config/pa/hppa64.mt: Use tm-hppa.h.
* config/pa/tm-hppa64.h: Remove file.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/config/pa/hppa64.mt | 2 | ||||
-rw-r--r-- | gdb/config/pa/tm-hppa64.h | 58 | ||||
-rw-r--r-- | gdb/hppa-hpux-tdep.c | 89 |
4 files changed, 53 insertions, 104 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 52a8cc6..5f6347e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2006-03-01 Randolph Chung <tausq@debian.org> + + * hppa-hpux-tdep.c (initialize_hp_cxx_exception_support): Use + TDEP->is_elf to determine if we are working with a SOM binary. + (null_symtab_and_line): Remove unused variable. + * config/pa/hppa64.mt: Use tm-hppa.h. + * config/pa/tm-hppa64.h: Remove file. + 2006-03-01 Wu Zhou <woodzltc@cn.ibm.com> * f-typeprint.c (f_type_print_base): Delete the redundant space. diff --git a/gdb/config/pa/hppa64.mt b/gdb/config/pa/hppa64.mt index ad93375..c7714c2 100644 --- a/gdb/config/pa/hppa64.mt +++ b/gdb/config/pa/hppa64.mt @@ -1,3 +1,3 @@ # Target: HP PA-RISC 2.0 running HPUX 11.00 in wide mode TDEPFILES= hppa-tdep.o hppa-hpux-tdep.o solib-som.o solib-pa64.o somread.o hpread.o solib.o -DEPRECATED_TM_FILE= tm-hppa64.h +DEPRECATED_TM_FILE= tm-hppa.h diff --git a/gdb/config/pa/tm-hppa64.h b/gdb/config/pa/tm-hppa64.h deleted file mode 100644 index 7a257d4..0000000 --- a/gdb/config/pa/tm-hppa64.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Parameters for execution on any Hewlett-Packard PA-RISC machine. - Copyright 1986, 1987, 1989, 1990, 1991, 1992, 1993, 1995, 1999, 2000 - Free Software Foundation, Inc. - - Contributed by the Center for Software Science at the - University of Utah (pa-gdb-bugs@cs.utah.edu). - -This file is part of GDB. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* PA 64-bit specific definitions. Override those which are in - tm-hppa.h */ - -struct frame_info; - -/* jimb: this must go. I'm just using it to disable code I haven't - gotten working yet. */ -#define GDB_TARGET_IS_HPPA_20W - -/* NOTE: cagney/2003-07-27: Using CC='cc +DA2.0W -Ae' configure - hppa64-hp-hpux11.00; GDB managed to build / start / break main / - run with multi-arch enabled. Not sure about much else as there - appears to be an unrelated problem in the SOM symbol table reader - causing GDB to lose line number information. Since prior to this - switch and a other recent tweaks, 64 bit PA hadn't been building - for some months, this is probably the lesser of several evils. */ - -#include "pa/tm-hppah.h" - -#undef FP4_REGNUM -#define FP4_REGNUM 68 -#define AP_REGNUM 29 /* Argument Pointer Register */ -#define DP_REGNUM 27 -#define FP5_REGNUM 70 -#define SR5_REGNUM 48 - - -/* jimb: omitted dynamic linking stuff here */ - -#undef FUNC_LDIL_OFFSET -#undef FUNC_LDO_OFFSET -#undef SR4EXPORT_LDIL_OFFSET -#undef SR4EXPORT_LDO_OFFSET - -/* jimb: omitted purify call support */ diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c index 4126fec..7eba123 100644 --- a/gdb/hppa-hpux-tdep.c +++ b/gdb/hppa-hpux-tdep.c @@ -844,52 +844,54 @@ GDB will be unable to intercept exception events."), return 0; } -#ifndef GDB_TARGET_IS_HPPA_20W - /* Check whether the executable is dynamically linked or archive bound */ - /* With an archive-bound executable we can use the raw addresses we find - for the callback function, etc. without modification. For an executable - with shared libraries, we have to do more work to find the plabel, which - can be the target of a call through $$dyncall from the aCC runtime support - library (libCsup) which is linked shared by default by aCC. */ - /* This test below was copied from somsolib.c/somread.c. It may not be a very - reliable one to test that an executable is linked shared. pai/1997-07-18 */ - shlib_info = bfd_get_section_by_name (symfile_objfile->obfd, "$SHLIB_INFO$"); - if (shlib_info && (bfd_section_size (symfile_objfile->obfd, shlib_info) != 0)) + if (!gdbarch_tdep (current_gdbarch)->is_elf) { - /* The minsym we have has the local code address, but that's not - the plabel that can be used by an inter-load-module call. */ - /* Find solib handle for main image (which has end.o), and use - that and the min sym as arguments to __d_shl_get() (which - does the equivalent of shl_findsym()) to find the plabel. */ - - args_for_find_stub args; - static char message[] = "Error while finding exception callback hook:\n"; - - args.solib_handle = gdbarch_tdep (current_gdbarch)->solib_get_solib_by_pc (eh_notify_callback_addr); - args.msym = msym; - args.return_val = 0; - - recurse++; - catch_errors (cover_find_stub_with_shl_get, &args, message, - RETURN_MASK_ALL); - eh_notify_callback_addr = args.return_val; - recurse--; - - deprecated_exception_catchpoints_are_fragile = 1; - - if (!eh_notify_callback_addr) - { - /* We can get here either if there is no plabel in the export list - for the main image, or if something strange happened (?) */ - warning (_("\ + /* Check whether the executable is dynamically linked or archive bound */ + /* With an archive-bound executable we can use the raw addresses we find + for the callback function, etc. without modification. For an executable + with shared libraries, we have to do more work to find the plabel, which + can be the target of a call through $$dyncall from the aCC runtime + support library (libCsup) which is linked shared by default by aCC. */ + /* This test below was copied from somsolib.c/somread.c. It may not be a very + reliable one to test that an executable is linked shared. + pai/1997-07-18 */ + shlib_info = bfd_get_section_by_name (symfile_objfile->obfd, "$SHLIB_INFO$"); + if (shlib_info && (bfd_section_size (symfile_objfile->obfd, shlib_info) != 0)) + { + /* The minsym we have has the local code address, but that's not + the plabel that can be used by an inter-load-module call. */ + /* Find solib handle for main image (which has end.o), and use + that and the min sym as arguments to __d_shl_get() (which + does the equivalent of shl_findsym()) to find the plabel. */ + + args_for_find_stub args; + static char message[] = _("Error while finding exception callback hook:\n"); + + args.solib_handle = gdbarch_tdep (current_gdbarch)->solib_get_solib_by_pc (eh_notify_callback_addr); + args.msym = msym; + args.return_val = 0; + + recurse++; + catch_errors (cover_find_stub_with_shl_get, &args, message, + RETURN_MASK_ALL); + eh_notify_callback_addr = args.return_val; + recurse--; + + deprecated_exception_catchpoints_are_fragile = 1; + + if (!eh_notify_callback_addr) + { + /* We can get here either if there is no plabel in the export list + for the main image, or if something strange happened (?) */ + warning (_("\ Couldn't find a plabel (indirect function label) for the exception callback.\n\ GDB will not be able to intercept exception events.")); - return 0; - } + return 0; + } + } + else + deprecated_exception_catchpoints_are_fragile = 0; } - else - deprecated_exception_catchpoints_are_fragile = 0; -#endif /* Now, look for the breakpointable routine in end.o */ /* This should also be available in the SOM symbol dict. if end.o linked in */ @@ -1063,9 +1065,6 @@ Interception of exception events may not work.")); /* Record some information about the current exception event */ static struct exception_event_record current_ex_event; -/* Convenience struct */ -static struct symtab_and_line null_symtab_and_line = -{NULL, 0, 0, 0}; /* Report current exception event. Returns a pointer to a record that describes the kind of the event, where it was thrown from, |