图书介绍

C++程序调试实用手册PDF|Epub|txt|kindle电子书版本下载

C++程序调试实用手册
  • (美)Chris H.Pappas,(美)William H.Murray,Ⅲ著;段来盛等译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7505362143
  • 出版时间:2000
  • 标注页数:505页
  • 文件大小:83MB
  • 文件页数:524页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