出版時間:2000-10 出版社:電子工業(yè)出版社 作者:(美)帕頗斯 譯者:段來盛/等
Tag標(biāo)簽:無
內(nèi)容概要
本書作為有關(guān) Visual C++ Debugger的專著,是一本非常難得的好書。書中深入地分析了開發(fā)不包含邏輯和語法錯誤的代碼技巧以及調(diào)試程序的基本原理,介紹了開發(fā)和調(diào)試命令行代碼的過程和方法,說明了關(guān)于定位、分析及修復(fù)編程錯誤的方法,介紹了開發(fā) Visual C++程序時所遇到的特殊調(diào)試問題。
本書是所有軟件工程師的必讀書籍,也可作為大專院校師生的參考資料。
書籍目錄
第一部分 代碼開發(fā)技巧
第1章 編寫好的代碼.
l.l 誰需要本書?
l.2 教學(xué)方法
1.3 從何處開始閱讀?
1.4 警告!并非所有的C/C++編譯器都完全相同
1.5 語言無關(guān)的設(shè)計(jì)工具101
1.5.l 準(zhǔn)備
1.5.2 模型!
l.5.3 結(jié)構(gòu)圖、偽代碼及IPO框圖
l.6 好的程序設(shè)計(jì)的五點(diǎn)要素
1.7 規(guī)則意味著可以打破
1.7.1 安塞爾亞當(dāng)斯(Ansel Adams)或畢加索(Picasso)
1.7.2 注釋塊
1.7.3 標(biāo)識符:identifiers、IDENTIFIERS和Identifiers
1.7.4 間隔與縮進(jìn)
1.8 數(shù)據(jù)類型
1.9 匈牙利表示法
l.9.1 MFC、句柄、控件及結(jié)構(gòu)的命名規(guī)范
1.9.2 一般前綴命名規(guī)范
1.9.3 變量命名規(guī)范
1.9.4 應(yīng)用程序符號命名規(guī)范
1.9.5 Microsoft MFC宏命名規(guī)范
1.9.6 庫標(biāo)識符命名規(guī)范
1.9.7 靜態(tài)庫版本命名規(guī)范
1.9.8 動態(tài)連接庫命名規(guī)范
1.9.9 windows.h命名規(guī)范
1.10 操作符優(yōu)先級
1.11 小結(jié)
第2章 使用編譯器憂化
2.l 編碼的責(zé)任與編譯器的優(yōu)化
2.2 Microsoft Visual C++的優(yōu)化
2.2.1 調(diào)度指令
2.2.2 函數(shù)級連接
2.2.3 字符串池
2.2.4 使用register鍵字
2.2.5 常量和復(fù)制的傳播
2.2.6 消除死代碼和死存儲
2.2.7 刪除冗余于表達(dá)式
2.2.8 優(yōu)化循環(huán)
2.2.9 降低強(qiáng)度
2.2.10 inline鍵字的使用
2.2.11 省略幀指針
2.2.12 關(guān)閉堆棧檢查
2.2.13 覆蓋堆棧
2.2.14 函數(shù)調(diào)用之間允許使用別名
2.2.15 全局優(yōu)化
2.2.16 產(chǎn)生內(nèi)部函數(shù)的內(nèi)聯(lián)
2.2.17 優(yōu)化math.h
2.3 Microsoft C++的優(yōu)化開關(guān)
2.4 使用 Microsoft Visual Studio設(shè)置編譯器選項(xiàng)
2.4.1 Project Settings對話框中的 General類型
2.4.2 Project Settings對話框中的 Code Generation類型
2.4.3 選擇結(jié)構(gòu)對齊方式
2.4.4 Project Settings對話框中的 Customize類型
2.4.5 Project Settings對話框中的 Optimizations類型
2.5 建立發(fā)行版本的建議
2.6 小結(jié)
第3章 邏輯與語法錯誤
3.l 好的調(diào)試策略
3.2 四種程序錯誤類型
3.2.l 語法錯誤
3.2.2 連接錯誤
3.2.3 運(yùn)行錯誤
3.2.4 邏輯錯誤
3.3 查看錯誤消息
3.4 預(yù)防性維護(hù)
3.4.l 桌面檢查的含義
3.5 異常處理設(shè)計(jì)
3.6 “請多多支持”
3.7 Microsoft Visual C++的幫助
3.8 小結(jié)
第4章 debugger
4.l 確認(rèn)Debugger可以使用
4.2 啟動Debugger
4.2.1 Step Into和Step Over的區(qū)別
4.2.2 Go
4.2.3 Run to Cursor
4.3 理解Debugger工具欄圖標(biāo)
4.3.1 Restart
4.3.2 Stop Debugging
4.3.3 Break Execution
4.3.4 Apply Code Changes、Edit and Continue
4.3.5 Show Next Statement
4.3.6 Step Into
4.3.7 Step Over
4.3.8 Step Out
4.3.9 Run to Cursor
4.3.10 Quick watch
4.3.11 Watch
4.3.12 Variables
4.3.13 Regisers
4.3.14 Meomry
4.3.15 Call Stack
4.3.16 Disassembly
4.3.17 Debugger Toolbar Menu Equivalents
4.4 其他Debug菜單選項(xiàng)
4.4.1 Step Into Specific Function
4.4.2 Excmpions
4.4.3 Threads
4.4.4 Modules
4.5 本地菜單Debugger選項(xiàng)
4.5.1 List Members
4.5.2 Type Info
4.5.3 Parameter Information
4.5.4 Complete Word
4.5.5 Go Definition/Refefence
4.5.6 Go To Disassembly
4.5.7 Insert/Remove Breakpoint。
4.6 Debugger窗口
4.6.1 Trae窗口
4.6.2 Watch窗口
4.7 View菜單和Debugger窗口
4.7.1 Workspace
4.7.2 Output
4.8 以不同的數(shù)據(jù)類型查看觀察變量
4.9 打開Just-in-Time調(diào)式
4.10 Options窗口中的Debug標(biāo)簽
4.10.1 Hexadecimal Display
4.10.2 Source Annotation
4.10.3 Code Bytes
4.10.4 Symbols
4.10.5 Parameter Values
4.10.6 Parameter Types
4.10.7 Return Value
4.10.8 Load COEF& Exports
4.10.9 Address
4.10.10 Format
4.10.11 Re-evaluate Expression
4.10.12 Show Data Bytes
4.10.13 Fixed Width
4。10.14 Display Unicode Strings
4.10.15 View Floating Point Registers
4.10.16 Just-in-Time Debugging
4.10.17 OLE RPC Debugging
4.10.18 Debug Commands Invoke Edit and Continue
4.11 鍵盤映射
4.12 Debugger快捷鍵
4.13 小結(jié)
第5章 調(diào)試版本與發(fā)行版本
5.l 缺省的調(diào)試版本建立與發(fā)行版本建立設(shè)置
5.2 為調(diào)試版本建立修改工程設(shè)置
5.2.l 修改調(diào)試選項(xiàng)
5.2.2 修改產(chǎn)生調(diào)試信息的格式
5.2.3 產(chǎn)生一個映射文件
5.2.4 重定向調(diào)試輸入和輸出
5.3 什么是.pdb文件?
5.4 什么是.dbg文件
5.5 調(diào)試優(yōu)化的代碼
5.6 打開Debugger的另一種方法
5.7 使用基本版或調(diào)試版本
5.8 C/C++運(yùn)行調(diào)試庫
5.8.l 舊版iostream.h和新版iostrearn之間的混亂
5.9 連接器參考資料
5.10 在調(diào)試版本中檢測發(fā)行版本錯誤
5.10.l 局部變量的自動初始化
5.10.2 檢查函數(shù)指針調(diào)用稚棧的合法性
5.10.3 檢查調(diào)用堆棧的合法性
5.11 TRACEN
5.12 VEAIFY宏
5.13 移植Visual C++舊的32位版本
5.13.l 轉(zhuǎn)換早期的32位工作空間和工程
5.13.2 與Visual C++以前的版本共存
5.14 小結(jié)
第二部分 面向過程的環(huán)境
第6章 定位、分析和修復(fù)命令行代碼錯誤
6.l 快速啟動調(diào)試
6.1.l 啟動Debugger的快速方法
6.1.2 變量初始化跟蹤
6.1.3 小心調(diào)試代碼
6.1.4 快速查看變量的內(nèi)容
6.1.5 中途停止Debugger
6.1.6 執(zhí)行到代碼的指定行
6.l.7 全速執(zhí)行到一個斷點(diǎn)
6.1.8 運(yùn)行至光標(biāo)處
6.1.9 現(xiàn)在測試
6.2 高級Debugger技巧
6.2.l 使用新值運(yùn)行
6.2.2 循環(huán)調(diào)試技巧
6.2.3 調(diào)用調(diào)試函數(shù)
6.2.4 遞歸調(diào)用與調(diào)用堆棧
6.2.5 查看反匯編代碼
6.3 進(jìn)一步觀察變量
6.3.l 使用QuickWatch窗口
6.3.2 使用Watch窗口
6.4 小結(jié)
第7章 調(diào)試內(nèi)聯(lián)匯編語言代碼
7.l 匯編語言初步
7.1.l 數(shù)據(jù)類型
7.1.2 寄存器
7.1.3 尋址模式
7.1.4 指針
7.1.5 協(xié)處理器
7.2 調(diào)試
7.2.l 減法運(yùn)算
7.2.2 使用256位整數(shù)
7.2.3 程序循環(huán)
7,2.4 使用協(xié)處理器求和實(shí)數(shù).
7.2.5 使用協(xié)處理器計(jì)算正切值
7.3 小結(jié)
第8章 在Windows代碼中定位、分析和修復(fù)錯誤
8.l 使用兩臺計(jì)算機(jī)調(diào)試
8.1.l 準(zhǔn)備遠(yuǎn)程目標(biāo)計(jì)算機(jī)
8.1.2 準(zhǔn)備主計(jì)算機(jī)
8.1.3 啟動調(diào)試會話
8.2 簡明Windows入門
8.2.l 基本的Windows代碼
8.2.2 調(diào)試文件詳述
8.2.3 程序執(zhí)行的情況
8.3 調(diào)試
8.3.l 一個動畫位圖程序
8.3.2 使用鼠標(biāo)繪畫
8.4 小結(jié)
第三部分 面向?qū)ο筮^程的環(huán)境
第9章 定位、分析和修復(fù)命令行中的錯誤
9.l 高級調(diào)試工具
9.l.l 內(nèi)存卸出
9.1.2 定位錯誤參數(shù)從何處傳遞而來
9.1.3 查找何處修改了指針
9.2 Class View窗口要素
9.2.1 ClassView窗口的 Grouped by Access功能
9.2.2 ClassView窗口的 Base Classes功能
9.2.3 ClassView窗口的 References功能
9.2.4 ClassView窗口的 Derived Classes功能
9.2.5 ClassView窗口中菜單的其余項(xiàng)
9.2.6 ClassView窗口的Properities功能
9.2.7 在ClassView窗日中添加文件夾
9.2.8 在文件夾之間移動類
9.2.9 隱藏或顯不 ClassView窗口
9.3 調(diào)試ardc和argv[]
9.4 小結(jié)
第10章 使用MFC類庫開發(fā)Windows程序
10.l 為什么使用類庫
10.2 一個真正的基礎(chǔ)類一一CObject
10.3 什么是應(yīng)用程序向?qū)Ш皖愊驅(qū)?br />10.4 一個圖形程序
10.4.l 使用AppWizard
10.4.2 使用 ClassWizard
10.4.3 建立AppWizard代碼
10.4.4 AppWizard模板代碼
10.4.5 在客戶區(qū)的圖形對象
10.5 剖面法
10.6 小結(jié)
第11章 定位、分析和修復(fù) MFC Windows代碼中的錯誤
11.l 內(nèi)存問題
11.1.l 有問題的代碼
11.1.2 定位和分析
11.1.3 修復(fù)工程
11.2 繪圖問題
11.2.l 有問題的代碼
11.2.2 定位和分析
11.2.3 修改工程
11.3 小結(jié)
第四部分 標(biāo)準(zhǔn)模板庫(STL)
第12章 STL編程實(shí)踐
12.1 多體系結(jié)構(gòu)..
12.2 掌握 C++
12.3 STL――進(jìn)退維谷的數(shù)據(jù)結(jié)構(gòu)
12.4 初識 STL
12.5 STL和HP公司
12.6 大眾化的 STL
12.7 STL總覽
12.8 ANSI/ISO C++接受STL的過程
12.9 STL基本組件
12.9.l 什么是容器?
12.9.2 什么是適配器?
12.9.3 什么是算法?
12.9.4 什么是迭代器?
12.9.5 其他的STL組件
12.10 完整的STL程序包
12.11 雜亂的C/C++家族
12.12 回顧數(shù)據(jù)結(jié)構(gòu)
12.12.l 靜態(tài)與動態(tài)
12.12.2 類型指針
12.12.3 VOid指針
12.13 復(fù)習(xí)匈牙利命名法
12.14 函數(shù)重載
12.15 函數(shù)指針
12.16 運(yùn)算符重載
12.16.l 運(yùn)算符和函數(shù)調(diào)用的重載
12.16.2 編寫自己的重載運(yùn)算符
12.17 從結(jié)構(gòu)到模板
12.17.l template關(guān)鍵字
12.17.2 模板語法
12.17.3 模板函數(shù)
12.17.4 模板類
12.18 為什么STL比模板好
12.19 小結(jié)
第13章 定位、分析和修復(fù)STL代碼中的錯誤
13. l 從標(biāo)準(zhǔn)C++轉(zhuǎn)向STL語法的過程中出現(xiàn)的問題
13.1.l 用迭代器遍歷容器
13.1.2 仔細(xì)研究迭代器
13.1.3 流迭代器
13.1.4 為什么使用end()
13.1.5 復(fù)制列表
13.1.6 列表中的列表
13.1.7 STL字符串指針的麻煩
13.1.8 釋放 STL指針
13.2 一個C++程序轉(zhuǎn)變?yōu)镾TL語法的例子
13.2.l 第一步――更新aSingleCard類
13.2.2 第二步――更新 WarDeck類
13.2.3 第三步――修復(fù)STL代碼的執(zhí)行錯誤
13.2.4 第四步――更新Opponent類
13.2.5 第五步――運(yùn)轉(zhuǎn)的STL程序
13.3 STL語法的源文件Wargame.cpp
13.4 小結(jié)
第五部分 特殊的調(diào)試問題
第14章 使用DLL工作
14.l 創(chuàng)建一個基于MFC的動態(tài)鏈接庫
14.1.l 頭文件 Framer.h
14.1.2 源代碼文件Framer.cpp
14.1.3 建立Framer.dll
14.2 創(chuàng)建使用DLL的主應(yīng)用程序
14.2.l 頭文件 DLLDemoView.h
14.2.2 源代碼文件DLLDemoView.cpp
14.3 更加仔細(xì)地查看
14.3.1 遠(yuǎn)程調(diào)試
14.3.2 有問題的代碼
14.3.3 改正后的代碼
14.4 小結(jié)
第15章 使用ActiveX控件工作
15.1 開發(fā)一個 ActiveX控件
15.1.l 使用Colltrolwizard
15.1.2 Test Container
15.1.3 產(chǎn)生一個真實(shí)的Clock控件
15.2 調(diào)試 Clock控件
15.2.l 準(zhǔn)備遠(yuǎn)程目標(biāo)計(jì)算機(jī)
15.2.2 準(zhǔn)備主計(jì)算機(jī)
15.2.3 開始調(diào)試過程
15.2.4 查找問題
15.3 小結(jié)
第16章 調(diào)試 COM、ATL和DHTML
16.1 COM對象模型
16.2 創(chuàng)建一個ATL多邊形工程
16.2.1 優(yōu)化模塊代碼
16.2.2 測試控件
16.3 調(diào)試ATLCOM控件
16.4 小結(jié)
第17章 STL和 MFC編程
17.l 產(chǎn)生一個STL和MFC應(yīng)用程序
17.1.l 復(fù)數(shù)
17.1.2 模板語法
17.1.3 基本的應(yīng)用程序代碼
17.2 調(diào)試
17.3 小結(jié)
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
C++程序調(diào)試實(shí)用手冊 PDF格式下載