Get rid of AIX specific PC_LOAD_SEGMENT, replace with PC_SOLIB.
* xcoffsolib.c (xcoff_solib_address): Renamed from pc_load_segment_name. Return NULL if address is not in a shared library. Cleanup shared library name construction, using xasprintf. Format shared library member names consistent with format in exec.c. (solib_info): Format shared library member names consistent with format in exec.c. * config/rs6000/nm-rs6000.h: Replace PC_LOAD_SEGMENT with PC_SOLIB, using xcoff_solib_address for PC_SOLIB definition. * stack.c (print_frame): Remove PC_LOAD_SEGMENT code, no longer needed.
This commit is contained in:
parent
4b2e486790
commit
a8079a9b4c
@ -1,3 +1,17 @@
|
|||||||
|
2000-02-10 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
||||||
|
|
||||||
|
Get rid of AIX specific PC_LOAD_SEGMENT, replace with PC_SOLIB.
|
||||||
|
* xcoffsolib.c (xcoff_solib_address): Renamed from
|
||||||
|
pc_load_segment_name. Return NULL if address is not in a shared
|
||||||
|
library. Cleanup shared library name construction, using xasprintf.
|
||||||
|
Format shared library member names consistent with format in exec.c.
|
||||||
|
(solib_info): Format shared library member names consistent with
|
||||||
|
format in exec.c.
|
||||||
|
* config/rs6000/nm-rs6000.h: Replace PC_LOAD_SEGMENT with PC_SOLIB,
|
||||||
|
using xcoff_solib_address for PC_SOLIB definition.
|
||||||
|
* stack.c (print_frame): Remove PC_LOAD_SEGMENT code, no longer
|
||||||
|
needed.
|
||||||
|
|
||||||
2000-02-10 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
2000-02-10 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
|
||||||
|
|
||||||
* mipsread.c (read_alphacoff_dynamic_symtab): Replace alloca calls
|
* mipsread.c (read_alphacoff_dynamic_symtab): Replace alloca calls
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/* IBM RS/6000 native-dependent macros for GDB, the GNU debugger.
|
/* IBM RS/6000 native-dependent macros for GDB, the GNU debugger.
|
||||||
Copyright 1986, 1987, 1989, 1991, 1992, 1994 Free Software Foundation, Inc.
|
Copyright 1986, 1987, 1989, 1991, 1992, 1994, 2001
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
|
||||||
@ -57,10 +58,10 @@ extern void xcoff_relocate_symtab (unsigned int);
|
|||||||
struct target_ops;
|
struct target_ops;
|
||||||
extern void xcoff_relocate_core (struct target_ops *);
|
extern void xcoff_relocate_core (struct target_ops *);
|
||||||
|
|
||||||
/* Load segment of a given pc value. */
|
/* If ADDR lies in a shared library, return its name. */
|
||||||
|
|
||||||
#define PC_LOAD_SEGMENT(PC) pc_load_segment_name(PC)
|
#define PC_SOLIB(PC) xcoff_solib_address(PC)
|
||||||
extern char *pc_load_segment_name (CORE_ADDR);
|
extern char *xcoff_solib_address (CORE_ADDR);
|
||||||
|
|
||||||
/* Return sizeof user struct to callers in less machine dependent routines */
|
/* Return sizeof user struct to callers in less machine dependent routines */
|
||||||
|
|
||||||
|
18
gdb/stack.c
18
gdb/stack.c
@ -626,24 +626,6 @@ print_frame (struct frame_info *fi,
|
|||||||
annotate_frame_source_end ();
|
annotate_frame_source_end ();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PC_LOAD_SEGMENT
|
|
||||||
/* If we couldn't print out function name but if can figure out what
|
|
||||||
load segment this pc value is from, at least print out some info
|
|
||||||
about its load segment. */
|
|
||||||
if (!funname)
|
|
||||||
{
|
|
||||||
annotate_frame_where ();
|
|
||||||
#ifdef UI_OUT
|
|
||||||
ui_out_wrap_hint (uiout, " ");
|
|
||||||
ui_out_text (uiout, " from ");
|
|
||||||
ui_out_field_string (uiout, "from", PC_LOAD_SEGMENT (fi->pc));
|
|
||||||
#else
|
|
||||||
wrap_here (" ");
|
|
||||||
printf_filtered (" from %s", PC_LOAD_SEGMENT (fi->pc));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif /* PC_LOAD_SEGMENT */
|
|
||||||
|
|
||||||
#ifdef PC_SOLIB
|
#ifdef PC_SOLIB
|
||||||
if (!funname || (!sal.symtab || !sal.symtab->filename))
|
if (!funname || (!sal.symtab || !sal.symtab->filename))
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Shared library support for RS/6000 (xcoff) object files, for GDB.
|
/* Shared library support for RS/6000 (xcoff) object files, for GDB.
|
||||||
Copyright 1991, 1992 Free Software Foundation.
|
Copyright 1991, 1992, 2001 Free Software Foundation.
|
||||||
Contributed by IBM Corporation.
|
Contributed by IBM Corporation.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
@ -29,29 +29,32 @@
|
|||||||
#include "gdb_regex.h"
|
#include "gdb_regex.h"
|
||||||
|
|
||||||
|
|
||||||
/* Return the module name of a given text address. Note that returned buffer
|
/* If ADDR lies in a shared library, return its name.
|
||||||
is not persistent. */
|
Note that returned name points to static data whose content is overwritten
|
||||||
|
by each call. */
|
||||||
|
|
||||||
char *
|
char *
|
||||||
pc_load_segment_name (CORE_ADDR addr)
|
xcoff_solib_address (CORE_ADDR addr)
|
||||||
{
|
{
|
||||||
static char buffer[BUFSIZ];
|
static char *buffer = NULL;
|
||||||
struct vmap *vp = vmap;
|
struct vmap *vp = vmap;
|
||||||
|
|
||||||
buffer[0] = buffer[1] = '\0';
|
/* The first vmap entry is for the exec file. */
|
||||||
for (; vp; vp = vp->nxt)
|
|
||||||
|
if (vp == NULL)
|
||||||
|
return NULL;
|
||||||
|
for (vp = vp->nxt; vp; vp = vp->nxt)
|
||||||
if (vp->tstart <= addr && addr < vp->tend)
|
if (vp->tstart <= addr && addr < vp->tend)
|
||||||
{
|
{
|
||||||
if (*vp->member)
|
xfree (buffer);
|
||||||
{
|
xasprintf (&buffer, "%s%s%s%s",
|
||||||
buffer[0] = '(';
|
vp->name,
|
||||||
strcat (&buffer[1], vp->member);
|
*vp->member ? "(" : "",
|
||||||
strcat (buffer, ")");
|
vp->member,
|
||||||
}
|
*vp->member ? ")" : "");
|
||||||
strcat (buffer, vp->name);
|
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
return "(unknown load module)";
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void solib_info (char *, int);
|
static void solib_info (char *, int);
|
||||||
@ -84,10 +87,10 @@ Text Range Data Range Syms Shared Object Library\n");
|
|||||||
paddr (vp->tstart),paddr (vp->tend),
|
paddr (vp->tstart),paddr (vp->tend),
|
||||||
paddr (vp->dstart), paddr (vp->dend),
|
paddr (vp->dstart), paddr (vp->dend),
|
||||||
vp->loaded ? "Yes" : "No ",
|
vp->loaded ? "Yes" : "No ",
|
||||||
|
vp->name,
|
||||||
*vp->member ? "(" : "",
|
*vp->member ? "(" : "",
|
||||||
vp->member,
|
vp->member,
|
||||||
*vp->member ? ") " : "",
|
*vp->member ? ")" : "");
|
||||||
vp->name);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user