• Yonghong Song's avatar
    bpftool: Print subprog address properly · f1f9f0d8
    Yonghong Song authored
    With later hashmap example, using bpftool xlated output may
    look like:
      int dump_task(struct bpf_iter__task * ctx):
      ; struct task_struct *task = ctx->task;
         0: (79) r2 = *(u64 *)(r1 +8)
      ; if (task == (void *)0 || called > 0)
      ...
        19: (18) r2 = subprog[+17]
        30: (18) r2 = subprog[+25]
      ...
      36: (95) exit
      __u64 check_hash_elem(struct bpf_map * map, __u32 * key, __u64 * val,
                            struct callback_ctx * data):
      ; struct bpf_iter__task *ctx = data->ctx;
        37: (79) r5 = *(u64 *)(r4 +0)
      ...
        55: (95) exit
      __u64 check_percpu_elem(struct bpf_map * map, __u32 * key,
                              __u64 * val, void * unused):
      ; check_percpu_elem(struct bpf_map *map, __u32 *key, __u64 *val, void *unused)
        56: (bf) r6 = r3
      ...
        83: (18) r2 = subprog[-47]
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20210226204931.3885458-1-yhs@fb.com
    f1f9f0d8
xlated_dumper.c 8.95 KB