[cgl_discussion] Project Review: kdb
Andy Pfiffer
andyp at osdl.org
Tue Sep 10 16:42:00 PDT 2002
1. Quote the requirements from the reqruirements doc
that your project is expected to meet.
2. Explain how you think the project meets the
above requirements.
3. Explain the design of the project or point to
a document on the web that explains the design.
4. Pointer to the code/patch.
-==-
1. Quote the requirements related to the kernel debugger.
Category: Tools
Requirement: 5.3 Kernel Debugger
Description:
OSDL CGL shall support a kernel debugger that provides
the ability to break into a running kernel at boot time
or during system operation, set breakpoints, examine memory
contents in several formats, change memory contents or
machine registers, and other debug functionality.
The debugger shall be SMP-aware. It can support remote
kernel debug sessions on headless systems using a
tty connection.
Support can be configured out if desired.
2. Explain how the project meets the requirements.
The code already present in the tree is an integration
of kdb v2.1:
Built-in Kernel Debugger for Linux - v2.1
This debugger allows the programmer to interactively
examine kernel memory, disassemble kernel functions,
set breakpoints in the kernel code and display
and modify register contents."
All functionality listed in the CGL requirment is advertised
as being present in kdb v2.1.
3. Point to a document on the web that explains the design.
Overview: http://oss.sgi.com/projects/kdb/index.html
FAQ: http://oss.sgi.com/projects/kdb/faq.html
Additional documentation (in CGLE CVS kernel repository):
kernel/linux-2.4.18/src/Documentation/
Overview manpage (man format):
.../kdb/kdb.mm
Breakpoint commands (man format):
.../kdb/kdb_bp.man
Stack traceback commands (man format):
.../kdb/kdb_bt.man
Environment manipulation commands (man format):
.../kdb/kdb_env.man
Linked list examination (man format):
.../kdb/kdb_ll.man
Memory manipulation (man format):
.../kdb/kdb_md.man
Register manipulation (man format):
.../kdb/kdb_rd.man
Single Step (man format):
.../kdb/kdb_ss.man
I have configured, built, and run a kdb-equipped
CGLE kernel. I performed some basic interactive
testing, and could: break into a running system,
set breakpoints, examine memory contents, and change
memory contents, and perform stack tracebacks.
I have not tried:
1. instruction disassembly
2. headless operation with an RS232 line.
4. Pointer to the code/patch.
Open-source project page:
http://oss.sgi.com/projects/kdb/
Two patches present in the CGLE CVS kernel repository:
kernel/linux-2.4.18/patches/kdb/kdb-v2.1-2.4.18-common-3.bz2
kernel/linux-2.4.18/patches/kdb/kdb-v2.1-2.4.18-i386-1.bz2
One patch is for generic kernel support, the second for
IA32 architectures.
More information about the cgl_discussion
mailing list