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-head mailing list