Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在基于ptrace的调试器中,如何在ARM处理器上使用user_regs_struct_C_Linux_Raspberry Pi_Arm - Fatal编程技术网

在基于ptrace的调试器中,如何在ARM处理器上使用user_regs_struct

在基于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的寄存器结构的宏。我走对了吗?我怎么能用

我将遵循“学习Linux二进制分析”第3章中的代码。代码是“一个简单的基于ptrace的调试器”

我正试图在我的树莓皮3,它有一个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”?