| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with all_comp_units and n_comp_units.
(dwarf2_find_containing_comp_unit): Take an objfile argument
instead of a dwarf2_cu. Search all_comp_units.
(dwarf2_find_comp_unit): New function.
(create_all_comp_units): Renamed from create_comp_unit_tree.
Create a list instead of a splay tree.
(dwarf2_build_psymtabs_hard): Call create_comp_unit_tree
and dwarf2_find_comp_unit.
(psymtab_to_symtab_1): Check all_comp_units. Use
dwarf2_find_comp_unit.
(find_partial_die, read_full_die, follow_die_ref): Update calls
to dwarf2_find_containing_comp_unit.
|
|
|
|
| |
(_initialize_dwarf2_read): Use var_zinteger.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.in (dwarf2read.o): Update dependencies.
* dwarf2read.c: Include "command.h" and "gdbcmd.h".
(MAX_CACHE_AGE): Remove.
(dwarf2_max_cache_age): New variable.
(free_comp_units_worker): Update.
(set_dwarf2_cmdlist, show_dwarf2_cmdlist, set_dwarf2_cmd)
(show_dwarf2_cmd): New.
(_initialize_dwarf2_read): Provide "maint set dwarf2 max-cache-age"
and "maint show dwarf2 max-cache-age".
* gdbcmd.h (maintenance_set_cmdlist, maintenance_show_cmdlist): New
externs.
* maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): Make
global.
doc/
* gdb.texinfo (Maintenance Commands): Document "maint set dwarf2
max-cache-age" and "maint show dwarf2 max-cache-age".
|
|
|
|
| |
of prefixes. Don't print the prefix twice in the CLI.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(load_partial_die): Rename to read_partial_die.
(skip_one_die): Move prototype.
(clear_per_cu_pointer): Rename to free_stack_comp_unit. Always
free the obstack.
(dwarf2_build_psymtabs_hard): Update comments. Move
cleanup. Initialize the comp_unit_obstack. Remove hash table
creation.
(load_comp_unit): Initialize the comp_unit_obstack. Remove
hash table creation.
(create_comp_unit_tree): Update comments. Read less data.
(scan_partial_symbols): Update comment. Rename pdi_p to pdi.
(add_partial_enumeration): Likewise.
(add_partial_symbol): Remove psym2.
(add_partial_namespace): Don't set the name here.
(guess_structure_name): Make static.
(locate_pdi_sibling): Rearrange.
(determine_class_name): Update comment.
(load_partial_dies): Create the hash table here. Update comments.
Don't use obstack_free.
(fixup_partial_die): Add comment. Fix typo.
(dwarf_alloc_block): Readd comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
partial_die_obstack to comp_unit_obstack.
(struct partial_die_info): Move higher in file. Add comments.
Use ENUM_BITFIELD.
(dwarf2_tmp_obstack, dwarf2_free_tmp_obstack): Remove.
(partial_die_hash, partial_die_eq): Move lower in file.
(hashtab_obstack_allocate): Likewise. Renamed from
hash_obstack_allocate.
(dummy_obstack_deallocate): Likewise. Renamed from
splay_tree_obstack_deallocate.
(dwarf2_build_psymtabs_hard): Remove references to
dwarf2_tmp_obstack. Update names of changed variables/functions.
(load_comp_unit, create_comp_unit_tree, partial_die_parent_scope)
(guess_structure_name, psymtab_to_symtab_1, load_full_comp_unit)
(add_to_cu_func_list, load_partial_dies, dwarf_alloc_block)
(free_one_comp_unit, clear_per_cu_pointer, set_die_type)
(dwarf2_add_dependence): Likewise.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
full_name_set with scope and scope_set.
(partial_die_parent_scope): New function.
(partial_die_full_name): Use it.
(add_partial_symbol): Don't check full_name_set or set full_name.
(add_partial_namespace): Remove unused variable.
(guess_partial_structure): New function, broken out from
add_partial_structure. Set the name field of the partial DIE.
(add_partial_structure): Simplify.
(find_partial_die): Always set *TARGET_CU.
(fixup_partial_die): Call guess_structure_scope. Set the names
of anonymous classes and namespaces.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
has_namespace_info.
(dwarf2_read_abbrevs): Set the new flags. Change return type back
to void. Update comments.
(dwarf2_build_psymtabs_hard): Update call to dwarf2_read_abbrevs.
Use new has_form_ref_addr flag. Update call to
scan_partial_symbols.
(scan_partial_symbols, add_partial_symbol, add_partial_structure)
(add_partial_enumeration, add_partial_namespace): Remove
have_namespace_info argument. Use new has_namespace_info CU flag.
Update calls to changed functions.
|
| |
|
|
|
|
|
|
|
| |
read_structure_scope.
(process_enumeration_scope): Renamed from read_enumeration_scope.
(add_partial_structure, process_die, new_symbol)
(read_type_die): Update calls and comments.
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_cu): Add dwarf2_abbrevs pointer. Update comment about
comp_unit_head.
(dwarf2_free_abbrev_table): Renamed from dwarf2_empty_abbrev_table.
Clear the pointer abbrev table pointer.
(dwarf2_build_psymtabs_hard, load_comp_unit, load_full_comp_unit):
Update calls.
(dwarf2_read_abbrevs): Update for moved dwarf2_abbrevs pointer.
Allocate the hash table from the obstack.
(dwarf2_lookup_abbrev): Update for moved dwarf2_abbrevs pointer.
|
|
|
|
|
| |
(skip_children, locate_pdi_sibling): Update comments and
clean up.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used as a cleanup. Clear the per_cu pointer. Add some comments.
(free_one_cached_comp_unit): Update signature so it can be used
as a cleanup. Remove unused argument.
(dwarf2_build_psymtabs_hard): Update call to
free_one_cached_comp_unit. Don't free the obstack here.
(process_queue): Keep dwarf2_queue up to date as we remove items
from the queue.
(dwarf2_release_queue): New function.
(psymtab_to_symtab_1): Use cleanups.
(load_full_comp_unit): Likewise.
(free_comp_units_worker): Remove clearing of the cu pointer.
(clear_per_cu_pointer): Also free the partial_die_obstack. Update
comments.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_cu): Add dependencies and mark fields.
(free_one_comp_unit): New function, broken out from
free_comp_units_worker.
(dwarf2_add_dependence, dwarf2_clear_marks, dwarf2_mark)
(dwarf2_mark_helper): New functions.
(psymtab_to_symtab_1): Call free_one_comp_unit. Re-enable
aging.
(read_full_die): Call dwarf2_add_dependence.
(free_comp_units_worker): Call free_one_comp_unit. Use
marking to free old comp units.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_per_cu_data): Shrink length field to add new
queued flag.
(make_cleanup_free_die_list, do_free_die_list_cleanup): Remove.
(dwarf_alloc_block): Take a dwarf2_cu argument. Allocate
blocks on the partial_die_obstack.
(dwarf2_find_comp_unit_psymtab, struct dwarf2_queue_item)
(dwarf2_queue, queue_comp_unit, process_queue): New.
(load_full_comp_unit, process_full_comp_unit): New functions,
split from psymtab_to_symtab_1.
(psymtab_to_symtab_1): Remove.
(dwarf2_build_psymtabs_hard): Initialize the whole dwarf2_cu
structure. Cache the psymtab if we have a per_cu structure.
(load_comp_unit): Initialize the whole dwarf2_cu structure.
(dwarf2_psymtab_to_symtab): Restore dwarf2_per_objfile here.
(read_full_die): Queue compilation units for references.
(read_attribute_value): Update calls to dwarf_alloc_block.
(follow_die_ref): Follow inter-complation-unit references.
(free_comp_units_worker): Free the die list.
(get_die_type): Take the hash table as an argument.
(reset_die_and_siblings_types): Don't try to restore types
if none were saved.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for cu_tree. Add read_in_chain.
(age_cached_comp_units): New function.
(clear_per_cu_pointer): Clear the pointer ourself. Call
age_cached_comp_units.
(free_cached_comp_units, free_one_cached_comp_unit): Update call to
free_comp_units_worker.
(dwarf2_build_psymtabs_hard): Use the per-objfile read_in_chain.
(find_partial_die): Likewise.
(free_comp_units_worker): Don't try to clear the per_cu pointer
for the list head. Remove now-unused argument. Use the per-objfile
read_in_chain.
|
|
|
|
| |
also.
|
|
|
|
|
|
|
|
|
|
|
|
| |
DW_FORM_ref_addr tags.
(create_comp_unit_tree): Add prototype. Take an objfile instead
of a compilation unit.
(dwarf2_build_psymtabs_hard): Build the compilation unit tree
as soon as we find an inter-CU reference. Update call to
create_comp_unit_tree.
(dwarf2_find_containing_comp_unit): Don't create the tree here.
(psymtab_to_symtab_1): Update to support no tree having been built.
(set_die_type): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_per_objfile_data): New.
(dwarf2_per_objfile): New.
(dwarf_info_size, dwarf_abbrev_size, dwarf_line_size)
(dwarf_pubnames_size, dwarf_aranges_size, dwarf_loc_size)
(dwarf_macinfo_size, dwarf_str_size, dwarf_ranges_size)
(dwarf_frame_size, dwarf_eh_frame_size, dwarf_info_buffer)
(dwarf_abbrev_buffer, dwarf_line_buffer, dwarf_str_buffer)
(dwarf_macinfo_buffer, dwarf_ranges_buffer, dwarf_loc_buffer):
Replace with macros.
(dwarf2_cu_tree): Remove.
(struct dwarf2_pinfo): Remove per-objfile members.
(DWARF_INFO_SIZE, DWARF_ABBREV_SIZE, DWARF_LINE_SIZE)
(DWARF_LOC_SIZE, DWARF_MACINFO_SIZE, DWARF_STR_SIZE)
(DWARF_RANGES_SIZE, DWARF_INFO_BUFFER)
(DWARF_ABBREV_BUFFER, DWARF_LINE_BUFFER, DWARF_STR_BUFFER)
(DWARF_MACINFO_BUFFER, DWARF_RANGES_BUFFER, DWARF_LOC_BUFFER):
Remove macros.
(dwarf2_has_info): Take an objfile argument. Allocate per-objfile
data.
(dwarf2_build_psymtabs_hard): Remove use of removed macros. Fetch
cu_tree from dwarf2_per_objfile.
(create_comp_unit_tree): Save cu_tree in dwarf2_per_objfile.
(psymtab_to_symtab_1): Restore per-objfile data pointer. Remove use
of removed macros.
(dwarf2_find_containing_comp_unit): Fetch cu_tree from
dwarf2_per_objfile.
(_initialize_dwarf2_read): Register dwarf2_per_objfile_data instead
of dwarf2_cu_tree.
* symfile.h (dwarf2_has_info): Update prototype.
* coffread.c (coff_symfile_read): Update call to dwarf2_has_info.
* elfread.c (elf_symfile_read): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_pinfo): Add dwarf_info_size and type_hash.
Rearrange and update comments.
(DWARF_INFO_SIZE): Define.
(set_die_type, get_die_type, reset_die_and_siblings_types): New
fucntions.
(dwarf2_build_psymtabs_hard): Save dwarf_info_size. Initialize
type_hash.
(psymtab_to_symtab_1): Restore dwarf_info_size. Create per_cu
data for the current compilation unit.
(read_structure_scope, read_enumeration_type, read_array_type)
(read_tag_pointer_type, read_tag_ptr_to_member_type)
(read_tag_reference_type, read_tag_const_type)
(read_tag_volatile_type, read_tag_string_type)
(read_subroutine_type, read_typedef, read_base_type): Call
set_die_type.
(read_subrange_type): Likewise. Use dwarf2_attr_with_cu, since
array bounds may be DIE references.
(struct dwarf2_offset_and_type, offset_and_type_hash)
(offset_and_type_eq): New.
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_cu): Add die_ref_table.
(die_ref_table): Delete static variable.
(store_in_ref_table): Take a comp unit argument and use its
die_ref_table.
(dwarf2_empty_hash_tables): Likewise.
(read_comp_unit): Update call to dwarf2_empty_hash_tables.
(read_die_and_children): Update call to store_in_ref_table.
(follow_die_ref): Use the comp unit's die_ref_table.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
or call process_die. Return immediately if die->type is set.
Call read_type_die before dwarf2_add_member_fn.
(process_structure_scope): New function.
(read_enumeration_type, read_enumeration_scope): New functions,
broken out from read_enumeration. Don't create the enumeration
type if it has already been created.
(read_enumeration): Removed.
(process_die): Call process_structure_scope, read_enumeration_type,
and read_enumeration_scope. Just call new_symbol for base and
subrange types. Add a comment about other type dies.
(read_type_die): Call read_enumeration_type.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from dwarf2_attr. Also return the compilation unit associated
with the attribute if we have followed a reference. Complain
if we return a reference attribute and the caller does not want
the target compilation unit.
(dwarf2_attr): Call dwarf2_attr_with_cu.
(die_specification, dwarf2_extension): Also return a compilation
unit.
(follow_die_ref): Take attribute and compilation unit arguments.
Call dwarf2_get_ref_die_offset. Also return the target
compilation unit.
(read_func_scope, read_structure_scope): Update calls to
die_specification. Use the result.
(read_namespace): Update call to dwarf2_extension.
(namespace_name): Likewise. Use the result.
(new_symbol): Call dwarf2_attr_with_cu to check for DIE type.
(die_type): Likewise. Update call to follow_die_ref. Use the
results.
(dwarf2_add_member_fn, read_structure_scope): Likewise for
DW_AT_containing_type.
(die_containing_type): Likewise.
(die_is_declaration): Likewise for DW_AT_specification.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_cu): Add last_used counter.
(free_comp_units_worker): New function, based on
clear_per_cu_pointer. Support aging.
(clear_per_cu_pointer): Use it.
(free_cached_comp_units, free_one_cached_comp_unit): New functions.
(dwarf2_build_psymtabs_hard): Keep read_in_chain across iterations.
Free all cached comp units after building psymtabs. Free any cached
copy of a comp unit before building a psymtab for it.
(find_partial_die): Clear the last_used counter.
|
|
|
|
| |
malloc'd memory. Don't try to free real_parent->full_name.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(dwarf2_cu_tree): New variable.
(struct dwarf2_per_cu_data): New type.
(struct partial_die_info): Remove abbrev. Make tag a bitfield. Add
full_name_set.
(load_partial_dies): Take a flag indicating whether we are building
a psymtab.
(find_partial_die_in_comp_unit): Rename frome find_partial_die.
(find_partial_die): New function to support inter-CU references.
Return the CU of the found DIE.
(splay_tree_obstack_allocate): Remove #if 0.
(partial_read_comp_unit_head): New function, broken out from
dwarf2_build_psymtabs_hard.
(dwarf2_build_psymtabs_hard): Remove unused variable abbrev_ptr.
Add the current CU to the splay tree if the tree already exists.
Update call to load_partial_dies.
(partial_die_full_name): Rewrite to support inter-CU references.
(add_partial_symbol): Check and set pdi->full_name_set.
(fixup_partial_die): Support inter-CU references.
(dwarf2_find_containing_comp_unit, clear_per_cu_pointer)
(load_comp_unit, create_comp_unit_tree, _initialize_dwarf2_read): New
functions.
|
|
|
|
|
| |
always use concat.
(add_partial_symbol): Copy the name from the psymbol.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(scan_partial_symbols, add_partial_symbol, add_partial_structure)
(add_partial_enumeration): Change namespace argument to
have_namespace_info flag. Move DW_TAG_namespace handling to
add_partial_symbol. Update comments.
(pdi_needs_namespace): Remove namespace argument. Handle
DW_TAG_namespace.
(partial_determine_prefix, partial_determine_prefix_aux): Remove.
(dwarf2_build_psymtabs_hard): Update call to scan_partial_symbols.
(partial_die_full_name): New function.
(load_partial_die): Correct comment formatting. Don't handle
DW_TAG_enumeration_type.
(load_partial_dies): Correct comment formatting.
|
|
|
|
| |
adding types.
|
|
|
|
|
|
|
| |
(is_type_tag_for_partial): Renamed from is_type_tag. Remove
some tags.
(load_partial_dies): Call is_type_tag_for_partial. Handle simple
DIEs early.
|
|
|
|
|
|
|
|
|
|
| |
a DIE argument instead of an info_ptr.
(add_partial_namespace, add_partial_structure)
add_partial_enumeration): Likewise.
(load_partial_dies): Return the first interesting DIE.
Do not add DIEs to the hash table if we aren't going to look them
up.
(dwarf2_build_psymtabs_hard): Adjust call to scan_partial_symbols.
|
|
|
|
|
|
|
| |
(load_partial_die): Take an abbrev and its uleb128 length as
arguments.
(dwarf2_build_psymtabs_hard): Adjust call to load_partial_die.
(load_partial_dies): Likewise.
|
|
|
|
|
| |
(add_partial_symbol): Fix a warning.
(fixup_partial_die): Recurse if necessary.
|
|
|
|
|
|
|
|
| |
(partial_determine_prefix_aux): New functions.
(add_partial_symbol): Call partial_determine_prefix.
(add_partial_structure): Remove workaround for DW_AT_specification.
(load_partial_die): Save DW_AT_extension.
(determine_prefix_aux): Reuse the return value of dwarf2_name.
|
|
|
|
| |
aggregates for all non-C languages.
|
|
|
|
| |
size of the hash table.
|
|
|
|
| |
(dwarf2read.o): Update dependencies.
|
|
|
|
|
|
|
|
|
|
|
| |
(struct abbrev_info): Shorten two int flags.
(dwarf_alloc_abbrev): Take a CU argument.
(dwarf2_build_psymtabs_hard): Call dwarf2_empty_abbrev_table
each time through the loop. Update cleanup argument.
(psymtab_to_symtab_1): Update cleanup argument.
(dwarf2_read_abbrevs, dwarf2_alloc_abbrev): Allocate on the
abbrev_obstack.
(dwarf2_empty_abbrev_table): Just call obstack_free.
|
|
|
|
|
|
|
|
|
|
|
| |
(dwarf2read.o): Update dependencies.
* dwarf2read.c: Include "hashtab.h".
(struct dwarf2_cu): Change partial_dies to an htab_t.
(hash_obstack_allocate, partial_die_hash, partial_die_eq): New
functions.
(dwarf2_build_psymtabs_hard): Call htab_create_alloc_ex.
(load_partial_dies): Call htab_find_slot_with_hash.
(find_partial_die): Call htab_find_with_hash.
|
|
|
|
|
|
|
|
| |
rearrange members for packing. Replace spec_attr with spec_offset.
(load_partial_dies): Only follow structures for C++.
(load_partial_die): Use memset. Save specification attributes
only as offsets.
(fixup_partial_die): Adjust to use spec_offset.
|
|
|
|
|
|
|
|
|
| |
(splay_tree_obstack_allocate, splay_tree_obstack_deallocate): New
functions.
(dwarf2_build_psymtabs_hard): Use splay_tree_new_with_allocator
and obstack_free to manage partial_dies.
(load_partial_dies): Allocate partial DIEs on the obstack. Don't
initialize the splay tree here.
|
|
|
|
|
|
| |
(skip_children): New functions.
(locate_pdi_sibling): Call skip_children.
(load_partial_dies): Use peek_die_abbrev and skip_one_die.
|
|
|
|
|
|
|
|
| |
broken out from read_partial_die.
(read_partial_die): Remove function.
(dwarf2_build_psymtabs_hard): Update comments.
(scan_partial_symbols): Use the new functions. Reduce copying of
partial DIEs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct dwarf2_cu): Add splay tree for partial DIEs.
(struct partial_die_info): Move after struct attribute.
Add has_specification, spec_attr, die_parent, die_child,
and die_sibling fields.
(load_partial_dies): New function.
(load_partial_die): New function, broken out from read_partial_die.
Correct setting of part_die->offset. Save any specification
attributes for later.
(read_partial_die): Look up DIEs in the splay tree.
(dwarf2_build_psymtabs_hard): Initialize partial_dies. Call
load_partial_die to read in the compilation unit DIE. Call
load_partial_dies. Free the splay tree after use.
(scan_partial_symbols): Follow the die_sibling chain.
(add_partial_structure): Use die_child and die_sibling instead of
read_partial_die and locate_pdi_sibling.
(add_partial_enumeration): Likewise.
(locate_pdi_sibling): Use load_partial_die instead of
read_partial_die.
(is_type_tag): New function.
* Makefile.in (dwarf2read.o): Update dependencies.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* i386obsd-tdep.c: Update copyright years. Include
"solib-svr4.h".
(i386obsd_init_abi): Don't set regset_from_core_section here.
(i386obsd_aout_init_abi): New function. Set
regset_from_core_section here.
(i386obsd_elf_init_abi): New function.
(_initialize_i386obsd_tdep): Register OS/ABI for OpenBSD ELF.
* Makefile.in (i386obsd-tdep.o): Update dependecies.
* config/i386/obsd.mt (TDEPFILES): Add solib.o and solib-svr4.o.
(TM_FILE): Set to tm-nbsd.h.
* config/i386/obsd.mh (NATDEPFILES): Remove solib.o and
solib-sunos.o.
|
| |
|