libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types.
New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index.
- New function dwarf_cfi_validate_fde.
libdwfl: Fixes in core-file handling, support cores from PIEs.
When working from build IDs, don't open a named file that mismatches.
+2010-06-23 Roland McGrath <roland@redhat.com>
+
+ * cfi.c (dwarf_cfi_validate_fde): Function removed.
+ * libdw.h: Remove it.
+ * libdw.map: Likewise.
+
2010-06-22 Roland McGrath <roland@redhat.com>
* dwarf_getlocation.c (check_constant_offset): data[48] are constant.
}
return result;
}
-
-int
-dwarf_cfi_validate_fde (cache, offset, start, end, signalp, encoding)
- Dwarf_CFI *cache;
- Dwarf_Off offset;
- Dwarf_Addr *start;
- Dwarf_Addr *end;
- bool *signalp;
- uint8_t *encoding;
-{
- if (cache == NULL)
- return -1;
-
- struct dwarf_fde *fde = __libdw_fde_by_offset (cache, offset);
- if (unlikely (fde == NULL))
- return -1;
-
- Dwarf_Frame *fs;
- int result = __libdw_frame_at_address (cache, fde, fde->end, &fs);
- if (unlikely (result != DWARF_E_NOERROR))
- {
- __libdw_seterrno (result);
- return -1;
- }
-
- result = fs->nregs + 1;
- free (fs);
-
- if (start != NULL)
- *start = fde->start;
- if (end != NULL)
- *end = fde->end;
- if (signalp != NULL)
- *signalp = fde->cie->signal_frame;
- if (encoding != NULL)
- *encoding = fde->cie->fde_encoding;
-
- return result;
-}
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. */
ELFUTILS_0.148 {
global:
- dwarf_cfi_validate_fde;
-
dwarf_lineisa;
dwarf_linediscriminator;
dwarf_lineop_index;