《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
《通信简史:从信鸽到6G+》内容简介:通信行业是当今社会的热门行业,本质上,通信其实是人类活动的极其重要的辅助手段。随着近代各
《数字经济时代的智慧城市与信息安全(第2版)》内容简介:随着信息技术的迅猛发展,信息技术与经济社会的交汇融合,引发了数据的爆
不要懷疑,所有的問題都可以用圖畫來釐清。你不用具備什麼繪畫技巧,只要會畫圓圈、方塊、箭頭,然後按照作者的指示,一步一步,
日本設計大師原研哉為其設計生涯的諸多作品,以淺顯易懂的精鍊語言,做全面性解說。近年來的新作,如「HAPTIC」展、北京奧運象徵
《idea+10(1):举一反百的聪明设计法则》内容简介:很多设计师的头脑里不乏绝妙的设计点子,但是重复的主题一再出现,创意总难免枯
《叶秀山全集·第八卷》内容简介:本选题分类结集叶秀山先生全部已经出版的专著,在学术期刊上发表的所有论文,以及部分笔记、札记
AndrewS.Tanenbaum分别在麻省理工学院加州大学伯克利分校获得学士与博士学位。现任荷兰阿姆斯特丹Vrije大学计算机教授并领导着一
《Node与Express开发(第2版)》内容简介:本书系统地讲解了使用Express开发动态Web应用的流程和步骤。作者不仅讲授了开发公共站点
Thisbookisdesignedinmakingstatisticians,researchers,andprogrammersawareoftheawes...
《Python深度强化学习:基于Chainer和OpenAI Gym》内容简介:近年来,机器学习受到了人们的广泛关注。本书面向普通大众,指导读者在
《HikariCP数据库连接池实战》内容简介:这是一本从设计思想、功能使用、原理实现、工程实践、技术扩展5个维度全面讲解数据库连接池
《时尚达人的服饰潮搭与网购指南》内容简介:本书是服饰穿搭与网购的指导手册。本书首先介绍了服装廓形、色彩及流行趋势,然后针对
本书是一部定位于以容易理解的语言,提供给未来用户关于电力线通信技术的书籍。该书以较为易懂的方式涵盖了核技术的备个方面,从
《深入浅出设计模式》(影印版)的编写运用许多最新的研究,包括神经生物学、认知科学以及学习理论,这使得《深入浅出设计模式》(影
"GISforSustainableDevelopment"examineshowGISapplicationscanimprovecollaborationi...
《万国衣冠拜冕旒:唐代卷》内容简介:《万国衣冠拜冕旒:唐代卷》全书通过对我大唐帝国时期大量文明遗产(包括各类工艺品、美术作
本书是经典著作《Linux设备驱动程序》的第三版。如果您希望在Linux操作系统上支持计算机外部设备,或者在Linux上运行新的硬件,或
中文版InDesign CS5技术大全-(附光盘) 本书特色 超厚手册,超大容量,技术全面,39章教学内容,软件功能全覆盖,基础详解、功能全面、理论实践全接触,...
CJKVInformationProcessing,theunsurpassedsourceofinformationonprocessingtextinChi...
深度学习与人体姿态动作识别/关晨至 内容简介 本书主要阐述了深度学习下人体姿态动作识别的相关技术和方法。全书共六章,章介绍了深度学习的发展历史;第二章介绍了各种...