From: Rod Armstrong (rod_at_san-jose.tt.slb.com)
Date: Tue May 21 2002 - 19:31:21 BST
>From: "Tom S" <tom_mee_at_hotmail.com> >To: rod_at_san-jose.tt.slb.com >Subject: UPS tracing >Date: Fri, 17 May 2002 21:45:41 +0000 > >Hi Rod, > >Could you tell me how to instruct UPS to follow the child process after >doing a 'fork', or if it is even possible. > >Thanks in advance, >Tom. > > Tom, You will need to attach another ups to the forked process. Assuming that you want to debug the child from the beginning, you can use breakpoint code in the parent to stop it running. An alternative is to spawn ups on the child (maybe using a script) rather than forking the child directly. I did this on Solaris: 1. ups parent & The parent code did this: if((child_pid = vfork()) == FALSE) { /* this is the child */ .... } else { /* this is the parent */ kill(child_pid, 23); <<< insert this breakpoint code. 23 is SIGSTOP printf("child pid is %d\n", child_pid); << breakpoint code to get pid .... } 2. Use the pid printed out to start ups on the stopped child: ups child <pid> & 3. Continue the child: kill -CONT <pid> 4. In the child ups, put a break on main() or whatever, and continue. Rod
This archive was generated by hypermail 2.1.4 : Thu May 23 2002 - 15:54:14 BST