Blame SOURCES/0041-tests-add-strace-k-p-test.patch

b484ca
From 8e515c744935fe67e6a1b941f4c5414472c163b7 Mon Sep 17 00:00:00 2001
b484ca
From: Eugene Syromyatnikov <evgsyr@gmail.com>
b484ca
Date: Mon, 20 Jan 2020 16:19:40 +0100
b484ca
Subject: [PATCH] tests: add strace-k-p test
b484ca
b484ca
Add a check of the stack unwinding for attached processes.
b484ca
b484ca
* tests/stack-fcall-attach.c: New file.
b484ca
* tests/strace-k-p.expected: Likewise.
b484ca
* tests/strace-k-p.test: New test.
b484ca
* tests/Makefile.am (EXTRA_DIST): Add strace-k-p.expected and strace-k-p.test.
b484ca
(STACKTRACE_TESTS): Add strace-k-p.test
b484ca
(check_PROGRAMS): Add stack-fcall-attach.
b484ca
(stack_fcall_attach_SOURCES): New variable.
b484ca
* tests/stack-fcall.c: Include "tests.h" and <unistd.h>.
b484ca
[!ATTACH_MODE] (ATTACH_MODE): Define to 0.
b484ca
(main) [ATTACH_MODE]: Wait a bit.
b484ca
* tests/strace-k.test: Add attach mode.
b484ca
b484ca
Complements: v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache"
b484ca
---
b484ca
Backport changes:
b484ca
 * "SIGURG" line has been removed from tests/strace-k-p.expected, as it requires
b484ca
   v4.25~22 "Print stack traces on signals" and v4.25~21 "tests: check stack
b484ca
   unwinding for signals".
b484ca
 * "chdir" usage in tests/strace-k-p.expected has been replaced with "getpid",
b484ca
    as it is the syscall that was used in the stack-fcall.c at the time.
b484ca
 * Added the respective changes to tests/Makefile.in file.
b484ca
 * The changes to tests/stack-fcall-attach.c, tests/strace-k-p.expected,
b484ca
   tests/strace-k-p.test, tests/Makefile.am, tests/stack-fcall.c,
b484ca
   and tests/strace-k.test have been copied over to tests-m32 and tests-mx32
b484ca
   directories.
b484ca
b484ca
---
b484ca
 tests/Makefile.am          |  8 +++++++-
b484ca
 tests/stack-fcall-attach.c |  2 ++
b484ca
 tests/stack-fcall.c        | 11 +++++++++++
b484ca
 tests/strace-k-p.expected  |  2 ++
b484ca
 tests/strace-k-p.test      | 13 +++++++++++++
b484ca
 tests/strace-k.test        | 17 ++++++++++++++++-
b484ca
 6 files changed, 51 insertions(+), 2 deletions(-)
b484ca
 create mode 100644 tests/stack-fcall-attach.c
b484ca
 create mode 100644 tests/strace-k-p.expected
b484ca
 create mode 100755 tests/strace-k-p.test
b484ca
b484ca
Index: strace-4.24/tests/Makefile.am
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests/Makefile.am	2020-01-23 14:58:43.424959638 +0100
b484ca
+++ strace-4.24/tests/Makefile.am	2020-01-23 14:58:43.440959144 +0100
b484ca
@@ -156,6 +156,7 @@
b484ca
 	signal_receive \
b484ca
 	sleep \
b484ca
 	stack-fcall \
b484ca
+	stack-fcall-attach \
b484ca
 	stack-fcall-mangled \
b484ca
 	threads-execve \
b484ca
 	unblock_reset_raise \
b484ca
@@ -198,6 +199,9 @@
b484ca
 stack_fcall_SOURCES = stack-fcall.c \
b484ca
 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
 
b484ca
+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
b484ca
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
+
b484ca
 stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
b484ca
 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
b484ca
 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
b484ca
@@ -205,7 +209,7 @@
b484ca
 include gen_tests.am
b484ca
 
b484ca
 if ENABLE_STACKTRACE
