unwind: call unwind_tcb_fin before printing detached message
captured stacktrace is printed in unwind_tcb_fin if tcp->queue is not
empty. This should happen before printing detached message, so
unwind_tcb_fin is moved to the top of droptcb.
This is implicitly suggested by Dmitry Levin in patch review process.
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
diff --git a/strace.c b/strace.c
index f8d5cb7..fe197e5 100644
--- a/strace.c
+++ b/strace.c
@@ -724,6 +724,12 @@
if (tcp->pid == 0)
return;
+#ifdef USE_LIBUNWIND
+ if (stack_trace_enabled) {
+ unwind_tcb_fin(tcp);
+ }
+#endif
+
nprocs--;
if (debug_flag)
fprintf(stderr, "dropped tcb for pid %d, %d remain\n", tcp->pid, nprocs);
@@ -745,11 +751,6 @@
if (printing_tcp == tcp)
printing_tcp = NULL;
-#ifdef USE_LIBUNWIND
- if (stack_trace_enabled) {
- unwind_tcb_fin(tcp);
- }
-#endif
memset(tcp, 0, sizeof(*tcp));
}