• R/O
  • HTTP
  • SSH
  • HTTPS

提交列表

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


users/ccoutant/two-level-line-tables
RSS
Rev. 时间 作者
8322273 users/ccoutant/two-level-line-tables 2015-03-26 07:27:52 Cary Coutant

Fix crash when section ends with a .lloc directive not followed by an insn.

gas/
* dwarf2dbg.c (emit_logicals): Handle case where e->label is NULL.

c312754 2015-02-23 16:44:29 Cary Coutant

Improve ODR checking.

2015-02-09 Cary Coutant <ccoutant@google.com>

gold/
* dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Fix debug
output to print correct context.
(Sized_dwarf_line_info::do_addr2line): Add debug output. Return
up to 4 more locations at the beginning of the function.
* symtab.cc (Symbol_table::detect_odr_violations): Get canonical
result before sorting list of line numbers.

76b3c0a 2015-02-23 16:44:23 Cary Coutant

Support compressed debug in dyn objects.

2015-02-09 Cary Coutant <ccoutant@google.com>

gold/
* dwp.cc (Sized_relobj_dwo::do_decompressed_section_contents): Delete.
(Sized_relobj_dwo::setup): Setup map of compressed sections.
(print_version): Update copyright.
* dynobj.cc (Sized_dynobj::base_read_symbols): Set up map of compressed
sections.
* object.cc (Sized_relobj_file::compressed_sections): Delete.
(build_compressed_section_map): Add decompress_if_needed parameter.
Adjust callers.
(Sized_relobj_file::do_find_special_sections): Set compressed sections
map in Object base class.
(Sized_relobj_file::do_decompressed_section_contents): Rename to
Object::decompressed_section_contents.
(Sized_relobj_file::do_discard_decompressed_sections): Rename to
Object::discard_decompressed_sections.
* object.h (Object::compressed_sections_): New data member.
(Object::section_is_compressed): Remove virtual, implement here.
(Object::decompressed_section_contents): Remove virtual.
(Object::do_section_is_compressed): Delete.
(Object::do_decompressed_section_contents): Delete.
(Object::set_compressed_sections): New method.
(Object::compressed_sections): New method.
(Sized_relobj_file::do_section_is_compressed): Delete.
(Sized_relobj_file::do_decompressed_section_contents): Delete.
(Sized_relobj_file::do_discard_decompressed_sections): Delete.
(Sized_relobj_file::compressed_sections): Delete.

f0c3f9a 2015-02-23 16:43:57 Cary Coutant

Add gold support for two-level line tables.

2015-01-30 Cary Coutant <ccoutant@google.com>

elfcpp/
* dwarf.h (enum DW_LNS): Add experimental two-level line table opcodes.
(enum DW_LNCT): New enum for DWARF-5.

gold/
* debug.h (DEBUG_LOCATION): New constant.
(debug_string_to_enum): Add DEBUG_LOCATION.
* dwarf_reader.cc (struct LineStateMachine): Add context field.
(ResetLineStateMachine): Likewise.
(Sized_dwarf_line_info::Sized_dwarf_line_info): Add support for
two-level line tables.
(Sized_dwarf_line_info::read_header_prolog): Likewise. Also add
support for DWARF-3+ line tables.
(Sized_dwarf_line_info::read_header_tables_v5): New method.
(Sized_dwarf_line_info::process_one_opcode): Add support for two-level
line tables.
(Sized_dwarf_line_info::read_lines): Likewise.
(Sized_dwarf_line_info::read_line_mappings): Likewise.
(Sized_dwarf_line_info::do_addr2line): Add debug output.
* dwarf_reader.h (Sized_dwarf_line_info::~Sized_dwarf_line_info):
Delete str_buffer_start_.
(DWARF5_EXPERIMENTAL_LINE_TABLE): New constant.
(Sized_dwarf_line_info::read_header_tables_v5): New method.
(Sized_dwarf_line_info::read_lines): Update prototype.
(Sized_dwarf_line_info::process_one_opcode): Likewise.
(Sized_dwarf_line_info::max_ops_per_insn): New data member.
(Sized_dwarf_line_info::str_buffer_): New data member.
(Sized_dwarf_line_info::str_buffer_end_): New data member.
(Sized_dwarf_line_info::str_buffer_start_): New data member.
(Sized_dwarf_line_info::end_of_header_length_): New data member.
(Sized_dwarf_line_info::logicals_start_): New data member.
(Sized_dwarf_line_info::actuals_start_): New data member.
(Sized_dwarf_line_info::end_of_unit_): New data member.