b484ca
-STACKTRACE_TESTS = strace-k.test
b484ca
+STACKTRACE_TESTS = strace-k.test strace-k-p.test
b484ca
 if USE_DEMANGLE
b484ca
 STACKTRACE_TESTS += strace-k-demangle.test
b484ca
 endif
b484ca
@@ -423,6 +427,8 @@
b484ca
 	strace-ff.expected \
b484ca
 	strace-k-demangle.expected \
b484ca
 	strace-k-demangle.test \
b484ca
+	strace-k-p.expected \
b484ca
+	strace-k-p.test \
b484ca
 	strace-k.expected \
b484ca
 	strace-k.test \
b484ca
 	strace-r.expected \
b484ca
Index: strace-4.24/tests/stack-fcall-attach.c
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests/stack-fcall-attach.c	2020-01-23 14:58:43.441959113 +0100
b484ca
@@ -0,0 +1,2 @@
b484ca
+#define ATTACH_MODE 1
b484ca
+#include "stack-fcall.c"
b484ca
Index: strace-4.24/tests/stack-fcall.c
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests/stack-fcall.c	2020-01-23 14:58:09.934993679 +0100
b484ca
+++ strace-4.24/tests/stack-fcall.c	2020-01-23 14:58:43.441959113 +0100
b484ca
@@ -1,7 +1,18 @@
b484ca
+#include "tests.h"
b484ca
+#include <unistd.h>
b484ca
 #include "stack-fcall.h"
b484ca
 
b484ca
+#ifndef ATTACH_MODE
b484ca
+# define ATTACH_MODE 0
b484ca
+#endif
b484ca
+
b484ca
 int main(int argc, char **argv)
b484ca
 {
b484ca
+#if ATTACH_MODE
b484ca
+	/* sleep a bit to let the tracer time to catch up */
b484ca
+	sleep(1);
b484ca
+#endif
b484ca
+
b484ca
 	f0(argc);
b484ca
 	return 0;
b484ca
 }
b484ca
Index: strace-4.24/tests/strace-k-p.expected
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests/strace-k-p.expected	2020-01-23 16:23:03.932457826 +0100
b484ca
@@ -0,0 +1 @@
b484ca
+(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
b484ca
Index: strace-4.24/tests/strace-k-p.test
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests/strace-k-p.test	2020-01-23 14:58:43.441959113 +0100
b484ca
@@ -0,0 +1,13 @@
b484ca
+#!/bin/sh
b484ca
+#
b484ca
+# Check strace -k for attached tracees.
b484ca
+#
b484ca
+# Copyright (c) 2020 The strace developers.
b484ca
+# All rights reserved.
b484ca
+#
b484ca
+# SPDX-License-Identifier: GPL-2.0-or-later
b484ca
+
b484ca
+ATTACH_MODE=1
b484ca
+test_prog=../stack-fcall-attach
b484ca
+
b484ca
+. "${srcdir=.}"/strace-k.test
b484ca
Index: strace-4.24/tests/strace-k.test
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests/strace-k.test	2020-01-23 14:58:43.001972698 +0100
b484ca
+++ strace-4.24/tests/strace-k.test	2020-01-23 14:58:43.441959113 +0100
b484ca
@@ -11,6 +11,8 @@
b484ca
 
b484ca
 . "${srcdir=.}/init.sh"
b484ca
 
b484ca
+: "${ATTACH_MODE=0}"
b484ca
+
b484ca
 # strace -k is implemented using /proc/$pid/maps
b484ca
 [ -f /proc/self/maps ] ||
b484ca
 	framework_skip_ '/proc/self/maps is not available'
b484ca
@@ -20,7 +22,19 @@
b484ca
 check_prog tr
b484ca
 
b484ca
 run_prog "${test_prog=../stack-fcall}"
b484ca
-run_strace -e getpid -k $args
b484ca
+if [ "x${ATTACH_MODE}" = "x1" ]; then
b484ca
+	../set_ptracer_any "${test_prog}" >> "$EXP" &
b484ca
+	tracee_pid=$!
b484ca
+
b484ca
+	while ! [ -s "$EXP" ]; do
b484ca
+		kill -0 "$tracee_pid" 2> /dev/null ||
b484ca
+			fail_ 'set_ptracer_any failed'
b484ca
+	done
b484ca
+
b484ca
+	run_strace -e getpid -k -p "$tracee_pid"
b484ca
+else
b484ca
+	run_strace -e getpid -k $args
b484ca
+fi
b484ca
 
b484ca
 expected="$srcdir/$NAME.expected"
b484ca
 sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
b484ca
Index: strace-4.24/tests/Makefile.in
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests/Makefile.in	2020-01-23 14:58:43.425959607 +0100
b484ca
+++ strace-4.24/tests/Makefile.in	2020-01-23 14:57:57.710371128 +0100
b484ca
@@ -178,9 +178,9 @@
b484ca
 	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
b484ca
 	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
b484ca
 	set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
b484ca
-	stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \
b484ca
-	threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \
b484ca
-	unix-pair-send-recv$(EXEEXT) \
b484ca
+	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
b484ca
+	stack-fcall-mangled$(EXEEXT) threads-execve$(EXEEXT) \
b484ca
+	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
b484ca
 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
b484ca
 	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
b484ca
 @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
b484ca
@@ -2427,6 +2427,12 @@
b484ca
 stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
b484ca
 stack_fcall_LDADD = $(LDADD)
b484ca
 stack_fcall_DEPENDENCIES = libtests.a
b484ca
+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \
b484ca
+	stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \
b484ca
+	stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT)
b484ca
+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS)
b484ca
+stack_fcall_attach_LDADD = $(LDADD)
b484ca
+stack_fcall_attach_DEPENDENCIES = libtests.a
b484ca
 am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \
