试图在arm linux中获取线程的PC注册。
有一个进程,进程ID = 120,它具有3个线程:线程ID:121,122,123。
#include <sys/ptrace.h>
#include <sys/user.h>
int main()
{
struct user_regs_struct regs;
ptrace (PTRACE_ATTACH,123,0,0);
ptrace (PTRACE_GETREGS,123,NULL,®s);
printf ("0x%x",regs.pc);
}
在gcc-arm编译器中编译时,出现错误error: storage size of 'regs' isn't known struct user_regs_struct regs
为什么这个结构未知?如何使用ptrace获取线程的寄存器值?
答案 0 :(得分:1)
检查您的sys/user.h
,如man
页面上所述。
您可能会以其他名称找到它,例如struct user_regs
。