forked from Imagelibrary/binutils-gdb
* infrun.c (IN_SOLIB_TRAMPOLINE): Correct comment, trampolines
are in the .plt section. * minsyms.c (lookup_solib_trampoline_symbol_by_pc, find_solib_trampoline_target): New functions for handling stepping into -g compiled shared libraries. * symtab.h (lookup_solib_trampoline_symbol_by_pc, find_solib_trampoline_target): Add prototypes. * config/tm-sunos.h (IN_SOLIB_TRAMPOLINE, SKIP_TRAMPOLINE_CODE): Define to handle stepping into -g compiled shared libraries. * config/tm-sysv4.h (SKIP_TRAMPOLINE_CODE): Define to handle stepping into -g compiled shared libraries. * configure.in: Add mips-*-sysv4* support. * config/mips/mipsv4.mh, config/mips/mipsv4.mt, config/mips/tm-mipsv4.h, config/mips/xm-mipsv4.h, mipsv4-nat.c: New files for MIPS SVR4 support. * Makefile.in: Update for new mipsv4 files. * alpha-tdep.c (heuristic_proc_desc, find_proc_desc): Use read_next_frame_reg to obtain the frame relative stack pointer. * mips-tdep.c (heuristic_proc_desc): Use read_next_frame_reg to obtain the frame relative stack pointer. * mdebugread.c (parse_partial_symbols, psymtab_to_symtab1): Handle stStatic and stStaticProc symbols in stabs-in-ecoff output by entering them into the minimal symbol table. * printcmd.c (print_scalar_formatted): Do not try to unpack to a long for float formats. * solib.c: Include "elf/mips.h" only if DT_MIPS_RLD_MAP does not get defined in <link.h>. * solib.c (solib_add): Add shared library sections to the section table of the target before adding the symbols. * partial-stab.h: Relocate static and global functions. * dbxread.c (read_dbx_symtab): Remove unused variable end_of_text_address. Relocate text_addr when passing it to end_psymtab. For Alpha OSF/1 targets, enable gdb to set breakpoints in shared library functions before the executable is run. Retrieve dynamic symbols from stripped executables. * mipsread.c (read_alphacoff_dynamic_symtab): New function. * mipsread.c (mipscoff_symfile_read): Use it. Issue warning message if no debugging symbols were found. * alpha-tdep.c (alpha_skip_prologue): Silently return the unaltered pc if memory at the pc is not accessible and GDB_TARGET_HAS_SHARED_LIBS is defined. * config/alpha/nm-alpha.h (GDB_TARGET_HAS_SHARED_LIBS): Define, OSF/1 has shared libraries.
This commit is contained in:
@@ -329,7 +329,7 @@ heuristic_proc_desc(start_pc, limit_pc, next_frame)
|
||||
CORE_ADDR start_pc, limit_pc;
|
||||
FRAME next_frame;
|
||||
{
|
||||
CORE_ADDR sp = next_frame ? next_frame->frame : read_register (SP_REGNUM);
|
||||
CORE_ADDR sp = read_next_frame_reg (next_frame, SP_REGNUM);
|
||||
CORE_ADDR cur_pc;
|
||||
int frame_size;
|
||||
int has_frame_reg = 0;
|
||||
@@ -456,7 +456,7 @@ find_proc_desc(pc, next_frame)
|
||||
if (PC_IN_CALL_DUMMY (pc, 0, 0))
|
||||
{
|
||||
struct linked_proc_info *link;
|
||||
CORE_ADDR sp = next_frame ? next_frame->frame : read_register (SP_REGNUM);
|
||||
CORE_ADDR sp = read_next_frame_reg (next_frame, SP_REGNUM);
|
||||
alpha_extra_func_info_t found_proc_desc = NULL;
|
||||
long min_distance = LONG_MAX;
|
||||
|
||||
@@ -913,6 +913,18 @@ alpha_skip_prologue (pc, lenient)
|
||||
unsigned long inst;
|
||||
int offset;
|
||||
CORE_ADDR post_prologue_pc;
|
||||
char buf[4];
|
||||
|
||||
#ifdef GDB_TARGET_HAS_SHARED_LIBS
|
||||
/* Silently return the unaltered pc upon memory errors.
|
||||
This could happen on OSF/1 if decode_line_1 tries to skip the
|
||||
prologue for quickstarted shared library functions when the
|
||||
shared library is not yet mapped in.
|
||||
Reading target memory is slow over serial lines, so we perform
|
||||
this check only if the target has shared libraries. */
|
||||
if (target_read_memory (pc, buf, 4))
|
||||
return pc;
|
||||
#endif
|
||||
|
||||
/* See if we can determine the end of the prologue via the symbol table.
|
||||
If so, then return either PC, or the PC after the prologue, whichever
|
||||
@@ -931,7 +943,6 @@ alpha_skip_prologue (pc, lenient)
|
||||
or in the gcc frame. */
|
||||
for (offset = 0; offset < 100; offset += 4)
|
||||
{
|
||||
char buf[4];
|
||||
int status;
|
||||
|
||||
status = read_memory_nobpt (pc + offset, buf, 4);
|
||||
|
||||
Reference in New Issue
Block a user