b484ca
 	stack-fcall-mangled-0.$(OBJEXT) \
b484ca
 	stack-fcall-mangled-1.$(OBJEXT) \
b484ca
@@ -2851,7 +2857,7 @@
b484ca
 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
b484ca
 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
b484ca
 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
b484ca
-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
b484ca
+	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
b484ca
 	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
b484ca
 	statfs64.c statx.c swap.c sxetmask.c symlink.c symlinkat.c \
b484ca
 	sync.c sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
b484ca
@@ -2999,7 +3005,7 @@
b484ca
 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
b484ca
 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
b484ca
 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
b484ca
-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
b484ca
+	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
b484ca
 	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
b484ca
 	statfs64.c statx.c swap.c sxetmask.c symlink.c symlinkat.c \
b484ca
 	sync.c sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
b484ca
@@ -3226,7 +3232,8 @@
b484ca
   bases=`echo $$bases`
b484ca
 RECHECK_LOGS = $(TEST_LOGS)
b484ca
 AM_RECURSIVE_TARGETS = check recheck
b484ca
-@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
b484ca
+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \
b484ca
+@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
b484ca
 TEST_SUITE_LOG = test-suite.log
b484ca
 TEST_EXTENSIONS = @EXEEXT@ .test
b484ca
 am__test_logs1 = $(TESTS:=.log)
b484ca
@@ -3960,6 +3967,9 @@
b484ca
 stack_fcall_SOURCES = stack-fcall.c \
b484ca
 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
 
b484ca
+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
b484ca
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
+
b484ca
 stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
b484ca
 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
b484ca
 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
b484ca
@@ -4163,7 +4173,7 @@
b484ca
 	xettimeofday.gen.test
b484ca
 @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = 
b484ca
 @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
b484ca
-@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
b484ca
+@ENABLE_STACKTRACE_TRUE@	strace-k-p.test $(am__append_1)
b484ca
 DECODER_TESTS = \
b484ca
 	bpf-success-v.test \
b484ca
 	bpf-success.test \
b484ca
@@ -4366,6 +4376,8 @@
b484ca
 	strace-ff.expected \
b484ca
 	strace-k-demangle.expected \
b484ca
 	strace-k-demangle.test \
b484ca
+	strace-k-p.expected \
b484ca
+	strace-k-p.test \
b484ca
 	strace-k.expected \
b484ca
 	strace-k.test \
