乐趣区

关于gdb:GDB原理入门

  1. 应用 gdb ./XX 时,gdb 过程 fork 出子过程,调用 ptrace(PTRACE_TRACEME)零碎调用跟踪,而后 exec 替换可执行文件
  2. ptrace 十分弱小,它容许跟踪过程读写被跟踪过程的代码空间、数据空间、堆栈、寄存器组的值,而且接管了操作系统发给被跟踪过程的信号
  3. 应用 gdb attach pid 的时候,gdb 过程收养了被跟踪过程,调用了 ptrace(PTRACE_ATTACH)
  4. 如何实现断点指令:将断点处代码贮存到断点链表,插入中断代码;当产生中断时,操作系统发信号被 gdb 截获,查问断点链表

    • 将断点代码写回
    • 从新设置 PC 指向断点
退出移动版