Relocate block range start and end addresses

gdb/ChangeLog:

	* objfiles.c (objfile_relocate1): Relocate start and end addresses
	for each range in a block.
This commit is contained in:
Kevin Buettner 2018-08-23 16:00:50 -07:00
parent 59adbf5d03
commit 9644dc3a47
2 changed files with 16 additions and 0 deletions

View File

@ -49,6 +49,14 @@
* tracepoint.c (info_scope_command): Likewise.
* value.c (value_fn_field): Likewise.
* infrun.c (fill_in_stop_func): Use find_function_entry_range_from_pc
in place of find_pc_partial_function.
* blockframe.c (find_function_entry_range_from_pc): New function.
* symtab.h (find_function_entry_range_from_pc): Declare and document.
* objfiles.c (objfile_relocate1): Relocate start and end addresses
for each range in a block.
2018-08-23 Xavier Roirand <roirand@adacore.com>
* machoread.c (macho_symfile_read_all_oso): Remove uneeded

View File

@ -831,6 +831,14 @@ objfile_relocate1 (struct objfile *objfile,
BLOCK_START (b) += ANOFFSET (delta, block_line_section);
BLOCK_END (b) += ANOFFSET (delta, block_line_section);
if (BLOCK_RANGES (b) != nullptr)
for (int j = 0; j < BLOCK_NRANGES (b); j++)
{
BLOCK_RANGE_START (b, j)
+= ANOFFSET (delta, block_line_section);
BLOCK_RANGE_END (b, j) += ANOFFSET (delta, block_line_section);
}
/* We only want to iterate over the local symbols, not any
symbols in included symtabs. */
ALL_DICT_SYMBOLS (BLOCK_DICT (b), iter, sym)