From d0e0eca26eaf62461d6fcdec1f4ef8c2e482ba49 Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Sun, 19 Nov 1995 07:16:03 +0000 Subject: [PATCH] * solib.c (solib_address): Return the name of the containing solib. * solib.h (PC_SOLIB): New macro; define using solib_address. * stack.c (print_frame_info) [PC_SOLIB]: If no function name, try PC_SOLIB on the PC value. --- gdb/ChangeLog | 40 ++++++++++++++++++++++++++++++++++++++++ gdb/solib.h | 8 ++++++-- gdb/stack.c | 21 ++++++++++++++++++--- 3 files changed, 64 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fad02d39c7d..55fc40edd1f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,43 @@ +Sat Nov 18 11:19:35 1995 Roland McGrath + + * solib.c (solib_address): Return the name of the containing solib. + * solib.h (PC_SOLIB): New macro; define using solib_address. + * stack.c (print_frame_info) [PC_SOLIB]: If no function name, try + PC_SOLIB on the PC value. + +Sat Nov 18 04:09:31 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * annotate.c (annotate_source, annotate_frame_begin): Issue + `0x' prefix for the pc value, to remain consistent with previous + GDB versions. + + * blockframe.c (find_pc_partial_function), config/pa/tm-hppa.h: + Remove Sun shared library transfer hack and + INHIBIT_SUNSOLIB_TRANSFER_TABLE_HACK, it is obsoleted by the + mst_solib_trampoline minimal symbols. + + * blockframe.c (inside_main_func): Check main_func_*pc against + INVALID_ENTRY_*PC, not zero. + * symfile.c (init_entry_point_info): Initialize ei.*pc with + INVALID_ENTRY_*PC. + * mipsread.c (mipscoff_symfile_read): If the entry_file bounds + are still unknown after processing the partial symbols, then try + to set them from the minimal symbols. + + * infcmd.c (registers_info): Error out if selected_frame is NULL. + * stack.c (return_command): Select new current frame silently if + not interactive. + + * mipsread.c (read_alphacoff_dynamic_symtab): Ignore additional + DT_MIPS_LOCAL_GOTNO and DT_MIPS_GOTSYM entries. + + * irix5-nat.c (solib_create_inferior_hook): Call solib_add only + if auto_solib_add_at_startup is nonzero. + (_initialize_solib): Add "set auto-solib-add" command. + * osfsolib.c (solib_create_inferior_hook): Call solib_add only + if auto_solib_add_at_startup is nonzero. + (_initialize_solib): Add "set auto-solib-add" command. + Wed Nov 15 17:12:04 1995 Stan Shebs * utils.c: Don't include sys/ioctl.h etc if MPW is host. diff --git a/gdb/solib.h b/gdb/solib.h index 89871126931..959e59ee5f2 100644 --- a/gdb/solib.h +++ b/gdb/solib.h @@ -50,7 +50,11 @@ solib_create_inferior_hook PARAMS((void)); /* solib.c */ /* If we can't set a breakpoint, and it's in a shared library, just disable it. */ -#define DISABLE_UNSETTABLE_BREAK(addr) solib_address(addr) +#define DISABLE_UNSETTABLE_BREAK(addr) (solib_address(addr) != NULL) -extern int +extern char * solib_address PARAMS ((CORE_ADDR)); /* solib.c */ + +/* If ADDR lies in a shared library, return its name. */ + +#define PC_SOLIB(addr) solib_address (addr) diff --git a/gdb/stack.c b/gdb/stack.c index 5bde58e7000..06fd83d4b03 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -1,5 +1,5 @@ /* Print and select stack frames for GDB, the GNU debugger. - Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994 + Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of GDB. @@ -16,10 +16,11 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + -#include "gdb_string.h" #include "defs.h" +#include "gdb_string.h" #include "value.h" #include "symtab.h" #include "gdbtypes.h" @@ -343,6 +344,18 @@ print_frame_info (fi, level, source, args) wrap_here (" "); printf_filtered (" from %s", PC_LOAD_SEGMENT (fi->pc)); } +#endif +#ifdef PC_SOLIB + if (!funname) + { + char *lib = PC_SOLIB (fi->pc); + if (lib) + { + annotate_frame_where (); + wrap_here (" "); + printf_filtered (" from %s", lib); + } + } #endif printf_filtered ("\n"); } @@ -1385,6 +1398,8 @@ return_command (retval_exp, from_tty) if (from_tty) frame_command ("0", 1); + else + select_frame_command ("0", 0); } /* Gets the language of the current frame. */ -- 2.30.2