On Fri, 30 Nov 2007 15:56:13 +0100, Daniel Jacobowitz wrote: > On Fri, Nov 30, 2007 at 12:10:21PM +0100, Jan Kratochvil wrote: > > It was not reproducible for me but the problem is Vladimir's i386 crti.S has > > DW_AT_ranges which overlap the main code (due to its .fini part). The main > > code full-symbols get ignored now due to it. ... > Jim, can we get your addrmap changes in as they are, ... > After that, it's simple to solve this problem more accurately by using > addrmaps for symtabs too, not just blocks. Attaching the fix for discontiguous psymtabs based on the addrmap framework. This one is a conservative one - it tries to just fix it with minimal changes. It is bidirectionally compatible: * Producer (dwarf2read.c) still tries to set the bounds TEXTLOW and TEXTHIGH. * Consumer (symtab.c) deals with both set and unset PSYMTABS_ADDRMAP. #1 With the new OBJFILE->PSYMTABS_ADDRMAP I believe the whole PARTIAL_SYMTAB->{TEXTLOW,TEXTHIGH} can be removed. It requires updating of all the producers and consumers. Dumb producers may even just set contiguous ranges in PSYMTABS_ADDRMAP. #2 My folowup mail will offer a future removal of FIND_PC_SECT_PSYMTAB_IS_VALID. The included testcase (FAIL->PASS by this patch) is the one posted here as: http://sources.redhat.com/ml/gdb-patches/2007-11/msg00565.html Testsuite has been run on x86_64 Fedora 8. Regards, Jan