From: Masatake YAMATO Date: Thu, 19 Apr 2018 08:49:47 +0000 (+0900) Subject: unwind: initialize unwind context only if given tcb is initialized X-Git-Tag: v4.23~316 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=98d3356b04fb73eb403b06a0b79bdf4d91458ca3;p=strace unwind: initialize unwind context only if given tcb is initialized With libdw based unwinder, following warnings are reported when -p is passed before -k: $ ./strace -p 1 -k ... ./strace: dwfl_linux_proc_attach returned an error for process 0: No such file or directory ... It seems that commit 54c7792b, "Fix libunwind segfault when -p is passed before -k" doesn't fix the original issue. * strace.c (init) [ENABLE_STACKTRACE]: Initialize unwind context only if given tcb is initialized. Signed-off-by: Masatake YAMATO --- diff --git a/strace.c b/strace.c index f50b6256..b614cfc0 100644 --- a/strace.c +++ b/strace.c @@ -1783,6 +1783,8 @@ init(int argc, char *argv[]) unwind_init(); for (tcbi = 0; tcbi < tcbtabsize; ++tcbi) { + if (!tcbtab[tcbi]->pid) + continue; unwind_tcb_init(tcbtab[tcbi]); } }