Hi, I'm trying to follow the process creation code path from DTrace but something is missing:
First dtrace(1) calls: dtrace_proc_create() dt_proc_create() Pcreate() dt_proc_create_thread() pthread_create(..., dt_proc_control) dt_proc_control() sets the child running and expects all the rtld breakpoints to hit and also the main() breakpoint. Then dtrace(1) expects the childs to be stopped after returning from dtrace_proc_create() and calls dtrace_proc_continue(). What I'm missing is how this can happen since dt_proc_control() has a loop calling Psetrun(), which, according to my understanding, would set the child running until it died (and that's what's happening in FreeBSD). On a related note, I noticed that running 'dtrace -c ls' on Solaris produces 'dtrace: no probes specified' (because dtrace(1) never calls dtrace_proc_continue()), but on Mac OS X, 'dtrace -c ls' effectively runs ls(1) and then prints 'dtrace: no probes specified'. Any ideas? Thanks, -- Rui Paulo _______________________________________________ dtrace-discuss mailing list dtrace-discuss@opensolaris.org