dwarf information missing. how to rescue?
Frank Ch. Eigler
fche@redhat.com
Sat Apr 1 21:43:00 GMT 2017
Shiyao Ma <i@introo.me> writes:
> [...]
> sudo stap -L 'kernel.function("tcp_cong_control")'
> gives this mere output:
> kernel.function("tcp_cong_control@./net/ipv4/tcp_input.c:3336")
>
> No params, locals are included.
> Should I recompile the kernel? if so, with what flags?
Over here on fedora 25, that function is inlined by the compiler, so a
compiler optimizer has to work hard to keep debuginfo correct &
available. I wonder if perhaps you're affected by a years-old kernel
error of judgement, wherein gcc's debuginfo generation is deliberately
hobbled. The HHGTG ^W systemtap release notes have had this to say:
- An upstream kernel commit #2062afb4f804a put
"-fno-var-tracking-assignments" into KCFLAGS, reducing debuginfo
quality which can cause debuginfo failures. A proposed workaround to
this issue exists in: https://lkml.org/lkml/2014/11/21/505 . Fedora
kernels are not affected by this issue.
If this may be affecting you, just nuke this line of the top level
kernel Makefile and rebuild it. Distros everywhere should do the same.
Makefile:
KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments)
- FChE
More information about the Systemtap
mailing list