[hellogcc] Re: [hellogcc] Re: [hellogcc] Re: [hellogcc] 《100个gdb小技巧》

  • From: Hui Zhu <teawater@xxxxxxxxx>
  • To: "hellogcc@xxxxxxxxxxxxx" <hellogcc@xxxxxxxxxxxxx>
  • Date: Tue, 3 Jun 2014 11:41:34 +0800

现在搞这种书还会有人看么?感觉现在用户有点萎缩了

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

Other related posts: