现在搞这种书还会有人看么?感觉现在用户有点萎缩了 2014-06-03 11:38 GMT+08:00 WU Wei <wuwei.gucas@xxxxxxxxx>: > 好主意! > > 注意到有一本《Debug Hacks - 深入调试的技术和工具》看起来还不错, 主要针对的是内核调试的. 我们或许可以借鉴下这本书的描述风格? > > 书名: Debug Hacks中文版 > 链接: http://book.douban.com/subject/6799412/ > > (credit: 以下内容粘贴自豆瓣图书.) > > ・ ・ ・ ・ ・ ・ ISBN信息 ・ ・ ・ ・ ・ ・ > 作者: 吉��弘隆 / 大和一洋 / 大岩尚宏 / 安部�|洋 / 吉田俊�o > 出版社: 电子工业出版社 > 副标题: 深入调试的技术和工具 > 原作名: Debug Hacks > 译者: 马晶慧 > 出版年: 2011-8 > 页数: 424 > 定价: 69.00元 > 装帧: 平装 > ISBN: 9787121140488 > > ・ ・ ・ ・ ・ ・ 内容简介 ・ ・ ・ ・ ・ ・ > 《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 > > > 在 2014年6月3日 上午9:30,Hongxu Chen <leftcopy.chx@xxxxxxxxx> 写道: >> 非常期待,多谢邢大大~ >> 另外,不妨分享些~/.gdbinit文件并且讲解讲解相关设置的应用场景。看到很多dotfiles,但是gdb上的却很少。 >> >> Thanks and Regards, >> Hongxu >> >> >> 2014-06-03 8:49 GMT+08:00 Mingjie Xing <mingjie.xing@xxxxxxxxx>: >> >>> 各位gdb牛人,有没有兴趣编纂一本《100个gdb小技巧》/《100 gdb >>> >>> tips》?采用GFDL许可证,汇总100个使用gdb的小技巧,类似于nanxiao在博客上发的那种简单形式(http://www.hellogcc.org/?p=33834)。 >>> >>> 难点在于能不能找到100个,呵呵。 >>> >>> 祝好 >>> 邢明杰 >> >> > > > > -- > Wei WU