函数逻辑报告 | 
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 插件可实现:逻辑报告 代码生成和批量转换代码  |