diff options
author | Thiago Jung Bauermann <bauerman@br.ibm.com> | 2011-01-26 01:55:19 +0000 |
---|---|---|
committer | Thiago Jung Bauermann <bauerman@br.ibm.com> | 2011-01-26 01:55:19 +0000 |
commit | e4f6d2ecc41bc3ab6a3a77596a40b851d0ffa4f3 (patch) | |
tree | 5b68f53615c364f90cf099dfe236d9bc087bcce9 /gdb | |
parent | f829b0eccc3245b76662aedf387f0643e58f1737 (diff) | |
download | gdb-e4f6d2ecc41bc3ab6a3a77596a40b851d0ffa4f3.zip gdb-e4f6d2ecc41bc3ab6a3a77596a40b851d0ffa4f3.tar.gz gdb-e4f6d2ecc41bc3ab6a3a77596a40b851d0ffa4f3.tar.bz2 |
2011-01-25 Mathieu Lacage <mathieu.lacage@inria.fr>
PR/symtab 11766:
* gdb/objfiles.h (struct objfile) <addr_low>: New field.
* gdb/solib.c (solib_read_symbols): Check for addr_low in
equality test for objfile, initialize addr_low if needed.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/objfiles.h | 2 | ||||
-rw-r--r-- | gdb/solib.c | 4 |
3 files changed, 12 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1af7d49..8704d04 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2011-01-25 Mathieu Lacage <mathieu.lacage@inria.fr> + + PR/symtab 11766: + * gdb/objfiles.h (struct objfile) <addr_low>: New field. + * gdb/solib.c (solib_read_symbols): Check for addr_low in + equality test for objfile, initialize addr_low if needed. + 2011-01-25 Pedro Alves <pedro@codesourcery.com> * tui/tui-regs.c (tui_register_format): Remove dead code. diff --git a/gdb/objfiles.h b/gdb/objfiles.h index c44517f..759c2f9 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -194,6 +194,8 @@ struct objfile char *name; + CORE_ADDR addr_low; + /* Some flag bits for this objfile. */ unsigned short flags; diff --git a/gdb/solib.c b/gdb/solib.c index 909a23b..6748d87 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -638,7 +638,8 @@ solib_read_symbols (struct so_list *so, int flags) /* Have we already loaded this shared object? */ ALL_OBJFILES (so->objfile) { - if (strcmp (so->objfile->name, so->so_name) == 0) + if (strcmp (so->objfile->name, so->so_name) == 0 + && so->objfile->addr_low == so->addr_low) break; } if (so->objfile != NULL) @@ -648,6 +649,7 @@ solib_read_symbols (struct so_list *so, int flags) so->sections_end); so->objfile = symbol_file_add_from_bfd (so->abfd, flags, sap, OBJF_SHARED); + so->objfile->addr_low = so->addr_low; free_section_addr_info (sap); } |