aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2019-09-04 18:00:03 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2019-09-04 18:00:03 +0000
commit36c03d045a63e0736c1cfba0e719d3bd54979803 (patch)
tree4c0832f22306a4a70e16b7797808874d5e080b58
parentf4d7986ce1e2dba89188edd5271e0861ed908f21 (diff)
downloadsrc-36c03d045a63e0736c1cfba0e719d3bd54979803.tar.gz
src-36c03d045a63e0736c1cfba0e719d3bd54979803.zip
Improve debugging output.
MFC after: 2 weeks Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=351821
-rw-r--r--sys/amd64/linux/linux_ptrace.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/sys/amd64/linux/linux_ptrace.c b/sys/amd64/linux/linux_ptrace.c
index fd3d28421183..aab62e3793cb 100644
--- a/sys/amd64/linux/linux_ptrace.c
+++ b/sys/amd64/linux/linux_ptrace.c
@@ -319,6 +319,22 @@ linux_ptrace_peek(struct thread *td, pid_t pid, void *addr, void *data)
}
static int
+linux_ptrace_peekuser(struct thread *td, pid_t pid, void *addr, void *data)
+{
+
+ linux_msg(td, "PTRACE_PEEKUSER not implemented; returning EINVAL");
+ return (EINVAL);
+}
+
+static int
+linux_ptrace_pokeuser(struct thread *td, pid_t pid, void *addr, void *data)
+{
+
+ linux_msg(td, "PTRACE_POKEUSER not implemented; returning EINVAL");
+ return (EINVAL);
+}
+
+static int
linux_ptrace_setoptions(struct thread *td, pid_t pid, l_ulong data)
{
struct linux_pemuldata *pem;
@@ -566,12 +582,18 @@ linux_ptrace(struct thread *td, struct linux_ptrace_args *uap)
error = linux_ptrace_peek(td, pid,
(void *)(uap->addr + 4), (void *)(uap->data + 4));
break;
+ case LINUX_PTRACE_PEEKUSER:
+ error = linux_ptrace_peekuser(td, pid, addr, (void *)uap->data);
+ break;
case LINUX_PTRACE_POKETEXT:
error = kern_ptrace(td, PT_WRITE_I, pid, addr, uap->data);
break;
case LINUX_PTRACE_POKEDATA:
error = kern_ptrace(td, PT_WRITE_D, pid, addr, uap->data);
break;
+ case LINUX_PTRACE_POKEUSER:
+ error = linux_ptrace_pokeuser(td, pid, addr, (void *)uap->data);
+ break;
case LINUX_PTRACE_CONT:
error = map_signum(uap->data, &sig);
if (error != 0)