mm@chorus.fr (Marc Maathuis) (01/22/91)
When a process that is debugged (traced), i.e. which has made a ptrace(0,...) system call, makes an exec(2), it will be stopped before executing the first instruction, in order to pass control to the debugger. This allows the debugger to insert breakpoints in the text of the debuggee. In fact, when UNIX is handling the exec(2), it 1/ posts a SIGTRAP to the process, *and* 2/ sets the trace bit in the status register. It seems to me that either one these 2 is sufficient to stop the debuggee and pass control to the debugger. In fact the debugger gets control twice. My question: why both posting SIGTRAP *and* putting the process in trace mode? Please reply by email, since I usually don't read this group. I'll summarize if interest. Marc -- -- Marc Maathuis Tel +33 1 30 64 82 57 (direct) Chorus systemes Fax +33 1 30 57 00 66 6, avenue Gustave Eiffel E-mail: mm@chorus.fr (Internet) F-78182 St. Quentin en Yvelines Cedex France