商品簡介
《Debug Hacks中文版:深入調試的技術和工具》是Miracle Linux 的創始人吉岡弘隆和幾位工程師們多年從事內核開發的經驗積累。從調試器的基本使用方法、匯編的基礎知識開始,到內核錯誤信息捕捉、應用程序調試、內核調試,《Debug Hacks中文版:深入調試的技術和工具》深入淺出地講解了Linux 下應用程序和內核的調試技巧。 雖然《Debug Hacks中文版:深入調試的技術和工具》的出發點是Linux 內核調試,但書中的絕大部分知識在許多領域都能派上用場。如Linux 應用程序開發,嵌入式Linux 開發,甚至時下流行的iOS 應用程序開發,只要從事應用程序開發的工作,就會涉及調試,那么讀一讀《Debug Hacks中文版:深入調試的技術和工具》也不無裨益。
名人/編輯推薦
Miracle Linux株式會社的精銳工程師們在長年的Linux內核開發中積累了經驗,精心打造了這本詳細介紹調試技巧的書。《Debug Hacks中文版:深入調試的技術和工具》從熱身開始,講述準備工作、必要的知識,以及各種方便的技巧和工具,以便迅速找到bug原因并修改,毫無吝嗇地介紹了許多高級調試技巧。《Debug Hacks中文版:深入調試的技術和工具》匯集了大量從實踐中來的實用技巧,是高效率、高質量開發的必備讀物之一。
目次
第1章 熱身準備1.調試是什么2.Debug hacks的地圖3.調試的心得第2章 調試前的必知必會4.獲取進程的內核轉儲5.調試器(GDB)的基本用法(之一)6.調試器(GDB)的基本使用方法(之二)7.調試器(GDB)的基本使用方法(之三)8.Intel架構的基本知識9.調試時必需的棧知識10.函數調用時的參數傳遞方法(x86_64篇)11.函數調用時的參數傳遞方法(i386篇)12.函數調用時的參數傳遞方法(C++篇)13.怎樣學習匯編語言14.從匯編語言查找相應的源代碼第3章 內核調試的準備15.Oops信息的解讀方法16.使用minicom進行串口連接17.通過網絡獲取內核消息18.使用SysRq鍵調試19.使用diskdump獲取內核崩潰轉儲20.使用kdump獲取內核崩潰轉儲21.crash命令的使用方法22.死機時利用IPMI watchdog timer獲取崩潰轉儲23.用NMI watchdog在死機時獲取崩潰轉儲24.內核獨有的匯編指令(之一)25.內核獨有的匯編指令(之二)第4章 應用程序調試實踐26.發生SIGSEGV,應用程序異常停止27.backtrace無法正確顯示28.數組非法訪問導致內存破壞29.利用監視點檢測非法內存訪問30.malloc()和free()發生故障31.應用程序停止響應(死鎖篇)32.應用程序停止響應(死循環篇)第5章 實踐內核調試33.kernel panic(空指針引用篇)34.kernel panic(鏈表破壞篇)35.kernel panic36.內核停止響應(死循環篇)37.內核停止響應(自旋鎖篇之一)38.內核停止響應(自旋鎖篇之二)39.內核停止響應(信號量篇)40.實時進程停止響應41.運行緩慢的故障42.CPU負載過高的故障第6章 高手們的調試技術43.使用strace尋找故障原因的線索44.objdump的方便選項45.Valgrind的使用方法(基本篇)46.Valgrind的使用方法(實踐篇)47.利用kprobes獲取內核內部信息48.使用jprobes查看內核內部的信息49.使用kprobes獲取內核內部任意位置的信息50.使用kprobes在內核內部任意位置通過變量名獲取信息51.使用KAHO獲取被編譯器優化掉的變量的值52.使用systemtap調試運行中的內核(之一)53.使用systemtap調試運行中的內核(之二)54./proc/meminfo中的寶藏55.用/proc/<PID>/mem快速讀取進程的內存內容56.OOM Killer的行為和原理57.錯誤注入58.利用錯誤注入發現Linux內核的潛在bug59.Linux內核的init節60.解決性能問題61.利用VMware Vprobe獲取信息62.用Xen獲取內存轉儲63.理解用GOT/PLT調用函數的原理64.調試initramfs鏡像65.使用RT Watchdog檢測實時進程失去響應66.調查手頭的x86機器是否支持64位模式附錄 Debug hacks術語的基礎知識索引