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.
This commit is contained in:
Дмитрий Левин 2013-05-28 20:27:10 +00:00
parent 5c0796f346
commit e8ff4c6f86
2 changed files with 15 additions and 17 deletions

View File

@ -268,8 +268,7 @@ automatically when output is redirected to a file and the command
is run directly instead of attaching. is run directly instead of attaching.
.TP .TP
.B \-qq .B \-qq
If given twice, suppress messages about process exit status and If given twice, suppress messages about process exit status.
signals received.
.TP .TP
.B \-r .B \-r
Print a relative timestamp upon entry to each system call. This Print a relative timestamp upon entry to each system call. This

View File

@ -2216,8 +2216,9 @@ trace(void)
show_stopsig: show_stopsig:
#endif #endif
if (cflag != CFLAG_ONLY_STATS 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) #if defined(PT_CR_IPSR) && defined(PT_CR_IIP)
long pc = 0; long pc = 0;
long psr = 0; long psr = 0;
@ -2233,19 +2234,17 @@ trace(void)
# define PC_FORMAT_STR "" # define PC_FORMAT_STR ""
# define PC_FORMAT_ARG /* nothing */ # define PC_FORMAT_ARG /* nothing */
#endif #endif
if (qflag < 2 && !hide_log_until_execve) { printleader(tcp);
printleader(tcp); if (!stopped) {
if (!stopped) { tprintf("--- %s ", signame(sig));
tprintf("--- %s ", signame(sig)); printsiginfo(&si, verbose(tcp));
printsiginfo(&si, verbose(tcp)); tprintf(PC_FORMAT_STR " ---\n"
tprintf(PC_FORMAT_STR " ---\n" PC_FORMAT_ARG);
PC_FORMAT_ARG); } else
} else tprintf("--- stopped by %s" PC_FORMAT_STR " ---\n",
tprintf("--- stopped by %s" PC_FORMAT_STR " ---\n", signame(sig)
signame(sig) PC_FORMAT_ARG);
PC_FORMAT_ARG); line_ended();
line_ended();
}
} }
if (!stopped) if (!stopped)