diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1995-04-12 04:42:05 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1995-04-12 04:42:05 +0000 |
commit | 88a5c3fc6b59ce13ed3f1c74c6fddf197616e561 (patch) | |
tree | d85ce222b1b11cb204712d8d11a2b9fc55505988 /gdb | |
parent | 99dff294dc114c3b8f489f057591f3de55b6115a (diff) | |
download | gdb-88a5c3fc6b59ce13ed3f1c74c6fddf197616e561.zip gdb-88a5c3fc6b59ce13ed3f1c74c6fddf197616e561.tar.gz gdb-88a5c3fc6b59ce13ed3f1c74c6fddf197616e561.tar.bz2 |
* rs6000-nat.c (vmap_ldinfo): If we don't find ldinfo for the
symfile_objfile, nuke it.
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); |