diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-11-27 13:02:40 +0100 |
---|---|---|
committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-01-25 08:31:39 +0100 |
commit | 6ea6dd93c9454cc9521134f907bc970d09f460e4 (patch) | |
tree | 05f8d9f293d7127e19774d5fa10ebf685a6fa76d | |
parent | 7f0f616bb093823b70855685cf085d39a8784818 (diff) | |
download | linux-6ea6dd93c9454cc9521134f907bc970d09f460e4.tar.gz linux-6ea6dd93c9454cc9521134f907bc970d09f460e4.tar.bz2 linux-6ea6dd93c9454cc9521134f907bc970d09f460e4.zip |
ptrace: Call arch_ptrace_attach() when request=PTRACE_TRACEME
arch_ptrace_attach() is a hook that allows the architecture to do
book-keeping after a ptrace attach. This patch adds a call to this
hook when handling a PTRACE_TRACEME request as well.
Currently only one architecture, m32r, implements this hook. When
called, it initializes a number of debug trap slots in the ptraced
task's thread struct, and it looks to me like this is the right thing
to do after a PTRACE_TRACEME request as well, not only after
PTRACE_ATTACH. Please correct me if I'm wrong.
I want to use this hook on AVR32 to turn the debugging hardware on
when a process is actually being debugged and keep it off otherwise.
To be able to do this, I need to intercept PTRACE_TRACEME and
PTRACE_ATTACH, as well as PTRACE_DETACH and thread exit. The latter
two can be handled by existing hooks.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
-rw-r--r-- | kernel/ptrace.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index c25db863081d..c719bb9d79ab 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -470,6 +470,8 @@ asmlinkage long sys_ptrace(long request, long pid, long addr, long data) lock_kernel(); if (request == PTRACE_TRACEME) { ret = ptrace_traceme(); + if (!ret) + arch_ptrace_attach(current); goto out; } |