ptrace是否访问用户或内核空间?

时间:2019-01-16 14:40:39

标签: c++ linux linux-kernel arm ptrace

我正在尝试读取通过此C ++代码卡在系统调用(= kernel land)中的Aarch64 Linux臂上的进程/线程的指令指针/ pc寄存器:

ptrace( PTRACE_GETREGSET, threadProcessId, NULL, &regs );
printf( "Register dump: %lx\n", regs.pc );

但是,打印出的地址与/ proc / threadProcessId / stack返回的堆栈顶部的函数地址不同。它甚至似乎不在内核空间中。

我做错什么了吗?我可以这样访问内核部件吗?

1 个答案:

答案 0 :(得分:0)

Ptrace 从用户空间启动,因此它只能访问用户空间内存[用户进程]。内核空间由内核模块访问,可以插入我的insmod。 Ptrace 的内核空间类似物是 Ftrace