軟件調(diào)試第二版卷2最新版.pdf
http://www.www.srpcoatings.com
2020年10月31日
![]() |
| 第1頁(yè) |
![]() |
| 第10頁(yè) |
![]() |
| 第19頁(yè) |
![]() |
| 第23頁(yè) |
![]() |
| 第37頁(yè) |
![]() |
| 第160頁(yè) |
參見(jiàn)附件(67266KB,1030頁(yè))。
軟件調(diào)試是2006年6月1日電子工業(yè)出版社出版的圖書(shū),作者是張銀奎,主要講述了包括CPU的調(diào)試、Windows操作系統(tǒng)中的調(diào)試設(shè)施、Visual C/C++編譯器的調(diào)試支持,以及WinDBG調(diào)試器主要調(diào)試功能的應(yīng)用實(shí)例

內(nèi)容簡(jiǎn)介
田繞如何實(shí)現(xiàn)高效調(diào)試這一主題,本書(shū)深入系統(tǒng)地介紹了以調(diào)試器為核心的各種軟件調(diào)試技術(shù)。本書(shū)共30童,分為6篇,第1篇介紹了軟件調(diào)試的概況和簡(jiǎn)要?dú)v史。第2第以英特爾架構(gòu)(IA)的CPU為例介紹了計(jì)算機(jī)系統(tǒng)的硬件核心所提供的調(diào)試支持,包括異常、斷點(diǎn)指令、單步執(zhí)行標(biāo)志、分t監(jiān)視.TAG和MCE等.第3第以Windows操作系統(tǒng)為例,介紹了計(jì)算機(jī)系統(tǒng)的軟件核心中的調(diào)試設(shè)施,包括內(nèi)核調(diào)試引擎、用戶蘇試子系統(tǒng)、異常處理、驗(yàn)證器、儲(chǔ)誤報(bào)告、事件追蹤、故障轉(zhuǎn)儲(chǔ)、硬件情誤處理等.第4萌以Visul CC++箱譯器為例,介紹了生產(chǎn)軟件的主要工具的調(diào)試支持,重點(diǎn)討論了編譯期檢查、運(yùn)行期檢查及調(diào)試符號(hào).第5篇討論了軟件的可測(cè)試性,探討了如何在軟件架構(gòu)設(shè)計(jì)和軟件開(kāi)發(fā)過(guò)程中加入調(diào)試支糖,使軟件更容易被調(diào)試,在前5篇內(nèi)客的基礎(chǔ)上,第6篇首先介紹了調(diào)試器的發(fā)展歷史,典型功能和實(shí)現(xiàn)方法,然后全面介紹了WinDBG調(diào)試器,包括它的模塊結(jié)構(gòu)、工作模型、使用方法和主要調(diào)試功能的實(shí)現(xiàn)細(xì)節(jié)。
本書(shū)是對(duì)獲件測(cè)試技術(shù)在過(guò)去50年中所取得成就的全面展示,也是對(duì)作者本人在軟件設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)第一線奮戰(zhàn)10多年的經(jīng)驗(yàn)總結(jié)。本書(shū)理論與實(shí)踐緊密結(jié)合,選取了大量具有代表性和普遍意義的技術(shù)細(xì)節(jié)進(jìn)行討論,是學(xué)習(xí)軟件調(diào)試技術(shù)的寶費(fèi)資料,適合每一位希望深刻理解軟件和自由駕馭軟件的人閱讀特別是從事教件開(kāi)發(fā)、測(cè)試、支持的技術(shù)人員和有關(guān)的研究人員.
歷史回眸
我是1949年進(jìn)入麻省理工學(xué)院(MIT)的,就在那一
年,第一臺(tái)存儲(chǔ)程序計(jì)算機(jī)在英國(guó)的劍橋和曼徹斯特開(kāi)始運(yùn)行。我的一個(gè)本科同學(xué)Kenneth Ralston是學(xué)數(shù)學(xué)的,他偶爾會(huì)和我如癡如醉地談起一臺(tái)神秘的機(jī)器,這臺(tái)機(jī)器正在MIT附近的Smart街上的Barta樓內(nèi)組裝,我的好奇心后來(lái)在1954年的秋天得到了滿足,那時(shí)我開(kāi)始學(xué)習(xí)我的第一門計(jì)算機(jī)課程《數(shù)字計(jì)算機(jī)編碼與邏輯》,那門課程是Charles Adams救的,他是自動(dòng)編程(現(xiàn)在被稱為編譯)領(lǐng)域的先鋒,當(dāng)時(shí)使用的機(jī)器叫做旋風(fēng),被放置在一間充滿了真空管電路的房間內(nèi),它由海軍投資建立,用來(lái)研究飛機(jī)模擬。
因?yàn)槲业闹R(shí)背景及我所完成的電子工程專業(yè)的碩士課程,一個(gè)助研基金約請(qǐng)我在旋風(fēng)計(jì)算機(jī)上用“最速下降法”解決一個(gè)最優(yōu)化問(wèn)題,這讓我徹底熟悉了那一套繁瑣的程序準(zhǔn)備工作,我們以旋風(fēng)機(jī)器的匯編語(yǔ)言編寫(xiě)程序,然后使用Friden電傳打字機(jī)將以字符和數(shù)字表示的代碼以打孔的方式輸出到紙帶上,紙帶是用一個(gè)Ferrante光電讀出器讀入計(jì)算機(jī)的,然后交給“綜合系統(tǒng)2”的“系統(tǒng)軟件”進(jìn)行處理.處理結(jié)果是一個(gè)二進(jìn)制紙帶,以大約每秒鐘10行的速度打孔出來(lái),每行代表一個(gè)6位字符。而后,用戶可以調(diào)用一個(gè)簡(jiǎn)單的裝載程序?qū)⒍M(jìn)制的紙帶裝入到2048字的內(nèi)存中,裝載程序是保存在幾個(gè)可以換來(lái)?yè)Q去的內(nèi)存單元中的,之后就是期待程序的正常運(yùn)行.用戶也可以在控制臺(tái)的電傳打字機(jī)上調(diào)用“綜合系統(tǒng)”的輸出例程來(lái)把結(jié)果打印出來(lái)或者把它們寫(xiě)到一個(gè)原始的磁帶單元中,宙特以后離線打印。
那時(shí)最漂亮的輸出設(shè)備是CRT顯示屏,用戶可以在上面一個(gè)點(diǎn)一個(gè)點(diǎn)地面出圖表和圖片,上面裝備了一個(gè)照相機(jī),可以把顯示的圖片錄制在膠片上,系統(tǒng)程序員們已經(jīng)開(kāi)發(fā)好了“崩潰照相”功能,可以把程序出錯(cuò)時(shí)內(nèi)存中的內(nèi)容顯示在CRT上.
用戶可以在第二天早上取到顯影后的膠片,然后用一個(gè)縮微膠卷閱讀器來(lái)研究上面的八進(jìn)制數(shù)字,在那時(shí),這是調(diào)試旋風(fēng)程序的最主要方法,除此之外就是把中間結(jié)果打印出來(lái)。
本書(shū)寫(xiě)作的目的
在復(fù)雜的計(jì)算機(jī)系統(tǒng)中尋找軟件缺陷的根源不是一個(gè)簡(jiǎn)單的任務(wù),需要對(duì)軟件和計(jì)算機(jī)系統(tǒng)有深刻的理解,選用科學(xué)的方法,并使用強(qiáng)有力的工具。這些正是作者寫(xiě)作本書(shū)的初衷。具體來(lái)說(shuō),寫(xiě)作本書(shū)有三個(gè)主要目的.
第一,論述軟件調(diào)試的一般原理,包括CPU、操作系統(tǒng)和編譯器是如何支持軟件調(diào)試的,內(nèi)核態(tài)調(diào)試和用戶態(tài)調(diào)試的工作模型,以及調(diào)試器的工作原理。軟件調(diào)試是計(jì)算機(jī)系統(tǒng)中多個(gè)部件之間的一個(gè)復(fù)雜交互過(guò)程,要理解這個(gè)過(guò)程,必須要了解每個(gè)部件在其中的角色和職責(zé),以及它們的協(xié)作方式。學(xué)習(xí)軟件調(diào)試原理不僅對(duì)提高軟件工程師的調(diào)試技能至關(guān)重要,而且有利于提高它們對(duì)計(jì)算機(jī)系統(tǒng)的理解,將計(jì)算機(jī)原理、編譯原理、操作系統(tǒng)等多個(gè)學(xué)科的知識(shí)融會(huì)貫通在一起.
第二·探討可試性(Debuggablity)的內(nèi)涵和實(shí)現(xiàn)軟件可調(diào)試性的原則和方法。
所謂軟件的可調(diào)試性就是在軟件內(nèi)部加入支持調(diào)試的代碼,使其具有自動(dòng)記錄、報(bào)告和診斷的能力,從面更容易被調(diào)試,軟件自身的可調(diào)試性對(duì)于提高調(diào)試效率、增強(qiáng)軟件的可維護(hù)性,以及保證軟件的如期交付都有著重要意義.
第三,交流軟件調(diào)試的方法和技巧,盡管論述一般原理是本書(shū)的重點(diǎn),本書(shū)仍穿插了許多實(shí)踐性很強(qiáng)的內(nèi)容。包括調(diào)試用戶態(tài)租序和系統(tǒng)內(nèi)核模塊的基本方法,如何診斷系統(tǒng)崩潰(BSOD)和應(yīng)用程序崩潰,如何訓(xùn)試緩沖區(qū)溢出等與棧有關(guān)的問(wèn)題,如何課試內(nèi)存泄漏等與堆有關(guān)的問(wèn)題。特別是,本書(shū)非常全面地介紹了WinDBG調(diào)試器的使用方法,給出了大量使用這個(gè)調(diào)試器的實(shí)例.
總之,筆者希望通過(guò)本書(shū)讓讀者懂得軟件調(diào)試的原理,意識(shí)到軟件可調(diào)試性的重要性,學(xué)會(huì)使用基本的軟件調(diào)試方法和調(diào)試工具,并能應(yīng)用這些方法和工具解決問(wèn)題和掌握更多軟硬件知識(shí)
專家寄語(yǔ)
調(diào)試程序比編寫(xiě)程序更像一門藝術(shù)。程序員在調(diào)試程序時(shí),想象力的基礎(chǔ)是各種講試技術(shù),張銀奎先生的這本書(shū)系統(tǒng)地介紹了各個(gè)層次上的程序調(diào)試技術(shù),我相信每一位閱讀這本書(shū)的程序員都可以豐富自己的訓(xùn)試知識(shí)庫(kù),從而在實(shí)踐中碰到程序問(wèn)題時(shí)有更豐富的想象力,快速地“遭"到程序代碼中的“臭蟲(chóng)(Bug)".
一潘愛(ài)民,研究員,微較亞洲研究院
感謝張銀奎給Syser Debugger開(kāi)發(fā)提供了指導(dǎo)性的意見(jiàn),張先生這本調(diào)試巨著詳細(xì)介紹了關(guān)于軟件調(diào)試的方方面面,是目前為止軟件調(diào)試方面的最權(quán)威著作之一.相信這本書(shū)一定能讓各位讀者在軟件調(diào)試和開(kāi)發(fā)方面受益匪淺,這本書(shū)應(yīng)該成為每個(gè)軟件開(kāi)發(fā)人員的必備寶典。
一吳君峰、陳俊豪,Syser調(diào)試器設(shè)計(jì)者
調(diào)試技術(shù)是成為高素原軟件開(kāi)發(fā)人員驅(qū)備的一項(xiàng)關(guān)鍵技術(shù),可惜在中國(guó)技術(shù)界卻沒(méi)有得到應(yīng)有的重視。本書(shū)秉承了Raynond一貫的技術(shù)傳播特點(diǎn)與風(fēng)格;循拓善誘,深入底層,切中肯紫,倒暢淋漓,相信本書(shū)公成為國(guó)內(nèi)測(cè)試技術(shù)領(lǐng)域的扛鼎之作,每
“一位嚴(yán)肅程序員之案頭必備.
一拳建忠,IT技術(shù)作譯者,祝成科技培訓(xùn)講師
軟件調(diào)試第二版卷2截圖



您現(xiàn)在查看是摘要介紹頁(yè), 詳見(jiàn)PDF附件(67266KB,1030頁(yè))。
試第二版卷2最新版_1.jpg)
試第二版卷2最新版_2.jpg)
試第二版卷2最新版_3.jpg)
試第二版卷2最新版_4.jpg)
試第二版卷2最新版_5.jpg)
試第二版卷2最新版_6.jpg)