From 88a5c3fc6b59ce13ed3f1c74c6fddf197616e561 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Wed, 12 Apr 1995 04:42:05 +0000 Subject: [PATCH] * rs6000-nat.c (vmap_ldinfo): If we don't find ldinfo for the symfile_objfile, nuke it. --- gdb/ChangeLog | 4 ++-- gdb/rs6000-nat.c | 17 +++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c4e679d2a7e..746b90e21d4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -11,8 +11,8 @@ Tue Apr 11 13:46:25 1995 Jim Kingdon 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 5a4274d054b..6b940520858 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); -- 2.30.2