图书介绍

日臻完善 软件调试与优化典型应用【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

日臻完善 软件调试与优化典型应用
  • 石磊玉编著 著
  • 出版社: 北京:中国铁道出版社
  • ISBN:9787113107192
  • 出版时间:2010
  • 标注页数:385页
  • 文件大小:121MB
  • 文件页数:401页
  • 主题词:软件-调试

PDF下载


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

下载说明

日臻完善 软件调试与优化典型应用PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 绪论1

1.1 不可避免的调试工作1

1.1.1 不存在完美的程序2

1.1.2 系统经常不按期望运行2

1.1.3 成本极高的调试过程3

1.1.4 调试与测试4

1.2 掌握调试5

1.2.1 在编码过程中简化调试5

1.2.2 软件问题分类6

1.2.3 熟练使用工具7

1.3 轻松调试的必备条件8

1.3.1 减少调试时间8

1.3.2 彻底解决每个错误9

1.3.3 软件修改时的保守策略10

第2章 编写良好的代码11

2.1 代码编写规范12

2.1.1 代码要求12

2.1.2 命名规范14

2.1.3 注释规范19

2.2 静态代码检查29

2.2.1 PCLINT简介30

2.2.2 PCLINT安装31

2.2.3 PCLINT集成39

2.2.4 PCLINT代码检查42

2.2.5 PCLINT选项43

2.3 重构46

2.3.1 重构概述46

2.3.2 重构的关键问题48

2.4 代码结构分析51

2.4.1 进行代码分析52

2.4.2 获取逆向工程模型58

2.5 测试代码60

2.5.1 测试用例设计60

2.5.2 易测试性61

2.5.3 编写自动测试代码前的准备63

2.5.4 自动测试63

2.5.5 代码覆盖原则66

2.5.6 代码覆盖率评估66

第3章 Visual C++调试基础69

3.1 Visual C++调试工具69

3.1.1 调试环境的建立69

3.1.2 调试的一般过程71

3.1.3 断点的设置71

3.1.4 控制程序的运行78

3.1.5 查看工具的使用80

3.2 使用跟踪语句84

3.2.1 跟踪语句的定义85

3.2.2 TRACE宏的使用86

3.2.3 Dump函数的使用88

3.2.4 其他跟踪语句的使用89

3.3 使用断言91

3.3.1 断言的定义91

3.3.2 ANSI C断言92

3.3.3 C运行时刻函数库断言93

3.3.4 MFC断言94

3.3.5 使用断言的地方96

3.4 工程选项97

3.4.1 编译选项97

3.4.2 链接选项98

3.4.3 优化选项99

3.5 调试版本和发布版本100

3.5.1 生成调试版本和发布版本100

3.5.2 调试版本和发布版本的区别102

3.6 调试发布版本103

3.7 符号文件106

3.7.1 符号文件的定义106

3.7.2 生成和使用PDB文件107

3.8 使用预处理指令109

3.8.1 #pragma110

3.8.2 #error114

第4章 库调试115

4.1 运行库概述115

4.1.1 静态链接库116

4.1.2 动态链接库116

4.2 创建链接库117

4.2.1 创建静态链接库118

4.2.2 创建动态链接库121

4.3 调试静态链接库130

4.3.1 静态连接库的使用130

4.3.2 静态链接库的调试131

4.3.3 常见问题及处理方法135

4.4 调试动态链接库135

4.4.1 动态链接库的使用135

4.4.2 DLL冲突136

4.4.3 获取DLL的相关信息137

4.4.4 列举程序加载的模块140

第5章 多线程程序调试144

5.1 多线程概述144

5.1.1 进程和线程144

5.1.2 Win32 API对多线程编程的支持145

5.2 线程的同步与互斥149

5.2.1 等待函数149

5.2.2 信号量151

5.2.3 事件153

5.2.4 临界区156

5.2.5 死锁问题159

5.3 多线程下内存操作160

5.3.1 问题引出161

5.3.2 优化方法162

5.4 编写安全的线程代码163

5.4.1 减少竞争163

5.4.2 防止死锁164

5.4.3 安全地终止线程166

