STREAMS/UX for the HP 9000 Reference Manual

175
Debugging STREAMS/UX Modules and Drivers
Using adb
occurred will be described later. These “panic time” register values enable
the user to examine the context of the process that was running at the time of
the system crash.
Debugging Hung Systems
If the system core dump is from a transfer of control (TOC) of a hung
system, adb will be unable to determine the “dump time” or “panic time”
register values. In these cases, adb can still be used to determine the
contents of the kernel message buffer (see “Finding the Panic Message”),
and to examine kernel global variables (see “Obtaining Important Kernel
Global Variables”), but it will not be able to give you a stack trace or context
for the process that was running at the time of the system crash.
It is especially important, when looking at a dump from a system which
appeared to be hung, to check the kernel globals freemem, freemem_cnt, and
avenrun. These variables may indicate that your system was out of memory
or was overloaded. (See “Obtaining Important Kernel Global Variables” for
more information.)
It can also be helpful, before doing a TOC on a system which appears hung,
to determine how complete the system paralysis is. The following table
describes hang symptoms, from the least severe to the most severe. This
table may help you determine where your system fits on this continuum.
Symptom Explanation
Some processes, like your shell or
your tests, do not run, but other
processes are running.
Your system is not hung, but there is some other problem
holding back your processes. If you have a terminal session
that is working, use strdb and adb to look at the kernel and the
STREAMS/UX subsystem state.
You cannot login, either locally or
remotely.
Your system may not be hung, its networking software state,
terminal I/O or getty processes may be deadlocked in some
way. If you have a terminal session that is working, use strdb
and adb to look at the kernel and the STREAMS/UX
subsystem state.