* solib.c (solib_address): Return the name of the containing solib.
authorFred Fish <fnf@specifix.com>
Sun, 19 Nov 1995 07:16:03 +0000 (07:16 +0000)
committerFred Fish <fnf@specifix.com>
Sun, 19 Nov 1995 07:16:03 +0000 (07:16 +0000)
* 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
gdb/solib.h
gdb/stack.c

index fad02d3..55fc40e 100644 (file)
@@ -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.
index 8987112..959e59e 100644 (file)
@@ -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)
index 5bde58e..06fd83d 100644 (file)
@@ -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.  */