.NET高級調(diào)試

出版時間:2011年1月  出版社:機械工業(yè)出版社  作者:Mario Hewardt  頁數(shù):379  譯者:聶雪軍  
Tag標(biāo)簽:無  

前言

去年,我們在微軟公司慶祝了CLR發(fā)布十周年。CLR的目的是通過提供一種安全的和穩(wěn)定的環(huán)境來提高開發(fā)人員的生產(chǎn)效率。目前,CLR在各種環(huán)境中都得到了廣泛應(yīng)用,例如,在性能和可伸縮性上有著極高要求的大型服務(wù)器程序,以及日常使用的桌面程序等。隨著CLR的日益普及,基于CLR來開發(fā)軟件的人們同樣面臨著越來越多的挑戰(zhàn),因為他們的產(chǎn)品必須能夠在不同的機器配置和網(wǎng)絡(luò)環(huán)境中運行;此外,隨著硬件的高速發(fā)展,人們正在構(gòu)建的軟件功能越來越強,同時復(fù)雜性也越來越高。所有這些情形都意味著,當(dāng)程序沒有按照預(yù)期方式運行時,你就需要負(fù)責(zé)分析和修復(fù)程序中的問題,因此了解一些調(diào)試知識和工具就顯得尤為重要。為了提高工作效率,CLR為開發(fā)人員實現(xiàn)了許多基礎(chǔ)的輔助機制,從而使開發(fā)人員能將主要精力放在關(guān)鍵邏輯上。事實上,人們無需花太多的時間來理解完整的CLR內(nèi)部細節(jié),而只需知道一些有助于分析問題的重要概念,這一點非常重要。然而,要想知道哪些概念是重要的卻并不容易。許多人都是通過反復(fù)摸索之后才掌握這些知識,而這需要長時間的積累過程并且有時候可能得不到準(zhǔn)確的答案。本書對運行時的闡述恰到好處,它能幫助你理解在分析問題時遵循的思考過程以及在解決問題時采用的各種技術(shù),此外書中還給出了從調(diào)試實際應(yīng)用程序中提煉出的許多實用技術(shù)。因此,如果你希望提高調(diào)試CLR應(yīng)用程序的速度,那么應(yīng)該仔細閱讀本書。本書涵蓋了托管程序調(diào)試的許多方面——特別是對于一些難以診斷的領(lǐng)域,例如線程同步問題,本書給出了深入而細致的講解。此外,本書在說明調(diào)試技術(shù)時使用了大量的示例,使得讀者更容易掌握這些技術(shù)。在本書中重點講解的調(diào)試工具之一就是SOS調(diào)試器擴展,這個工具是由CLR小組開發(fā)和維護的。每當(dāng)發(fā)布新版本的CLR時,都會對SOS進行升級,使SOS包含更多的新功能。對于分析托管進程中的問題來說,SOS是一種功能強大的工具。它提供的大部分功能都是無法從其他調(diào)試工具中獲得的。例如,SOS可以找出引用托管堆中某個對象的根對象,這是托管程序開發(fā)人員經(jīng)常遇到的問題之一。在熟悉了這個工具的使用后,你將可以進一步理解程序的工作流程。我還從未見過有其他的書比這本書更詳細地介紹SOS。當(dāng)掌握本書介紹的知識后,在分析問題時可以付出更少的時間和精力。我希望讀者在閱讀這本書時獲得的樂趣與我在審閱本書手稿時獲得的樂趣是一樣的。

內(nèi)容概要

這是一本介紹如何通過非托管調(diào)試器(包括WinDBG、NTSD和CDB等)來調(diào)試?NET應(yīng)用程序的書籍。本書內(nèi)容主要包括:調(diào)試工具簡介、CLR基礎(chǔ)、基本調(diào)試任務(wù)、程序集加載器、托管堆與垃圾收集、同步、互用性以及一些高級主題,如事后調(diào)試、一些功能強大的調(diào)試工具和.NET 4?0中的新功能等。

作者簡介

作者:(美國)赫瓦特(Mario Hewardt) 譯者:聶雪軍 等Mario Hewardt,是微軟公司的一位資深開發(fā)經(jīng)理,在WirIdows系統(tǒng)級開發(fā)領(lǐng)域擁有十余年的開發(fā)經(jīng)驗。他目前領(lǐng)導(dǎo)開發(fā)團隊負(fù)責(zé)Microosoft在線IT管理解決方案的開發(fā)。Hewardt是《Windows高級調(diào)試》(機械工業(yè)出版社2009年5月出版)的作者之一。

書籍目錄

