1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-14 14:55:41 +00:00

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
This commit is contained in:
John Baldwin 2012-06-04 19:09:14 +00:00
parent 77d396fd18
commit 01a36e296d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=236577
2 changed files with 7 additions and 5 deletions

View File

@ -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).

View File

@ -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;