X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Ftramp-frame.h;h=ff2e8b6c296e63936af4561235de83b0baac6fc7;hb=e98ee8c458f3a8405eb93e71b00f801b4bbe3635;hp=8bfad2c7fc0cd14245c7844899a7ad4f40ea2806;hpb=7b6bb8daaceb9ecf3f42dea57ae82733d6a3b2f6;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/tramp-frame.h b/gdb/tramp-frame.h index 8bfad2c7fc..ff2e8b6c29 100644 --- a/gdb/tramp-frame.h +++ b/gdb/tramp-frame.h @@ -1,7 +1,6 @@ /* Signal trampoline unwinder. - Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 2004-2018 Free Software Foundation, Inc. This file is part of GDB. @@ -42,7 +41,7 @@ struct trad_frame_cache; /* Magic instruction that to mark the end of the signal trampoline instruction sequence. */ -#define TRAMP_SENTINEL_INSN ((LONGEST) -1) +#define TRAMP_SENTINEL_INSN ULONGEST_MAX struct tramp_frame { @@ -70,6 +69,13 @@ struct tramp_frame struct frame_info *this_frame, struct trad_frame_cache *this_cache, CORE_ADDR func); + /* Return non-zero if the tramp-frame is valid for the PC requested. + Adjust the PC to point to the address to check the instruction + sequence against if required. If this is NULL, then the tramp-frame + is valid for any PC. */ + int (*validate) (const struct tramp_frame *self, + struct frame_info *this_frame, + CORE_ADDR *pc); }; void tramp_frame_prepend_unwinder (struct gdbarch *gdbarch,