Package: strace
Version: 4.5.20-2.3
Severity: normal
Suppose I run a buggy program under strace.
[vampire /tmp/mdw/strace-bug]strace -ospew sh -c 'kill -SEGV $$'
Segmentation fault (core dumped)
That's nice. Now I can debug my program using the core dump to tell me
what state it was in, and use the strace spew to help me understand how
it got there. Wait a minute...
[vampire /tmp/mdw/strace-bug]file core
core: ELF 32-bit LSB core file Intel 80386, version 1 (SYSV), SVR4-style,
from 'strace -o/dev/null sh -c kill -SEGV $$'
[vampire /tmp/mdw/strace-bug]gdb /usr/bin/strace core
...
Program terminated with signal 11, Segmentation fault.
#0 0xb774b424 in __kernel_vsyscall ()
(gdb) bt
#0 0xb774b424 in __kernel_vsyscall ()
#1 0xb7601911 in raise () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
#2 0x0804b883 in ?? ()
#3 0xb75ede46 in __libc_start_main () from
#/lib/i386-linux-gnu/i686/cmov/libc.so.6
#4 0x08049831 in ?? ()
Backtrace stopped: Not enough registers or memory available to unwind
further
(gdb) quit
That's not my core file. That's a completely useless core file of
strace committing suicide. Where's my core file gone?
The fine manual says:
DIAGNOSTICS
When command exits, strace exits with the same exit status. If
command is terminated by a signal, strace terminates itself with
the same signal, so that strace can be used as a wrapper process
transparent to the invoking parent process.
I don't think clobbering the core file with a useless core file is
particularly transparent. Unfortunately, the obvious hacks (setting the
soft RLIMIT_CORE to zero; changing to a non-writable directory) don't
work because they clear the WCOREDUMP exit-status bit. Maybe strace
should make a new temporary directory, change to it, fork a child
process, kill itself, and have the child clean up the core file and the
temporary directory.
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 3.0.0-1-686-pae (SMP w/1 CPU core)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages strace depends on:
ii libc6 2.13-21
strace recommends no packages.
strace suggests no packages.
-- no debconf information
-- debsums errors found:
dpkg-query: warning: parsing file '/var/lib/dpkg/status' near line 1581 package
'anag':
missing architecture
dpkg-query: warning: parsing file '/var/lib/dpkg/status' near line 29997
package 'priv':
missing architecture
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]