diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-06-29 22:19:24 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-06-29 22:19:24 +0000 |
commit | 03e6b095c94ceec596c2e8838fe3d84111b3400d (patch) | |
tree | fe552def552fe5b1bcfc5ed81e001365aea0f8bd /gdb/i386-tdep.c | |
parent | fb2f27d359791abbf8ca89dec520d5a1cbdad1d9 (diff) | |
download | gdb-03e6b095c94ceec596c2e8838fe3d84111b3400d.tar.gz |
gdb/
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.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r-- | gdb/i386-tdep.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index ab266eff154..366d0fa8491 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -1885,6 +1885,11 @@ static int i386_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. */ |