Disable epilogue unwinders on recent GCCs.
	* amd64-tdep.c (amd64_in_function_epilogue_p): New variable symtab,
	initialize it, return 0 on EPILOGUE_UNWIND_VALID.
	* dwarf2read.c (process_full_comp_unit): Initialize
	EPILOGUE_UNWIND_VALID.
	* i386-tdep.c (i386_in_function_epilogue_p): New variable symtab,
	initialize it, return 0 on EPILOGUE_UNWIND_VALID.
	* symtab.h (struct symtab): New field epilogue_unwind_valid.
This commit is contained in:
Jan Kratochvil
2011-06-29 22:19:24 +00:00
parent 4632c0d0ff
commit e0d00bc749
5 changed files with 29 additions and 0 deletions

View File

@@ -2219,6 +2219,11 @@ static int
amd64_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
{
gdb_byte insn;
struct symtab *symtab;
symtab = find_pc_symtab (pc);
if (symtab && symtab->epilogue_unwind_valid)
return 0;
if (target_read_memory (pc, &insn, 1))
return 0; /* Can't read memory at pc. */