Package: freebsd-utils Version: 9.0+ds1-9 Severity: normal Tags: patch
Dear Maintainer, While yak shaving, I noticed that kdumping the progress of a pthreads program printed things like 25935 a.out PSIG SIG(null) caught when the signal number was 32 or 33. The attached patch fixes the immediate problem, though it might be preferable to show the names of these signals. -- System Information: Debian Release: 7.0 APT prefers testing APT policy: (500, 'testing'), (1, 'experimental') Architecture: kfreebsd-amd64 (x86_64) Kernel: kFreeBSD 9.0-2-amd64 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages freebsd-utils depends on: ii libbsd0 0.4.2-1 ii libc0.1 2.13-37 ii libcam6 9.0+ds1-4 ii libgeom1 9.0+ds1-4 ii libjail1 9.0+ds1-4 ii libkiconv4 9.0+ds1-4 ii libkvm0 9.0+ds1-4 ii libsbuf6 9.0+ds1-4 ii libtirpc1 0.2.2-5 ii lsb-base 4.1+Debian8 ii zlib1g 1:1.2.7.dfsg-13 freebsd-utils recommends no packages. Versions of packages freebsd-utils suggests: pn freebsd-hackedutils <none> ii kbdcontrol 9.0+ds1-9 ii vidcontrol 9.0+ds1-9 -- no debconf information
diff -Nru freebsd-utils-9.0+ds1/debian/changelog freebsd-utils-9.0+ds1/debian/changelog --- freebsd-utils-9.0+ds1/debian/changelog 2012-12-29 18:08:30.000000000 -0600 +++ freebsd-utils-9.0+ds1/debian/changelog 2013-01-14 20:45:07.000000000 -0600 @@ -1,3 +1,10 @@ +freebsd-utils (9.0+ds1-9.1) UNRELEASED; urgency=low + + * Non-maintainer upload. + * Improve reporting of signals >= 32 + + -- Jeff Epler <jepler@localhost> Mon, 14 Jan 2013 20:44:54 -0600 + freebsd-utils (9.0+ds1-9) unstable; urgency=low [ Steven Chamberlain ] diff -Nru freebsd-utils-9.0+ds1/debian/patches/series freebsd-utils-9.0+ds1/debian/patches/series --- freebsd-utils-9.0+ds1/debian/patches/series 2012-12-29 18:10:18.000000000 -0600 +++ freebsd-utils-9.0+ds1/debian/patches/series 2013-01-14 20:34:34.000000000 -0600 @@ -49,3 +49,4 @@ 045_implicit-declaration.diff devd_link_c++_statically.diff stablerestart-fhs-compliance.diff +signames.diff diff -Nru freebsd-utils-9.0+ds1/debian/patches/signames.diff freebsd-utils-9.0+ds1/debian/patches/signames.diff --- freebsd-utils-9.0+ds1/debian/patches/signames.diff 1969-12-31 18:00:00.000000000 -0600 +++ freebsd-utils-9.0+ds1/debian/patches/signames.diff 2013-01-14 20:40:55.000000000 -0600 @@ -0,0 +1,26 @@ +When tracing pthreads programs, kdump prints messages like + 25935 a.out PSIG SIG(null) caught ... +this is actually signal 32, which is used internally by the "LinuxThreads" +implementation. Signal 33 is also used, which is beyond the signames[] +array's limit. Instead of relying on a relationship between NSIG and +signames[], use the size of the signames array as the limit. + +--- a/usr.bin/kdump/kdump.c ++++ b/usr.bin/kdump/kdump.c +@@ -1128,13 +1128,14 @@ + "PIPE", "ALRM", "TERM", "URG", "STOP", "TSTP", /* 13 - 18 */ + "CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", /* 19 - 24 */ + "XFSZ", "VTALRM", "PROF", "WINCH", "29", "USR1", /* 25 - 30 */ +- "USR2", NULL, /* 31 - 32 */ ++ "USR2", /* 31 */ + }; ++#define NSIGNAMES (sizeof(signames) / sizeof(signames[0])) + + void + ktrpsig(struct ktr_psig *psig) + { +- if (psig->signo > 0 && psig->signo < NSIG) ++ if (psig->signo > 0 && psig->signo < NSIGNAMES) + (void)printf("SIG%s ", signames[psig->signo]); + else + (void)printf("SIG %d ", psig->signo);