函数逻辑报告 |
Source Code:kernel\bpf\stackmap.c |
Create Date:2022-07-27 14:45:13 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:____bpf_get_stack
函数原型:static inline __attribute__((__always_inline__)) u64 ____bpf_get_stack(struct pt_regs *regs, void *buf, u32 size, u64 flags)
返回类型:u64
参数:
类型 | 参数 | 名称 |
---|---|---|
struct pt_regs * | regs | |
void * | buf | |
u32 | size | |
u64 | flags |
452 | user等于flags按位与BPF_F_USER_STACK |
458 | 如果此条件成立可能性小(为编译器优化)(flags & ~(lags for both BPF_FUNC_get_stackid and BPF_FUNC_get_stack. | BPF_F_USER_STACK | lags used by BPF_FUNC_get_stack only. ))则转到:clear |
461 | 如果kernel且user_build_id则转到:clear |
464 | elem_size等于如果user且user_build_id则sizeof(structbpf_stack_build_id)否则sizeof(u64) |
466 | 如果此条件成立可能性小(为编译器优化)(size % elem_size)则转到:clear |
470 | 如果sysctl_perf_event_max_stack小于num_elem则init_nr等于0 |
476 | 如果此条件成立可能性小(为编译器优化)(!trace)则转到:err_fault |
487 | 如果user且user_build_id则stack_map_get_build_id_offset(buf, ips, trace_nr, user) |
494 | 返回:copy_len |
496 | err_fault : |
498 | clear : |
500 | 返回:err |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |