Denys Vlasenko [Tue, 6 Jan 2009 15:12:52 +0000 (15:12 +0000)]
* desc.c (printflock): Fix display of fcntl(F_SETLK) on
non-native 32-bit architecture.
Fixes RH#471169 "format fcntl64() system calls for
32 bit application incorrect".
* desc.c: const'ify two static struct xlat vector[]'s,
convert all remaining old style C parameter declarations
in this file.
Denys Vlasenko [Fri, 2 Jan 2009 18:10:08 +0000 (18:10 +0000)]
* syscall.c: more cosmetics. fixed a few localized style discrepancies.
The only actual code change is a trivial one where
a char *array[] made const and static.
Denys Vlasenko [Tue, 30 Dec 2008 20:51:30 +0000 (20:51 +0000)]
Experimental support for -D option.
Unlike normal case, with -D *grandparent* process exec's,
becoming a traced process. Child exits (this prevents traced process
from having children it doesn't expect to have), and grandchild
attaches to grandparent similarly to strace -p PID.
This allows for more transparent interaction in cases
when process and its parent are communicating via signals,
wait() etc. Without -D, strace process gets lodged in between,
disrupting parent<->child link.
* strace.c: Add global flag variable daemonized_tracer for -D option.
(startup_attach): If -D, fork and block parent in pause().
In this case we are already a child, we in fact created a grandchild.
After attaching to grandparent, grandchild SIGKILLs parent.
(startup_child): If -D, parent blocks in wait(), then
execs the program to strace. Normally (w/o -D), it is child
who execs the program.
(main): Detect -D option, call startup_attach() if it is given.
Denys Vlasenko [Tue, 30 Dec 2008 17:50:46 +0000 (17:50 +0000)]
Patch by Kirill A. Shutemov:
Fix some warnings on ARM build.
* defs.h: include <sys/ptrace.h> on arm too.
* syscall.c: EABI arm does not need decode_subcall(), ifdef it out.
Denys Vlasenko [Mon, 29 Dec 2008 19:13:27 +0000 (19:13 +0000)]
* defs.h: Remove sigtrap80 field from struct tcb.
* strace.c: Add ptrace_stop_sig static variable
and use it in place of tcp->sigtrap80.
Add ptrace_opts_set static flag variable.
(trace): Set ptrace options once, not per-process.
If unexpected SIGTRAP is later received,
revert back to using SIGTRAP
(assume old, broken kernel).
Denys Vlasenko [Mon, 22 Dec 2008 19:14:47 +0000 (19:14 +0000)]
Make strace correctly handle SIGTRAP produced by e.g.
kill(2) and by trapping instruction.
* defs.h: Add sigtrap80 field to struct tcb.
* strace.c (alloc_tcb): Initialize it to SIGTRAP.
(detach): Use tcp->sigtrap80 instead of SIGTRAP constant.
(trace): Attempt to set PTRACE_O_TRACESYSGOOD and
PTRACE_O_TRACEEXEC options on each newly attached process,
distinquish between SIGTRAP and (SIGTRAP | 0x80) stops.
Fixes RH#162774 "strace ignores int3 SIGTRAP".
Dmitry V. Levin [Mon, 10 Nov 2008 23:19:13 +0000 (23:19 +0000)]
2008-11-09 Dmitry V. Levin <ldv@altlinux.org>
* util.c (string_quote): Fix support for NUL-terminated string.
Add comments.
(printpathn): Fix the case when "..." was appended to the output
but no truncation was actually made. Add comments.
(printstr): Fix memory allocation. Fix two cases when "..." was
appended to the output but no truncation was actually made.
Add comments.
Dmitry V. Levin [Mon, 10 Nov 2008 17:21:23 +0000 (17:21 +0000)]
2008-10-22 Dmitry V. Levin <ldv@altlinux.org>
Handle socket type flags introduced in linux 2.6.27.
* net.c (socktypes): Add SOCK_DCCP.
(sock_type_flags): New xlat structure.
(tprint_sock_type): New function.
(sys_socket, sys_socketpair): Use it to parse socket type and
socket type flags.
Dmitry V. Levin [Mon, 10 Nov 2008 17:14:58 +0000 (17:14 +0000)]
2008-09-29 Dmitry V. Levin <ldv@altlinux.org>
* strace.c (startup_child): Save child pid for future use.
(main): Exit/kill ourself with straced child's exitcode/signal.
(trace): If signalled process pid matches the saved child pid,
save the signal number. If terminated process pid matches the
saved child pid, save its exit status.
Patch from Denys Vlasenko <dvlasenk@redhat.com>
Roland McGrath [Mon, 25 Aug 2008 03:15:43 +0000 (03:15 +0000)]
2008-08-24 Roland McGrath <roland@redhat.com>
* linux/syscall.h (SYS_socket_subcall et al, SYS_ipc_subcall et al):
Don't define these if [__ARM_EABI__].
Reported by Johannes Stezenbach <js@sig21.net>.
Roland McGrath [Mon, 25 Aug 2008 02:59:36 +0000 (02:59 +0000)]
2008-08-24 Roland McGrath <roland@redhat.com>
* mem.c (madvise_flags): Typo fixes. Rename to madvise_cmds.
(sys_madvise): Use printxval, not printflags.
Reported by Rajeev V. Pillai <rajeevvp@gmail.com>.
Roland McGrath [Wed, 20 Aug 2008 01:59:40 +0000 (01:59 +0000)]
2008-08-19 Roland McGrath <roland@redhat.com>
* signal.c (sys_sigaction, sys_rt_sigaction): Don't omit the rest of
the struct after sa_handler is a known constant. Some sa_flags bits
have meaning even for SIG_IGN/SIG_DFL.
Jan Kratochvil [Wed, 6 Aug 2008 21:43:35 +0000 (21:43 +0000)]
2008-08-06 Jan Kratochvil <jan.kratochvil@redhat.com>
* util.c (CLONE_VM): Define if not defined already.
(setbpt): Clear CLONE_VM in the case we already clear CLONE_VFORK for
SYS_clone and SYS_clone2.
Reported by Michal Nowak.
Fixes RH#455078.
Jan Kratochvil [Wed, 6 Aug 2008 21:38:52 +0000 (21:38 +0000)]
2008-08-06 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix compiler warnings.
* signal.c (sys_signal): Cast to SIG_* to the matching type LONG.
* strace.c (trace): Variables PSR and PC are now signed.
* syscall.c (syscall_enter): Variable RBS_END is now signed long.
Remove/add the RBS_END casts appropriately.
* util.c [IA64] (arg_setup): Variable BSP is now signed long.
Remove/add the BSP casts appropriately.
<ia32>: Initialize *STATE.
Roland McGrath [Tue, 22 Jul 2008 00:27:31 +0000 (00:27 +0000)]
2008-07-19 Frederik Schüler <fs@debian.org>
* debian/control: Add strace64 package.
Fixes Debian#491167, Debian#491188.
* debian/rules: Use debhelper flag --same-arch instead of --arch in
order to build strace64 only on the specified architectures.
* debian/strace64.install: New file, list for dh_install.
* debian/strace64.manpages: New file, list for dh_install.
* debian/changelog: Add prereleases entries.
Roland McGrath [Fri, 18 Jul 2008 00:50:04 +0000 (00:50 +0000)]
2008-07-09 Frederik Schüler <fs@debian.org>
* debian/rules: Remove the broken udeb creation routines, and redo the
complete install procedure using debhelper.
* debian/strace.docs: New file, list for dh_installdocs.
* debian/strace.examples: New file, list for dh_installexamples.
* debian/strace.install: New file, list for dh_install.
* debian/strace-udeb.install: New file, list for dh_install.
* debian/strace.manpages : New file, list for dh_installmanpages.
* debian/copyright: Update.
* debian/control: Fix libc6 build dependency for alpha and ia64.
(strace-udeb: XC-Package-Type): Add header.
* debian/changelog: Cosmetic changes.
Roland McGrath [Fri, 18 Jul 2008 00:49:31 +0000 (00:49 +0000)]
2008-07-09 Frederik Schüler <fs@debian.org>
* debian/rules: Remove the broken udeb creation routines, and redo the
complete install procedure using debhelper.
* debian/strace.docs: New file, list for dh_installdocs.
* debian/strace.examples: New file, list for dh_installexamples.
* debian/strace.install: New file, list for dh_install.
* debian/strace-udeb.install: New file, list for dh_install.
* debian/strace.manpages : New file, list for dh_installmanpages.
* debian/copyright: Update.
* debian/control: Fix libc6 build dependency for alpha and ia64.
(strace-udeb: XC-Package-Type): Add header.
Roland McGrath [Fri, 18 Jul 2008 00:25:10 +0000 (00:25 +0000)]
2008-07-03 Jan Kratochvil <jan.kratochvil@redhat.com>
Trace even VFORK on -f on all the platforms.
* strace.1 <-f>: Describe Linux catches new children immediately.
<-F>: Make the option obsolete. Move the SunOS VFORK comment to the
`-f' option description.
* defs.h (followvfork): Declaration removed.
* strace.c (followvfork): Variable removed.
(main) <-F>: Merge with the `-f' option.
(trace): Make !FOLLOWVFORK unconditional.
* process.c (internal_fork): Make !FOLLOWVFORK unconditional.
Roland McGrath [Fri, 18 Jul 2008 00:18:27 +0000 (00:18 +0000)]
2008-07-01 Frederik Schüler <fs@debian.org>
* debian/changelog: List all bugs closed since the last release.
* debian/control: Remove Wichert Akkerman from uploaders list.
* debian/control: Bump standards version to 3.8.0.
* debian/control: Add Homepage field.
* debian/rules: Fix dpkg-gencontrol call.
* debian/compat: New file, set to compatibility level 5.
* debian/rules: Call dh_clean on clean target.
* debian/rules: Add dh_md5sums call.
Fixes Debian#439428