aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAli Tamur <tamur@google.com>2019-08-26 19:22:09 -0700
committerAli Tamur <tamur@google.com>2019-10-21 14:22:12 -0700
commit7ba99d2188454b9e08bdbf3616773a16ad9c9f95 (patch)
treeaf6877515e6af4c6e35128cf25d7d3bc3d6b9575 /bfd
parent45f47c3a25d7574d21b9f451efce38c06256f591 (diff)
downloadgdb-7ba99d2188454b9e08bdbf3616773a16ad9c9f95.zip
gdb-7ba99d2188454b9e08bdbf3616773a16ad9c9f95.tar.gz
gdb-7ba99d2188454b9e08bdbf3616773a16ad9c9f95.tar.bz2
DWARF 5 support: Handle line table and file indexes
* Fix handling of file and directory indexes in line tables; in DWARF 5 the indexes are zero-based. Make file_names field private to abstract this detail from the clients. Introduce file_names, is_valid_file_index and file_names_size methods. Reflect these changes in clients. * Handle DW_FORM_data16 in read_formatted_entries; it is used to record MD5 of the file entries in DWARF 5. * Fix a bug in line header parsing that calculates the length of the header incorrectly. (Seemingly this manifests itself only in DWARF 5). Tested with CC=/usr/bin/gcc (version 8.3.0) against master branch (also with -gsplit-dwarf and -gdwarf-4 flags) and there was no increase in the set of tests that fails. (gdb still cannot debug a 'hello world' program with DWARF 5, so for the time being, this is all we care about). This is part of an effort to support DWARF 5 in gdb. gdb/ChangeLog: * dwarf2read.c (dir_index): Change type. (file_name_index): Likewise. (line_header::include_dir_at): Change comment and implementation on whether it is DWARF 5. (line_header::is_valid_file_index): New function. (line_header::file_name_at): Change comment and implementation on whether it is DWARF 5. (line_header::file_names): Change to private field renamed as m_file_names and introduce a new accessor method. (line_header::file_names_size): New method. (line_header::include_dirs): Change to private field and rename as m_include_dirs. (dw2_get_file_names_reader): Define local var at a smaller scope and reflect API change. (dwarf2_cu::setup_type_unit_groups): Reflect API change. (process_structure_scope): Likewise. (line_header::add_include_dir): Change message and reflect renaming. (line_header::add_file_name): Likewise. (read_formatted_entries): Handle DW_FORM_data16. (dwarf_decode_line_header): Fix line header length calculation. (psymtab_include_file_name): Change comment and API. (lnp_state_machine::m_file): Update comment and reflect type change. (lnp_state_machine::record_line): Reflect type change. (dwarf_decode_lines): Reflect API change. (file_file_name): Likewise. (file_full_name): Likewise.
Diffstat (limited to 'bfd')
0 files changed, 0 insertions, 0 deletions