13.4.7 dmalloc. ................................................................................................. 350
13.4.8
Kernel Oops
. ............................................................................................ 353
13.5
Binary
U
tilities
. ................................................................................................ 355
13.5.1 readelf. ................................................................................................. 355
13.5.2
Examining
Debug Information
Using
readelf. ...................................... 357
13.5.3 objdump. ................................................................................................. 359
13.5.4 objcopy. ................................................................................................. 360
13.6
Miscellaneous Binary Utilities
. ......................................................................... 361
13.6.1 strip ....................................................................................................... 361
13.6.2 addr2line. ............................................................................................. 361
13.6.3 strings. ................................................................................................. 362
13.6.4 ldd. .......................................................................................................... 362
13.6.5 nm. ............................................................................................................ 363
13.6.6 prelink. ................................................................................................. 364
13.7
Summary.
......................................................................................................... 364
13.7.1
Suggestions
for
Additional Reading.
.......................................................... 365
Chapter
14
Kernel Debugging Techniques
.
.........................................................367
14.1
Challenges
to
Kernel Debugging
....................................................................... 368
14.2 Using KGDB for
Kernel Debugging
. ............................................................... 369
14.2.1 KGDB
Kernel Configuration.
................................................................... 371
14.2.2 Target Boot with KGDB Support. ............................................................. 372
14.2.3
Useful Kernel
Breakpoints..........................................................................
376
14.2.4
Sharing
a
Console Serial
Port with
KGDB
................................................. 377
14.2.5
Debugging Very Early Kernel
Code ........................................................... 379
14.2.6 KGDB Support in the
Mainline Kernel
..................................................... 380
14.3
Kernel Debugging
T
echniques
. ......................................................................... 381
14.3.1 gdb Remote
Serial
P
r
otocol
........................................................................ 382
14.3.2
Debugging
Optimized
Kernel
Code...........................................................
385
14.3.3 GDB
User-Defined
Commands.................................................................
392
14.3.4
Useful Kernel
GDB
Macros
....................................................................... 393
14.3.5
Debugging Loadable Modules.
.................................................................. 402
14.3.6 printk
D
ebugging
................................................................................... 407