《Debug Hacks中文版—深入调试的技术和工具》是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.使用rt watchdog检测失去响应的实时进程 362
66.查看手头的x86机器是否支持64位模式 366
附录 debug hacks术语的基础知识 369
索引 379
AndyOramAndyOram是OReillyMedia的编辑。他从1992年开始就在这家公司工作,Andy目前主要关注自由软件和开源技术。他在OReilly...
《思想政治理论金榜书》内容简介:本书是一本由双一流大学对口专业教授、学者合作编写的考研政治辅导教材,并严格依据教育部所颁布
作者简介:SimonBrown全球知名软件架构独立咨询师、讲师,创办了专门讨论软件架构问题的网站“编码架构”(codingthearchitectur
LearnJavaScriptandjQueryanicerwayThisfull-colorbookadoptsavisualapproachtoteachi...
《一部手机玩转移动理财》内容简介:现在,手机已成为每个人生活中必不可少的伴侣,几乎24 小时不离身,而将来,手机将成为每个人进
The Adobe lllustrator CS6 WOW!Book 本书特色 多年来,Sharon Stever和她的国际化WOW!团队一直致力于在全球范围内...
《贫困的复杂图景与反贫困的多元路径》内容简介:本书在实地田野调研的基础上,通过宏观、微观考察民族地区农村贫困的复杂图景及致
《当我遇见一个人》内容简介:任何事物,如果你觉得它美,那么它一定暗合了某种美的规律。家庭教育也一样,一个孩子从呱呱坠地到健
本书以IEEE802系列标准为主介绍局域网与城域网的相关技术,涉及lOMbps以太网、快速以太网、千兆位以太网、万兆位以太网、交换式以
ThedefinitivehistoryofDARPA,theDefenseAdvancedResearchProjectAgency,fromtheautho...
本书整合了自1999年《Java虚拟机规范(第2版)》发布以来Java世界所出现的技术变化。另外,还修正了第2版中的许多错误,以及对目
《你是锦瑟 我为流年》内容简介:锲而不舍地流浪,乐此不疲地拾荒。2019全新升级,畅销书作者白落梅温情讲述三毛传奇一生! 她是撒
《Revit 2018建筑设计从入门到精通(中文版)》内容简介:本书重点介绍了Autodesk Revit2018中文版的新功能及各种基本操作方法和技
周鸿祎谈互联网思维 本书特色便捷性 互联网的信息传递和获取比传统方式快了很多也更加丰富了。这也是为什么pc取代了传统的报纸电视而手机即将取代pc——信息获取更便...
《2020—2021年中国消费品工业发展蓝皮书(精装版)》内容简介:本书基于全球化视角,对过去一年中我国及世界主要国家消费品工业的
《巴赫《法国组曲》》内容简介:葛蔚英为上海音乐学院钢琴系教授。在20世纪90年代,编注了巴赫的钢琴组曲《英国组曲》《法国组曲》
上部:创新创造突破性产品实战体系道:起点/为顾客创造价值;终点/熵增衰亡法:一命二正三出奇,四用地利五任势术:“产品兵法”
《图形设计新元素》一书提出了一些平面设计研究领域迫切需要关注的新问题。埃伦勒普顿(EllenLupton)是《字体思维》(Thinkingwith
《链接:社交时代的品牌法则》内容简介:社交时代,个体崛起,个体成为经济的基本单元,链接个体成社群是商业的核心逻辑。本书作者
《简洁的力量》内容简介:我们是否思考过这样一个问题:创新是要让我们的世界变得更加科技化还是人性化?如果说是为了科技化,那我