目录
函数原型与解释
LIBBPF_API const char *bpf_program__section_name(const struct bpf_program *prog);
参数说明
- const struct bpf_program *prog: 指向要获取 ELF section 名称的 BPF 程序结构的指针。
返回值
返回一个表示 ELF section 名称的字符串。
代码demo
#include <bpf/bpf_helpers.h> #include <linux/bpf.h> SEC("kprobe/__x64_sys_getpid") int bpf_prog1(struct pt_regs *ctx) { return 0; } char _license[] SEC("license") = "GPL";
#include <stdio.h> #include <stdlib.h> #include <bpf/libbpf.h> int main() { struct bpf_object *obj; struct bpf_program *prog; const char *section_name; obj = bpf_object__open_file("example.o", NULL); if (!obj) { printf("Failed to open BPF object file\n"); return 1; } prog = bpf_program__next(NULL, obj); if (!prog) { printf("Failed to find BPF program\n"); bpf_object__close(obj); return 1; } section_name = bpf_program__section_name(prog); printf("BPF program section name: %s\n", section_name); bpf_object__close(obj); return 0; }
makefile
CC = gcc CFLAGS = -Wall -Wextra LDFLAGS = -lbpf all: demo demo: demo.c $(CC) $(CFLAGS) -o bpf_example demo.c $(LDFLAGS) clean: rm -f demo
cmake
cmake_minimum_required(VERSION 3.10) project(demo C) set(CMAKE_C_STANDARD 99) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -Wall") find_library(LIBBPF_LIB bpf) add_executable(demo demo.c) target_link_libraries(demo ${LIBBPF_LIB})
期望输出
make
./demo example.bpf.o
BPF program section name: <section_name>