From: Denys Vlasenko Date: Fri, 24 Jun 2011 14:51:16 +0000 (+0200) Subject: Add debug output in initial attachment code X-Git-Tag: v4.7~345 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f95397afb8aadf017b2d3d42056c5929dbf16775;p=strace Add debug output in initial attachment code * strace.c (startup_attach): If -d, report pid and success/failure of every attach attempt. Signed-off-by: Denys Vlasenko --- diff --git a/strace.c b/strace.c index d6788d5d..f22375ae 100644 --- a/strace.c +++ b/strace.c @@ -471,13 +471,20 @@ startup_attach(void) if (tid <= 0) continue; ++ntid; - if (ptrace(PTRACE_ATTACH, tid, (char *) 1, 0) < 0) + if (ptrace(PTRACE_ATTACH, tid, (char *) 1, 0) < 0) { ++nerr; - else if (tid != tcbtab[tcbi]->pid) { - tcp = alloctcb(tid); - tcp->flags |= TCB_ATTACHED|TCB_CLONE_THREAD; - tcbtab[tcbi]->nclone_threads++; - tcp->parent = tcbtab[tcbi]; + if (debug) + fprintf(stderr, "attach to pid %d failed\n", tid); + } + else { + if (debug) + fprintf(stderr, "attach to pid %d succeeded\n", tid); + if (tid != tcbtab[tcbi]->pid) { + tcp = alloctcb(tid); + tcp->flags |= TCB_ATTACHED|TCB_CLONE_THREAD; + tcbtab[tcbi]->nclone_threads++; + tcp->parent = tcbtab[tcbi]; + } } if (interactive) { sigprocmask(SIG_SETMASK, &empty_set, NULL); @@ -508,6 +515,8 @@ startup_attach(void) droptcb(tcp); continue; } + if (debug) + fprintf(stderr, "attach to pid %d (main) succeeded\n", tcp->pid); /* INTERRUPTED is going to be checked at the top of TRACE. */ if (daemonized_tracer) { @@ -528,7 +537,7 @@ startup_attach(void) fprintf(stderr, "Process %u attached - interrupt to quit\n", tcp->pid); - } + } /* for each tcbtab[] */ if (interactive) sigprocmask(SIG_SETMASK, &empty_set, NULL);