GDB原理入门

  1. 使用gdb ./XX时,gdb进程fork出子进程,调用ptrace(PTRACE_TRACEME)系统调用跟踪,然后exec替换可执行文件
  2. ptrace非常强大,它允许跟踪进程读写被跟踪进程的代码空间、数据空间、堆栈、寄存器组的值,而且接管了操作系统发给被跟踪进程的信号
  3. 使用gdb attach pid的时候,gdb进程收养了被跟踪进程,调用了ptrace(PTRACE_ATTACH)
  4. 【GDB原理入门】如何实现断点指令:将断点处代码储存到断点链表,插入中断代码;当发生中断时,操作系统发信号被gdb截获,查询断点链表
    • 将断点代码写回
    • 重新设置PC指向断点

    推荐阅读