2009-08-17 Pedro Alves <pedro@codesourcery.com>>

* objfiles.c (objfile_relocate): Relocate the entry point before
	relocating the section offsets.  Flush the section map before
	resetting breakpoints.
This commit is contained in:
Pedro Alves 2009-08-17 11:16:13 +00:00
parent ed4e4aa28d
commit f1f2b5f40e
2 changed files with 15 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2009-08-17 Pedro Alves <pedro@codesourcery.com>>
* objfiles.c (objfile_relocate): Relocate the entry point before
relocating the section offsets. Flush the section map before
resetting breakpoints.
2009-08-14 Doug Evans <dje@google.com>
* symfile.c (find_separate_debug_file): Remove double free of

View File

@ -666,12 +666,6 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
to be out of order. */
msymbols_sort (objfile);
{
int i;
for (i = 0; i < objfile->num_sections; ++i)
(objfile->section_offsets)->offsets[i] = ANOFFSET (new_offsets, i);
}
if (objfile->ei.entry_point != ~(CORE_ADDR) 0)
{
/* Relocate ei.entry_point with its section offset, use SECT_OFF_TEXT
@ -684,6 +678,15 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
objfile->ei.entry_point += ANOFFSET (delta, SECT_OFF_TEXT (objfile));
}
{
int i;
for (i = 0; i < objfile->num_sections; ++i)
(objfile->section_offsets)->offsets[i] = ANOFFSET (new_offsets, i);
}
/* Rebuild section map next time we need it. */
objfiles_changed_p = 1;
/* Update the table in exec_ops, used to read memory. */
ALL_OBJFILE_OSECTIONS (objfile, s)
{
@ -695,7 +698,6 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
/* Relocate breakpoints as necessary, after things are relocated. */
breakpoint_re_set ();
objfiles_changed_p = 1; /* Rebuild section map next time we need it. */
}
/* Many places in gdb want to test just to see if we have any partial