Bug 12302 - incomplete address table in .gdb_index section
Summary: incomplete address table in .gdb_index section
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: symtab (show other bugs)
Version: HEAD
: P2 normal
Target Milestone: 7.3
Assignee: dje
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-08 18:55 UTC by dje
Modified: 2011-05-05 15:07 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description dje 2010-12-08 18:55:39 UTC
The "save gdb-index" command creates a .gdb-index file that contains an optimized version of the debug info to speed up start up when debugging large programs.
The address table part of this file is incomplete.
gdb uses the textlow,texthigh values of each partial symtab to populate this table, but this is insufficient,
there may be multiple noncontiguous regions.
Comment 1 Sourceware Commits 2010-12-08 19:03:41 UTC
CVSROOT:	/cvs/src
Module name:	src
Changes by:	devans@sourceware.org	2010-12-08 19:03:35

Modified files:
	gdb            : ChangeLog dwarf2read.c 

Log message:
	PR symtab/12302
	* dwarf2read.c (struct psymtab_cu_index_map): New struct.
	(hash_psymtab_cu_index, eq_psymtab_cu_index): New functions.
	(struct addrmap_index_data): New struct.
	(add_address_entry): Remove arg `pst', new args `start', `end'.
	(add_address_entry_worker, write_address_map): New functions.
	(write_psymtabs_to_index): Address table generation moved to
	write_address_map.  Build a table mapping psymtab to CU index
	to pass to it.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.12364&r2=1.12365
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/dwarf2read.c.diff?cvsroot=src&r1=1.486&r2=1.487
Comment 2 Tom Tromey 2011-05-05 15:07:22 UTC
Appears to be fixed.