UTRACE_PREPARE_EXAMI(9) utrace core API UTRACE_PREPARE_EXAMI(9)
NAME
utrace_prepare_examine - prepare to examine thread state
SYNOPSIS
int utrace_prepare_examine(struct task_struct * target, struct utrace_engine * engine, struct utrace_examiner * exam);
ARGUMENTS
target
thread of interest, a struct task_struct pointer
engine
engine pointer returned by utrace_attach_task
exam
temporary state, a struct utrace_examiner pointer
DESCRIPTION
This call prepares to safely examine the thread target using struct user_regset calls, or direct access to thread-synchronous fields.
When target is current, this call is superfluous. When target is another thread, it must held stopped via UTRACE_STOP by engine.
This call may block the caller until target stays stopped, so it must be called only after the caller is sure target is about to
unschedule. This means a zero return from a utrace_control call on engine giving UTRACE_STOP, or a report_quiesce or report_signal callback
to engine that used UTRACE_STOP in its return value.
Returns -ESRCH if target is dead or -EINVAL if UTRACE_STOP was not used. If target has started running again despite UTRACE_STOP (for
SIGKILL or a spurious wakeup), this call returns -EAGAIN.
When this call returns zero, it's safe to use struct user_regset calls and task_user_regset_view on target and to examine some of its
fields directly. When the examination is complete, a utrace_finish_examine call must follow to check whether it was completed safely.
Kernel Hackers Manual 2.6. July 2010 UTRACE_PREPARE_EXAMI(9)