VIP20
本课程属于:004-GDB 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

GDB跨平台编译:库链接与粘包拆包实战

📚 共计 30 章节
01
GDB入门
GDB的历史、GDB能做什么、GDB的安装与基本启动。
基础环境
02
GDB基础命令
run、break、next、step、continue、print、quit的用法。
命令调试
03
GDB断点管理
设置断点、条件断点、临时断点、断点列表与删除。
断点控制
04
GDB数据查看
print、display、watch、x命令查看内存与变量。
变量内存
05
GDB堆栈回溯
backtrace、frame、info locals、up/down命令。
堆栈回溯
06
GDB多线程调试
thread、thread apply、set scheduler-locking。
多线程并发
07
GDB核心转储分析
core dump生成、gdb分析core文件、bt定位崩溃。
崩溃core
08
GDB脚本化调试
.gdbinit文件、define命令、Python脚本扩展。
脚本自动化
09
GDB远程调试
gdbserver搭建、target remote、跨设备调试。
远程嵌入式
10
GDB逆向调试
reverse-step、reverse-continue、record模式。
逆向回放
11
GDB与Makefile
编译时-g选项、调试符号、strip与debug分离。
构建符号
12
GDB与CMake
CMakeLists.txt中设置Debug/Release模式。
CMake配置
13
GDB与交叉编译
arm-linux-gnueabihf-gcc、gdb-multiarch。
交叉编译ARM
14
静态库与动态库
ar打包、gcc -shared、ldd查看依赖。
库链接
15
库链接原理
符号解析、重定位、链接顺序、未定义符号。
链接原理
16
链接错误实战
undefined reference、multiple definition、LNK2005。
错误解决
17
动态库加载
dlopen、dlsym、dlclose、运行时加载插件。
动态库插件
18
库版本管理
soname、符号版本、ABI兼容性。
版本ABI
19
粘包与拆包问题
TCP流式协议、消息边界、缓冲区设计。
网络协议
20
定长协议拆包
固定头部+固定体、memcpy解析。
定长拆包
21
变长协议拆包
TLV格式、Type-Length-Value设计。
TLV变长
22
分隔符协议拆包
特殊字符分隔、strtok与自定义解析。
分隔符解析
23
粘包实战案例
recv循环、缓冲区拼接、状态机解析。
实战状态机
24
拆包实战案例
多线程接收、锁保护、环形缓冲区。
多线程环形缓冲
25
GDB调试粘包
断点观察缓冲区、watch变量变化。
GDB粘包
26
GDB调试拆包
条件断点定位错误解析、print打印协议字段。
GDB拆包
27
跨平台编译
Windows/Linux/macOS差异、MinGW、WSL。
跨平台环境
28
交叉编译工具链
arm、mips、riscv架构、sysroot配置。
工具链架构
29
库移植实战
openssl、zlib、protobuf交叉编译。
移植开源库
30
综合项目
基于GDB调试的跨平台网络库设计与粘包拆包实现。
项目综合