1 # $DragonFly: src/test/debug/gdb.kernel,v 1.4 2005/07/28 15:48:56 hmp Exp $
3 # Command file for the GNU Debugger, for kernel debugging.
5 # This file can either be put in your home directory as ~/.gdbinit,
6 # or selected at run time as:
8 # 'gdb -k -q -x /usr/src/test/debug/gdb.kernel ...'
10 # Here is a list of macros and short one-line descriptions:
12 # kldstat - kldstat(1) command style output of loaded modules
13 # pcomm - print command name of arg0's (thread's) process pointer
14 # psx - process listing with wchan information
15 # running_threads - the current running thread on each CPU.
18 set history expansion on
21 printf "%10s\n",$arg0->td_comm
25 set $vfc = vfsconf->vfc_next
26 printf "Filesystem Refs Flags\n"
28 printf "%-10s %6d 0x%08x\n", $vfc->vfc_name, \
29 $vfc->vfc_refcount, $vfc->vfc_flags
30 set $vfc = $vfc->vfc_next
35 set $mnt = (mountlist->tqh_first)
38 set $mnt = $mnt->mnt_list->tqe_next
43 set $vfc = vfsconf->vfc_next
45 printf "Filesystem: %s, Refs: %d, Flags: 0x%08x\n", \
46 $vfc->vfc_name, $vfc->vfc_refcount, $vfc->vfc_flags
49 print *$vfc->vfc_vfsops
51 set $vfc = $vfc->vfc_next
57 set $kld = linker_files.tqh_first
58 printf "Id Refs Address Size Name\n"
60 printf "%2d %4d 0x%08x %-8x %s\n", \
61 $kld->id, $kld->refs, $kld->address, $kld->size, $kld->filename
62 set $kld = $kld->link.tqe_next
68 printf "cpu pid thread flags comm wchan wmesg\n"
70 set $gd = &((struct privatespace *)&CPU_prvspace)[$cpu].mdglobaldata
71 set $td = $gd->mi.gd_tdallq.tqh_first
73 if ( $td->td_proc != 0 )
74 set $pid = $td->td_proc->p_pid
78 if ( $td->td_wmesg != 0 )
79 printf "%3d %5d %08x %08x %-10s %08x %s\n", \
80 $cpu, $pid, $td, $td->td_flags, $td->td_comm, $td->td_wchan, \
83 printf "%3d %5d %08x %08x %-10s %08x\n", \
84 $cpu, $pid, $td, $td->td_flags, $td->td_comm, $td->td_wchan
86 set $td = $td->td_allq.tqe_next
93 define running_threads
95 printf "cpu curthread wchan\n"
97 set $ipvspace = (struct privatespace *)&CPU_prvspace
98 set $gd = $ipvspace[$icpu].mdglobaldata.mi
99 set $td = $gd.gd_curthread
100 printf "%d %10s %08x\n", \
101 $gd.gd_cpuid, $td->td_comm, $td->td_wchan
102 set $icpu = $icpu + 1
107 set $proc = allproc->lh_first
109 printf "%p%6d%10s\n",$proc,$proc->p_pid,$proc->p_thread->td_comm
110 set $proc = $proc->p_list.le_next
114 # Documentation, usable within GDB using the 'help' command.
116 Output list of loaded file systems, refcount, similar to the
121 Iterate the current list of mount structures loaded from the
122 memory core, there should be one per loaded VFS.
126 Display the VFS operations vector for each file system found in
127 the memory core, preceded by a summarised header.
131 Output list of loaded kernel modules in kldstat(1) style.
135 Print command name of the given thread pointer (first argument).
139 Output a list of processes with wait-channel (wchan) informaiton.
142 document running_threads
143 List the threads which are currently running and their CPU number.
147 Output a list of processes.