展开全部

主编推荐语

C/C++调试技巧全面探讨:涵盖Windows与Linux系统、基本知识到高级话题。

内容简介

本书围绕C/C++程序调试这一主题,系统深入地介绍了在Windows和Linux操作系统上如何高效地调试C/C++程序。本书共分为11章,内容涵盖了程序调试的基本知识、Visual C++调试程序的基本功能与技巧、Linux系统中gdb工具的使用、死锁调试、动态库调试、内存泄漏检查、远程调试、崩溃转储文件分析、发行版调试,以及调试的高级话题和调试扩展方面的知识。本书作为学习C/C++调试技术的重要资料,选取的示例通俗易懂,且注重理论与实际的联系。

目录

  • 版权信息
  • 内容提要
  • 作者简介
  • 前言
  • 资源与支持
  • 第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 调试分析内核转储文件
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。