《Debug Hacks中文版 深入调试的技术和工具》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(日)吉冈弘隆等著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121140488
  • 页数:406 页
图书介绍:本书是Miracle Linux的创始人吉冈弘隆和几位工程师们多年从事内核开发的经验积累。从调试器的基本使用方法、汇编的基础知识开始,到内核错误信息捕捉、应用程序调试、内核调试,本书深入浅出地讲解了Linux下应用程序和内核的调试技巧。虽然本书的出发点是Linux内核调试,但书中的绝大部分知识在许多领域都能派上用场。如Linux应用程序开发,嵌入式Linux开发,甚至时下流行的iOS应用程序开发,只要从事应用程序开发的工作,就会涉及调试,那么读一读本书也不无裨益。

第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.使用RTWatchdog检测失去响应的实时进程 362

66.查看手头的x86机器是否支持64位模式 366

附录Debug hacks术语的基础知识 369

索引 379