589778e 2015-02-23 16:43:48 Cary Coutant

Fix formatting.

2015-02-06 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (display_debug_lines_raw): Fix formatting.

b375973 2015-01-30 21:16:46 Cary Coutant

For ODR checking, when we see two .lloc directives in a row, output them both.

2015-01-30 Cary Coutant <ccoutant@google.com>

gas/
* dwarf2dbg.c (dwarf2_directive_loc): Always emit extra .lloc.

89442fc 2015-01-29 15:05:06 Cary Coutant

Reformat experimental header for compatibility with old DWARF consumers.

2015-01-28 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (read_debug_line_header): Adjust to reformatted header.
(display_line_program): Add missing space in output.
(display_debug_lines_raw): Adjust to reformatted header.
* dwarf.h (DWARF2_Internal_LineInfo): Remove li_actuals_table_offset.

0530525 2015-01-29 15:01:38 Cary Coutant

Reformat experimental header for compatibility with old DWARF consumers.

Old consumers will now see a DWARF-4 header, with new fields added at the
end of the header. The new fields and the entire logicals and actuals
tables are wrapped in a single extended opcode so that old consumers
will see just the single opcode.

2015-01-28 Cary Coutant <ccoutant@google.com>

gas/
* dwarf2dbg.c (line_base): New variable.
(line_range): New variable.
(DWARF2_EXPERIMENTAL_LINE_OPCODE_BASE): Rename.
(DWARF2_LINE_BASE): Restore to original value.
(DWARF2_LINE_RANGE): Likewise.
(DWARF5_EXPERIMENTAL_LINE_BASE): New macro.
(DWARF5_EXPERIMENTAL_LINE_RANGE): New macro.
(SPECIAL_LINE): Use line_base, line_range.
(size_inc_line_addr): Likewise.
(emit_inc_line_addr): Likewise.
(out_debug_line): Reformat header for compatibility with old DWARF
consumers.

d4c40a8 2015-01-29 04:22:01 Cary Coutant

Some minor cleanups in two-level line table support.

2015-01-28 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (free_logicals): Set logicals_table to NULL.
(fetch_indirect_string): Correct boundary check.
(fetch_indirect_line_string): Likewise.
(fetch_indexed_string): Likewise.
(display_dir_file_table_v5): Print unsigned value.

f7318ad 2015-01-27 08:02:54 Cary Coutant

Fix to read signed LEB128 for operand to DW_LNS_set_address_from_logical.

2015-01-26 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (display_line_program): Operand to
DW_LNS_set_address_from_logical is signed.

a38fe6a 2015-01-27 05:21:11 Cary Coutant

Reset discriminator after each row.

2015-01-26 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (display_line_program): Reset discriminator after each row.

e82144e 2015-01-24 09:35:06 Cary Coutant

Set entsize for .debug_line_str section.

2015-01-23 Cary Coutant <ccoutant@google.com>

gas/
* dwarf2dbg.c (dwarf2_finish): Set entsize for .debug_line_str section.

b18ad49 2015-01-24 09:35:06 Cary Coutant

Emit address_size and segment_size for version 5 line number tables.

2015-01-23 Cary Coutant <ccoutant@google.com>

gas/
* dwarf2dbg.c (out_debug_line): Emit address_size and segment_size
for version 5 line number tables.

285d7b5 2015-01-24 09:34:56 Cary Coutant

Add address_size and segment_size to line number program header version 5.

2015-01-23 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.h (struct DWARF2_Internal_LineInfo): Add li_address_size and
li_segment_size.
* dwarf.c (read_debug_line_header): Read li_address_size and
li_segment_size.
(display_debug_lines_raw): Print li_address_size and li_segment_size.

