万本电子书0元读

万本电子书0元读

顶部广告

C/C++代码调试的艺术电子书

·本书以Windows和Linux系统为平台,介绍了C C 程序的代码调试和分析的基本操作以及相应技巧。 ·此外,本书还以真实程序中经常出现的一些问题,比如死锁、动态库调试、内存检查、崩溃转储文件分析等,行了详细介绍,并给出了相应的解决方案。 ·本书注重理论与实际的联系,所选示例通俗易懂,适合每一位想要提升C C 代码调试技能的人员阅读。 ·其他编程语言的发人员也可以触类旁通,将书中学到的代码调试之道用于自己的日常编程工作中。

售       价:¥

纸质售价:¥43.10购买纸书

362人正在读 | 0人评论 6.3

作       者:张海洋

出  版  社:人民邮电出版社有限公司

出版时间:2021-02-01

字       数:13.3万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
《C C 代码调试的艺术》围绕C C 程序调试这一主题,系统深地介绍了在Windows和Linux操作系统上如何高效地调试C C 程序。 《C C 代码调试的艺术》分为11章,内容涵盖了程序调试的基本知识、Visual C 调试程序的基本功能与技巧、Linux系统中gdb工具的使用、死锁调试、动态库调试、内存泄漏检查、远程调试、崩溃转储文件分析、发行版调试,以及调试的高级话题和调试扩展方面的知识。 《C C 代码调试的艺术》作为学习C C 调试技术的重要资料,讲解通俗易懂,选取的示例注重理论与实际的联系。无论是C C 的初学者,还是经验丰富的发人员,都会从中受益。<br/>【推荐语】<br/>·本书以Windows和Linux系统为平台,介绍了C C 程序的代码调试和分析的基本操作以及相应技巧。 ·此外,本书还以真实程序中经常出现的一些问题,比如死锁、动态库调试、内存检查、崩溃转储文件分析等,行了详细介绍,并给出了相应的解决方案。 ·本书注重理论与实际的联系,所选示例通俗易懂,适合每一位想要提升C C 代码调试技能的人员阅读。 ·其他编程语言的发人员也可以触类旁通,将书中学到的代码调试之道用于自己的日常编程工作中。 ·提供源代码。 所谓代码调试,是指在将编写的代码投实际运行之前,用手工或编译程序等方法行测试,修正程序代码中的语法错误和逻辑错误的过程。代码调试对成功的程序发来说至关重要。无论是资深的程序发人员,还是发新人,在编码过程中都需要通过调试代码来确保程序的正确性,确保执行结果符合预期。然而,代码调试绝非是一朝一夕就可以掌握的程序发技能。 本书包含如下内容: C C 调试基本知识 Visual C 调试基本功能 Linux系统gdb调试基本功能 多线程死锁调试 调试动态库 内存检查 远程调试 转储文件调试分析 发行(Release)版调试 调试高级话题 调试扩展知识<br/>【作者】<br/>张海洋,清华大学计算机专业毕业,曾在外企工作10多年,现为云坞科技联合创始人,已经在国内外申请软件发明专利10多件,从事软件发近20年,长期工作在发线。精通C C 、Python等语言,在Windows驱动、Linux驱动、Windows Linux系统发、调试方面具有丰富的经验。<br/>
目录展开

内容提要

作者简介

前言

资源与支持

第1章 C/C++调试基本知识

1.1 BUG与Debug

1.2 为什么选择C/C++

1.3 什么是调试器

第2章 Visual C++调试基本功能

2.1 Visual C++简介

2.1.1 VC 2019版本选择

2.1.2 VC 2019安装

2.2 断点管理

2.2.1 设置/删除断点

2.2.2 禁用断点

2.2.3 查看所有断点

2.3 调试执行

2.3.1 启动调试

2.3.2 逐语句执行

2.3.3 逐过程执行

2.3.4 跳出执行

2.3.5 运行到光标处

2.3.6 多次执行代码

2.4 监视/快速监视

2.4.1 快速监视

2.4.2 监视窗口

2.4.3 表达式支持

2.5 内存查看

2.5.1 字符串内存布局

2.5.2 整型变量内存布局

2.6 通过“局部变量”窗口和“自动”窗口查看变量

2.6.1 “局部变量”窗口查看变量

2.6.2 “自动”窗口查看变量

2.7 即时窗口

2.7.1 显示变量的值

2.7.2 执行内嵌函数

2.8 调用堆栈

2.8.1 调用堆栈基本信息

2.8.2 设置符号信息

2.9 多线程管理

2.9.1 创建多线程测试项目

2.9.2 开始调试多线程程序

2.10 查看错误码

2.11 调试宏Assert使用

2.11.1 Assert宏简介

2.11.2 使用Assert宏的注意事项

2.12 其他

2.12.1 编辑并继续调试

2.12.2 字符串可视化工具

2.12.3 条件断点

2.12.4 函数断点

2.12.5 数据断点

2.12.6 VC调试常用快捷键和组合键列表

第3章 Linux系统gdb调试基本功能

3.1 Linux C/C++编程基本知识

