Thursday, June 25, 2009

Debug Hacks, Table of Contents

Hi,

I've translated Debug Hacks table of contents into English.
Please feel free to ask me if you have any questions.

DEBUG HACKS,
english translation by Hiro Yoshioka
6/25/09

Table of Contents

Chapter 1 Introduction
1 what is a debug
2 road maps of debug hacks
3 hints of debug

Chapter 2 The Things you have to know before debugging
4 how to get core dump of a process
5 introduction of gdb
6 introduction of gdb, part 2
7 introduction of gdb, part 3
8 basic of Intel architecture
9 basic of stack
10 basic of parameter passing of function call (x86_64)
11 basic of parameter passing of function call (i386)
12 basic of parameter passing of function call (C++)
13 how to learn assembly language
14 mapping between source code and assembly code

Chapter 3 Getting Started Kernel Debug
15 how to read Oops messages
16 connecting serial console using minicom
17 getting kernel messages thru network
18 debug using SysRq key
19 getting kernel crash dumps using diskdump
20 getting kernel crash dumps using Kdump
21 how to use crash
22 getting kernel crash dumps using IPMI watchdog timer when a kernel freeze
23 getting kernel crash dumps using NMI watchdog timer when a kernel freeze
24 assembly language idiom in the kernel source code
25 assembly language idiom in the kernel source code, part 2

Chapter 4 Practice of application debug
26 application program aborts SIGSEGV
27 corruption of a back trace information
28 destroying memory by invalid access of an array
29 detecting invalid access using watch point of gdb
30 defects and faults of malloc() and free()
31 application stall (deadlock)
32 application stall (infinite loop)

Chapter 5 Practice of kernel debug
33 kernel panic (NULL pointer)
34 kernel panic (destruction of list data)
35 kernel panic (race condition)
36 kernel stall (infinite loop)
37 kernel stall (spin lock)
38 kernel stall (spin lock, part 2)
39 kernel stall (semaphore)
40 stall of real time process
41 slow down
42 high cpu load

Chapter 6 Debug Techniques
43 using strace to detect the cause of error
44 useful options of objdump
45 how to use Valgrind (basic)
46 how to use Valgrind (advance)
47 getting kernel internal status using kprobes
48 getting kernel internal status using jprobes
49 getting kernel internal status using kprobes (inserting probes)
50 getting kernel internal status using kprobes (inspecting variables)
51 getting value of a variable optimized out by a compiler using KAHO
52 debugging running linux kernel using systemtap
53 debugging running linux kernel using systemtap, part2
54 reading /proc/meminfo
55 /proc/PID/mem to read contents of memory
56 behavior and implementation of OOM Killer
57 fault injection
58 finding hidden bug in the linux kernel using a fault injection
59 init section of linux kernel
60 solving performance issues
61 getting information using VMware Vprobe
62 getting memory dump by XEN
63 understanding an implementation of a function call thru GOT/PLT
64 debugging an initramfs image
65 detecting a stall of a realtime process by RT Watchdog
66 check 64bit capability of intel x86 processor
The editor of Debug Hacks gave me the following description of this book in English. Thanks Ryoko Akaike

HIGHLIGHT

This explains the debug techniques fully under the long term development of Linux Kernel and application development process. This book covers the necessary preparation, its knowledge, quick finding tools of problems and how to solve them quickly by using the most useful techniques and tools. There are many examples to be used in the book. This book helps the Linux development engineers.

Mr. Yukihiro Matsumoto, creator of Ruby strongly recommends this book for the process of programming development.


DESCRIPTION

This book provides the feature of the debugging techniques of Linux development
Engineers.
The readers can :
- Know how to find the problems.
- Prepare for the knowledge to find the problems.
- Find the bugs of the system.
- Amend the problems.
- Get the useful techniques and tools.
- Get the most effective tools in the development stage.

Master the problem solving techniques by the detailed examples.

ABOUT THE KEY AUTHORS
Mr. Hirotaka Yoshioka
Dr. Kazuhiro Yamato
Mr. Naohiro Ooiwa
Mr. Toyo Abe
Mr. Shunsuke Yoshida

All engineers belong to Miracle Linux Corporation, which provides the Linux
System packages and its global consulting services of Linux to the various
Corporations in Japan.



39 comments:

  1. Thanks for translating (perhaps, publishing?)
    I read them and sounds good. I have only 2 questions.

    1)
    Original subtitle of chapter 1 is "こころがまえ(warmingup)". In my opinion, chapter 1 may keep "warmingup", and "Introduction" is for real introduction before indexes.

    2)
    At chapter 10 ~ 12, duplex "of" is a little ugly. If I suggest, "basic of parameter passed by function call" and so on.

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete
  3. This comment has been removed by a blog administrator.

    ReplyDelete
  4. This comment has been removed by a blog administrator.

    ReplyDelete
  5. This comment has been removed by a blog administrator.

    ReplyDelete
  6. This comment has been removed by a blog administrator.

    ReplyDelete
  7. thank you for you to make me learn more,thank you∩0∩ ........................................

    ReplyDelete
  8. This comment has been removed by a blog administrator.

    ReplyDelete
  9. 每一個人無論怎樣渺小,在自己的眼中,都自有其份量 ..................................................

    ReplyDelete
  10. 金銀愈加磨鍊,愈加光亮,人生愈加考驗,生命愈加光輝。 ............................................................

    ReplyDelete
  11. 一定要保持最佳狀況呦,加油!!!期待你發表的新文章!.................................................................

    ReplyDelete
  12. 一個人的價值,應該看他貢獻了什麼,而不是他取得了什麼.................................................................

    ReplyDelete
  13. 卡爾.桑得柏:「除非先有夢,否則一切皆不成。」共勉!............................................................

    ReplyDelete
  14. 如果成為一支火柴,也要點亮一個短暫的宇宙;如果是一隻烏鴉,也要叫疼閉塞的耳膜。.................................................................

    ReplyDelete
  15. 教育的目的,不在應該思考什麼,而是教吾人怎樣思考............................................................

    ReplyDelete
  16. 人生有些波折,才能有些成長,所以不論順逆,凡是成長、成功的助緣,都應該心存感激。..................................................

    ReplyDelete
  17. Never hesitate to hold out your hand; never hesitate to accept the outstretched hand of another..................................................................

    ReplyDelete
  18. 噴泉的高度,不會超過它的源頭。一個人的事業也是如此,它的成就絕不會超過自己的信念。............................................................

    ReplyDelete
  19. 向著星球長驅直進的人,反比踟躕在峽路上的人,更容易達到目的。............................................................

    ReplyDelete