2031626 2015-01-24 06:14:41 Cary Coutant

Update DW_LNS_opcodes for two-level line tables.

2015-01-23 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (append_logical): Fix format string.
(display_line_program): Replace DW_LNS_set_context with
DW_LNS_inlined_call. Fix format strings.

dc87246 2015-01-24 06:12:29 Cary Coutant

Update DW_LNS opcodes for two-level line tables.

2015-01-23 Cary Coutant <ccoutant@google.com>

gas/
* dwarf2dbg.c (emit_logicals): Increase max number of
DW_LNS_pop_context opcodes. Change DW_LNS_set_context
to DW_LNS_inlined_call.
(out_debug_line): Adjust operand lengths array.

49e4ed7 2015-01-24 06:11:06 Cary Coutant

Update DW_LNS opcodes.

2015-01-23 Cary Coutant <ccoutant@google.com>

include/
* dwarf2.h (enum dwarf_line_number_ops): Remove
DW_LNS_set_context, add DW_LNS_inlined_call; renumber
new opcodes.

c63bcc5 2015-01-22 09:01:18 Cary Coutant

Track discriminator when processing line number table.

2015-01-21 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (process_extended_line_op): Track discriminator.

361595a 2015-01-22 08:45:55 Cary Coutant

Ignore line tables whose versions we don't support.

2015-01-21 Cary Coutant <ccoutant@google.com>

gold/
* dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog): Check
line table version number.
(Sized_dwarf_line_info::read_line_mappings): Likewise.

fc0d0b6 2015-01-22 08:43:52 Cary Coutant

Silence "may be uninitialized" warnings.

2015-01-21 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (display_debug_lines_raw): Silence "may be uninitialized"
warnings.

6a8cf4c 2015-01-16 06:58:58 Cary Coutant

Fix bugs displaying DW_LNS_set_context and DW_LNS_pop_context.

2015-01-15 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (append_logical): Print summary for each logical row.
(display_line_program): Remove incorrect consumption of an LEB128
when reading DW_LNS_set_context and DW_LNS_pop_context.

ab07188 2015-01-16 06:58:47 Cary Coutant

Fix problems with DW_LNS_pop_context in logicals table.

2015-01-15 Cary Coutant <ccoutant@google.com>

gas/
* dwarf2dbg.c (emit_logicals): Fix bug in generating
DW_LNS_pop_context.
(process_entries): Don't always emit DW_LNS_set_address_from_logical
when crossing frag boundaries.

af9adba 2015-01-07 09:56:43 Cary Coutant

Add support for DWARF-5 and experimental two-level line number tables.

http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables

2015-01-06 Cary Coutant <ccoutant@google.com>

binutils/
* dwarf.c (struct State_Machine_Registers): Add discriminator,
context, and subprogram.
(reset_state_machine): Likewise.
(logicals_table, logicals_allocated, logicals_count): New variables.
(free_logicals): New function.
(append_logical): New function.
(process_extended_line_op): Add is_logical parameter.
(fetch_indirect_line_string): New function.
(DWARF2_LINE_EXPERIMENTAL_VERSION): New macro.
(read_debug_line_header): Add pinitial_length_size, poffset_size
parameters. Update all callers. Check for new line table versions.
(display_directory_table_v4): New function, factored out from
display_debug_lines_raw.
(display_file_name_table_v4): Likewise.
(display_dir_file_table_v5): New function.
(display_line_program): New function, factored out from
display_debug_lines_raw.
(display_debug_lines_raw): Support new line table versions.
(display_debug_lines_decoded): Add missing newline to warning.
(display_debug_lines): Load .debug_line_str section.
(debug_displays): Add .debug_line_str section.
* dwarf.h (DWARF2_Internal_LineInfo): Add li_actuals_table_offset field.
(dwarf_section_display_enum): Add line_str.
* readelf.c (process_section_headers): Add .debug_line_str.

c85ff14 2015-01-07 09:40:43 Cary Coutant