3.1.1 开发环境安装

3.1.2 开发第一个C/C++程序

3.2 gdb简介

3.2.1 gdb的安装

3.2.2 gdb常用功能概览

3.3 调试执行

3.3.1 启动调试

3.3.2 启动调试并添加参数

3.3.3 附加到进程

3.4 断点管理

3.4.1 设置断点

3.4.2 启用/禁用断点

3.4.3 启用断点一次

3.4.4 启用断点并删除

3.4.5 启用断点并命中N次

3.4.6 忽略断点前N次命中

3.4.7 查看断点

3.4.8 删除断点

3.5 程序执行

3.5.1 启动程序

3.5.2 继续运行

3.5.3 继续运行并跳过当前断点N次

3.5.4 继续运行直到当前函数执行完成

3.5.5 单步执行

3.5.6 逐过程执行

3.6 查看当前函数参数

3.7 查看/修改变量的值

3.7.1 使用gdb内嵌函数

3.7.2 查看结构体/类的值

3.7.3 查看数组

3.8 自动显示变量的值

3.9 显示源代码

3.10 查看内存

3.11 查看寄存器

3.12 查看调用栈

3.12.1 查看栈回溯信息

3.12.2 切换栈帧

3.12.3 查看帧信息

3.13 线程管理

3.13.1 查看所有线程信息

3.13.2 切换线程

3.13.3 为线程设置断点

3.13.4 为线程执行命令

3.14 其他

3.14.1 观察点

3.14.2 捕获点

3.14.3 搜索源代码

3.14.4 查看变量类型

3.14.5 跳转执行

3.14.6 窗口管理

3.14.7 调用Shell命令

3.14.8 assert宏使用

3.14.9 gdb常用命令列表

第4章 多线程死锁调试

4.1 创建多线程

4.2 多线程的同步

4.3 C++标准库中的锁

4.3.1 std::mutex类

4.3.2 std::timed_mutex类

4.3.3 std::recursive_mutex和std::recursive_timed_mutex

4.4 死锁调试

4.4.1 Windows死锁调试

4.4.2 Linux系统中的死锁调试

4.4.3 死锁条件

4.4.4 解决死锁

第5章 调试动态库

5.1 Windows系统动态库开发与调试

5.1.1 创建动态库

5.1.2 使用动态库

5.1.3 调试动态库

5.2 Linux系统动态库开发与调试

5.2.1 创建动态库

5.2.2 使用动态库

5.2.3 调试动态库

第6章 内存检查

6.1 VC调试器和C/C++内存检查机制

6.1.1 内存泄漏测试程序

6.1.2 使用VC运行时库函数来检测内存泄漏

6.1.3 检测堆内存破坏(堆溢出)

6.1.4 其他调试函数

6.2 Linux系统内存检查

6.2.1 检查内存泄漏

6.2.2 检查堆溢出

6.2.3 检查栈溢出

6.2.4 检查全局内存溢出

6.2.5 检查释放后继续使用

第7章 远程调试

7.1 远程调试简介

7.2 Visual C++远程调试

7.2.1 准备测试程序

7.2.2 准备目标机环境

7.2.3 启动远程调试

7.3 Linux系统gdb远程调试

7.3.1 准备测试程序

7.3.2 准备目标机环境

7.3.3 启动调试

7.4 使用VC远程调试Linux程序

7.5 使用VC创建Linux程序并调试

第8章 转储文件调试分析

8.1 Windows系统中的转储文件分析

8.1.1 转储文件死锁调试分析

8.1.2 崩溃转储调试分析

8.2 Linux系统中的转储文件分析

8.2.1 内核转储文件调试分析死锁

8.2.2 内核转储文件调试分析程序崩溃问题

第9章 发行(Release)版调试

9.1 在VC中调试发行版

9.1.1 去优化测试

9.1.2 保留优化调试

9.2 在gdb中调试发行版

9.2.1 从调试版中提取调试符号

9.2.2 直接使用调试版作为符号源

第10章 调试高级话题

10.1 断点的秘密

10.2 你好,烫

10.3 与Windows调试相关的API

10.3.1 输出窗口输出信息

10.3.2 检测是否在调试器运行

10.3.3 Windows调试API列表

10.4 与Linux调试相关的系统调用

第11章 调试扩展知识

11.1 Windows驱动开发调试入门

11.1.1 环境准备

11.1.2 创建Helloworld驱动项目

11.1.3 编译、构建驱动

11.1.4 部署驱动

11.1.5 安装驱动程序

11.1.6 调试驱动

11.2 WinDbg简介

11.2.1 直接启动应用程序进行调试

11.2.2 附加到进程

11.2.3 调试转储文件

11.2.4 WinDbg命令列表

11.3 Linux内核驱动开发简介

11.3.1 环境准备

11.3.2 开发Helloworld

11.3.3 加载和卸载驱动

11.4 Linux内核转储文件调试分析

11.4.1 Ubuntu系统

11.4.2 在CentOS系统中配置内核转储

11.4.3 调试分析内核转储文件

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部