summaryrefslogtreecommitdiff
path: root/syscall.c
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2013-07-16 12:06:25 +0200
committerDenys Vlasenko <dvlasenk@redhat.com>2013-07-16 12:06:25 +0200
commitb51f364c4241aa247a7a22f92c06f1f1a4ab99b4 (patch)
tree31d0d194e5659cb0cfaaddcd2ca05c5a09a4f89f /syscall.c
parent9afc2ee682d2f9fd3ad938756c841d7f0eed5f21 (diff)
downloadstrace-b51f364c4241aa247a7a22f92c06f1f1a4ab99b4.tar.gz
strace-b51f364c4241aa247a7a22f92c06f1f1a4ab99b4.tar.bz2
strace-b51f364c4241aa247a7a22f92c06f1f1a4ab99b4.tar.xz
Improve sigreturn decoding on x86 to show RT signal bits too.
This includes decoding of 32-bit sigreturn by 64-bit strace, which previously wasn't done. Added a test for it. Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'syscall.c')
-rw-r--r--syscall.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/syscall.c b/syscall.c
index 2715cea..a27fee9 100644
--- a/syscall.c
+++ b/syscall.c
@@ -682,7 +682,8 @@ getrval2(struct tcb *tcp)
#endif
#if defined(I386)
-struct user_regs_struct i386_regs;
+static struct user_regs_struct i386_regs;
+uint32_t *const i386_esp_ptr = &i386_regs.esp;
# define ARCH_REGS_FOR_GETREGSET i386_regs
#elif defined(X86_64) || defined(X32)
/*
@@ -716,6 +717,7 @@ static union {
} x86_regs_union;
# define x86_64_regs x86_regs_union.x86_64_r
# define i386_regs x86_regs_union.i386_r
+uint32_t *const i386_esp_ptr = &i386_regs.esp;
static struct iovec x86_io = {
.iov_base = &x86_regs_union
};