對本書的贊譽譯者序序前言關(guān)于作者第一部分 簡介 第1章 調(diào)試工具簡介  1.1windows調(diào)試工具集  1.2.net2.0可再發(fā)行組件  1.3.net2.0sdk  1.4sos  1.5sosex  1.6clr分析器  1.7性能計數(shù)器  1.8.net反編譯器  1.9powerdbg  1.10托管調(diào)試助手  1.11小結(jié) 第2章 clr基礎(chǔ)  2.1高層概覽  2.2clr和windows加載器   2.2.1加載非托管映像   2.2.2加載.net程序集  2.3應(yīng)用程序域   2.3.1系統(tǒng)應(yīng)用程序域   2.3.2共享應(yīng)用程序域   2.3.3默認(rèn)應(yīng)用程序域  2.4程序集簡介  2.5程序集清單  2.6類型元數(shù)據(jù)   2.6.1同步塊表   2.6.2類型句柄   2.6.3方法描述符   2.6.4模塊   2.6.5元數(shù)據(jù)標(biāo)記   2.6.6eeclass  2.7小結(jié) 第3章 基本調(diào)試任務(wù)  3.1調(diào)試器以及調(diào)試目標(biāo)  3.2符號  3.3控制調(diào)試目標(biāo)的執(zhí)行   3.3.1中斷執(zhí)行   3.3.2恢復(fù)執(zhí)行   3.3.3單步調(diào)試代碼   3.3.4退出調(diào)試會話  3.4加載托管代碼調(diào)試的擴展命令   3.4.1加載sos調(diào)試器擴展   3.4.2加載sosex調(diào)試器擴展  3.5控制clr的調(diào)試  3.6設(shè)置斷點   3.6.1在jit編譯生成的函數(shù)上設(shè)置斷點   3.6.2在還沒有被jit編譯的函數(shù)上設(shè)置斷點   3.6.3在預(yù)編譯的程序集中設(shè)置斷點   3.6.4在泛型方法上設(shè)置斷點  3.7對象檢查   3.7.1內(nèi)存轉(zhuǎn)儲   3.7.2值類型的轉(zhuǎn)儲   3.7.3轉(zhuǎn)儲基本的引用類型   3.7.4數(shù)組的轉(zhuǎn)儲   3.7.5棧上對象的轉(zhuǎn)儲   3.7.6找出對象的大小   3.7.7異常的轉(zhuǎn)儲  3.8線程的操作   3.8.1clrstack   3.8.2threads   3.8.3dumpstack   3.8.4eestack   3.8.5comstate  3.9代碼審查   3.9.1反匯編代碼   3.9.2從代碼地址上獲得方法描述符   3.9.3顯示中間語言指令  3.10clr內(nèi)部命令   3.10.1獲得clr的版本   3.10.2根據(jù)名字找到方法描述符   3.10.3對象同步塊的轉(zhuǎn)儲   3.10.4對象方法表的轉(zhuǎn)儲   3.10.5托管堆和垃圾收集器信息的轉(zhuǎn)儲  3.11診斷命令   3.11.1找出對象的應(yīng)用程序域   3.11.2進程信息  3.12sosex擴展命令   3.12.1擴展的斷點支持   3.12.2托管元數(shù)據(jù)   3.12.3棧回溯   3.12.4對象檢查   3.12.5自動死鎖檢測   3.12.6托管堆與垃圾收集命令  3.13崩潰轉(zhuǎn)儲文件  3.14小結(jié)第二部分 調(diào)試實踐第三部分 高級主題

章節(jié)摘錄

插圖:當(dāng)加載私有程序集時,它通常只會局限于某個應(yīng)用程序域中。根據(jù)之前對應(yīng)用程序域的討論,我們知道在一個.NET應(yīng)用程序中通常會包含三個應(yīng)用程序域。除了系統(tǒng)應(yīng)用程序域和共享應(yīng)用程序域之外,程序集要么是被加載到默認(rèn)應(yīng)用程序域中,要么是被加載到顯式創(chuàng)建的應(yīng)用程序域中。當(dāng)程序集被加載到某個應(yīng)用程序域時,它將停留在這個應(yīng)用程序域中,直到這個應(yīng)用程序域被銷毀。由于程序集都是局限在某個應(yīng)用程序域中,那么對于任何一個應(yīng)用程序域,我們?nèi)绾握页銎渲屑虞d了哪些程序集?在本章的前面,我們使用了SOS的dumpdomain命令來轉(zhuǎn)儲出某個進程中所有的應(yīng)用程序域。在dumpdomain命令的輸出中包含了每個應(yīng)用程序域中加載的所有程序集。清單2-3給出了在02simple.exe上執(zhí)行擴展命令dumpdomain時輸出的信息。我們可以看到,在默認(rèn)的應(yīng)用程序域中包含了兩個已加載的程序集:02simple.exe和mscorlib.d11。此外,程序集的名字同樣也是它們的地址。當(dāng)使用SOS的dumpassembly命令來獲取每個程序集的進一步信息時,需要用到這些地址。我們可以使用擴展命令dumpassembly,并將程序集的地址作為命令參數(shù)來獲得更多的信息。

媒體關(guān)注與評論