b484ca
 	strace-r.expected \
b484ca
@@ -6454,6 +6466,10 @@
b484ca
 	@rm -f stack-fcall$(EXEEXT)
b484ca
 	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
b484ca
 
b484ca
+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) 
b484ca
+	@rm -f stack-fcall-attach$(EXEEXT)
b484ca
+	$(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS)
b484ca
+
b484ca
 stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) 
b484ca
 	@rm -f stack-fcall-mangled$(EXEEXT)
b484ca
 	$(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS)
b484ca
@@ -7244,6 +7260,7 @@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@
b484ca
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@
b484ca
Index: strace-4.24/tests-m32/Makefile.am
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-m32/Makefile.am	2020-01-23 14:58:43.422959699 +0100
b484ca
+++ strace-4.24/tests-m32/Makefile.am	2020-01-23 14:58:43.442959082 +0100
b484ca
@@ -173,6 +173,7 @@
b484ca
 	signal_receive \
b484ca
 	sleep \
b484ca
 	stack-fcall \
b484ca
+	stack-fcall-attach \
b484ca
 	stack-fcall-mangled \
b484ca
 	threads-execve \
b484ca
 	unblock_reset_raise \
b484ca
@@ -214,6 +215,9 @@
b484ca
 stack_fcall_SOURCES = stack-fcall.c \
b484ca
 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
 
b484ca
+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
b484ca
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
+
b484ca
 stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
b484ca
 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
b484ca
 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
b484ca
@@ -221,7 +225,7 @@
b484ca
 include gen_tests.am
b484ca
 
b484ca
 if ENABLE_STACKTRACE
b484ca
-STACKTRACE_TESTS = strace-k.test
b484ca
+STACKTRACE_TESTS = strace-k.test strace-k-p.test
b484ca
 if USE_DEMANGLE
b484ca
 STACKTRACE_TESTS += strace-k-demangle.test
b484ca
 endif
b484ca
@@ -434,6 +438,8 @@
b484ca
 	strace-ff.expected \
b484ca
 	strace-k-demangle.expected \
b484ca
 	strace-k-demangle.test \
b484ca
+	strace-k-p.expected \
b484ca
+	strace-k-p.test \
b484ca
 	strace-k.expected \
b484ca
 	strace-k.test \
b484ca
 	strace-r.expected \
b484ca
Index: strace-4.24/tests-m32/Makefile.in
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-m32/Makefile.in	2020-01-23 14:58:43.424959638 +0100
b484ca
+++ strace-4.24/tests-m32/Makefile.in	2020-01-23 17:52:08.510416337 +0100
b484ca
@@ -177,9 +177,9 @@
b484ca
 	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
b484ca
 	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
b484ca
 	set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
b484ca
-	stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \
b484ca
-	threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \
b484ca
-	unix-pair-send-recv$(EXEEXT) \
b484ca
+	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
b484ca
+	stack-fcall-mangled$(EXEEXT) threads-execve$(EXEEXT) \
b484ca
+	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
b484ca
 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
b484ca
 	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
b484ca
 @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
b484ca
@@ -2418,6 +2418,12 @@
b484ca
 stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
b484ca
 stack_fcall_LDADD = $(LDADD)
b484ca
 stack_fcall_DEPENDENCIES = libtests.a
b484ca
+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \
b484ca
+	stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \
b484ca
+	stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT)
b484ca
+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS)
b484ca
+stack_fcall_attach_LDADD = $(LDADD)
b484ca
+stack_fcall_attach_DEPENDENCIES = libtests.a
b484ca
 am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \
b484ca
 	stack-fcall-mangled-0.$(OBJEXT) \
b484ca
 	stack-fcall-mangled-1.$(OBJEXT) \
b484ca
@@ -2841,7 +2847,7 @@
b484ca
 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
b484ca
 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
b484ca
 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
b484ca
-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
b484ca
+	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
b484ca
 	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
b484ca
 	statfs64.c statx.c swap.c sxetmask.c symlink.c symlinkat.c \
b484ca
 	sync.c sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
