svn commit: r352702 - head/tools/debugscripts
Gleb Smirnoff
glebius at FreeBSD.org
Wed Sep 25 18:03:16 UTC 2019
Author: glebius
Date: Wed Sep 25 18:03:15 2019
New Revision: 352702
URL: https://svnweb.freebsd.org/changeset/base/352702
Log:
Enhance the 'ps' command so that it prints a line per proc and a line
per thread, so that instead of repeating the same info for all threads
in proc, it would print thread specific info. Also includes thread number
that would match 'info threads' info and can be used as argument for
thread swithcing with 'thread' command.
Modified:
head/tools/debugscripts/gdbinit.kernel
Modified: head/tools/debugscripts/gdbinit.kernel
==============================================================================
--- head/tools/debugscripts/gdbinit.kernel Wed Sep 25 17:59:58 2019 (r352701)
+++ head/tools/debugscripts/gdbinit.kernel Wed Sep 25 18:03:15 2019 (r352702)
@@ -199,28 +199,29 @@ define ps
set $nproc = nprocs
set $aproc = allproc.lh_first
set $proc = allproc.lh_first
- printf " pid proc uid ppid pgrp flag stat comm wchan\n"
+ set $tid = 1
+ printf "pid/ID ppid/tid uid pgrp flag st comm/name proc/thread\n"
while (--$nproc >= 0)
set $pptr = $proc.p_pptr
if ($pptr == 0)
set $pptr = $proc
end
if ($proc.p_state)
+ printf " %5d %6d %4d %5d %8x %2d %-10s %p\n", \
+ $proc.p_pid, $pptr->p_pid, \
+ $proc.p_ucred->cr_ruid, \
+ $proc.p_pgrp->pg_id, $proc.p_flag, $proc.p_state, \
+ &$proc.p_comm[0], $aproc
set $thread = $proc->p_threads.tqh_first
while ($thread)
- printf "%5d %08x %4d %5d %5d %06x %d %-10s ", \
- $proc.p_pid, $aproc, \
- $proc.p_ucred->cr_ruid, $pptr->p_pid, \
- $proc.p_pgrp->pg_id, $proc.p_flag, $proc.p_state, \
- &$proc.p_comm[0]
- if ($thread.td_wchan)
- if ($thread.td_wmesg)
- printf "%s ", $thread.td_wmesg
- end
- printf "%x", $thread.td_wchan
+ printf "(%5d) %6d %-10s %p", \
+ $tid, $thread->td_tid, $thread->td_name, $thread
+ if ($thread.td_wmesg)
+ printf " %s", $thread.td_wmesg
end
- printf "\n"
+ printf "\n"
set $thread = $thread->td_plist.tqe_next
+ set $tid = $tid + 1
end
end
set $aproc = $proc.p_list.le_next
More information about the svn-src-all
mailing list