public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* put probes on a specific line
@ 2006-10-10  3:06 Li Guanglei
  2006-10-10 16:40 ` Frank Ch. Eigler
  0 siblings, 1 reply; 3+ messages in thread
From: Li Guanglei @ 2006-10-10  3:06 UTC (permalink / raw)
  To: systemtap

Hi,

   I ever thought that kernel.function("*@kernel/signal.c:734") will 
put a probe on line 734. But after testing and reading the stapprobes 
man page, that actually refers to any functions within the 
"kernel/signal.c" file that span line 734, i.e, it equals to 
kernel.function("send_signal"). So it seems to me the only way to put 
probe on a specific line is to use kernel.statements(0x....). But this 
is really troublesome and inconvenient for me. Sometimes I need to 
visit some local variables and their valid location range is beyond 
the function prologue, so using kernel.function(..@lineno) will 
complain not finding that variable.

  So I think it is really helpful if 
kernel.function("*@kernel/signal.c:734") could act as I expected 
before, that is, it will put a probe on line 734 of signal.c. Or else 
SystemTap is of little help to probe somewhere inside a function and 
visit some of its local variables, and I think these are important for 
problem diagnosis.

- Guanglei

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: put probes on a specific line
  2006-10-10  3:06 put probes on a specific line Li Guanglei
@ 2006-10-10 16:40 ` Frank Ch. Eigler
  2006-10-11  0:23   ` Li Guanglei
  0 siblings, 1 reply; 3+ messages in thread
From: Frank Ch. Eigler @ 2006-10-10 16:40 UTC (permalink / raw)
  To: Li Guanglei; +Cc: systemtap

Li Guanglei <guanglei@cn.ibm.com> writes:

>    I ever thought that kernel.function("*@kernel/signal.c:734") will
> put a probe on line 734. But after testing and reading the stapprobes
> man page, that actually refers to any functions within the
> "kernel/signal.c" file that span line 734, i.e, it equals to
> kernel.function("send_signal"). So it seems to me the only way to put
> probe on a specific line is to use kernel.statements(0x....). [...]

Not so: kernel.statement() accepts the same string-based specification
of a probe point as kernel.function() does:

   kernel.statement("*@kernel/signal.c:734")

The "function" and "statement" terms are intentional and significant.

- FChE

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: put probes on a specific line
  2006-10-10 16:40 ` Frank Ch. Eigler
@ 2006-10-11  0:23   ` Li Guanglei
  0 siblings, 0 replies; 3+ messages in thread
From: Li Guanglei @ 2006-10-11  0:23 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: systemtap

Frank Ch. Eigler wrote:
> Li Guanglei <guanglei@cn.ibm.com> writes:
> 
>>    I ever thought that kernel.function("*@kernel/signal.c:734") will
>> put a probe on line 734. But after testing and reading the stapprobes
>> man page, that actually refers to any functions within the
>> "kernel/signal.c" file that span line 734, i.e, it equals to
>> kernel.function("send_signal"). So it seems to me the only way to put
>> probe on a specific line is to use kernel.statements(0x....). [...]
> 
> Not so: kernel.statement() accepts the same string-based specification
> of a probe point as kernel.function() does:
> 
>    kernel.statement("*@kernel/signal.c:734")
> 
> The "function" and "statement" terms are intentional and significant.
> 
> - FChE

Thanks. It works :)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-10-11  0:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-10-10  3:06 put probes on a specific line Li Guanglei
2006-10-10 16:40 ` Frank Ch. Eigler
2006-10-11  0:23   ` Li Guanglei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).