《DebugHacks中文版》是2011年電子工業出版社出版的圖書,作者是吉岡弘隆,大和一洋,大岩尚宏,安部東洋,吉田俊輔。
基本介紹
- 譯者:馬晶慧
- ISBN:9787121140488
- 頁數:424
- 定價:69.00元
- 出版社:電子工業出版社
- 出版時間:2011-8
- 裝幀:平裝
- 副標題:深入調試的技術和工具
- 原作名:Debug Hacks
內容介紹,作品目錄,
內容介紹
《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
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