Date: Wed, 25 Sep 2019 18:03:15 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r352702 - head/tools/debugscripts Message-ID: <201909251803.x8PI3Fjw082612@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909251803.x8PI3Fjw082612>