Using "-c" and CTRL+C
Bud Millwood
budm at weird-solutions.com
Fri May 9 08:13:31 UTC 2014
Hi Dmitry, thanks for replying:
I'm not using the -l1 option. I see this behavior on both Ubuntu
12.10/x86-64 and CentOS 6.3/x86-64.
If I kill the target process, it always works correctly. The problem is if
I use CTRL-C to detach from the target process. Eventually I managed to get
it to produce the statistical output, as shown below. I used it for a few
hours, then left the terminal open over night, and the next day it was not
printing the output again. So it looks like this:
$ sudo strace -p 31457 -c
Process 31457 attached - interrupt to quit
^CProcess 31457 detached
$ sudo strace -p 31457 -c
Process 31457 attached - interrupt to quit
^CProcess 31457 detached
$ sudo strace -c -p 31457 <-- NOTE CHANGING COMMAND LINE ARGS ORDER
Process 31457 attached - interrupt to quit
^CProcess 31457 detached
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
75.38 0.047831 66 730 poll
24.62 0.015622 20 793 sendto
0.00 0.000000 0 39 ioctl
0.00 0.000000 0 39 select
0.00 0.000000 0 769 recvfrom
0.00 0.000000 0 107 29 futex
------ ----------- ----------- --------- --------- ----------------
100.00 0.063453 2477 29 total
After this it worked for a while *regardless* of the order of the command
line arguments. And then after 24 hours, it doesn't work again at all,
*regardless* of command line argument order. So I just can't reproduce it
reliably.
- I thought it might be because there were no system calls in the target
process - that the target was blocked in one call, such as "select", but
that's not the case.
- I tried sending SIGINT and SIGTERM to the strace process from another
terminal, both signals cause the process to simply exit the same as if I
pressed CTRL-C, i.e. no data printed.
- Bud
On Thu, May 8, 2014 at 11:11 PM, Dmitry V. Levin <ldv at altlinux.org> wrote:
> Hi,
>
> On Wed, May 07, 2014 at 04:54:40PM +0200, Bud Millwood wrote:
> > Hi all, I'm not on this list but I'll keep an eye out for a response
> > to this message.
> >
> > In the past I noticed that if I ran "strace -c" against a process, I
> > could press CTRL-C and strace would print out the statistics it had
> > collected so far, then exit. It now seems to just exit without
> > printing any of the statistics.
>
> Strange, it works for me, both in simple and in -p mode.
> For example:
>
> $ strace -c cat & sleep 1 && kill -INT $!
> [1] 19981
> Process 19985 detached
> % time seconds usecs/call calls errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> $ 27.65 0.000060 8 8 mmap
> 14.29 0.000031 8 4 mprotect
> 10.14 0.000022 6 4 fstat
> 7.83 0.000017 9 2 open
> 7.83 0.000017 4 4 brk
> 6.45 0.000014 7 2 1 read
> 5.53 0.000012 12 1 1 access
> 5.07 0.000011 6 2 fadvise64
> 4.61 0.000010 5 2 close
> 4.61 0.000010 10 1 munmap
> 3.69 0.000008 8 1 execve
> 2.30 0.000005 5 1 arch_prctl
> ------ ----------- ----------- --------- --------- ----------------
> 100.00 0.000217 32 2 total
> [1]+ Done strace -c cat
>
> $ sleep 2 && sleep 2 & sleep 1; strace -cp $! & sleep 2 && kill -INT $!
> [1] 19986
> [2] 19989
> Process 19986 attached
> Process 19986 detached
> % time seconds usecs/call calls errors syscall
> ------ ----------- ----------- --------- --------- ----------------
> $ 80.77 0.000710 355 2 1 wait4
> 15.81 0.000139 139 1 clone
> 2.62 0.000023 4 6 rt_sigprocmask
> 0.46 0.000004 2 2 rt_sigaction
> 0.34 0.000003 3 1 rt_sigreturn
> ------ ----------- ----------- --------- --------- ----------------
> 100.00 0.000879 12 1 total
> [2]+ Done strace -cp $!
> [1]- Done sleep 2 && sleep 2
>
> You aren't using -I1 option, are you?
>
>
> --
> ldv
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20140509/5adda8a5/attachment.html>
More information about the Strace-devel
mailing list