forked from luck/tmp_suning_uos_patched
tracehook: exit
This moves the PTRACE_EVENT_EXIT tracing into a tracehook.h inline, tracehook_report_exec(). The change has no effect, just clean-up. Signed-off-by: Roland McGrath <roland@redhat.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Reviewed-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ff1188646c
commit
30199f5a46
|
@ -95,4 +95,19 @@ static inline void tracehook_report_exec(struct linux_binfmt *fmt,
|
||||||
send_sig(SIGTRAP, current, 0);
|
send_sig(SIGTRAP, current, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* tracehook_report_exit - task has begun to exit
|
||||||
|
* @exit_code: pointer to value destined for @current->exit_code
|
||||||
|
*
|
||||||
|
* @exit_code points to the value passed to do_exit(), which tracing
|
||||||
|
* might change here. This is almost the first thing in do_exit(),
|
||||||
|
* before freeing any resources or setting the %PF_EXITING flag.
|
||||||
|
*
|
||||||
|
* Called with no locks held.
|
||||||
|
*/
|
||||||
|
static inline void tracehook_report_exit(long *exit_code)
|
||||||
|
{
|
||||||
|
ptrace_event(PT_TRACE_EXIT, PTRACE_EVENT_EXIT, *exit_code);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* <linux/tracehook.h> */
|
#endif /* <linux/tracehook.h> */
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#include <linux/resource.h>
|
#include <linux/resource.h>
|
||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
#include <linux/task_io_accounting_ops.h>
|
#include <linux/task_io_accounting_ops.h>
|
||||||
|
#include <linux/tracehook.h>
|
||||||
|
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
|
@ -1029,10 +1030,7 @@ NORET_TYPE void do_exit(long code)
|
||||||
if (unlikely(!tsk->pid))
|
if (unlikely(!tsk->pid))
|
||||||
panic("Attempted to kill the idle task!");
|
panic("Attempted to kill the idle task!");
|
||||||
|
|
||||||
if (unlikely(current->ptrace & PT_TRACE_EXIT)) {
|
tracehook_report_exit(&code);
|
||||||
current->ptrace_message = code;
|
|
||||||
ptrace_notify((PTRACE_EVENT_EXIT << 8) | SIGTRAP);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We're taking recursive faults here in do_exit. Safest is to just
|
* We're taking recursive faults here in do_exit. Safest is to just
|
||||||
|
|
Loading…
Reference in New Issue
Block a user