mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 23:14:31 +08:00
b053b439b7
This patch adds print bpf_line_info function in 'prog dump jitted' and 'prog dump xlated': [root@arch-fb-vm1 bpf]# ~/devshare/fb-kernel/linux/tools/bpf/bpftool/bpftool prog dump jited pinned /sys/fs/bpf/test_btf_haskv [...] int test_long_fname_2(struct dummy_tracepoint_args * arg): bpf_prog_44a040bf25481309_test_long_fname_2: ; static int test_long_fname_2(struct dummy_tracepoint_args *arg) 0: push %rbp 1: mov %rsp,%rbp 4: sub $0x30,%rsp b: sub $0x28,%rbp f: mov %rbx,0x0(%rbp) 13: mov %r13,0x8(%rbp) 17: mov %r14,0x10(%rbp) 1b: mov %r15,0x18(%rbp) 1f: xor %eax,%eax 21: mov %rax,0x20(%rbp) 25: xor %esi,%esi ; int key = 0; 27: mov %esi,-0x4(%rbp) ; if (!arg->sock) 2a: mov 0x8(%rdi),%rdi ; if (!arg->sock) 2e: cmp $0x0,%rdi 32: je 0x0000000000000070 34: mov %rbp,%rsi ; counts = bpf_map_lookup_elem(&btf_map, &key); 37: add $0xfffffffffffffffc,%rsi 3b: movabs $0xffff8881139d7480,%rdi 45: add $0x110,%rdi 4c: mov 0x0(%rsi),%eax 4f: cmp $0x4,%rax 53: jae 0x000000000000005e 55: shl $0x3,%rax 59: add %rdi,%rax 5c: jmp 0x0000000000000060 5e: xor %eax,%eax ; if (!counts) 60: cmp $0x0,%rax 64: je 0x0000000000000070 ; counts->v6++; 66: mov 0x4(%rax),%edi 69: add $0x1,%rdi 6d: mov %edi,0x4(%rax) 70: mov 0x0(%rbp),%rbx 74: mov 0x8(%rbp),%r13 78: mov 0x10(%rbp),%r14 7c: mov 0x18(%rbp),%r15 80: add $0x28,%rbp 84: leaveq 85: retq [...] With linum: [root@arch-fb-vm1 bpf]# ~/devshare/fb-kernel/linux/tools/bpf/bpftool/bpftool prog dump jited pinned /sys/fs/bpf/test_btf_haskv linum int _dummy_tracepoint(struct dummy_tracepoint_args * arg): bpf_prog_b07ccb89267cf242__dummy_tracepoint: ; return test_long_fname_1(arg); [file:/data/users/kafai/fb-kernel/linux/tools/testing/selftests/bpf/test_btf_haskv.c line_num:54 line_col:9] 0: push %rbp 1: mov %rsp,%rbp 4: sub $0x28,%rsp b: sub $0x28,%rbp f: mov %rbx,0x0(%rbp) 13: mov %r13,0x8(%rbp) 17: mov %r14,0x10(%rbp) 1b: mov %r15,0x18(%rbp) 1f: xor %eax,%eax 21: mov %rax,0x20(%rbp) 25: callq 0x000000000000851e ; return test_long_fname_1(arg); [file:/data/users/kafai/fb-kernel/linux/tools/testing/selftests/bpf/test_btf_haskv.c line_num:54 line_col:2] 2a: xor %eax,%eax 2c: mov 0x0(%rbp),%rbx 30: mov 0x8(%rbp),%r13 34: mov 0x10(%rbp),%r14 38: mov 0x18(%rbp),%r15 3c: add $0x28,%rbp 40: leaveq 41: retq [...] Signed-off-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Yonghong Song <yhs@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
127 lines
2.9 KiB
Plaintext
127 lines
2.9 KiB
Plaintext
LIBBPF_0.0.1 {
|
|
global:
|
|
bpf_btf_get_fd_by_id;
|
|
bpf_create_map;
|
|
bpf_create_map_in_map;
|
|
bpf_create_map_in_map_node;
|
|
bpf_create_map_name;
|
|
bpf_create_map_node;
|
|
bpf_create_map_xattr;
|
|
bpf_load_btf;
|
|
bpf_load_program;
|
|
bpf_load_program_xattr;
|
|
bpf_map__btf_key_type_id;
|
|
bpf_map__btf_value_type_id;
|
|
bpf_map__def;
|
|
bpf_map__fd;
|
|
bpf_map__is_offload_neutral;
|
|
bpf_map__name;
|
|
bpf_map__next;
|
|
bpf_map__pin;
|
|
bpf_map__prev;
|
|
bpf_map__priv;
|
|
bpf_map__reuse_fd;
|
|
bpf_map__set_ifindex;
|
|
bpf_map__set_inner_map_fd;
|
|
bpf_map__set_priv;
|
|
bpf_map__unpin;
|
|
bpf_map_delete_elem;
|
|
bpf_map_get_fd_by_id;
|
|
bpf_map_get_next_id;
|
|
bpf_map_get_next_key;
|
|
bpf_map_lookup_and_delete_elem;
|
|
bpf_map_lookup_elem;
|
|
bpf_map_update_elem;
|
|
bpf_obj_get;
|
|
bpf_obj_get_info_by_fd;
|
|
bpf_obj_pin;
|
|
bpf_object__btf_fd;
|
|
bpf_object__close;
|
|
bpf_object__find_map_by_name;
|
|
bpf_object__find_map_by_offset;
|
|
bpf_object__find_program_by_title;
|
|
bpf_object__kversion;
|
|
bpf_object__load;
|
|
bpf_object__name;
|
|
bpf_object__next;
|
|
bpf_object__open;
|
|
bpf_object__open_buffer;
|
|
bpf_object__open_xattr;
|
|
bpf_object__pin;
|
|
bpf_object__pin_maps;
|
|
bpf_object__pin_programs;
|
|
bpf_object__priv;
|
|
bpf_object__set_priv;
|
|
bpf_object__unload;
|
|
bpf_object__unpin_maps;
|
|
bpf_object__unpin_programs;
|
|
bpf_perf_event_read_simple;
|
|
bpf_prog_attach;
|
|
bpf_prog_detach;
|
|
bpf_prog_detach2;
|
|
bpf_prog_get_fd_by_id;
|
|
bpf_prog_get_next_id;
|
|
bpf_prog_load;
|
|
bpf_prog_load_xattr;
|
|
bpf_prog_query;
|
|
bpf_prog_test_run;
|
|
bpf_prog_test_run_xattr;
|
|
bpf_program__fd;
|
|
bpf_program__is_kprobe;
|
|
bpf_program__is_perf_event;
|
|
bpf_program__is_raw_tracepoint;
|
|
bpf_program__is_sched_act;
|
|
bpf_program__is_sched_cls;
|
|
bpf_program__is_socket_filter;
|
|
bpf_program__is_tracepoint;
|
|
bpf_program__is_xdp;
|
|
bpf_program__load;
|
|
bpf_program__next;
|
|
bpf_program__nth_fd;
|
|
bpf_program__pin;
|
|
bpf_program__pin_instance;
|
|
bpf_program__prev;
|
|
bpf_program__priv;
|
|
bpf_program__set_expected_attach_type;
|
|
bpf_program__set_ifindex;
|
|
bpf_program__set_kprobe;
|
|
bpf_program__set_perf_event;
|
|
bpf_program__set_prep;
|
|
bpf_program__set_priv;
|
|
bpf_program__set_raw_tracepoint;
|
|
bpf_program__set_sched_act;
|
|
bpf_program__set_sched_cls;
|
|
bpf_program__set_socket_filter;
|
|
bpf_program__set_tracepoint;
|
|
bpf_program__set_type;
|
|
bpf_program__set_xdp;
|
|
bpf_program__title;
|
|
bpf_program__unload;
|
|
bpf_program__unpin;
|
|
bpf_program__unpin_instance;
|
|
bpf_prog_linfo__free;
|
|
bpf_prog_linfo__new;
|
|
bpf_prog_linfo__lfind_addr_func;
|
|
bpf_prog_linfo__lfind;
|
|
bpf_raw_tracepoint_open;
|
|
bpf_set_link_xdp_fd;
|
|
bpf_task_fd_query;
|
|
bpf_verify_program;
|
|
btf__fd;
|
|
btf__find_by_name;
|
|
btf__free;
|
|
btf__get_from_id;
|
|
btf__name_by_offset;
|
|
btf__new;
|
|
btf__resolve_size;
|
|
btf__resolve_type;
|
|
btf__type_by_id;
|
|
libbpf_attach_type_by_name;
|
|
libbpf_get_error;
|
|
libbpf_prog_type_by_name;
|
|
libbpf_set_print;
|
|
libbpf_strerror;
|
|
local:
|
|
*;
|
|
};
|