== unwinders == What's commonly called a "DWARF unwinder" is in fact a conflation of two or three separate things whose issues are quite different. * the ''static'' component is what DWARF CFI is about This entails resolving for a given PC what the rules are for finding the CFA and the caller's registers (including return address). We already have this implemented in libdw, the interfaces using '''Dwarf_Frame''' are where it is. * the ''dynamic'' component is applying those rules to particular register and memory contents, which where the actual "unwinding" happens. The libdw CFI interfaces turn the CFI data for a given PC into the terms of DWARF location expressions. This should be wed with DwarfLocations stuff and with components for gleaning register and memory data from the ELF notes and data segments of a core file, or other sources like live debugging interfaces, to yield the unwinding functionality.