* breakpoint.c (breakpoint_sals_to_pc): Do not check for
DEPRECATED_PC_REQUIRES_RUN_BEFORE_USE. * config/pa/tm-hppa.h: Delete file. * config/pa/hppa64.mt: Do not set DEPRECATED_TM_FILE. * config/pa/hppahpux.mt: Likewise. * config/pa/hppa.mt: Likewise. * config/pa/linux.mt: Likewise. * hppa-tdep.c (hppa_pc_requires_run_before_use): Delete.
This commit is contained in:
parent
e9deb29d4f
commit
ee53e8729a
8 changed files with 13 additions and 90 deletions
|
@ -68,10 +68,6 @@ const struct objfile_data *hppa_objfile_priv_data = NULL;
|
|||
#define UNWIND_ENTRY_SIZE 16
|
||||
#define STUB_UNWIND_ENTRY_SIZE 8
|
||||
|
||||
/* FIXME: brobecker 2002-11-07: We will likely be able to make the
|
||||
following functions static, once we hppa is partially multiarched. */
|
||||
int hppa_pc_requires_run_before_use (CORE_ADDR pc);
|
||||
|
||||
/* Routines to extract various sized constants out of hppa
|
||||
instructions. */
|
||||
|
||||
|
@ -2612,34 +2608,6 @@ unwind_command (char *exp, int from_tty)
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
hppa_pc_requires_run_before_use (CORE_ADDR pc)
|
||||
{
|
||||
/* Sometimes we may pluck out a minimal symbol that has a negative address.
|
||||
|
||||
An example of this occurs when an a.out is linked against a foo.sl.
|
||||
The foo.sl defines a global bar(), and the a.out declares a signature
|
||||
for bar(). However, the a.out doesn't directly call bar(), but passes
|
||||
its address in another call.
|
||||
|
||||
If you have this scenario and attempt to "break bar" before running,
|
||||
gdb will find a minimal symbol for bar() in the a.out. But that
|
||||
symbol's address will be negative. What this appears to denote is
|
||||
an index backwards from the base of the procedure linkage table (PLT)
|
||||
into the data linkage table (DLT), the end of which is contiguous
|
||||
with the start of the PLT. This is clearly not a valid address for
|
||||
us to set a breakpoint on.
|
||||
|
||||
Note that one must be careful in how one checks for a negative address.
|
||||
0xc0000000 is a legitimate address of something in a shared text
|
||||
segment, for example. Since I don't know what the possible range
|
||||
is of these "really, truly negative" addresses that come from the
|
||||
minimal symbols, I'm resorting to the gross hack of checking the
|
||||
top byte of the address for all 1's. Sigh. */
|
||||
|
||||
return (!target_has_stack && (pc & 0xFF000000) == 0xFF000000);
|
||||
}
|
||||
|
||||
/* Return the GDB type object for the "standard" data type of data in
|
||||
register REGNUM. */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue