首页
›
编程基础与工程化
›
004-GDB
›
《GDB系统编程:指针越界与库链接实战》
VIP20
本课程属于:004-GDB
编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
GDB系统编程:指针越界与库链接实战
📚 共计 30 章节
01
GDB入门
GDB是什么 · 能解决什么问题 · 安装与版本确认 · 第一个调试会话
基础
环境
02
编译调试选项
-g选项 · 优化级别 · -O0与-g配合 · strip与调试符号
编译
符号
03
启动与退出GDB
多种启动方式 · core文件调试 · attach进程 · quit/exit
启动
core
04
断点设置
break · 条件断点 · 临时断点 · 硬件断点 · 管理(info/disable/enable/delete)
断点
控制
05
单步执行
step/next区别 · finish/until · stepi/nexti · 反向调试初探
单步
指令级
06
查看变量与内存
print · display · x命令 · ptype · 格式化输出
内存
变量
07
栈帧回溯
backtrace · frame切换 · info locals/args · up/down
栈帧
回溯
08
指针基础回顾
声明与初始化 · & * · 指针与数组 · 空指针/野指针
指针
基础
09
指针越界原理
栈上越界 · 堆上越界 · 越界读/写 · SIGSEGV
越界
原理
10
GDB检测指针越界
watch · rwatch/awatch · 捕获点(catch)
监控
捕获
11
实战案例1:栈缓冲区溢出
定位越界写入导致的变量篡改
实战
栈溢出
12
实战案例2:堆内存越界
定位malloc/free后的use-after-free
实战
堆越界
13
实战案例3:字符串操作越界
strcpy/strcat溢出 · GDB定位
实战
字符串
14
AddressSanitizer集成
ASan原理 · 编译启用 · 与GDB协同 · 报告解读
ASan
工具
15
Valgrind与GDB配合
Valgrind检测内存错误 · 结合GDB定位 · memcheck
Valgrind
memcheck
16
动态库基础
共享库概念 · .so/.dll · 静态vs动态 · ldd
动态库
链接
17
GDB加载动态库
set solib-search-path · info sharedlibrary · 断点打在动态库
加载
断点
18
动态库符号问题
符号隐藏/导出 · 符号冲突 · 同名函数覆盖 · GDB查看符号表
符号
冲突
19
LD_PRELOAD劫持
LD_PRELOAD原理 · GDB调试被劫持程序 · hook malloc
劫持
LD_PRELOAD
20
dlopen/dlsym调试
运行时加载库 · 断点设置在dlopen函数中 · dlsym地址检查
dlopen
dlsym
21
实战案例4:动态库加载失败
定位undefined symbol与版本不匹配
实战
加载失败
22
实战案例5:库函数调用越界
共享库中发生的指针越界调试
实战
库越界
23
多线程基础
pthread_create · 线程栈 · 线程局部存储 · 竞态/死锁
多线程
基础
24
GDB多线程调试
info threads · thread切换 · thread apply · scheduler-locking
多线程
GDB
25
多线程指针越界
共享数据越界 · 栈越界与线程崩溃 · 定位线程栈溢出
多线程
越界
26
实战案例6:多线程use-after-free
两个线程同时操作同一块内存
实战
use-after-free
27
GDB脚本自动化
define命令 · GDB脚本文件 · 循环/条件 · 自动化流程
脚本
自动化
28
GDB Python扩展
Python API · 自定义命令 · pretty-printer · hook事件
Python
扩展
29
GDB调试内核模块
kgdb简介 · 模块加载与断点 · kallsyms · 调试内核oops
内核
kgdb
30
综合实战:大型C项目调试
从崩溃到修复完整流程 · core分析 · 断点定位 · 修复验证
综合
实战
所属VIP或分类
同VIP:GDB原理解析:从断点到堆栈回溯
同VIP:GDB原理解析:库链接与跨平台编译
同VIP:GDB原理解析:深入断点与性能优化