Resend, I accidentally hit send too soon.

On Tue, 7 Aug 2001 19:34:07 -0400, 
Kapish K <[EMAIL PROTECTED]> wrote:
>       I would like to understand the meaning of the following in the
>kdb output:
>firstly, when would kdb normally show unknown in the bt trace?

I assume you are talking about ix86 here.  kdb tries to unwind the ix86
stack, making its best guess at where functions were called from.  The
problem with ix86 is that it is not always possible to do an exact
stack decode, due to lack of frame pointers and non-standard kernel
frames.  <unknown> appears when kdb has got what it believes is the
return address from the stack but that address does not fall inside the
kernel or any module.  It is likely that the stack unwind has found a
false return address.  Alternatively your run time system might be
using an old version of insmod that does not add module symbols to the
kallsyms table.

The next time it oops, "set KDBDEBUG=0x19" then bt.  That will produce
a *big* trace of what kdb is doing with stack unwind, send the trace to
me, not to the list.  You will need a serial console to capture the
trace output.  Also I need to know which version of gcc and insmod you
are using.

>second is, what does the thread column mean? 

It is the address of the thread structure currently associated with the
process.  Unless the process used clone with CLONE_THREAD, you can
ignore that field, it is only useful when debugging multi threaded
applications.

>finally, what do the runs for the various processes mean? that
>they are in the run queue?

The status field for the process has it marked as runnable.  If it is
actually running on a cpu then it has '1' in the cpu column.  Most
processes are stopped waiting for an event.

Reply via email to