b484ca
@@ -2988,7 +2994,7 @@
b484ca
 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
b484ca
 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
b484ca
 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
b484ca
-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
b484ca
+	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
b484ca
 	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
b484ca
 	statfs64.c statx.c swap.c sxetmask.c symlink.c symlinkat.c \
b484ca
 	sync.c sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
b484ca
@@ -3215,7 +3221,8 @@
b484ca
   bases=`echo $$bases`
b484ca
 RECHECK_LOGS = $(TEST_LOGS)
b484ca
 AM_RECURSIVE_TARGETS = check recheck
b484ca
-@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
b484ca
+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \
b484ca
+@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
b484ca
 TEST_SUITE_LOG = test-suite.log
b484ca
 TEST_EXTENSIONS = @EXEEXT@ .test
b484ca
 am__test_logs1 = $(TESTS:=.log)
b484ca
@@ -3949,6 +3956,9 @@
b484ca
 stack_fcall_SOURCES = stack-fcall.c \
b484ca
 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
 
b484ca
+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
b484ca
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
+
b484ca
 stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
b484ca
 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
b484ca
 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
b484ca
@@ -4152,7 +4162,7 @@
b484ca
 	xettimeofday.gen.test
b484ca
 @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = 
b484ca
 @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
b484ca
-@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
b484ca
+@ENABLE_STACKTRACE_TRUE@	strace-k-p.test $(am__append_1)
b484ca
 DECODER_TESTS = \
b484ca
 	bpf-success-v.test \
b484ca
 	bpf-success.test \
b484ca
@@ -4353,6 +4363,8 @@
b484ca
 	strace-ff.expected \
b484ca
 	strace-k-demangle.expected \
b484ca
 	strace-k-demangle.test \
b484ca
+	strace-k-p.expected \
b484ca
+	strace-k-p.test \
b484ca
 	strace-k.expected \
b484ca
 	strace-k.test \
b484ca
 	strace-r.expected \
b484ca
@@ -6433,6 +6445,10 @@
b484ca
 	@rm -f stack-fcall$(EXEEXT)
b484ca
 	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
b484ca
 
b484ca
+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES)
b484ca
+	@rm -f stack-fcall-attach$(EXEEXT)
b484ca
+	$(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS)
b484ca
+
b484ca
 stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) 
b484ca
 	@rm -f stack-fcall-mangled$(EXEEXT)
b484ca
 	$(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS)
b484ca
@@ -7221,6 +7237,7 @@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@
b484ca
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@
b484ca
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@
b484ca
Index: strace-4.24/tests-mx32/Makefile.am
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-mx32/Makefile.am	2020-01-23 14:58:43.424959638 +0100
b484ca
+++ strace-4.24/tests-mx32/Makefile.am	2020-01-23 14:58:43.443959051 +0100
b484ca
@@ -173,6 +173,7 @@
b484ca
 	signal_receive \
b484ca
 	sleep \
b484ca
 	stack-fcall \
b484ca
+	stack-fcall-attach \
b484ca
 	stack-fcall-mangled \
b484ca
 	threads-execve \
b484ca
 	unblock_reset_raise \
b484ca
@@ -214,6 +215,9 @@
b484ca
 stack_fcall_SOURCES = stack-fcall.c \
b484ca
 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
 
b484ca
+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
b484ca
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
b484ca
+
b484ca
 stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
b484ca
 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
b484ca
 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
b484ca
@@ -221,7 +225,7 @@
b484ca
 include gen_tests.am
b484ca
 
b484ca
 if ENABLE_STACKTRACE
b484ca
-STACKTRACE_TESTS = strace-k.test
b484ca
+STACKTRACE_TESTS = strace-k.test strace-k-p.test
b484ca
 if USE_DEMANGLE
b484ca
 STACKTRACE_TESTS += strace-k-demangle.test
b484ca
 endif
b484ca
@@ -434,6 +438,8 @@
b484ca
 	strace-ff.expected \
b484ca
 	strace-k-demangle.expected \
b484ca
 	strace-k-demangle.test \
