aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>1995-11-19 07:16:03 +0000
committerFred Fish <fnf@specifix.com>1995-11-19 07:16:03 +0000
commitd0e0eca26eaf62461d6fcdec1f4ef8c2e482ba49 (patch)
treebdb62f55363804690256459cf997b7fafc9c82cc
parent90a7abbca34a2c0b8500bcde40489a2981e62dca (diff)
downloadfsf-binutils-gdb-d0e0eca26eaf62461d6fcdec1f4ef8c2e482ba49.zip
fsf-binutils-gdb-d0e0eca26eaf62461d6fcdec1f4ef8c2e482ba49.tar.gz
fsf-binutils-gdb-d0e0eca26eaf62461d6fcdec1f4ef8c2e482ba49.tar.bz2
* 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.
-rw-r--r--gdb/ChangeLog40
-rw-r--r--gdb/solib.h8
-rw-r--r--gdb/stack.c21
3 files changed, 64 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fad02d3..55fc40e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,43 @@
+Sat Nov 18 11:19:35 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
+
+ * 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 <shebs@andros.cygnus.com>
* utils.c: Don't include sys/ioctl.h etc if MPW is host.
diff --git a/gdb/solib.h b/gdb/solib.h
index 8987112..959e59e 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 5bde58e..06fd83d 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"
@@ -344,6 +345,18 @@ print_frame_info (fi, level, source, args)
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. */