diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-11-27 07:02:40 -0500 |
---|---|---|
committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2008-01-25 02:31:39 -0500 |
commit | 6ea6dd93c9454cc9521134f907bc970d09f460e4 (patch) | |
tree | 05f8d9f293d7127e19774d5fa10ebf685a6fa76d /kernel | |
parent | 7f0f616bb093823b70855685cf085d39a8784818 (diff) |
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>
Diffstat (limited to 'kernel')
-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) | |||
470 | lock_kernel(); | 470 | lock_kernel(); |
471 | if (request == PTRACE_TRACEME) { | 471 | if (request == PTRACE_TRACEME) { |
472 | ret = ptrace_traceme(); | 472 | ret = ptrace_traceme(); |
473 | if (!ret) | ||
474 | arch_ptrace_attach(current); | ||
473 | goto out; | 475 | goto out; |
474 | } | 476 | } |
475 | 477 | ||