Hi: I've been trying to use the latest unwind library with my app on x86-64 for remote unwinding of a (live) target process. I seem to be confused about the use of my own accessor functions as sent to unw_create_addr_space().
First, the find_proc_info callback seems to want (using the example in the src/ptrace/ directory) a highly specific data structure passed back in the "unwind_info" field: a dwarf_cie_info_t data structure, that isn't defined in any exported libunwind header files. It seems very strange that I'm able to specify my own callback function, yet if I do, I'm required to borrow lots of code in order to cobble up the unwind information in a form that the library wants. It also forces me to understand a lot of the Dwarf unwind info, which seems less than ideal; why not just pass information sucked out of the .eh_frame section, and let the library parse it itself?? Second, I'm never seeing my "put_unwind_info" callback being called. From what I can tell from the libunwind sources, it appears that this callback is invoked ONLY for dynamic proc/unwind info -- not for "normal" (static) unwind info (see src/dwarf/Gparser.c::put_unwind_info() ). Am I missing something? Thanks, Curt _______________________________________________ Libunwind-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/libunwind-devel
