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 | e0d00bc749e6b35f45c3497a55c9d2b0606b33d2 (patch) | |
tree | 836d19cf711688fa0240628fb192a86c4b758a31 /gdb/amd64-tdep.c | |
parent | 4632c0d0fff081cb28947ede3d6804e8a470423c (diff) | |
download | gdb-e0d00bc749e6b35f45c3497a55c9d2b0606b33d2.zip gdb-e0d00bc749e6b35f45c3497a55c9d2b0606b33d2.tar.gz gdb-e0d00bc749e6b35f45c3497a55c9d2b0606b33d2.tar.bz2 |
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/amd64-tdep.c')
-rw-r--r-- | gdb/amd64-tdep.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index 8dc4363..4524f03 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -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. */ |