b484ca
+	strace-k-p.expected \
b484ca
+	strace-k-p.test \
b484ca
 	strace-k.expected \
b484ca
 	strace-k.test \
b484ca
 	strace-r.expected \
b484ca
Index: strace-4.24/tests-mx32/Makefile.in
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-mx32/Makefile.in	2020-01-23 14:58:43.424959638 +0100
b484ca
+++ strace-4.24/tests-mx32/Makefile.in	2020-01-23 14:58:08.177047958 +0100
b484ca
@@ -177,9 +177,9 @@
b484ca
 	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
b484ca
 	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
b484ca
 	set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
b484ca
-	stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \
b484ca
-	threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \
b484ca
-	unix-pair-send-recv$(EXEEXT) \
b484ca
+	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
b484ca
+	stack-fcall-mangled$(EXEEXT) threads-execve$(EXEEXT) \
b484ca
+	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
b484ca
 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
b484ca
 	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
b484ca
 @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
b484ca
@@ -2841,7 +2841,7 @@
b484ca
 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
b484ca
 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
b484ca
 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
b484ca
-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
b484ca
+	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
b484ca
 	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
b484ca
 	statfs64.c statx.c swap.c sxetmask.c symlink.c symlinkat.c \
b484ca
 	sync.c sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
b484ca
@@ -2988,7 +2988,7 @@
b484ca
 	so_peercred.c so_peercred-Xabbrev.c so_peercred-Xraw.c \
b484ca
 	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
b484ca
 	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c socketcall.c \
