函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\trace\trace_uprobe.c Create Date:2022-07-27 13:56:16
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__uprobe_trace_func

函数原型:static void __uprobe_trace_func(struct trace_uprobe *tu, unsigned long func, struct pt_regs *regs, struct uprobe_cpu_buffer *ucb, int dsize, struct trace_event_file *trace_file)

返回类型:void

参数:

类型参数名称
struct trace_uprobe *tu
unsigned longfunc
struct pt_regs *regs
struct uprobe_cpu_buffer *ucb
intdsize
struct trace_event_file *trace_file
938  call等于trace_probe_event_call( & tp)
940  WARN_ON(call != event_call)
942  如果WARN_ON_ONCE( trace entry size + dsize > PAGE_SIZE)则返回
945  如果race_trigger_soft_disabled - do triggers and test if soft disabled*@file: The file pointer of the event to test* If any triggers without filters are attached to this event, they* will be called here则返回
948  esize等于SIZEOF_TRACE_ENTRY(is_ret_probe(tu))
949  size等于esize trace entry size dsize
950  event等于trace_event_buffer_lock_reserve( & buffer, trace_file, type, size, 0, 0)
952  如果非event则返回
955  entry等于g_buffer_event_data - return the data of the event*@event: the event to get the data from
956  如果is_ret_probe(tu)则
957  vaddr[0]等于func
958  vaddr[1]等于instruction_pointer(regs)
959  data等于DATAOF_TRACE_ENTRY(entry, true)
960  否则
961  vaddr[0]等于instruction_pointer(regs)
962  data等于DATAOF_TRACE_ENTRY(entry, false)
965  内存复制(data, buf, trace entry size + dsize)
967  vent_trigger_unlock_commit - handle triggers and finish event commit*@file: The file pointer assoctiated to the event*@buffer: The ring buffer that the event is being written to*@event: The event meta data in the ring buffer*@entry: The event
调用者
名称描述
uprobe_trace_funcprobe handler
uretprobe_trace_func