The utrace User Debugging Infrastructure
Next
The utrace User Debugging Infrastructure
Table of Contents
1. utrace concepts
Introduction
Events and Callbacks
Stopping Safely
Writing well-behaved callbacks
Using UTRACE_STOP
Tear-down Races
Primacy of SIGKILL
Final callbacks
Engine and task pointers
Serialization of DEATH and REAP
Interlock with final callbacks
Using utrace_barrier
2. utrace core API
enum utrace_resume_action
— engine's choice of action for a traced task
utrace_resume_action
—
enum
utrace_resume_action from callback action
enum utrace_signal_action
— disposition of signal
utrace_signal_action
—
enum
utrace_signal_action from callback action
enum utrace_syscall_action
— disposition of system call attempt
utrace_syscall_action
—
enum
utrace_syscall_action from callback action
struct utrace_engine
— per-engine structure
utrace_engine_get
— acquire a reference on a
struct utrace_engine
utrace_engine_put
— release a reference on a
struct utrace_engine
struct utrace_engine_ops
— tracing engine callbacks
struct utrace_examiner
— private state for using
utrace_prepare_examine
utrace_control_pid
— control a thread being traced by a tracing engine
utrace_set_events_pid
— choose which event reports a tracing engine gets
utrace_barrier_pid
— synchronize with simultaneous tracing callbacks
utrace_attach_task
— attach new engine, or look up an attached engine
utrace_attach_pid
— attach new engine, or look up an attached engine
utrace_set_events
— choose which event reports a tracing engine gets
utrace_control
— control a thread being traced by a tracing engine
utrace_barrier
— synchronize with simultaneous tracing callbacks
utrace_prepare_examine
— prepare to examine thread state
utrace_finish_examine
— complete an examination of thread state
3. Machine State
struct user_regset
System Call Information
System Call Tracing
4. Kernel Internals
Core Calls In
Architecture Calls Out
<asm/ptrace.h>
<asm/syscall.h>
<linux/tracehook.h>