From: Dmitry V. Levin Date: Thu, 10 Mar 2011 23:14:47 +0000 (+0000) Subject: Enhance decoding of kernel-generated signals X-Git-Tag: v4.6~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b41e1c90f0c0791ccf524323fffc96c04646c4d4;p=strace Enhance decoding of kernel-generated signals * signal.c (printsiginfo) [LINUX]: Do not print uninteresting zero-initialized fields. --- diff --git a/signal.c b/signal.c index cab13ee4..b47b831c 100644 --- a/signal.c +++ b/signal.c @@ -738,6 +738,8 @@ printsiginfo(siginfo_t *sip, int verbose) #endif #ifdef LINUX default: + if (!sip->si_ptr) + break; if (!verbose) tprintf(", ..."); else @@ -783,13 +785,16 @@ printsiginfo(siginfo_t *sip, int verbose) break; #ifdef LINUX default: - tprintf(", si_pid=%lu, si_uid=%lu, ", - (unsigned long) sip->si_pid, - (unsigned long) sip->si_uid); + if (sip->si_pid || sip->si_uid) + tprintf(", si_pid=%lu, si_uid=%lu", + (unsigned long) sip->si_pid, + (unsigned long) sip->si_uid); + if (!sip->si_ptr) + break; if (!verbose) - tprintf("..."); + tprintf(", ..."); else { - tprintf("si_value={int=%u, ptr=%#lx}", + tprintf(", si_value={int=%u, ptr=%#lx}", sip->si_int, (unsigned long) sip->si_ptr); }