Linu x 源码分析(ptrace) 第1页 一 函数说明 1
函数使用说明 名字 ptrace – 进程跟踪 形式 #inclu de int ptrace(int requ est, int pid, int addr, int data); 描述 Ptrace 提供了一种父进程可以控制子进程运行,并可以检查和改变它的核心image
它主要用于实现断点调试
一个被跟踪的进程运行中,直到发生一个信号
则进程被中止,并且通知其父进程
在进程中止的状态下,进程的内存空间可以被读写
父进程还可以使子进程继续执行,并选择是否是否忽略引起中止的信号
Requ est 参数决定了系统调用的功能: PTRACE_TRACEME 本进程被其父进程所跟踪
其父进程应该希望跟踪子进程
PTRACE_PEEKTEXT, PTRACE_PEEKDATA 从内存地址中读取一个字节,内存地址由 addr 给出
PTRACE_PEEKUSR 从 USER 区域中读取一个字节,偏移量为 addr
PTRACE_POKETEXT, PTRACE_POKEDATA 往内存地址中写入一个字节
内存地址由 addr 给出
PTRACE_POKEUSR 往 USER 区域中写入一个字节
偏移量为 addr
PTRACE_SYSCALL, PTRACE_CONT 重新运行
PTRACE_KILL 杀掉子进程,使它退出
PTRACE_SINGLESTEP 设置单步执行标志 PTRACE_ATTACH 跟踪指定 pid 进程
PTRACE_DETACH 结束跟踪 Intel386 特有: PTRACE_GETREGS 读取寄存器 Linu x 源码分析(ptrace) 第2页 PTRACE_SETREGS 设置寄存器 PTRACE_GETFPREGS 读取浮点寄存器 PTRACE_SETFPRE