summaryrefslogtreecommitdiff
path: root/gdb/objfiles.h
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2008-05-04 17:27:01 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2008-05-04 17:27:01 +0000
commitb5830bae4e60b65f37560ce1ede15e8036c20f2d (patch)
tree2538878d6e6ecb825ed297956729ea3a9ca4b139 /gdb/objfiles.h
parentd8cc2ad1a2cde1006b6befbbe723e49129bf4066 (diff)
downloadgdb-b5830bae4e60b65f37560ce1ede15e8036c20f2d.tar.gz
gdb/
* Makefile.in: Update dependencies. * dwarf2read.c: Include "addrmap.h" (struct dwarf2_cu): New fields RANGES_OFFSET and HAS_RANGES_OFFSET. (dwarf2_ranges_read): New prototype. (dwarf2_build_psymtabs_hard): Initialize and prepare PSYMTABS_ADDRMAP. Add discontiguous range to PSYMTABS_ADDRMAP by DWARF2_RANGES_READ on HAS_RANGES_OFFSET, otherwise add there the contiguous range. (dwarf2_ranges_read): New parameter RANGES_PST, update the function comment for it. Add the found ranges to RANGES_PST. New variable BASEADDR, initialize it the common way. (dwarf2_get_pc_bounds): Update the caller for the new parameter. (read_partial_die): `DW_AT_ranges' now only sets RANGES_OFFSET and HAS_RANGES_OFFSET for the later processing. * objfiles.h (struct objfile): New field PSYMTABS_ADDRMAP. * symtab.c: Include "addrmap.h" (find_pc_sect_psymtab): Support reading the field PSYMTABS_ADDRMAP. Move the psymtab locator into ... (find_pc_sect_psymtab_closer): ... a new function. gdb/testsuite/ * gdb.dwarf2/dw2-ranges.S: Merge the secondary section with `.fini'. * gdb.dwarf2/dw2-ranges.exp: Compile also `dw2-ranges2.S' and `dw2-ranges3.S' and test also their MAIN2, FUNC2 and MAIN3 symbols. * gdb.dwarf2/dw2-ranges2.S, gdb.dwarf2/dw2-ranges3.S: New files.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r--gdb/objfiles.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index c3ae954b5fb..7e39b07c5d3 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -220,6 +220,13 @@ struct objfile
struct partial_symtab *psymtabs;
+ /* Map addresses to the entries of PSYMTABS. It would be more efficient to
+ have a map per the whole process but ADDRMAP cannot selectively remove
+ its items during FREE_OBJFILE. This mapping is already present even for
+ PARTIAL_SYMTABs which still have no corresponding full SYMTABs read. */
+
+ struct addrmap *psymtabs_addrmap;
+
/* List of freed partial symtabs, available for re-use */
struct partial_symtab *free_psymtabs;