libunwind-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libunwind-devel] dwarf_find_debug_frame no longer exported - possibly b


From: Luke Diamand
Subject: [Libunwind-devel] dwarf_find_debug_frame no longer exported - possibly breaks perf callchain support?
Date: Sat, 17 Mar 2018 15:07:39 +0000

In b56e4cb88989f82988a6a70acb32e187e88b5cac ("ALIAS dwarf symbols"),
dwarf_find_debug_frame() went from being public to hidden. I could be
wrong about this, but I think this may stop perf from using libunwind.

This is the change:

-int
+HIDDEN int
 dwarf_find_debug_frame (int found, unw_dyn_info_t *di_debug, unw_word_t ip,

Here's the code in tools/build/feature/test-libunwind-debug-frame.c

 extern int
UNW_OBJ(dwarf_find_debug_frame) (int found, unw_dyn_info_t *di_debug,
                                 unw_word_t ip, unw_word_t segbase,
                                 const char *obj_name, unw_word_t start,
                                 unw_word_t end);

#define dwarf_find_debug_frame UNW_OBJ(dwarf_find_debug_frame)

int main(void) {
    dwarf_find_debug_frame(0, NULL, 0, 0, NULL, 0, 0);
    return 0;
}

(And it gets used inside perf to actually find the debug frames).

I'm not a perf expert *or* a libunwind expert. Experimentally I find
that with libunwind 1.3 I don't get callstacks in perf unless I get
rid of the HIDDEN.

Am I missing something obvious?

Thanks
Luke

(Sorry, not forgotten about the performance problem, I've just not
found time to look at it).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]