X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fdwarf2-frame.h;h=d02b26f5f530832d8df381e1c5db1426070b1b84;hb=7674d381b47f9f2411c0ca1da0c152940dc0d7bd;hp=bf7134de28f4e58ab48e80e7df8428b7d79afcb4;hpb=7b6bb8daaceb9ecf3f42dea57ae82733d6a3b2f6;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h index bf7134de28..d02b26f5f5 100644 --- a/gdb/dwarf2-frame.h +++ b/gdb/dwarf2-frame.h @@ -1,7 +1,6 @@ /* Frame unwinder for frames with DWARF Call Frame Information. - Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 2003-2016 Free Software Foundation, Inc. Contributed by Mark Kettenis. @@ -26,6 +25,9 @@ struct gdbarch; struct objfile; struct frame_info; +struct dwarf2_per_cu_data; +struct agent_expr; +struct axs_value; /* Register rule. */ @@ -118,4 +120,26 @@ extern const struct frame_base * CORE_ADDR dwarf2_frame_cfa (struct frame_info *this_frame); +/* Find the CFA information for PC. + + Return 1 if a register is used for the CFA, or 0 if another + expression is used. Throw an exception on error. + + GDBARCH is the architecture to use. + DATA is the per-CU data. + + REGNUM_OUT is an out parameter that is set to the register number. + OFFSET_OUT is the offset to use from this register. + These are only filled in when 1 is returned. + + TEXT_OFFSET_OUT, CFA_START_OUT, and CFA_END_OUT describe the CFA + in other cases. These are only used when 0 is returned. */ + +extern int dwarf2_fetch_cfa_info (struct gdbarch *gdbarch, CORE_ADDR pc, + struct dwarf2_per_cu_data *data, + int *regnum_out, LONGEST *offset_out, + CORE_ADDR *text_offset_out, + const gdb_byte **cfa_start_out, + const gdb_byte **cfa_end_out); + #endif /* dwarf2-frame.h */