diff options
author | Eric van Gyzen <vangyzen@FreeBSD.org> | 2016-12-07 15:04:22 +0000 |
---|---|---|
committer | Eric van Gyzen <vangyzen@FreeBSD.org> | 2016-12-07 15:04:22 +0000 |
commit | 3d32d4a7c97401beb9eb1aaafbcb0389e50d9109 (patch) | |
tree | 43441ee7e43e93c264c40098bc6a268fa2fab93b /usr.bin/procstat/procstat.c | |
parent | 75747c209ced3c7e244c7249e8ecb667f6900ffb (diff) | |
download | src-3d32d4a7c97401beb9eb1aaafbcb0389e50d9109.tar.gz src-3d32d4a7c97401beb9eb1aaafbcb0389e50d9109.zip |
Export the whole thread name in kinfo_proc
kinfo_proc::ki_tdname is three characters shorter than
thread::td_name. Add a ki_moretdname field for these three
extra characters. Add the new field to kinfo_proc32, as well.
Update all in-tree consumers to read the new field and assemble
the full name, except for lldb's HostThreadFreeBSD.cpp, which
I will handle separately. Bump __FreeBSD_version.
Reviewed by: kib
MFC after: 1 week
Relnotes: yes
Sponsored by: Dell EMC
Differential Revision: https://reviews.freebsd.org/D8722
Notes
Notes:
svn path=/head/; revision=309676
Diffstat (limited to 'usr.bin/procstat/procstat.c')
-rw-r--r-- | usr.bin/procstat/procstat.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/usr.bin/procstat/procstat.c b/usr.bin/procstat/procstat.c index cafb33525b27..0388ba01e6af 100644 --- a/usr.bin/procstat/procstat.c +++ b/usr.bin/procstat/procstat.c @@ -35,6 +35,7 @@ #include <libprocstat.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <sysexits.h> #include <unistd.h> @@ -126,6 +127,21 @@ kinfo_proc_sort(struct kinfo_proc *kipp, int count) qsort(kipp, count, sizeof(*kipp), kinfo_proc_compare); } +const char * +kinfo_proc_thread_name(const struct kinfo_proc *kipp) +{ + static char name[MAXCOMLEN+1]; + + strlcpy(name, kipp->ki_tdname, sizeof(name)); + strlcat(name, kipp->ki_moretdname, sizeof(name)); + if (name[0] == '\0' || strcmp(kipp->ki_comm, name) == 0) { + name[0] = '-'; + name[1] = '\0'; + } + + return (name); +} + int main(int argc, char *argv[]) { |