第1章 热身准备 1
1.调试是什么 1
2.debug hacks的地图 4
3.调试的心得 6
第2章 调试前的必知必会 13
4.获取进程的内核转储 13
5.调试器(gdb)的基本使用方法(之一) 18
6.调试器(gdb)的基本使用方法(之二) 32
7.调试器(gdb)的基本使用方法(之三) 39
8.intel架构的基本知识 45
9.调试时必需的栈知识 52
10.函数调用时的参数传递方法(x86_64篇) 61
11.函数调用时的参数传递方法(i386篇) 66
12.函数调用时的参数传递方法(c++篇) 69
13.怎样学习汇编语言 72
14.从汇编代码查找相应的源代码 77
第3章 内核调试的准备 87
15.oops信息的解读方法 87
16.使用minicom进行串口连接 90
.17.通过网络获取内核消息 94
18.使用sysrq键调试 98
19.使用diskdump获取内核崩溃转储 104
20.使用kdump获取内核崩溃转储 110
21.crash命令的使用方法 113
22.死机时利用ipmi watchdog timer获取崩溃转储 126
23.用nmi watchdog在死机时获取崩溃转储 131
24.内核独有的汇编指令(之一) 132
25.内核独有的汇编指令(之二) 136
第4章 应用程序调试实践 139
26.发生sigsegv,应用程序异常停止 139
27.backtrace无法正确显示 147
28.数组非法访问导致内存破坏 151
29.利用监视点检测非法内存访问 157
30.malloc()和free()发生故障 160
31.应用程序停止响应(死锁篇) 163
32.应用程序停止响应(死循环篇) 168
第5章 实践内核调试 177
33.kernel panic(空指针引用篇) 177
34.kernel panic(链表破坏篇) 184
35.kernel panic 192
36.内核停止响应(死循环篇) 205
37.内核停止响应(自旋锁篇之一) 212
38.内核停止响应(自旋锁篇之二) 215
39.内核停止响应(信号量篇) 221
40.实时进程停止响应 232
41.运行缓慢的故障 240
42.cpu负载过高的故障 245
第6章 高手们的调试技术 259
43.使用strace寻找故障原因的线索 259
44.objdump的方便选项 264
45.valgrind的使用方法(基本篇) 267
46.valgrind的使用方法(实践篇) 272
47.利用kprobes获取内核内部信息 275
48.使用jprobes查看内核内部的信息 280
49.使用kprobes获取内核内部任意位置的信息 282
50.使用kprobes在内核内部任意位置通过变量名获取信息 287
51.使用kaho获取被编译器优化掉的变量的值 291
52.使用systemtap调试运行中的内核(之一) 297
53.使用systemtap调试运行中的内核(之二) 303
54./proc/meminfo中的宝藏 307
55.用/proc/[pid]/mem快速读取进程的内存内容 311
56.oom killer的行为和原理 315
57.错误注入 323
58.利用错误注入发现linux内核的潜在bug 328
59.linux内核的init节 334
60.解决性能问题 337
61.利用vmware vprobe获取信息 346
62.用xen获取内存转储 350
63.理解用got/plt调用函数的原理 352
64.调试initramfs镜像 357
65.使用rt watchdog检测失去响应的实时进程 362
66.查看手头的x86机器是否支持64位模式 366
附录 debug hacks术语的基础知识 369
索引 379
· · · · · · (
收起)
0 有用 C55x 2012-08-22 20:51:40
解答了很多一直以来不清楚的问题。
0 有用 fuzhli 2012-07-14 21:48:49
前半部仔细读了,后半部分是“翻”过来的。systemtap是个好东西。
3 有用 平凡的老鱼 2012-10-28 15:23:54
当时正在调试部分碰到了瓶颈,看到了fleuria的推荐买的,结果对于我来说是一把屠龙刀。这是给专业的现在内核开发人员用的,我其实现在需要的只是一把菜刀。这本书对于一般人来说没有什么用,对于内核开发人员肯定特别有用。
4 有用 kiven 2015-05-22 20:56:09
太实用了,绝对值得一看。调试Linux内核的部分虽然我用不到,但是讲解GDB,以及调试Linux应用程序的部分,对程序员来说太实用了,可能我以前的调试技术太差了,基本都是写日志调试错误。看来这本书才知道原来运行中的进程可以直接用GDB attach进入调试模式。很有收获,强力推荐。
1 有用 剑南 2014-07-24 11:50:21
debugging is twice as hard as writing the program in the first place. So, if you’re as clever as you can be when you write it, how can you debug it?
0 有用 常泽雅美 2024-02-01 17:08:55 广西
好书啊虽然年代久远但值得多读几遍
0 有用 2TC 2022-10-03 02:39:45 埃及
一年后二刷 果然更有经验后才能意识到这本书的精彩绝伦 太妙了!
0 有用 Ethanity 2021-12-22 18:35:32
非常硬核的一本书,只挑了部分看。说明较少,大多数例子都是上gdb直接调/读汇编。
0 有用 杨逸 2021-05-19 13:29:52
大段是内核调试,没弄过不太懂。应用调试有一些技巧可以学习。
0 有用 Feet O' Uma 2021-03-26 10:49:12
也许之后应该再看一遍