This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
process().statement() doesn't seem to work
- From: Zoltan Kiss <zoltan dot kiss at linaro dot org>
- To: systemtap at sourceware dot org
- Date: Fri, 26 Jun 2015 19:58:43 +0100
- Subject: process().statement() doesn't seem to work
- Authentication-results: sourceware.org; auth=none
Hi,
I want to use systemtap to figure out the local variables in a function
where something goes fishy. The function's code is here:
http://dpdk.org/browse/dpdk/tree/lib/librte_pmd_ixgbe/ixgbe_rxtx.c?id=v1.7.1#n1313
It's a receive function of DPDK's userspace poll mode driver, so it's
called in an infinite loop. When I try this, it appers to work:
probe
process("/usr/sbin/ovs-vswitchd").function("ixgbe_recv_scattered_pkts").return
{
log($$locals)
exit();
}
The output is:
rxq=0x7fff852ee000 rx_ring=? rxdp=? sw_ring=? rxe=? first_seg=?
last_seg=? rxm=? nmb=? rxd={...} dma=? staterr=? hlen_type_rss=? rx_id=?
nb_rx=0x0 nb_hold=0x0 data_len=? pkt_flags=?
But it doesn't show most of the variables I need. It returns nb_rx=0, so
I know where are the two points where things can go wrong, but I can't
see the output of those variables (staterr and nmb)
When I try to define the probe as this:
probe
process("/usr/sbin/ovs-vswitchd").statement("*@lib/librte_pmd_ixgbe/ixgbe_rxtx.c:1359")
Or with any line number inside that function, the probe is never
reached. I'm using gcc 4.8.4, DPDK is statically linked to my application.
Does anyone have an idea what might went wrong?
Regards,
Zoltan Kiss