This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to track the functions in self-written module using SystemTap?


On 10/06/2016 05:05 PM, Martin Cermak wrote:
> On  Mon  2015-12-07  13:53 , David Smith wrote:
>> 1) Make sure your kernel was compiled with frame pointer support (which
>> it should if it is a standard RHEL kernel):
>>
>> # fgrep FRAME_POINTER /boot/config-`uname -r`
>> CONFIG_SCHED_OMIT_FRAME_POINTER=y
>> CONFIG_ARCH_WANT_FRAME_POINTERS=y
>> CONFIG_FRAME_POINTER=y
>>
>> 2) Let's make sure your module still has debuginfo present. First, run
>> "file" on your module, making sure it says "not stripped". Then go a bit
>> deeper and run "readelf --sections" on your module - there should be
>> several sections that start with '.debug', including one called
>> '.debug_frame'.
> 
> I'm traying to trace my own stap module too.  I'm using stap -B
> CONFIG_DEBUG_INFO=y to put the dfebuginfo into the module.
> However, this way I seem to get the '.debug_frame' section on
> RHEL6, but not on RHEL7 or recent Fedora.  Because of this I'm
> failing to get reasonable backtraces.  Any workaround?

We actually test this in the systemtap.context/context.exp test case. It
builds 2 external modules and tries to get backtraces from them (among
other things). On RHEL7.2 ppc64, the backtrace tests don't pass, but I
think that's really a test case problem.

====
backtrace from
module("systemtap_test_module2").function("yyy_func2@/root/rhel7-2.ppc64/testsuite/artifacts/systemtap.context/context/staptestMS19Tt/systemtap_test_module2.c:33"):
 0xd000000006fd00a0 : yyy_func2+0x0/0x30 [systemtap_test_module2]
 0xd000000006fd00e0 : yyy_func1+0x10/0x0 [systemtap_test_module2]
 0xd0000000082c01b8 : stm_write_cmd+0x1b8/0x200 [systemtap_test_module1]
 0x0 (inexact)
====

The test case expects the '0x0 (inexact)' line to be from the kernel.
This might be a ppc64-specific problem. But, the backtrace from the
modules themselves look fine.

Does your systemtap.context/context.exp test case output look similar?

-- 
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]