工欲善其事必先利其器!
GDB耍的溜,BUG找的快!
在软件开发的世界里,调试是不可避免的。对于C/C++开发者来说,GDB就是那把调试利器!如果你只知道单步调试,那定位问题的速度肯定是龟速;相反,如果了解它的一些高级特性,肯定会事半功倍。好似站在了风口上,飞起来轻轻松松。
但一些高级特性不是那么容易理解的,本专栏目前包括21篇文章(以后还会陆陆续续更新的)——深入挖掘了GDB的高级调试技巧,通过实际例子帮助你快速掌握并精通这些强大的技巧。很多技巧都是作者多年工作下来在实际项目中总结出来的。无论你是一个经验丰富的开发者,还是一个刚刚开始接触GDB的新手,肯定会收获满满。
建议阅读顺序:
GDB调试技巧汇总
GDB调试技巧实战–汇编指令兼谈栈数组初
GDB调试技巧实战–条件断点兼谈快速定位打开某个文件的代码
客户现场报错,没有调用栈,我们怎么办?
GDB调试技巧实战–commands(断点回调)
GDB调试技巧实战–为release版本的函数寻找参数值(X86_64环境)
GDB调试技巧实战–为优化版release版本的函数寻找参数值
GDB调试技巧实战–为release程序加载符号
反汇编看指令重排
通过实例了解uprobe及其对性能的影响
GDB调试技巧实战–修改客户release版本生产环境内存
GDB调试技巧实战–发现release版本程序中的循环链表
GDB调试技巧实战–使用Python修改客户release版本生产环境内存
[GDB调试技巧实战–用Python发现release版本程序中的循环链表]
(https://blog.csdn.net/zhaiminlove/article/details/135161948)
GDB调试技巧实战–为release程序引入结构体定义
GDB调试技巧实战–判断变量或地址是否在共享内存中
GDB调试技巧实战–自动化画出类关系图
使用bpftrace+GDB尽早attach启动时间不定的进程
GDB调试技巧实战–chatGPT辅助考察strace原理
GDB调试技巧实战–多线程&深入理解条件变量
用取样思想一探AIX上进程性能瓶颈