文档目录
GDB / LLDB 高级调试技术
本节目录
- 多线程调试 一、查看和控制线程 # 假设有一个死锁的多线程程序 (gdb) info threads Id Target Id Frame 1 Thread 0x7f1 …
- 反向执行调试(Reverse Debugging) 一、什么时候用 你的程序崩溃了,但你想看崩溃前的状态(比如变量是什么时候变成非法值的)。 # 启动调试 (gdb) record # 开始记录执行轨迹 …
- 观察点(Watchpoint) 一、看变量值什么时候变了 // 一个典型的 Bug:某个全局变量被意外修改 int g_counter = 0; void thread_a() { for …
- 条件断点 // 一个循环中的 Bug:第 1000 次才出现 void process_data(std::vector<int>& data) { for (int …
- Core Dump 分析 一、生成和应用场景 # 设置 core dump 文件大小(不限) ulimit -c unlimited # 运行程序,如果崩溃会生成 core 文件 …
- 第五阶段总结 info threads → 看所有线程的调用栈 thread apply all bt → 找死锁(互相等锁) reverse debugging → 看 …