b484ca
-	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) \
b484ca
+	sockopt-sol_netlink.c splice.c $(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
b484ca
 	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
b484ca
 	statfs64.c statx.c swap.c sxetmask.c symlink.c symlinkat.c \
b484ca
 	sync.c sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
b484ca
Index: strace-4.24/tests-m32/stack-fcall-attach.c
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests-m32/stack-fcall-attach.c	2020-01-23 15:42:03.377780293 +0100
b484ca
@@ -0,0 +1,2 @@
b484ca
+#define ATTACH_MODE 1
b484ca
+#include "stack-fcall.c"
b484ca
Index: strace-4.24/tests-m32/stack-fcall.c
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-m32/stack-fcall.c	2017-12-29 16:20:21.000000000 +0100
b484ca
+++ strace-4.24/tests-m32/stack-fcall.c	2020-01-23 15:42:03.381780261 +0100
b484ca
@@ -1,7 +1,18 @@
b484ca
+#include "tests.h"
b484ca
+#include <unistd.h>
b484ca
 #include "stack-fcall.h"
b484ca
 
b484ca
+#ifndef ATTACH_MODE
b484ca
+# define ATTACH_MODE 0
b484ca
+#endif
b484ca
+
b484ca
 int main(int argc, char **argv)
b484ca
 {
b484ca
+#if ATTACH_MODE
b484ca
+	/* sleep a bit to let the tracer time to catch up */
b484ca
+	sleep(1);
b484ca
+#endif
b484ca
+
b484ca
 	f0(argc);
b484ca
 	return 0;
b484ca
 }
b484ca
Index: strace-4.24/tests-m32/strace-k-p.expected
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests-m32/strace-k-p.expected	2020-01-23 16:22:56.367298204 +0100
b484ca
@@ -0,0 +1 @@
b484ca
+(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
b484ca
Index: strace-4.24/tests-m32/strace-k-p.test
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests-m32/strace-k-p.test	2020-01-23 15:42:03.383780246 +0100
b484ca
@@ -0,0 +1,13 @@
b484ca
+#!/bin/sh
b484ca
+#
b484ca
+# Check strace -k for attached tracees.
b484ca
+#
b484ca
+# Copyright (c) 2020 The strace developers.
b484ca
+# All rights reserved.
b484ca
+#
b484ca
+# SPDX-License-Identifier: GPL-2.0-or-later
b484ca
+
b484ca
+ATTACH_MODE=1
b484ca
+test_prog=../stack-fcall-attach
b484ca
+
b484ca
+. "${srcdir=.}"/strace-k.test
b484ca
Index: strace-4.24/tests-m32/strace-k.test
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-m32/strace-k.test	2018-06-14 13:00:00.000000000 +0200
b484ca
+++ strace-4.24/tests-m32/strace-k.test	2020-01-23 15:42:03.385780230 +0100
b484ca
@@ -7,30 +7,12 @@
b484ca
 # Copyright (c) 2014-2018 The strace developers.
b484ca
 # All rights reserved.
b484ca
 #
b484ca
-# Redistribution and use in source and binary forms, with or without
b484ca
-# modification, are permitted provided that the following conditions
b484ca
-# are met:
b484ca
-# 1. Redistributions of source code must retain the above copyright
b484ca
-#    notice, this list of conditions and the following disclaimer.
b484ca
-# 2. Redistributions in binary form must reproduce the above copyright
b484ca
-#    notice, this list of conditions and the following disclaimer in the
b484ca
-#    documentation and/or other materials provided with the distribution.
b484ca
-# 3. The name of the author may not be used to endorse or promote products
b484ca
-#    derived from this software without specific prior written permission.
b484ca
-#
b484ca
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
b484ca
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
b484ca
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
b484ca
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
b484ca
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
b484ca
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
b484ca
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
b484ca
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
b484ca
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
b484ca
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
b484ca
+# SPDX-License-Identifier: GPL-2.0-or-later
b484ca
 
b484ca
 . "${srcdir=.}/init.sh"
b484ca
 
b484ca
+: "${ATTACH_MODE=0}"
b484ca
+
b484ca
 # strace -k is implemented using /proc/$pid/maps
b484ca
 [ -f /proc/self/maps ] ||
b484ca
 	framework_skip_ '/proc/self/maps is not available'
b484ca
@@ -40,7 +22,19 @@
b484ca
 check_prog tr
b484ca
 
b484ca
 run_prog "${test_prog=../stack-fcall}"
b484ca
-run_strace -e getpid -k $args
b484ca
+if [ "x${ATTACH_MODE}" = "x1" ]; then
b484ca
+	../set_ptracer_any "${test_prog}" >> "$EXP" &
b484ca
+	tracee_pid=$!
b484ca
+
b484ca
+	while ! [ -s "$EXP" ]; do
b484ca
+		kill -0 "$tracee_pid" 2> /dev/null ||
b484ca
+			fail_ 'set_ptracer_any failed'
b484ca
+	done
b484ca
+
b484ca
+	run_strace -e getpid -k -p "$tracee_pid"
b484ca
+else
b484ca
+	run_strace -e getpid -k $args
b484ca
+fi
b484ca
 
b484ca
 expected="$srcdir/$NAME.expected"
b484ca
 sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |
b484ca
Index: strace-4.24/tests-mx32/stack-fcall-attach.c
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests-mx32/stack-fcall-attach.c	2020-01-23 15:42:10.783722024 +0100
b484ca
@@ -0,0 +1,2 @@
b484ca
+#define ATTACH_MODE 1
b484ca
+#include "stack-fcall.c"
b484ca
Index: strace-4.24/tests-mx32/stack-fcall.c
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-mx32/stack-fcall.c	2017-12-29 16:20:21.000000000 +0100
b484ca
+++ strace-4.24/tests-mx32/stack-fcall.c	2020-01-23 15:42:10.797721914 +0100
b484ca
@@ -1,7 +1,18 @@
b484ca
+#include "tests.h"
b484ca
+#include <unistd.h>
b484ca
 #include "stack-fcall.h"
b484ca
 
b484ca
+#ifndef ATTACH_MODE
b484ca
+# define ATTACH_MODE 0
b484ca
+#endif
b484ca
+
b484ca
 int main(int argc, char **argv)
b484ca
 {
b484ca
+#if ATTACH_MODE
b484ca
+	/* sleep a bit to let the tracer time to catch up */
b484ca
+	sleep(1);
b484ca
+#endif
b484ca
+
b484ca
 	f0(argc);
b484ca
 	return 0;
b484ca
 }
b484ca
Index: strace-4.24/tests-mx32/strace-k-p.expected
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests-mx32/strace-k-p.expected	2020-01-23 16:22:53.346234461 +0100
b484ca
@@ -0,0 +1 @@
b484ca
+(__kernel_vsyscall )?(__)?getpid f3 f2 f1 f0 main
b484ca
Index: strace-4.24/tests-mx32/strace-k-p.test
b484ca
===================================================================
b484ca
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
b484ca
+++ strace-4.24/tests-mx32/strace-k-p.test	2020-01-23 15:42:10.803721866 +0100
b484ca
@@ -0,0 +1,13 @@
b484ca
+#!/bin/sh
b484ca
+#
b484ca
+# Check strace -k for attached tracees.
b484ca
+#
b484ca
+# Copyright (c) 2020 The strace developers.
b484ca
+# All rights reserved.
b484ca
+#
b484ca
+# SPDX-License-Identifier: GPL-2.0-or-later
b484ca
+
b484ca
+ATTACH_MODE=1
b484ca
+test_prog=../stack-fcall-attach
b484ca
+
b484ca
+. "${srcdir=.}"/strace-k.test
b484ca
Index: strace-4.24/tests-mx32/strace-k.test
b484ca
===================================================================
b484ca
--- strace-4.24.orig/tests-mx32/strace-k.test	2018-06-14 13:00:00.000000000 +0200
b484ca
+++ strace-4.24/tests-mx32/strace-k.test	2020-01-23 15:42:10.810721811 +0100
b484ca
@@ -7,30 +7,12 @@
b484ca
 # Copyright (c) 2014-2018 The strace developers.
b484ca
 # All rights reserved.
b484ca
 #
b484ca
-# Redistribution and use in source and binary forms, with or without
b484ca
-# modification, are permitted provided that the following conditions
b484ca
-# are met:
b484ca
-# 1. Redistributions of source code must retain the above copyright
b484ca
-#    notice, this list of conditions and the following disclaimer.
b484ca
-# 2. Redistributions in binary form must reproduce the above copyright
b484ca
-#    notice, this list of conditions and the following disclaimer in the
b484ca
-#    documentation and/or other materials provided with the distribution.
b484ca
-# 3. The name of the author may not be used to endorse or promote products
b484ca
-#    derived from this software without specific prior written permission.
b484ca
-#
b484ca
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
b484ca
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
b484ca
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
b484ca
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
b484ca
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
b484ca
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
b484ca
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
b484ca
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
b484ca
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
b484ca
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
b484ca
+# SPDX-License-Identifier: GPL-2.0-or-later
b484ca
 
b484ca
 . "${srcdir=.}/init.sh"
b484ca
 
b484ca
+: "${ATTACH_MODE=0}"
b484ca
+
b484ca
 # strace -k is implemented using /proc/$pid/maps
b484ca
 [ -f /proc/self/maps ] ||
b484ca
 	framework_skip_ '/proc/self/maps is not available'
b484ca
@@ -40,7 +22,19 @@
b484ca
 check_prog tr
b484ca
 
b484ca
 run_prog "${test_prog=../stack-fcall}"
b484ca
-run_strace -e getpid -k $args
b484ca
+if [ "x${ATTACH_MODE}" = "x1" ]; then
b484ca
+	../set_ptracer_any "${test_prog}" >> "$EXP" &
b484ca
+	tracee_pid=$!
b484ca
+
b484ca
+	while ! [ -s "$EXP" ]; do
b484ca
+		kill -0 "$tracee_pid" 2> /dev/null ||
b484ca
+			fail_ 'set_ptracer_any failed'
b484ca
+	done
b484ca
+
b484ca
+	run_strace -e getpid -k -p "$tracee_pid"
b484ca
+else
b484ca
+	run_strace -e getpid -k $args
b484ca
+fi
b484ca
 
b484ca
 expected="$srcdir/$NAME.expected"
b484ca
 sed -r -n '1,/\(main\+0x[a-f0-9]+\) .*/ s/^[^(]+\(([^+]+)\+0x[a-f0-9]+\) .*/\1/p' "$LOG" |