diff options
Diffstat (limited to 'libdw/libdw.h')
| -rw-r--r-- | libdw/libdw.h | 14 |
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. */ |
