aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2021-10-17 11:52:39 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2021-10-17 11:53:16 +0000
commita03d4d73e4c7c73447263294df6ebd1791ab01f2 (patch)
tree590cac437c89b646a08efabf379d529fc5cbe2a7
parentf9246e14848820664539763b72b6fdef408d20e4 (diff)
downloadsrc-a03d4d73e4c7c73447263294df6ebd1791ab01f2.tar.gz
src-a03d4d73e4c7c73447263294df6ebd1791ab01f2.zip
linux: Improve debugging for PTRACE_GETREGSET
It's triggered by gdb(1). Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D32456
-rw-r--r--sys/amd64/linux/linux_ptrace.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/amd64/linux/linux_ptrace.c b/sys/amd64/linux/linux_ptrace.c
index 39587ec9b2ad..370b1c818b6f 100644
--- a/sys/amd64/linux/linux_ptrace.c
+++ b/sys/amd64/linux/linux_ptrace.c
@@ -84,7 +84,8 @@ __FBSDID("$FreeBSD$");
#define LINUX_PTRACE_O_EXITKILL 1048576
#define LINUX_PTRACE_O_SUSPEND_SECCOMP 2097152
-#define LINUX_NT_PRSTATUS 1
+#define LINUX_NT_PRSTATUS 0x1
+#define LINUX_NT_X86_XSTATE 0x202
#define LINUX_PTRACE_O_MASK (LINUX_PTRACE_O_TRACESYSGOOD | \
LINUX_PTRACE_O_TRACEFORK | LINUX_PTRACE_O_TRACEVFORK | \
@@ -540,8 +541,12 @@ linux_ptrace_getregset(struct thread *td, pid_t pid, l_ulong addr, l_ulong data)
switch (addr) {
case LINUX_NT_PRSTATUS:
return (linux_ptrace_getregset_prstatus(td, pid, data));
+ case LINUX_NT_X86_XSTATE:
+ linux_msg(td, "PTRAGE_GETREGSET NT_X86_XSTATE not implemented; "
+ "returning EINVAL");
+ return (EINVAL);
default:
- linux_msg(td, "PTRACE_GETREGSET request %ld not implemented; "
+ linux_msg(td, "PTRACE_GETREGSET request %#lx not implemented; "
"returning EINVAL", addr);
return (EINVAL);
}