Em Sun, Jun 28, 2009 at 02:07:35PM -0700, Roland McGrath escreveu:
For me it is not relevant at all, I just need the type definitions and function parameter list, variable name/type, etc. Only in very specific cases I want addresses, and even then no need for relocations in most cases.
If you are dealing with an ET_REL file on an SHT_RELA architecture, then you need relocation of the pointers inside and between the different DWARF sections. In short, you can't handle an ET_REL file at all without doing some kind of relocation.
I'll look at the dwfl internals to figure out where is that it ends up using dwfl_linux_kernel_ prefixed routines...
Well, just set a breakpoint and look at the backtrace from your code. The only implicit calls to any such things in libdwfl come from the argp callbacks for -k/-K options.
Nevermind, it was a bug in the kernel perf tools, getting confused with prelinked libraries :-\
I fixed it and now it makes more sense and its in line with what oprofile reports:
[acme@doppio pahole]$ perf report --sort comm,dso,symbol --dsos /usr/lib64/libdw-0.141.so | head -20
# # (135909 samples) # # Overhead Command Shared Object Symbol # ........ ................ ......................... ...... # 43.39% pahole /usr/lib64/libdw-0.141.so [.] __libdw_find_attr 27.16% pahole /usr/lib64/libdw-0.141.so [.] __libdw_form_val_len 5.79% pahole /usr/lib64/libdw-0.141.so [.] lookup 4.99% pahole /usr/lib64/libdw-0.141.so [.] findcu_cb 4.14% pahole /usr/lib64/libdw-0.141.so [.] __dwarf_attr_internal 2.14% pahole /usr/lib64/libdw-0.141.so [.] __dwarf_siblingof_internal 1.13% pahole /usr/lib64/libdw-0.141.so [.] __libdw_findcu 0.98% pahole /usr/lib64/libdw-0.141.so [.] __libdw_get_uleb128 0.97% pahole /usr/lib64/libdw-0.141.so [.] dwarf_tag 0.94% pahole /usr/lib64/libdw-0.141.so [.] __libdw_formref 0.87% pahole /usr/lib64/libdw-0.141.so [.] __dwarf_formsdata_internal 0.83% pahole /usr/lib64/libdw-0.141.so [.] dwarf_decl_file 0.79% pahole /usr/lib64/libdw-0.141.so [.] dwarf_getsrclines [acme@doppio pahole]$
Sorry for the noise,
- Arnaldo