ff013f42f4
* 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.
46 lines
1.5 KiB
ArmAsm
46 lines
1.5 KiB
ArmAsm
/*
|
|
Copyright 2007 Free Software Foundation, Inc.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/* Despite the sections below will be adjacent the assembler has to produce
|
|
DW_AT_ranges as the linker could place both sections at arbitrary locations.
|
|
*/
|
|
|
|
/* Such directive is required by GAS for builds without `-g'. */
|
|
.file 1 "dw2-ranges2.S"
|
|
|
|
/* Without this directive GAS will not emit DWARF2 unless we provide an
|
|
instruction to assemble. We want to avoid any instructions to
|
|
remain architecture independent. */
|
|
.loc_mark_labels 1
|
|
|
|
.text
|
|
|
|
.globl main2
|
|
.func main2
|
|
main2: .int 0
|
|
.endfunc
|
|
.size main2, . - main2
|
|
|
|
/* `.fini' section is here to make sure `dw2-ranges.S'
|
|
vs. `dw2-ranges2.S' overlap their DW_AT_ranges with each other. */
|
|
.section .fini, "ax", @progbits
|
|
|
|
.globl func2
|
|
.func func2
|
|
func2: .int 0
|
|
.endfunc
|
|
.size func2, . - func2
|