Should SIGNAL_REPORT take preference to queued signal?

Roland McGrath roland at redhat.com
Fri Sep 4 20:06:31 UTC 2009


> However I was looking if there were reasons why "interrupt" from a
> tracing thread would be preferred over a "queued signal"?

This is the fundamental point of requesting utrace reports (either
UTRACE_REPORT or UTRACE_INTERRUPT)--the tracer gets control before any
user-visible action can happen.  Dequeuing a signal is a user-visible
action.

The problem you are having is that the signal you're concerned with is not
a "real" signal.  It's one that you have instigated.  This is a well-known
issue.  In fact, it's one of the motivating issues for utrace, but it's
always been a "fix this later on" plan.

You can see the same issue with ptrace today.  For example, if a debugger
is using single-step and then exits suddenly, there can be a pending
SIGTRAP left from the single-step, that then gets delivered to the process
after the debugger is no longer there to intercept it.

The eternal to-do list item for this is "utrace extension events".  In
short, to stop overloading signals for these debugger purposes and use a
dedicated utrace notification mechanism instead.  I've long had a few ideas
about the details of this, but it all remains to be fleshed out.  I don't
think we want to try to get into that until after the basic utrace code
gets merged upstream.


Thanks,
Roland




More information about the utrace-devel mailing list