+Mon Nov 7 22:25:21 1994 Jeff Law (law@snake.cs.utah.edu)
+
+ * Enable backtracing from inside a SOM shared library back into
+ user code.
+ * hppa-tdep.c (internalize_unwinds): Accept and use new
+ "text_offset" argument for dynamic relocation of
+ region_{start,end} fields in the unwind descriptor.
+ (read_unwind_info): Pass text_offset to internalize unwinds.
+
Mon Nov 7 14:34:42 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
* m3-nat.c: Remove comments about arbitrary limit in
static void internalize_unwinds PARAMS ((struct objfile *,
struct unwind_table_entry *,
asection *, unsigned int,
- unsigned int));
+ unsigned int, CORE_ADDR));
\f
/* Routines to extract various sized constants out of hppa
}
static void
-internalize_unwinds (objfile, table, section, entries, size)
+internalize_unwinds (objfile, table, section, entries, size, text_offset)
struct objfile *objfile;
struct unwind_table_entry *table;
asection *section;
unsigned int entries, size;
+ CORE_ADDR text_offset;
{
/* We will read the unwind entries into temporary memory, then
fill in the actual unwind table. */
{
table[i].region_start = bfd_get_32 (objfile->obfd,
(bfd_byte *)buf);
+ table[i].region_start += text_offset;
buf += 4;
table[i].region_end = bfd_get_32 (objfile->obfd, (bfd_byte *)buf);
+ table[i].region_end += text_offset;
buf += 4;
tmp = bfd_get_32 (objfile->obfd, (bfd_byte *)buf);
buf += 4;
unsigned unwind_size, elf_unwind_size, stub_unwind_size, total_size;
unsigned index, unwind_entries, elf_unwind_entries;
unsigned stub_entries, total_entries;
+ CORE_ADDR text_offset;
struct obj_unwind_info *ui;
+ text_offset = ANOFFSET (objfile->section_offsets, 0);
ui = obstack_alloc (&objfile->psymbol_obstack,
sizeof (struct obj_unwind_info));
/* Internalize the standard unwind entries. */
index = 0;
internalize_unwinds (objfile, &ui->table[index], unwind_sec,
- unwind_entries, unwind_size);
+ unwind_entries, unwind_size, text_offset);
index += unwind_entries;
internalize_unwinds (objfile, &ui->table[index], elf_unwind_sec,
- elf_unwind_entries, elf_unwind_size);
+ elf_unwind_entries, elf_unwind_size, text_offset);
index += elf_unwind_entries;
/* Now internalize the stub unwind entries. */