在基于ptrace的调试器中,如何在ARM处理器上使用user_regs_struct
我将遵循“学习Linux二进制分析”第3章中的代码。代码是“一个简单的基于ptrace的调试器” 我正试图在我的树莓皮3,它有一个ARM处理器写这个。我知道这个错误意味着我没有包含正确的头文件,但是我找不到正确的头文件是什么 我收到以下错误消息:在基于ptrace的调试器中,如何在ARM处理器上使用user_regs_struct,c,linux,raspberry-pi,arm,C,Linux,Raspberry Pi,Arm,我将遵循“学习Linux二进制分析”第3章中的代码。代码是“一个简单的基于ptrace的调试器” 我正试图在我的树莓皮3,它有一个ARM处理器写这个。我知道这个错误意味着我没有包含正确的头文件,但是我找不到正确的头文件是什么 我收到以下错误消息: field ‘pt_reg’ has incomplete type struct user_regs_struct pt_reg 在做了一些研究之后,我找到了asm/ptrace.h,其中包括一些特定于ARM的寄存器结构的宏。我走对了吗?我怎么能用
field ‘pt_reg’ has incomplete type struct user_regs_struct pt_reg
在做了一些研究之后,我找到了asm/ptrace.h,其中包括一些特定于ARM的寄存器结构的宏。我走对了吗?我怎么能用ARM处理器让它工作呢
以下是标题:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <signal.h>
#include <elf.h>
#include <sys/types.h>
#include <sys/user.h>
#include <sys/stat.h>
#include <sys/ptrace.h>
#include <sys/mman.h>
typedef struct handle {
Elf64_Ehdr *ehdr;
Elf64_Phdr *phdr;
Elf64_Shdr *shdr;
uint8_t *mem;
char *symname;
Elf64_Addr symaddr;
struct user_regs_struct pt_reg;
char *exec;
} handle_t;
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
typedef结构句柄{
Elf64_Ehdr*Ehdr;
Elf64_Phdr*Phdr;
Elf64_Shdr*Shdr;
uint8_t*mem;
字符*符号名;
Elf64_地址symaddr;
结构用户\u注册表\u结构pt\u注册表;
char*exec;
}处理;;
问题的标题应该包含您的问题,而不是一些错误消息。现在,你的问题真的让人困惑,因为你做错了。请编辑它,将问题放在标题中,并将错误消息放在正文中。此“struct user\u regs\u struct pt\u reg”是否应为“struct user\u regs\u struct*pt\u reg”?