diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2014-03-11 00:05:19 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2014-03-11 00:47:01 +0000 |
commit | 4a524dbbdf3ef72259eea1e515f4fd8aee034f93 (patch) | |
tree | 36a749867b398f8c666142c82b74dba1fcfe2061 | |
parent | 4dd1e89cb87c9af63da7b18f1251ad446527c9e0 (diff) | |
download | strace-4a524dbbdf3ef72259eea1e515f4fd8aee034f93.tar.gz strace-4a524dbbdf3ef72259eea1e515f4fd8aee034f93.tar.bz2 strace-4a524dbbdf3ef72259eea1e515f4fd8aee034f93.tar.xz |
Factor out printing of si_pid and si_uid members of siginfo_t
* signal.c (printsigsource): New function.
(printsiginfo): Use it.
-rw-r--r-- | signal.c | 41 |
1 files changed, 19 insertions, 22 deletions
@@ -500,7 +500,15 @@ static const struct xlat sigbus_codes[] = { }; static void -printsigval(siginfo_t *sip, int verbose) +printsigsource(const siginfo_t *sip) +{ + tprintf(", si_pid=%lu, si_uid=%lu", + (unsigned long) sip->si_pid, + (unsigned long) sip->si_uid); +} + +static void +printsigval(const siginfo_t *sip, int verbose) { if (!verbose) tprints(", ..."); @@ -575,16 +583,12 @@ printsiginfo(siginfo_t *sip, int verbose) switch (sip->si_code) { #ifdef SI_USER case SI_USER: - tprintf(", si_pid=%lu, si_uid=%lu", - (unsigned long) sip->si_pid, - (unsigned long) sip->si_uid); + printsigsource(sip); break; #endif #ifdef SI_TKILL case SI_TKILL: - tprintf(", si_pid=%lu, si_uid=%lu", - (unsigned long) sip->si_pid, - (unsigned long) sip->si_uid); + printsigsource(sip); break; #endif #ifdef SI_TIMER @@ -595,12 +599,9 @@ printsiginfo(siginfo_t *sip, int verbose) break; #endif default: - tprintf(", si_pid=%lu, si_uid=%lu", - (unsigned long) sip->si_pid, - (unsigned long) sip->si_uid); - if (!sip->si_ptr) - break; - printsigval(sip, verbose); + printsigsource(sip); + if (sip->si_ptr) + printsigval(sip, verbose); break; } } @@ -609,8 +610,8 @@ printsiginfo(siginfo_t *sip, int verbose) { switch (sip->si_signo) { case SIGCHLD: - tprintf(", si_pid=%ld, si_status=", - (long) sip->si_pid); + printsigsource(sip); + tprints(", si_status="); if (sip->si_code == CLD_EXITED) tprintf("%d", sip->si_status); else @@ -637,13 +638,9 @@ printsiginfo(siginfo_t *sip, int verbose) break; default: 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; - printsigval(sip, verbose); - + printsigsource(sip); + if (sip->si_ptr) + printsigval(sip, verbose); } } } |