cvs commit: src/sys/bus/usb usb_ethersubr.c src/sys/kern kern_poll.c uipc_msg.c src/sys/net netisr.c netisr.h src/sys/net/ppp if_ppp.c src/sys/netgraph/netgraph ng_base.c src/sys/netinet if_ether.c ip_demux.c ip_input.c tcp_subr.c ...
Matthew Dillon
dillon at apollo.backplane.com
Tue Apr 13 12:35:09 PDT 2004
:By the way, is there a way to specify from which process to show the
:trace in gdb -k? For example, mpd had pid 36 in the above trace, but
:if I manually panic, savecore the dump and feed it to gdb -k, I don't
:know how to specify the pid in gdb. It's too late to simply set a
:breakpoint on lwkt_default_waitport after mpd got stuck because, but
:if I set the breakpoint BEFORE mpd hangs, maybe I have to skip too
:many false-positives before reaching the target.
Yes, you should be able to specify the pid:
gdb> proc 27
gdb> back
For pure threads, supply the address of the thread structure.
gdb> proc 0x<address_of_thread_structure>
gdb> back
Here is a handy GDB macro procedure to generate a 'ps', put it in
your ~/.gdbinit file.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
set print pretty on
set print union
set history expansion on
set $maxargs = 0
define pst
set $cpu = 0
printf "cpu pid thread flags comm wchan wmesg\n"
while ($cpu < ncpus)
set $gd = (struct mdglobaldata *)&CPU_prvspace
set $td = $gd->mi.gd_tdallq.tqh_first
while ( $td != 0 )
if ( $td->td_proc != 0 )
set $pid = $td->td_proc->p_pid
else
set $pid = -1
end
if ( $td->td_wmesg != 0 )
printf "%3d %5d %08x %08x %-10s %08x %s\n", \
$cpu, $pid, $td, $td->td_flags, $td->td_comm, $td->td_wchan, \
$td->td_wmesg
else
printf "%3d %5d %08x %08x %-10s %08x\n", \
$cpu, $pid, $td, $td->td_flags, $td->td_comm, $td->td_wchan
end
set $td = $td->td_allq.tqe_next
end
set $cpu = $cpu + 1
end
end
document ps
"ps" -- when kernel debugging, type out a ps-like listing of active processes.
end
define xbt
set $xsp = (int *)$arg0
set $count = 50
while ($count > 0)
p/a *$xsp
set $xsp = $xsp + 1
set $count = $count - 1
end
end
printf "\n\n\"ps\" -- when kernel debugging, type out a ps-like listing of active processes.\n"
More information about the Commits
mailing list