[ros-kernel] The ailing kdb stabs reader

art yerkes ayerkes at speakeasy.net
Mon Jan 12 21:55:43 CET 2004


I have fixed the ailing symbol reader in kdbg, so that stack traces now show
correct information when symbols are available.  Accordingly, I have changed
the stack trace format to vertical. 

I am looking into enabling symbol reading for DBG=1 as well as KDBG=1 but it's
not too high on my list.  Now that other obstacles have been removed, however,
someone else with some time should be able to do it pretty easily.  The task
simply involves separating hooks and ifdefs that require only dbg/kdb_stabs.c
from ones that requre other kdb files, then making kdb_stabs.c compile in
the cases of both DBG and KDBG = 1.  In some cases, the address printer can
be a bit quirky, but it does work for the most part.

The 'addr' command in kdb uses the same method to print addresses, so it is
now possible to do address lookups manually using kdb.

Here is a new stack trace sample:

Pid: 9 <dnsquery> Thrd: c17ae140 Tid: 31                                        
Frames: <ntoskrnl.exe: be4b (ke/bug.c:645 (KeBugCheck))>                        
<ntoskrnl.exe: 36c3a (dbg/kdb.c:645 (DbgBugCheckCommand))>                      
<ntoskrnl.exe: 36de1 (dbg/kdb.c:645 (KdbDoCommand))>                            
<ntoskrnl.exe: 36eb4 (dbg/kdb.c:645 (KdbMainLoop))>                             
<ntoskrnl.exe: 36eda (dbg/kdb.c:645 (KdbInternalEnter))>                        
<ntoskrnl.exe: 36f31 (dbg/kdb.c:645 (KdbEnterDebuggerException))>               
<ntoskrnl.exe: c0e7 (ke/catch.c:645 (KiDispatchException))>                     
<ntoskrnl.exe: 14ab (ke/i386/exp.c:198 (KiKernelTrapHandler))>                  
<ntoskrnl.exe: 1ddc (ke/i386/exp.c:594 (KiTrapHandler))>                        
<ntoskrnl.exe: 3a71 (:645 (KeAddSystemServiceTable))>                           
<tcpip: 1ebea (datalink/loopback.c:108 (LoopTransmit))>                         
<tcpip: 1c430 (datalink/lan.c:247 (ProtocolSendComplete))>                      
-- 
"Should array indices start at 0 or 1? My compromise of 0.5 was rejected
 without, I thought, proper consideration."
   - S. Kelly-Bootle


More information about the Ros-kernel mailing list