Em Thu, Aug 04, 2016 at 09:48:57AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Thu, Aug 04, 2016 at 03:32:21PM +0900, Masami Hiramatsu escreveu:
> > FYI, if perf-probe failed to find the symbol in debuginfo, it tries to find 
> > its address
> > from symbol table(kallsyms, here), and then tries to convert the address to 
> > the symbol
> > in debuginfo again. It seems that in your case this convert process is 
> > failed.
 
> Yeah, that is what is failing for me.

[root@jouet ~]# grep ffffffffbd295b50 /proc/kallsyms 
ffffffffbd295b50 T SyS_epoll_wait
ffffffffbd295b50 T sys_epoll_wait
[root@jouet ~]# 

Adding some printfs in debuginfo__find_probe_point()

Using /lib/modules/4.7.0+/build/vmlinux for symbols
Open Debuginfo file: /lib/modules/4.7.0+/build/vmlinux
Try to find probe point from debuginfo.
Symbol sys_epoll_wait address found : ffffffffbd295b50
dwarf_addrdie(ffffffffbd295b50)
dwarf_addrdie(ffffffffbd295b50)
Failed to find debug information for address ffffffffbd295b50
Probe point 'sys_epoll_wait' not found.
  Error: Failed to add events. Reason: No such file or directory (Code: -2)
[root@jouet ~]# grep ffffffffbd295b50 /proc/kallsyms 
ffffffffbd295b50 T SyS_epoll_wait
ffffffffbd295b50 T sys_epoll_wait
[root@jouet ~]#

So:

int err = debuginfo__get_text_offset(dbg, &baseaddr);

is returning 0, no relocation, its dwarf_addrdie() that is not finding
SyS_epoll_wait from its address.

Trying to figure out why dwarf_addrdie(0xffffffffbd295b50) fails...

- Arnaldo

> > Then, could you grep DEBUG_INFO in .config? I guess your kernel enables some
> > reduced debuginfo related config enabled...
 
> If that is the case, then we better add a proper warning because this is
> very subtle :-)
 
> Checking...
 
> [acme@jouet linux]$ grep ^CONFIG_DEBUG_ ../build/v4.7.0+/.config | grep 
> 'INFO\|REDUCED'
> CONFIG_DEBUG_INFO=y
> [acme@jouet linux]$ 
> 
> Nope.
> 
> - Arnaldo

Reply via email to