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