注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)軟件調(diào)試的藝術(shù)

軟件調(diào)試的藝術(shù)

軟件調(diào)試的藝術(shù)

定 價(jià):¥39.00

作 者: (美)馬特洛夫,(美)薩爾茲曼 著,張?jiān)?譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計(jì)叢書(shū)
標(biāo) 簽: 軟件工程/開(kāi)發(fā)項(xiàng)目管理

ISBN: 9787115213969 出版時(shí)間: 2009-11-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 216 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  調(diào)試對(duì)于軟件的成敗至關(guān)重要,正確使用恰當(dāng)?shù)恼{(diào)試工具可以提高發(fā)現(xiàn)和改正錯(cuò)誤的效率?!盾浖{(diào)試的藝術(shù)》詳細(xì)介紹了3種調(diào)試器,GDB用于逐行跟蹤程序、設(shè)置斷點(diǎn)、檢查變量以及查看特定時(shí)間程序的執(zhí)行情況,DDD是流行的GDB的GUI前端,而Eclipse提供完整的集成開(kāi)發(fā)環(huán)境。書(shū)中不但配合實(shí)例討論了如何管理內(nèi)存、理解轉(zhuǎn)儲(chǔ)內(nèi)存、跟蹤程序找出錯(cuò)誤等內(nèi)容,更涵蓋了其他同類書(shū)忽略的主題,例如線程、客戶/服務(wù)器、GUI和并行程序,以及如何躲開(kāi)常見(jiàn)的調(diào)試陷阱?!盾浖{(diào)試的藝術(shù)》適合各層次軟件開(kāi)發(fā)人員、管理人員和測(cè)試人員閱讀。

作者簡(jiǎn)介

  Norman Matloff,美國(guó)加州大學(xué)戴維斯分校計(jì)算機(jī)科學(xué)教授,研究領(lǐng)域涉及并行處理(尤其是軟件分布式共享內(nèi)存)、計(jì)算機(jī)通信網(wǎng)絡(luò)、數(shù)據(jù)安全及數(shù)學(xué)和應(yīng)用統(tǒng)計(jì)等。他編寫(xiě)了很多開(kāi)源軟件包,創(chuàng)作的在線教程也深受歡迎。Peter Jay Salzman,美國(guó)加州大學(xué)戴維斯分校理論物理博士,該校Linux用戶組的創(chuàng)建者,同時(shí)維護(hù)著多個(gè)受歡迎的在線HOWTO?,F(xiàn)在華爾街某金融企業(yè)做程序員。

圖書(shū)目錄

第1章 預(yù)備知識(shí) 1
1.1 本書(shū)使用的調(diào)試工具 1
1.2 編程語(yǔ)言 2
1.3 調(diào)試的原則 2
1.3.1 調(diào)試的本質(zhì):確認(rèn)原則 2
1.3.2 調(diào)試工具對(duì)于確認(rèn)原則的價(jià)值所在 2
1.3.3 其他調(diào)試原則 3
1.4 對(duì)比基于文本的調(diào)試工具與基于GUI的調(diào)試工具,兩者之間的折中方案 4
1.4.1 簡(jiǎn)要比較界面 4
1.4.2 折中方法 9
1.5 主要調(diào)試器操作 11
1.5.1 單步調(diào)試源代碼 11
1.5.2 檢查變量 12
1.5.3 在GDB、DDD和Eclipse中設(shè)置監(jiān)視點(diǎn)以應(yīng)對(duì)變量值的改變 14
1.5.4 上下移動(dòng)調(diào)用棧 14
1.6 聯(lián)機(jī)幫助 15
1.7 初涉調(diào)試會(huì)話 16
1.7.1 GDB方法 18
1.7.2 同樣的會(huì)話在DDD中的情況 31
1.7.3 Eclipse中的會(huì)話 34
1.8 啟動(dòng)文件的使用 38
第2章 停下來(lái)環(huán)顧程序 39
2.1 暫停機(jī)制 39
2.2 斷點(diǎn)概述 39
2.3 跟蹤斷點(diǎn) 40
2.3.1 GDB中的斷點(diǎn)列表 40
2.3.2 DDD中的斷點(diǎn)列表 41
2.3.3 Eclipse中的斷點(diǎn)列表 42
2.4 設(shè)置斷點(diǎn) 42
2.4.1 在GDB中設(shè)置斷點(diǎn) 42
2.4.2 在DDD中設(shè)置斷點(diǎn) 45
2.4.3 在Eclipse中設(shè)置斷點(diǎn) 46
2.5 展開(kāi)GDB示例 46
2.6 斷點(diǎn)的持久性 48
2.7 刪除和禁用斷點(diǎn) 50
2.7.1 在GDB中刪除斷點(diǎn) 50
2.7.2 在GDB中禁用斷點(diǎn) 51
2.7.3 在DDD中刪除和禁用斷點(diǎn) 51
2.7.4 在Eclipse中刪除和禁用斷點(diǎn) 53
2.7.5 在DDD中“移動(dòng)”斷點(diǎn) 53
2.7.6 DDD中的Undo/Redo斷點(diǎn)動(dòng)作 54
2.8 進(jìn)一步介紹瀏覽斷點(diǎn)屬性 55
2.8.1 GDB 55
2.8.2 DDD 56
2.8.3 Eclipse 56
2.9 恢復(fù)執(zhí)行 56
2.9.1 在GDB中 57
2.9.2 在DDD中 64
2.9.3 在Eclipse中 66
2.10 條件斷點(diǎn) 66
2.10.1 GDB 67
2.10.2 DDD 69
2.10.3 Eclipse 69
2.11 斷點(diǎn)命令列表 70
2.12 監(jiān)視點(diǎn) 74
2.12.1 設(shè)置監(jiān)視點(diǎn) 75
2.12.2 表達(dá)式 77
第3章 檢查和設(shè)置變量 78
3.1 主要示例代碼 78
3.2 變量的高級(jí)檢查和設(shè)置 80
3.2.1 在GDB中檢查 80
3.2.2 在DDD中檢查 84
3.2.3 在Eclipse中檢查 86
3.2.4 檢查動(dòng)態(tài)數(shù)組 88
3.2.5 C++代碼的情況 90
3.2.6 監(jiān)視局部變量 92
3.2.7 直接檢查內(nèi)存 92
3.2.8 print和display的高級(jí)選項(xiàng) 93
3.3 從GDB/DDD/Eclipse中設(shè)置變量 93
3.4 GDB自己的變量 94
3.4.1 使用值歷史 94
3.4.2 方便變量 94
第4章 程序崩潰處理 96
4.1 背景資料:內(nèi)存管理 96
4.1.1 為什么程序會(huì)崩潰 96
4.1.2 內(nèi)存中的程序布局 97
4.1.3 頁(yè)的概念 99
4.1.4 頁(yè)的角色細(xì)節(jié) 99
4.1.5 輕微的內(nèi)存訪問(wèn)程序錯(cuò)誤可能不會(huì)導(dǎo)致段錯(cuò)誤 101
4.1.6 段錯(cuò)誤與Unix信號(hào) 102
4.1.7 其他類型的異常 105
4.2 核心文件 106
4.2.1 核心文件的創(chuàng)建方式 106
4.2.2 某些shell可能禁止創(chuàng)建核心文件 107
4.3 擴(kuò)展示例 108
4.3.1 第一個(gè)程序錯(cuò)誤 111
4.3.2 在調(diào)試會(huì)話期間不要退出GDB 113
4.3.3 第二個(gè)和第三個(gè)程序錯(cuò)誤 113
4.3.4 第四個(gè)程序錯(cuò)誤 115
4.3.5 第五個(gè)和第六個(gè)程序錯(cuò)誤 116
第5章 多活動(dòng)上下文中的調(diào)試 120
5.1 調(diào)試客戶/服務(wù)器網(wǎng)絡(luò)程序 120
5.2 調(diào)試多線程代碼 125
5.2.1 進(jìn)程與線程回顧 125
5.2.2 基本示例 127
5.2.3 變體 132
5.2.4 GDB線程命令匯總 133
5.2.5 DDD中的線程命令 134
5.2.6 Eclipse中的線程命令 134
5.3 調(diào)試并行應(yīng)用程序 136
5.3.1 消息傳遞系統(tǒng) 136
5.3.2 共享內(nèi)存系統(tǒng) 141
5.4 擴(kuò)展示例 143
5.4.1 OpenMP概述 143
5.4.2 OpenMP示例程序 144
第6章 特殊主題 155
6.1 根本無(wú)法編譯或加載 155
6.1.1 語(yǔ)法錯(cuò)誤消息中的“幽靈”行號(hào) 155
6.1.2 缺少庫(kù) 160
6.2 調(diào)試GUI程序 162
第7章 其他工具 172
7.1 充分利用文本編輯器 172
7.1.1 語(yǔ)法突出顯示 172
7.1.2 匹配括號(hào) 174
7.1.3 Vim與makefile 175
7.1.4 makefile和編譯器警告 176
7.1.5 關(guān)于將文本編輯器作為IDE的最后一個(gè)考慮事項(xiàng) 177
7.2 充分利用編譯器 178
7.3 C語(yǔ)言中的錯(cuò)誤報(bào)告 178
7.4 更好地使用strace和ltrace 182
7.5 靜態(tài)代碼檢查器:lint與其衍生 184
7.5.1 如何使用splint 185
7.5.2 本節(jié)最后注意事項(xiàng) 185
7.6 調(diào)試動(dòng)態(tài)分配的內(nèi)存 185
7.6.1 檢測(cè)DAM問(wèn)題的策略 188
7.6.2 Electric Fence 188
7.6.3 用GNU C庫(kù)工具調(diào)試DAM問(wèn)題 190
第8章 對(duì)其他語(yǔ)言使用GDB/DDD/Eclipse 196
8.1 Java 196
8.1.1 直接使用GDB調(diào)試Java 198
8.1.2 使用DDD與GDB調(diào)試Java 201
8.1.3 使用DDD作為JDB的GUI 201
8.1.4 用Eclipse調(diào)試Java 201
8.2 Perl 202
8.2.1 通過(guò)DDD調(diào)試Perl 204
8.2.2 在Eclipse中調(diào)試Perl 206
8.3 Python 207
8.3.1 在DDD中調(diào)試Python 208
8.3.2 在Eclipse中調(diào)試Python 209
8.4 調(diào)試SWIG代碼 210
8.5 匯編語(yǔ)言 213

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)