Hi all,

Here's a problem I've wrestled with off and on... I have an aggregation
keyed off ustack(), and if the process exits before dtrace stops, I get
the usual hex garbage for the resulting stack frame printouts.

I know the usual way to deal with this is by stopping the process, but
proc:::exit occurs too late for that to stick (see, e.g.
http://www.mail-archive.com/dtrace-discuss@opensolaris.org/msg02123.html).
The solution given in that older message was to snag
syscall::rexit:entry, but that only catches normal exits. What is the
proper way to stop a process when it receives an unhandled signal or
aborts? There doesn't seem to be anything like proc:::signal-unhandled.

I can't grab the app with -p, so I'm just passing the pid as a script
param. Also, it's heavily multithreaded. Assertion failures can occur in
multiple threads simultaneously, for example. While I can catch SIGABORT
it would be nice to only catch the one that actually kills the process,
along with any other unhandled signals...

Any ideas?
Ryan



_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to