“對于任何一個.NET開發(fā)人員來說,本書都具有極高的參考價值。它包含了許多調(diào)試技巧以及CLR內(nèi)部工作機制的細節(jié),這對于設(shè)計軟件架構(gòu)的開發(fā)人員來說是非常有益的?!薄  狫effrey Richter,Wintellect 公司顧問,培訓(xùn)理由和作者“這是Mario推出的又一本好書。他之前著的《Windows高級調(diào)試》(與Daniel Pravat合著)對于非托管代碼的調(diào)試來說是一本不可多得的參考書,而本書同樣具有極高的質(zhì)量,闡述清晰并且探討深入,因此對于.NET’調(diào)試來說同樣具有幫助作用。”  ——Mark Russinovich,微軟公司技術(shù)顧問

編輯推薦

《.NET高級調(diào)試》:這是分析.NET應(yīng)用程序問題方面的一本全面且實用的參考書。《.NET高級調(diào)試》首次專門且系統(tǒng)地介紹了如何分析當(dāng)前最復(fù)雜和最具挑戰(zhàn)性的.NET應(yīng)用程序問題。這是一本介紹如何通過非托管調(diào)試器(包括WinDBG、NTSD和CDB等)來調(diào)試.NET應(yīng)用程序的書籍。作者詳細闡述了如何借助這些工具找出問題的真實原因——這比使用其他任何調(diào)試器都將節(jié)省大量的調(diào)試時間。作者首先介紹了在使用.NET非托管調(diào)試器時的一些關(guān)鍵概念。接下來介紹了許多巧妙的調(diào)試技術(shù),并且通過真實的示例來展示各種常見的C#編程錯誤。讀者在《.NET高級調(diào)試》中可以學(xué)到:●使用事后調(diào)試技術(shù),包括Power DBG以及其他“強大的調(diào)試工具”。●理解在.NET CLR 4.O中包含的新調(diào)試功能以及與之前版本的差異?!裾莆諏indows調(diào)試工具集、SOS、SOSEX、CLR分析器以及其他調(diào)試工具的使用?!裆钊肜斫釩LR內(nèi)部工作機制,例如分析線程特定的數(shù)據(jù)、托管堆和垃圾收集器、互用層以及.NET異常等?!窠鉀Q一些復(fù)雜的同步問題、托管堆問題、互用性問題等。●如何生成和分析崩潰轉(zhuǎn)儲。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    .NET高級調(diào)試 PDF格式下載


用戶評論 (總計29條)

 
 

  •   講的很不錯。講了不少**** 平臺基礎(chǔ)內(nèi)容。像 加載CLR,元數(shù)據(jù)、GC如何工作等等,講的很詳細、易懂,不過調(diào)試需要比較好的基礎(chǔ)知識。
  •   ****必看調(diào)試
  •   到手后一直沒時間拜讀,最近上班抽空看了前幾章.很都深度,需要一定的基礎(chǔ).看著有點吃力.需要定下心來慢慢看.
  •   這是我最后一次在當(dāng)當(dāng)買東西了。
  •   書都很值得看
  •   對調(diào)試工作幫助很大。
  •   正開始研讀!
  •   給老公買的,他說書不錯
  •   研究****閱讀一下
  •   寫的很好有深度
  •   系統(tǒng)的學(xué)習(xí)一下clr調(diào)試技術(shù)
  •   對基礎(chǔ)知識有要求
  •   對于我這個不是學(xué)計算機出生的人來說,說的內(nèi)容稍微的有點難。
  •   這書還不錯吧,值得購買
  •   看看還是很有收獲的啊
  •   待我細細研究。
  •   還不錯 就是貴了點
  •   實用性不太大,只適用于某些特定場景
  •   沒認(rèn)真的去看,只是翻了一翻~里面介紹了一些調(diào)試工具,覺得還可以
  •   有點難度,不易看懂
  •   書中的內(nèi)容有點過時,而且 配套的 網(wǎng)站 已經(jīng)打不開, 看樣子 作者已經(jīng) 放棄對這本書的 售后支持了。 書的紙張比較薄,質(zhì)量相對差了點, 對不起這個價錢。
  •   講的很不錯。講了不少.NET 平臺基礎(chǔ)內(nèi)容。像 加載CLR,元數(shù)據(jù)、GC如何工作等等,講的很詳細、易懂,不過調(diào)試需要比較好的基礎(chǔ)知識。
  •   沒有實際用途,只能了解一下,讀了以一遍,發(fā)現(xiàn)知道和不知道都沒什么區(qū)別,建議不要購買
  •   寫的很好,很實用的書
  •   內(nèi)容較多,研究中,不便隨意發(fā)表評論
  •   同事極力推薦的,對調(diào)試技巧很有幫助
  •   windows高級調(diào)試的.net版本
  •   學(xué)習(xí)了,應(yīng)該還可以
  •   .NET高級調(diào)試
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7