jkenisto wrote [untrimmed for forwarding to utrace-devel]: > [...] > Uprobes maintains one utrace engine per probed task. When > instrumentation modules A and B register uprobes at the same address, > and that probepoint gets hit, uprobes's signal (SIGTRAP) callback gets > called (once). It calls both A's and B's handlers (a la aggregate > kprobes), then eats the SIGTRAP. > > If A and B each got its own engine, then what would uprobes's callback > do? If the callback eats the SIGTRAP, then the 2nd handler never gets > called. If it doesn't eat the SIGTRAP, the probed process takes the > SIGTRAP and dies. We could work up some new way that A and B could > coordinate this sort of thing, but then we're back to needing some sort > of shared (among instrumentation modules) data structures. And what we > have now works just fine. This is probably related to Roland's "engine interaction" note (http://tinyurl.com/22jt2o). It would be nice if concurrent engines could nest transparently - or failing that, at least be aware of each other enough to get this right. - FChE