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