Skip to content

Commit d67c353

Browse files
authored
Merge pull request uber-archive#149 from amboar/arm32
ptrace: Abstract over user_regs_struct name, which differs on ARM32
2 parents bb4fb28 + 2ef124e commit d67c353

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/ptrace.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ void PtraceInterrupt(pid_t pid) {
122122
DoWait(pid);
123123
}
124124

125-
struct user_regs_struct PtraceGetRegs(pid_t pid) {
126-
struct user_regs_struct regs;
125+
user_regs_struct PtraceGetRegs(pid_t pid) {
126+
user_regs_struct regs;
127127
if (ptrace(PTRACE_GETREGS, pid, 0, &regs)) {
128128
std::ostringstream ss;
129129
ss << "Failed to PTRACE_GETREGS: " << strerror(errno);
@@ -132,7 +132,7 @@ struct user_regs_struct PtraceGetRegs(pid_t pid) {
132132
return regs;
133133
}
134134

135-
void PtraceSetRegs(pid_t pid, struct user_regs_struct regs) {
135+
void PtraceSetRegs(pid_t pid, user_regs_struct regs) {
136136
if (ptrace(PTRACE_SETREGS, pid, 0, &regs)) {
137137
std::ostringstream ss;
138138
ss << "Failed to PTRACE_SETREGS: " << strerror(errno);

src/ptrace.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323

2424
#include "./config.h"
2525

26+
#if defined(__arm__)
27+
typedef struct user_regs user_regs_struct;
28+
#else
29+
typedef struct user_regs_struct user_regs_struct;
30+
#endif
31+
2632
namespace pyflame {
2733

2834
int DoWait(pid_t pid, int options = 0);
@@ -39,10 +45,10 @@ void PtraceSeize(pid_t pid);
3945
void PtraceInterrupt(pid_t pid);
4046

4147
// get regs from a process
42-
struct user_regs_struct PtraceGetRegs(pid_t pid);
48+
user_regs_struct PtraceGetRegs(pid_t pid);
4349

4450
// set regs in a process
45-
void PtraceSetRegs(pid_t pid, struct user_regs_struct regs);
51+
void PtraceSetRegs(pid_t pid, user_regs_struct regs);
4652

4753
// poke a long word into an address
4854
void PtracePoke(pid_t pid, unsigned long addr, long data);

0 commit comments

Comments
 (0)