图书介绍
C++程序调试实用手册PDF|Epub|txt|kindle电子书版本下载
![C++程序调试实用手册](https://www.shukui.net/cover/19/31417703.jpg)
- (美)Chris H.Pappas,(美)William H.Murray,Ⅲ著;段来盛等译 著
- 出版社: 北京:电子工业出版社
- ISBN:7505362143
- 出版时间:2000
- 标注页数:505页
- 文件大小:83MB
- 文件页数:524页
- 主题词:
PDF下载
下载说明
C++程序调试实用手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 代码开发技巧3
第1章 编写好的代码3
1.1谁需要本书?4
1.2教学方法5
1.3从何处开始阅读?5
1.4警告!并非所有的C/C++编译器都完全相同6
1.5语言无关的设计工具1016
1.5.1准备7
1.5.2模型!7
1.5.3结构图、伪代码及IPO框图8
1.6好的程序设计的五点要素12
1.7规则意味着可以打破13
1.7.1安塞尔亚当斯(Ansel Adams)或毕加索(Picasso)13
1.7.2注释块13
1.7.3标识符:identifiers、IDENTIFIERS和Identifiers14
1.7.4间隔与缩进15
1.8数据类型20
1.9匈牙利表示法23
1.9.1 MFC、句柄、控件及结构的命名规范23
1.9.2一般前缀命名规范24
1.9.3变量命名规范24
1.9.5 Microsoft MFC宏命名规范25
1.9.4应用程序符号命名规范25
1.9.7静态库版本命名规范26
1.9.8动态连接库命名规范26
1.9.9 windows.h命名规范26
1.9.6库标识符命名规范26
1.10操作符优先级27
1.11小结28
第2章 使用编译器优化31
2.1编码的责任与编译器的优化32
2.2 Microsoft Visual C++的优化33
2.2.2函数级连接34
2.2.1调度指令34
2.2.3字符串池35
2.2.4使用register键字35
2.2.5常量和复制的传播36
2.2.6消除死代码和死存储37
2.2.7删除冗余子表达式37
2.2.8优化循环37
2.2.9降低强度38
2.2.10 inline键字的使用38
2.2.12关闭堆栈检查39
2.2.11省略帧指针39
2.2.13覆盖堆栈40
2.2.14函数调用之间允许使用别名41
2.2.15全局优化41
2.2.16产生内部函数的内联41
2.2.17优化math.h42
2.3 Microsoft C++的优化开关42
2.4使用Microsoft Visual Studio设置编译器选项43
2.4.1 Project Settings对话框中的General类型45
2.4.2 Project Settings对话框中的Code Generation类型46
2.4.5 Project Settings对话框中的Optimizations类型48
2.4.4 Project Settings对话框中的Customize类型48
2.4.3选择结构对齐方式48
2.5建立发行版本的建议51
2.6小结51
第3章 逻辑与语法错误53
3.1好的调试策略55
3.2四种程序错误类型56
3.2.1语法错误56
3.2.2连接错误57
3.2.3运行错误58
3.3查看错误消息60
3.2.4逻辑错误60
3.4预防性维护62
3.4.1桌面检查的含义63
3.5异常处理设计63
3.6“请多多支持”64
3.7 Microsoft Visual C++的帮助65
3.8小结66
第4章 debugger67
4.1确认Debugger可以使用68
4.2启动Debugger69
4.2.3 Run to Cursor71
4.2.1 Step Into和Step Over的区别71
4.2.2 Go71
4.3理解Debugger工具栏图标72
4.3.1 Restart73
4.3.2 Stop Debugging73
4.3.3 Break Execution73
4.3.4 Apply Code Changes、Eidt and Continue73
4.3.5 Show Next Statement74
4.3.6 Step Into74
4.3.11 Watch75
4.3.10 QuickWatch75
4.3.12 Variables75
4.3.7 Step Over75
4.3.8 Step Out75
4.3.9 Run to Cursor75
4.3.13 Regisers76
4.3.14 Meomry76
4.3.15 Call Stack76
4.3.16 Disassembly76
4.3.17 Debugger Toolbar Menu Equivalents76
4.4.4 Modules77
4.5.1 List Members77
4.5本地菜单Debugger选项77
4.4.1 Step Into Specific Function77
4.4.3 Threads77
4.4.2 Exceptions77
4.4其他Debug菜单选项77
4.5.2 Type Info78
4.5.3 Parameter Information78
4.5.4 Complete Word78
4.5.7 Insert/Remove Breakpoint79
4.6 Debugger窗口79
4.5.5 Go To Definition/Reference79
4.5.6 Go To Disassembly79
4.6.1 Trace窗口80
4.6.2 Watch窗口80
4.7 View菜单和Debugger窗口80
4.7.1 Workspace80
4.7.2 Output81
4.8以不同的数据类型查看观察变量81
4.9打开Just-in-Time调试83
4.10 Options窗口中的Debug标签83
4.10.6 Parameter Types84
4.10.10 Format84
4.10.9 Address84
4.10.8 Load COEF Exports84
4.10.7 Return Value84
4.10.1 Hexadecimal Display84
4.10.5 Parameter Values84
4.10.4 Symbols84
4.10.3 Code Bytes84
4.10.2 Source Annotation84
4.10.16 Just-in-Time Debugging85
4.10.17 OLE RPC Debugging85
4.10.15 View Floating Point Registers85
4.10.18 Debug Commands Invoke Edit and Continue85
4.10.12 Show Data Bytes85
4.10.14 Display Unicode Strings85
4.10.13 Fixed Width85
4.10.11 Re-evaluate Expression85
4.11键盘映射86
4.12 Debugger快捷键87
4.13小结87
第5章 调试版本与发行版本89
5.2为调试版本建立修改工程设置90
5.1缺省的调试版本建立与发行版本建立设置90
5.2.1修改调试选项91
5.2.2修改产生调试信息的格式91
5.2.3产生一个映射文件91
5.2.4重定向调试输入和输出92
5.3什么是.pdb文件?92
5.4什么是.dbg文件93
5.5调试优化的代码93
5.6打开Debugger的另一种方法96
5.7使用基本版或调试版本96
5.8 C/C++运行调试库97
5.8.1旧版iostream.h和新版iostream之间的混乱98
5.9连接器参考资料99
5.10在调试版本中检测发行版本错误101
5.10.1局部变量的自动初始化101
5.10.2检查函数指针调用堆栈的合法性102
5.10.3 检查调用堆栈的合法性102
5.11 TRACE宏102
5.12 VERIFT宏103
5.13 移植Visual C++旧的32位版本103
5.13.2与Visual C++以前的版本共存104
5.13.1转换早期的32位工作空间和工程104
5.14小结105
第二部分 面向过程的环境109
第6章 定位、分析和修复命令行代码错误109
6.1快速启动调试110
6.1.1启动Debugger的快速方法112
6.1.2变量初始化跟踪115
6.1.3小心调试代码121
6.1.4快速查看变量的内容124
6.1.6执行到代码的指定行125
6.1.5中途停止Debugger125
6.1.7全速执行到一个断点127
6.1.8运行至光标处128
6.1.9现在测试128
6.2高级Debugger技巧129
6.2.1使用新值运行130
6.2.2循环调试技巧141
6.2.3调用调试函数142
6.2.4递归调用与调用堆栈149
6.2.5查看反汇编代码154
6.3进一步观察变量157
6.3.1使用QuickWatch窗口158
6.3.2使用Watch窗口159
6.4小结160
第7章 调试内联汇编语言代码161
7.1汇编语言初步162
7.1.1数据类型162
7.1.2寄存器163
7.1.3寻址模式163
7.1.5协处理器164
7.1.4指针164
7.2调试165
7.2.1减法运算166
7.2.2使用256位整数170
7.2.3程序循环179
7.2.4使用协处理器求和实数186
7.2.5使用协处理器计算正切值190
7.3小结199
第8章 在Windows 代码中定位、分析和修复错误201
8.1使用两台计算机调试202
8.1.1准备远程目标计算机203
8.1.2准备主计算机204
8.1.3启动调试会话206
8.2简明Windows 入门207
8.2.1基本的Windows 代码208
8.2.2调试文件详述209
8.2.3程序执行的情况210
8.3调试217
8.3.1一个动画位图程序217
8.3.2使用鼠标绘画233
8.4小结248
第9章 定位、分析和修复命令行中的错误251
第三部分 面向对象过程的环境251
9.1高级调试工具252
9.1.1内存卸出252
9.1.2定位错误参数从何处传递而来255
9.1.3查找何处修改了指针257
9.2 ClassView窗口要素267
9.2.1 ClassView窗口的Grouped by Access功能269
9.2.2 ClassView窗口的Base Classes功能270
9.2.4 ClassView窗口的 Derived Classes功能273
9.2.3 ClassView窗口的References功能273
9.2.5 ClassView窗口中菜单的其余项275
9.2.6 ClassView窗口的Properities功能276
9.2.7在ClassView窗口中添加文件夹277
9.2.8在文件夹之间移动类277
9.2.9隐藏或显示ClassView窗口277
9.3调试argc和argv[]278
9.4小结282
第10章 使用MFC类库开发Windows 程序283
10.1为什么使用类库284
10.2一个真正的基础类——CObect285
10.4一个图形程序287
10.3什么是应用程序向导和类向导287
10.4.1使用AppWizard288
10.4.2使用ClassWizard294
10.4.3建立AppWizard代码295
10.4.4 AppWizard模板代码296
10.4.5在客户区的图形对象304
10.5剖面法308
10.6小结313
第11章 定位、分析和修复MFC Windows 代码中的错误315
11.1内存问题316
11.1.1有问题的代码316
11.1.2定位和分析320
11.1.3修复工程328
11.2绘图问题331
11.2.1有问题的代码332
11.2.2定位和分析336
11.2.3修改工程344
11.3小结348
第四部分 标准模板库(STL)351
第12章 STL编程实践351
12.1多体系结构352
12.2掌握C++352
12.5 STL和HP公司354
12.4初识STL354
12.3 STL——进退维谷的数据结构354
12.6大众化的STL355
12.7 STL总览355
12.8 ANSI/ISO C++接受STL的过程355
12.9 STL基本组件356
12.9.1什么是容器?356
12.9.2什么是适配器?357
12.9.3什么是算法?358
12.9.4什么是迭代器?358
12.10完整的STL程序包359
12.9.5其他的STL组件359
12.11杂乱的C/C++家族361
12.12回顾数据结构361
12.12.1静态与动态361
12.12.2类型指针362
12.12.3 void指针363
12.13复习匈牙利命名法365
12.14函数重载367
12.15函数指针367
12.16.1运算符和函数调用的重载370
12.16运算符重载370
12.16.2编写自己的重载运算符371
12.17从结构到模板373
12.17.1 template关键字374
12.17.2模板语法374
12.17.3模板函数375
12.17.4模板类375
12.18为什么STL比模板好376
12.19小结377
第13章 定位、分析和修复STL代码中的错误379
13.1.1用迭代器遍历容器380
13.1从标准C++转同STL语法的过程中出现的问题380
13.1.2仔细研究迭代器381
13.1.3流迭代器382
13.1.4为什么使用end()382
13.1.5复制列表383
13.1.6列表中的列表383
13.1.7 STL字符串指针的麻烦384
13.1.8释放STL指针385
13.2一个C++程序转变为STL语法的例子385
13.2.1第一步——更新aSingleCard类389
13.2.2第二步——更新WarDeck类392
13.2.3第三步——修复STL代码的执行错误396
13.2.4第四步——更新Opponent类398
13.2.5第五步——运转的STL程序399
13.3 STL语法的源文件wargame.cpp400
13.4小结405
第五部分 特殊的调试问题409
第14章 使用DLL工作409
14.1创建一个基于MFC的动态链接库410
14.1.1头文件Framer.h412
14.1.2源代码文件Framer.cpp414
14.1.3建立Framer.dll416
14.2创建使用DLL的主应用程序417
14.2.1头文件DLLDemoView.h418
14.2.2源代码文件DLLDemoView.cpp419
14.3更加仔细地查看425
14.3.1远程调试425
14.3.2有问题的代码428
14.3.3改正后的代码432
14.4小结433
第15章 使用ActiveX控件工作435
15.1开发一个ActiveX控件436
15.1.1使用ControlWizard437
15.1.2 Test Container440
15.1.3产生一个真实的Clock控件443
15.2调试Clock控件453
15.2.1准备远程目标计算机453
15.2.2准备主计算机454
15.2.3开始调试过程454
15.2.4查找问题456
15.3小结459
第16章 调试COM、ATL和DHTML461
16.1 COM对象模型462
16.2创建一个ATL多边形工程462
16.2.1优化模块代码467
16.2.2测试控件480
16.3调试ATL COM控件482
16.4小结484
第17章 STL和MFC编程485
17.1产生一个STL和MFC应用程序486
17.1.1复数486
17.1.2模板语法487
17.1.3基本的应用程序代码493
17.2调试497
17.3小结505