Package: strace
Version: 6.5-0.1

When the process being strace'd is PID 1 in a PID namespace and calls
abort(), strace shows an infinite SIGSEGV loop.  Here's a test case:
        #include <stdlib.h>
        int main() { abort(); }

With glibc, running "unshare -prf ./a.out" results in the process dying
from a segmentation fault.

By contrast, "strace -f unshare -prf ./a.out" produces an infinite loop
of segfaults.  Perhaps this could be considered a bug in glibc or Linux,
but it seems less than ideal that strace loops forever in a case where
the non-strace'd process would have died.

If strace is capable of detecting that the traced process has no handler
for the signal, it would be nice to detect and avoid the loop.

- Michael


-- System Information:
Debian Release: trixie/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 6.6.13-amd64 (SMP w/32 CPU threads; PREEMPT)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_CA:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages strace depends on:
ii  libc6       2.37-15
ii  libunwind8  1.6.2-3

strace recommends no packages.

strace suggests no packages.

-- no debconf information

Attachment: signature.asc
Description: PGP signature

Reply via email to