Queries on SystemTap - with focus on User Space debugging

Frank Ch. Eigler fche@redhat.com
Thu May 26 10:24:00 GMT 2011


Hi -

On Thu, May 26, 2011 at 03:24:54PM +0530, Manjusha Ajay wrote:
> [...]
> probe kernel.function("send_sig") {
> if ($sig == 11 && p && task_pid(p) == target()) {
>      print_ubacktrace()
>   }
> }
> 
> Also got a warning when I ran the above script
> 
> > stap -c "./test_segfault' test.stp
> WARNING:  read-only local variable 'p'  : identifier 'p' at test.stp:19:20

Ah yes, an appropriate warning: I meant $p instead of p above,
since we're trying to extract the p parameter from the context
of the send_sig function call.

It appears difficult to place an architecture-neutral kernel probe at
the point where a page fault is about to be declared a SIGSEGV type
error.  Might try kernel.function("force_sig_info") instead,
filtering on $sig==11.

> I had also tried adding probe kernel.function("send_signal") which was
> hit, but then print_ubacktrace gave me the kernel stack trace [...]

I can't explain that, except something fuzzy perhaps: by then, the
process context has been munged enough that user-space unwinding can't
find its starting points.

- FChE



More information about the Systemtap mailing list