Track the method used to unwind each Dwfl_Frame using an enum field
unwound_source; provide access to the field. Then use that in
eu-stacktrace to display the unwind methods used for each process.
This is an important diagnostic to verify how many processes are
adequately covered by the eh_frame unwinder.
* libdw/libdw.map (ELFUTILS_0.192): Add dwfl_frame_unwound_source,
dwfl_unwound_source_str.
* libdwfl/libdwfl.h (Dwfl_Unwound_Source): New enum.
(dwfl_frame_unwound_source)
(dwfl_unwound_source_str): New functions.
* libdwfl/dwfl_frame.c (dwfl_frame_unwound_source)
(dwfl_unwound_source_str): New functions.
* libdwfl/libdwflP.h: Add INTDECL for dwfl_frame_unwound_source,
dwfl_unwound_source_str.
(struct Dwfl_Frame): Add unwound_source field.
* libdwfl/frame_unwind.c (__libdwfl_frame_unwind): Set
state->unwound_source depending on the unwind method used.
* src/stacktrace.c (struct sysprof_unwind_info): Add last_pid
field to provide access to the current sample's dwfltab entry.
(sysprof_unwind_frame_cb): Add unwound_source to the data displayed
with the show_frames option.
(sysprof_unwind_cb): Set last_pid when processing a sample.
(main): Add unwind_source to the data displayed in the final summary
table.