GDB基于ptrace系统调用实现
ptrace
提供了一种使父进程得以监视和控制其他进程的方式,它还能改变子进程中的寄存器和内核映像,因而可以实现断点调试和系统调用的跟踪。
软断点(Software Breakpoint):在断点位置插入特殊的指令(可以触发中断或者异常)。需要修改原始二进制文件。
硬断点(Hardware Breakpoint):依赖于硬件,需要配置寄存器。硬断点的数量通常是有限的。
gdb的启动
- 可执行文件,带参数
- python调用.so
- core dump文件
gdb调试堆栈
添加,删除,启用,禁用断点
(包括普通断点,条件断点,数据断点)
查看当前断点下的调用堆栈
查看程序运行过程中的线程信息
查看某个变量的内存值
1
2
# 显式从symble地址开始的14个十六进制表示的字节
(gdb) x/14xb symble