public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: "Stone, Joshua I" <joshua.i.stone@intel.com>
To: <david_list@boreham.org>
Cc: "SystemTap" <systemtap@sources.redhat.com>
Subject: RE: user mode backtrace
Date: Fri, 20 Oct 2006 02:02:00 -0000	[thread overview]
Message-ID: <C56DB814FAA30B418C75310AC4BB279DCC3EBE@scsmsx413.amr.corp.intel.com> (raw)

On Thursday, October 19, 2006 4:25 PM, David Boreham wrote:
>> pid = fork_ptraceme_exec("myapp"); // start the app paused
>> stappid = fork_exec("stap myscript.stp -x " + pid); // start
>> systemtap ptrace(DETACH, pid, ...); // let the app run
>> 
>> 
> Actually I don't think this will help me because it looks like
> it assumes a specific target process. That's the specific problem that
> I have : I don't know which processes are going to be interesting
> in advance.

I just filter on a single tid because it's convenient.  The thing you
have to avoid is probing any of the processes you kick off, like the
pstack.  Otherwise you get yourself in a recursive loop, and
congratulations, you've just fork-bombed the system.  So it's hard to be
smart about which processes NOT to probe.  You could try filtering by
execname, if that's known.

If you can manage that your application is spawned from a central
process, you could try to follow forks from that process:

-----------------------------------------------
global filter
probe begin {
  filter[target()] = 1
}
probe process.create {
  if (filter[tid()])
    filter[new_pid] = 1
}
probe process.exit {
  delete filter[tid()]
}
-----------------------------------------------

Then instead of "if (target() != tid()) next;" you have "if
(!filter[tid()]) next;".


Josh

             reply	other threads:[~2006-10-20  2:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-20  2:02 Stone, Joshua I [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-10-20 18:34 Stone, Joshua I
2006-10-20  2:13 Stone, Joshua I
2006-10-19 22:56 Stone, Joshua I
2006-10-19 23:07 ` David Boreham
2006-10-19 23:24 ` David Boreham
2006-10-20  0:09 ` Frank Ch. Eigler
2006-10-19 20:47 David Boreham
2006-10-19 22:33 ` Vara Prasad
2006-10-19 22:51   ` David Boreham
2006-10-20 14:28     ` William Cohen
2006-10-20 14:50       ` David Boreham
2006-10-19 23:50 ` Frank Ch. Eigler
2006-10-20  0:15   ` David Boreham
2006-10-20  0:27     ` Frank Ch. Eigler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=C56DB814FAA30B418C75310AC4BB279DCC3EBE@scsmsx413.amr.corp.intel.com \
    --to=joshua.i.stone@intel.com \
    --cc=david_list@boreham.org \
    --cc=systemtap@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).