5.5 调试方法171

5.5.1 获取线程信息171

5.5.2 运行日志174

5.5.3 设置特定断点175

5.5.4 控制线程状态177

5.5.5 尽早调试发布版本178

第6章 SQL调试179

6.1 SQL概述179

6.1.1 数据定义语言180

6.1.2 数据操作语言181

6.1.3 SELECT表达式183

6.1.4 SQL中的数据类型184

6.2 数据库开发186

6.2.1 开放数据库连接187

6.2.2 MFC ODBC类188

6.2.3 MFC DAO编程189

6.2.4 OLE DB框架190

6.2.5 ActiveX数据对象191

6.3 编写良好的SQL语句192

6.3.1 SQL语句优化192

6.3.2 SQL编写建议196

6.4 数据库性能调试198

6.5 数据库结构分析203

第7章 程序错误206

7.1 程序错误类型206

7.1.1 语法错误207

7.1.2 连接错误210

7.1.3 运行错误212

7.1.4 逻辑错误213

7.2 防御性编程214

7.2.1 在非法输入中保护程序214

7.2.2 使用断言214

7.2.3 错误处理技术217

7.3 查看错误218

第8章 内存漏洞及调试220

8.1 内存分配220

8.1.1 内存分配函数220

8.1.2 C++的new和delete操作符223

8.2 内存泄漏224

8.2.1 内存泄漏的定义225

8.2.2 泄漏的分类与表现225

8.3 内存泄漏调试228

8.3.1 调试手段228

8.3.2 内存泄漏的跟踪与检测235

8.3.3 内存泄漏的防范239

8.4 内存破坏调试242

8.4.1 访问空指针242

8.4.2 访问未被初始化的内存243

8.4.3 内存越界244

8.4.4 访问已经被释放的内存244

8.4.5 释放未被初始化的指针245

8.5 内存漏洞检查246

第9章 内核对象泄漏及调试249

9.1 句柄249

9.1.1 句柄的定义250

9.1.2 对象句柄的继承251

9.2 内核对象255

9.2.1 内核对象的定义255

9.2.2 内核对象的创建256

9.2.3 内核对象的销毁258

9.2.4 内核对象的计数259

9.2.5 内核对象的安全性260

9.2.6 内核对象的共享261

9.3 句柄泄漏268

9.4 检测资源泄漏269

9.4.1 使用任务管理器269

9.4.2 使用WinDbg270

9.5 GDI资源泄漏272

第10章 结构异常处理274

10.1 异常概述274

10.2 Windows结构异常处理277

10.2.1 结束异常程序278

10.2.2 异常处理程序285

10.2.3 异常过滤器286

10.2.4 未处理异常288

10.3 C++结构异常处理290

10.3.1 C++异常处理的语法290

10.3.2 C++异常处理机制292

10.3.3 使用异常规格编程294

10.3.4 将结构化异常转换为C++异常301

10.4 Visual C++中的结构异常处理305

10.4.1 中断处理句柄305

10.4.2 异常处理句柄316

第11章 事后调试323

11.1 系统API错误码323

11.1.1 使用GetLastError324

11.1.2 获取错误码的字符串信息326

11.2 汇编信息330

11.2.1 汇编语言基础330

11.2.2 线程堆栈335

11.2.3 函数调用规范337

11.2.4 使用反汇编343

11.3 使用崩溃对话框344

11.4 使用MAP文件346

11.4.1 MAP文件构成347

11.4.2 导致崩溃的代码行348

11.5 使用Dr.Watson351

11.5.1 Dr.Watson工具简介351

11.5.2 Dr.Watson的使用356

第12章 软件缺陷管理364

12.1 软件缺陷概述364

12.1.1 软件缺陷的定义364

12.1.2 缺陷管理的目标365

12.2 软件缺陷收集366

12.2.1 软件缺陷描述366

12.2.2 软件缺陷报告367

12.3 软件缺陷管理方法369

12.3.1 缺陷管理流程369

12.3.2 缺陷跟踪管理系统372

附录374

附录A Visual C++环境下的常见问题374

附录B 动态链接库def文件语法规则380

热门推荐