summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2013-05-28 20:27:10 +0000
committerDmitry V. Levin <ldv@altlinux.org>2013-05-28 21:49:16 +0000
commite8ff4c6f863c16180dacff74988f0e617f8136d9 (patch)
tree3f4627b380ad6987be8c71183e1f9ed1bbfe7223
parent5c0796f3462b1cf6ef9ed114e255763791d66b78 (diff)
downloadstrace-e8ff4c6f863c16180dacff74988f0e617f8136d9.tar.gz
strace-e8ff4c6f863c16180dacff74988f0e617f8136d9.tar.bz2
strace-e8ff4c6f863c16180dacff74988f0e617f8136d9.tar.xz
Do not suppress signal delivery messages with -qq
Current implementation of -qq does not allow suppressing exit status messages without suppressing signal delivery messages, which is not good. There is a traditional "-e signal=none" syntax that can be used to suppress all signal delivery messages. This partially reverts commit v4.7-222-g01997cf. * strace.c (trace): Do not suppress signal delivery messages with -qq. * strace.1: Update documentation about -qq option.
-rw-r--r--strace.13
-rw-r--r--strace.c29
2 files changed, 15 insertions, 17 deletions
diff --git a/strace.1 b/strace.1
index 9d628a1..5f287d7 100644
--- a/strace.1
+++ b/strace.1
@@ -268,8 +268,7 @@ automatically when output is redirected to a file and the command
is run directly instead of attaching.
.TP
.B \-qq
-If given twice, suppress messages about process exit status and
-signals received.
+If given twice, suppress messages about process exit status.
.TP
.B \-r
Print a relative timestamp upon entry to each system call. This
diff --git a/strace.c b/strace.c
index 5b7fbc2..6eab600 100644
--- a/strace.c
+++ b/strace.c
@@ -2216,8 +2216,9 @@ trace(void)
show_stopsig:
#endif
if (cflag != CFLAG_ONLY_STATS
- && (qual_flags[sig] & QUAL_SIGNAL)
- ) {
+ && !hide_log_until_execve
+ && (qual_flags[sig] & QUAL_SIGNAL)
+ ) {
#if defined(PT_CR_IPSR) && defined(PT_CR_IIP)
long pc = 0;
long psr = 0;
@@ -2233,19 +2234,17 @@ trace(void)
# define PC_FORMAT_STR ""
# define PC_FORMAT_ARG /* nothing */
#endif
- if (qflag < 2 && !hide_log_until_execve) {
- printleader(tcp);
- if (!stopped) {
- tprintf("--- %s ", signame(sig));
- printsiginfo(&si, verbose(tcp));
- tprintf(PC_FORMAT_STR " ---\n"
- PC_FORMAT_ARG);
- } else
- tprintf("--- stopped by %s" PC_FORMAT_STR " ---\n",
- signame(sig)
- PC_FORMAT_ARG);
- line_ended();
- }
+ printleader(tcp);
+ if (!stopped) {
+ tprintf("--- %s ", signame(sig));
+ printsiginfo(&si, verbose(tcp));
+ tprintf(PC_FORMAT_STR " ---\n"
+ PC_FORMAT_ARG);
+ } else
+ tprintf("--- stopped by %s" PC_FORMAT_STR " ---\n",
+ signame(sig)
+ PC_FORMAT_ARG);
+ line_ended();
}
if (!stopped)