* rs6000-nat.c (vmap_ldinfo): If we don't find ldinfo for the

symfile_objfile, nuke it.
This commit is contained in:
Jim Kingdon 1995-04-12 04:42:05 +00:00
parent 99dff294dc
commit 88a5c3fc6b
2 changed files with 9 additions and 12 deletions

View File

@ -11,8 +11,8 @@ Tue Apr 11 13:46:25 1995 Jim Kingdon <kingdon@deneb.cygnus.com>
Document it better. Document it better.
* utils.c (warning): Use it. * utils.c (warning): Use it.
* utils.c (error_begin): Doc fix. * utils.c (error_begin): Doc fix.
* rs6000-nat.c (vmap_ldinfo): If symfile_objfile is not part of * rs6000-nat.c (vmap_ldinfo): If we don't find ldinfo for the
any vmap, nuke it. symfile_objfile, nuke it.
Tue Apr 11 09:35:20 1995 Jim Kingdon (kingdon@lioth.cygnus.com) Tue Apr 11 09:35:20 1995 Jim Kingdon (kingdon@lioth.cygnus.com)

View File

@ -465,8 +465,9 @@ vmap_ldinfo (ldi)
{ {
struct stat ii, vi; struct stat ii, vi;
register struct vmap *vp; register struct vmap *vp;
register got_one, retried; int got_one, retried;
CORE_ADDR ostart; CORE_ADDR ostart;
int got_exec_file;
/* For each *ldi, see if we have a corresponding *vp. /* For each *ldi, see if we have a corresponding *vp.
If so, update the mapping, and symbol table. If so, update the mapping, and symbol table.
@ -530,6 +531,10 @@ vmap_ldinfo (ldi)
vp->tend += vp->tadj; vp->tend += vp->tadj;
} }
/* The objfile is only NULL for the exec file. */
if (vp->objfile == NULL)
got_exec_file = 1;
/* relocate symbol table(s). */ /* relocate symbol table(s). */
vmap_symtab (vp); vmap_symtab (vp);
@ -550,15 +555,7 @@ vmap_ldinfo (ldi)
is unlikely that the symbol file is relocated to the proper is unlikely that the symbol file is relocated to the proper
address. And we might have attached to a process which is address. And we might have attached to a process which is
running a different copy of the same executable. */ running a different copy of the same executable. */
for (got_one = 0, vp = vmap; vp != NULL; vp = vp->nxt) if (symfile_objfile != NULL && !got_exec_file)
{
if (symfile_objfile == vp->objfile)
{
got_one = 1;
break;
}
}
if (symfile_objfile != NULL && !got_one)
{ {
warning_begin (); warning_begin ();
fputs_unfiltered ("Symbol file ", gdb_stderr); fputs_unfiltered ("Symbol file ", gdb_stderr);