svn commit: r236577 - head/usr.bin/kdump

John Baldwin jhb at FreeBSD.org
Mon Jun 4 19:09:15 UTC 2012


Author: jhb
Date: Mon Jun  4 19:09:14 2012
New Revision: 236577
URL: http://svn.freebsd.org/changeset/base/236577

Log:
  Allow the -p argument to kdump to accept either a PID or a thread ID.
  
  Submitted by:	Dmitry Banschikov  d.banschikov hostcomm ru
  MFC after:	1 week

Modified:
  head/usr.bin/kdump/kdump.1
  head/usr.bin/kdump/kdump.c

Modified: head/usr.bin/kdump/kdump.1
==============================================================================
--- head/usr.bin/kdump/kdump.1	Mon Jun  4 18:45:18 2012	(r236576)
+++ head/usr.bin/kdump/kdump.1	Mon Jun  4 19:09:14 2012	(r236577)
@@ -28,7 +28,7 @@
 .\"	@(#)kdump.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd April 20, 2012
+.Dd June 4, 2012
 .Dt KDUMP 1
 .Os
 .Sh NAME
@@ -86,9 +86,9 @@ string.
 Suppressing this feature yields a more consistent output format and is
 easily amenable to further processing.
 .It Fl p Ar pid
-Display only trace events that correspond to the process
+Display only trace events that correspond to the process or thread
 .Ar pid .
-This may be useful when there are multiple processes recorded in the
+This may be useful when there are multiple processes or threads recorded in the
 same trace file.
 .It Fl R
 Display relative timestamps (time since previous entry).

Modified: head/usr.bin/kdump/kdump.c
==============================================================================
--- head/usr.bin/kdump/kdump.c	Mon Jun  4 18:45:18 2012	(r236576)
+++ head/usr.bin/kdump/kdump.c	Mon Jun  4 19:09:14 2012	(r236577)
@@ -251,7 +251,8 @@ main(int argc, char *argv[])
 			}
 		}
 		if (trpoints & (1<<ktr_header.ktr_type))
-			if (pid == 0 || ktr_header.ktr_pid == pid)
+			if (pid == 0 || ktr_header.ktr_pid == pid ||
+			    ktr_header.ktr_tid == pid)
 				dumpheader(&ktr_header);
 		if ((ktrlen = ktr_header.ktr_len) < 0)
 			errx(1, "bogus length 0x%x", ktrlen);
@@ -266,7 +267,8 @@ main(int argc, char *argv[])
 		if (fetchprocinfo(&ktr_header, (u_int *)m) != 0)
 			continue;
 		sv_flags = abidump(&ktr_header);
-		if (pid && ktr_header.ktr_pid != pid)
+		if (pid && ktr_header.ktr_pid != pid &&
+		    ktr_header.ktr_tid != pid)
 			continue;
 		if ((trpoints & (1<<ktr_header.ktr_type)) == 0)
 			continue;


More information about the svn-src-all mailing list