























|
|
Debugging Kernel Problems
This tutorial will show debugging techniques on live systems. The operating
system for most of the tutorial will be FreeBSD, but it will explain the
(relatively small) differences in NetBSD and OpenBSD. The course material,
over 100 pages long, is a draft of a forthcoming book on the subject.
Topics:
- How and why kernels fail.
- Understanding log files: dmesg, /var/log/messages.
- Using common tools for debugging a running system: ps, netstat, top.
- Building a kernel with debugging support: the options.
- Preparing for dumps: dumpon, savecore.
- Demonstration: panicing and dumping a system.
- Preliminary dump analysis (non-technical, without sources).
- The assembler-level view of a C program.
- Introduction to the kernel source tree.
- Analysing panic dumps with gdb (technical).
- On-line kernel debuggers: ddb, gdb.
- Remote debugging with gdb, using serial lines, Ethernet and
FireWire.
- Debugging a running system with gdb.
- If time permits, a demonstration of some of these topics on NetBSD and
OpenBSD systems.
Intended Audience
Kernel developers and experienced system adminstrators. The tutorial assumes a
good working knowledge of UNIX systems administration and the C programming
language. A knowledge of kernel internals will be helpful, but is not
essential. Depending on prior experience, participants will learn to locate
and either fix or report kernel bugs.
About the Tutor
Greg Lehey is a FreeBSD and NetBSD developer and an ex-member of the FreeBSD
core team. He has been in the computer industry for 30 years, most of them
spent in Germany, in which time he has performed most jobs, ranging from kernel
development to product management, from systems programming to systems
administration, from processing satellite data to programming petrol pumps,
from the production of CD-ROMs of ported free software to DSP instruction set
design. He is the author of "Porting UNIX Software" (O'Reilly and Associates,
1995) and "The Complete FreeBSD" (O'Reilly and Associates, 2003).
|