summaryrefslogtreecommitdiffstats
path: root/libdw/libdw.h
diff options
context:
space:
mode:
authorRoland McGrath <[email protected]>2010-06-16 03:40:56 -0700
committerRoland McGrath <[email protected]>2010-06-16 11:16:45 -0700
commit3e4b5bbeca8987527c11a1ea048459a7ebd4ab5e (patch)
tree3d50b9a1c32c4c41eac398d9d6bd91b16e26c858 /libdw/libdw.h
parent5f4b5089e1e3ca3c696cb420a6e215006691cf95 (diff)
Add new dwarf_cfi_validate_fde call.
Diffstat (limited to 'libdw/libdw.h')
-rw-r--r--libdw/libdw.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libdw/libdw.h b/libdw/libdw.h
index 252361fc..75998e1a 100644
--- a/libdw/libdw.h
+++ b/libdw/libdw.h
@@ -799,6 +799,20 @@ extern int dwarf_frame_register (Dwarf_Frame *frame, int regno,
Dwarf_Op **ops, size_t *nops)
__nonnull_attribute__ (3, 4, 5);
+/* Look up the FDE described at OFFSET bytes into the CFI section,
+ and validate it by decoding the FDE fully. Returns -1 for errors.
+ On success, returns the maximum DWARF register number that this
+ FDE describes and fills *START and *END with the PC address range
+ this FDE covers, *SIGNALP with whether this is a signal frame, and
+ *ENCODING with the pointer encoding used in this FDE. This is not
+ necessarily the exact encoding byte given in the augmentation string;
+ it will describe the exact address size used (DW_EH_PE_udata4 or
+ DW_EH_PE_udata8) if a DW_EH_PE_absptr encoding is being used. */
+extern int dwarf_cfi_validate_fde (Dwarf_CFI *cache,
+ Dwarf_Off offset,
+ Dwarf_Addr *start, Dwarf_Addr *end,
+ bool *signalp, uint8_t *encoding);
+
/* Return error code of last failing function call. This value is kept
separately for each thread. */