[PATCH v2 1/4] Introduce a new line table flag is_weak

Bernd Edlinger bernd.edlinger@hotmail.de
Sun May 30 13:58:39 GMT 2021


This introduces a new line table flag is_weak.
The line entries at the end of a subroutine range,
use this to indicate that they may possibly
be part of the previous subroutine.

When there is a sequence of line entries at the
same address where an inline range ends, and the
last item has is_stmt = 0, we force all previous
items to have is_weak = 1.

Additionally this adds a "fake" end sequence to the
record_line function, that is line number -1.
That will be used in the next patch.

Finally this adds a handling for empty ranges to
record_block_range.  Currently this function is
not called with empty ranges, but that will be used
in the next patch.

There should be no functional changes after this commit.

gdb:
2021-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* buildsym.c (buildsym_compunit::record_block_range): Store inline
	range end PC values.  Make empty inline ranges one byte long.
	(buildsym_compunit::record_line): Update the comment about the
	end of sequence marker.  Mark previous lines at the same PC
	as weak for a fake end sequence marker.
	(buildsym_compunit::patch_inline_end_pos): New helper function.
	(buildsym_compunit::end_symtab_with_blockvector): Patch line table.
	* buildsym.h (buildsym_compunit::m_inline_end_vector): New data item.
	* jit.c (jit_symtab_line_mapping_add_impl): Initialize is_weak.
	* symmisc.c (dump_symtab_1,
	maintenance_print_one_line_table): Handle is_weak.
	* symtab.h (linetable_entry::is_weak,
	symtab_and_line::is_weak): New data items.
	* xcoffread.c (arrange_linetable): Initialize is_weak.

gdb/testsuite:
2021-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* gdb.dwarf2/dw2-ranges-base.exp: Adjust test, handle WEAK.
	* gdb.dwarf2/dw2-out-of-range-end-of-seq.exp: Likewise.


Thanks,
Bernd.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Introduce-a-new-line-table-flag-is_weak.patch
Type: text/x-patch
Size: 13291 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/gdb-patches/attachments/20210530/b670b243/attachment-0001.bin>


More information about the Gdb-patches mailing list