unsigned long regs[FRAME_SIZE]; if(ptrace(PTRACE_GETREGS, pid, 0, regs) < 0) printk("Failed to get registers from stub, " "errno = %d\n", errno); else { int i;  printk("Stub registers -\n"); for(i = 0; i < FRAME_SIZE; i++) printk("\t%d - %lx\n", i, regs[i]); } 
void wait_stub_done(int pid, int sig, char * fname){        int n, status, err;        do {                if ( sig != -1 ) {                        err = ptrace(PTRACE_CONT, pid, 0, sig);                        if(err)                                panic("%s : continue failed, errno = %d\n",                                      fname, errno);                }                sig = 0;                CATCH_EINTR(n = waitpid(pid, &status, WUNTRACED));        } while((n >= 0) && WIFSTOPPED(status) &&                ((WSTOPSIG(status) == SIGVTALRM) ||		 /* running UML inside a detached screen can cause		  * SIGWINCHes		  */		 (WSTOPSIG(status) == SIGWINCH)));        if((n < 0) || !WIFSTOPPED(status) ||           (WSTOPSIG(status) != SIGUSR1 && WSTOPSIG(status) != SIGTRAP)){                panic("%s : failed to wait for SIGUSR1/SIGTRAP, "                      "pid = %d, n = %d, errno = %d, status = 0x%x\n",                      fname, pid, n, errno, status);        }}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/953206858070e5921b9d5931c293ec983a6790cb/process.c/clean/arch/um/kernel/skas/process.c