This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: dwarf information missing. how to rescue?
Hi,
I am on Debian sid with kernel 4.9.
How did you find out the function `tcp_cong_control' is compiled
inline? Grepping /proc/kallsyms and didn't find it?
Thanks.
Best.
On Sun, Apr 2, 2017 at 5:43 AM, Frank Ch. Eigler <fche@redhat.com> wrote:
> 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