Update support for DWARF-5 and experimental two-level line number tables.

2015-01-06 Cary Coutant <ccoutant@google.com>

gas/
* dwarf2dbg.c (emit_logicals): Replace DW_LNS_inlined_call with
DW_LNS_set_context and DW_LNS_set_subprogram.
Fix bug where we emit wrong value for line number.
(process_entries): Don't emit DW_LNS_negate_stmt in actuals table.
(out_dwarf5_file_list): Fix bug where dir list or file list is empty.
(out_debug_line): Update table of opcode lengths.

e7ca0f8 2015-01-07 09:23:59 Cary Coutant

Update experimental DWARF-5 values for two-level line number tables.

http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables

2015-01-06 Cary Coutant <ccoutant@google.com>

include/
* dwarf2.h (enum dwarf_line_number_ops): Replace DW_LNS_inlined_call
with DW_LNS_set_context and DW_LNS_set_subprogram. Renumber subsequent
opcodes.

b274bee 2015-01-02 03:59:24 Cary Coutant

Add support for DWARF-5 and experimental two-level line number tables.

2014-12-23 Cary Coutant <ccoutant@google.com>

gas/
* config/obj-elf.c (elf_pseudo_table): Add .lloc and .subprog
directives.
* dwarf2dbg.h (struct dwarf2_line_info): Add logical field.
(dwarf2_directive_subprog): New function.
(dwarf2_directive_loc): Add is_lloc parameter.
* dwarf2dbg.c: Include "hash.h".
(DWARF2_LINE_EXPERIMENTAL_VERSION): New macro.
(DWARF2_EXPERIMENTAL_LINE_OPCODE_BASE): New macro.
(opcode_base): New static variable.
(DWARF2_LINE_BASE, DWARF2_LINE_RANGE): Adjust parameters.
(DWARF2_LINE_MAX_OPS_PER_INSN): New macro.
(SPECIAL_LINE, SPECIAL_ADDR): Use opcode_base.
(struct subprog_entry): New struct.
(subprogs, subprogs_in_use, subprogs_allocated): New variables.
(struct logicals_entry): New struct.
(logicals, logicals_in_use, logicals_allocated, logicals_with_labels):
New variables.
(struct string_table): New struct.
(debug_line_str_table): New variable.
(current): Add logical field.
(dwarf2_gen_line_info): Fill in symbol and segment for recent logicals.
(dwarf2_where): Add logical field.
(make_subprog_entry): New function.
(make_logical): New function.
(dwarf2_directive_subprog): New function.
(dwarf2_directive_loc): Add is_lloc parameter; add support for .lloc
directive.
(out_set_addr_from_logical): New function.
(size_inc_line_addr): Fix signed/unsigned warnings. Use opcode_base.
(emit_inc_line_addr): Likewise.
(emit_logicals): New function.
(process_entries): Add support for two-level line tables.
(add_to_string_table): New function.
(out_string_table): New function.
(out_dwarf5_file_list): New function.
(out_subprog_list): New function.
(out_debug_line): Add support for DWARF-5 line tables and for
experimental two-level line number tables.
(dwarf2_finish): Likewise.

244e077 2015-01-02 03:59:24 Cary Coutant

Add experimental DWARF-5 values for two-level line number tables.

http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables

2014-12-23 Cary Coutant <ccoutant@google.com>

include/
* dwarf2.def (DW_FORM_line_strp): New constant.
* dwarf2.h (enum dwarf_line_number_ops): Add DW_LNS_inlined_call,
DW_LNS_pop_context, DW_LNS_set_address_from_logical.
(enum dwarf_line_number_content_type): Add new DW_LNCT_ codes.

efd321f 2015-01-01 23:38:15 Alan Modra

Correct printed year in copyright notices

b90efa5 2015-01-01 23:23:45 Alan Modra

ChangeLog rotatation and copyright year update

32d0add 2015-01-01 18:32:14 Joel Brobecker

Update year range in copyright notice of all files owned by the GDB project.

gdb/ChangeLog:

Update year range in copyright notice of all files.