diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/rs6000-nat.c | 17 |
2 files changed, 9 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c4e679d..746b90e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -11,8 +11,8 @@ Tue Apr 11 13:46:25 1995 Jim Kingdon <kingdon@deneb.cygnus.com> Document it better. * utils.c (warning): Use it. * utils.c (error_begin): Doc fix. - * rs6000-nat.c (vmap_ldinfo): If symfile_objfile is not part of - any vmap, nuke it. + * rs6000-nat.c (vmap_ldinfo): If we don't find ldinfo for the + symfile_objfile, nuke it. Tue Apr 11 09:35:20 1995 Jim Kingdon (kingdon@lioth.cygnus.com) diff --git a/gdb/rs6000-nat.c b/gdb/rs6000-nat.c index 5a4274d..6b94052 100644 --- a/gdb/rs6000-nat.c +++ b/gdb/rs6000-nat.c @@ -465,8 +465,9 @@ vmap_ldinfo (ldi) { struct stat ii, vi; register struct vmap *vp; - register got_one, retried; + int got_one, retried; CORE_ADDR ostart; + int got_exec_file; /* For each *ldi, see if we have a corresponding *vp. If so, update the mapping, and symbol table. @@ -530,6 +531,10 @@ vmap_ldinfo (ldi) 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). */ vmap_symtab (vp); @@ -550,15 +555,7 @@ vmap_ldinfo (ldi) is unlikely that the symbol file is relocated to the proper address. And we might have attached to a process which is running a different copy of the same executable. */ - for (got_one = 0, vp = vmap; vp != NULL; vp = vp->nxt) - { - if (symfile_objfile == vp->objfile) - { - got_one = 1; - break; - } - } - if (symfile_objfile != NULL && !got_one) + if (symfile_objfile != NULL && !got_exec_file) { warning_begin (); fputs_unfiltered ("Symbol file ", gdb_stderr); |