* 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.
This commit is contained in:
parent
90a7abbca3
commit
d0e0eca26e
3 changed files with 64 additions and 5 deletions
21
gdb/stack.c
21
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. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue