Commit dc651944 authored by Yafang Shao's avatar Yafang Shao Committed by Alexei Starovoitov

bpftool: Dump the kernel symbol's module name

If the kernel symbol is in a module, we will dump the module name as
well. The square brackets around the module name are trimmed.
Signed-off-by: default avatarYafang Shao <laoar.shao@gmail.com>
Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20230709025630.3735-3-laoar.shao@gmail.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 7ac8d0d2
...@@ -46,7 +46,11 @@ void kernel_syms_load(struct dump_data *dd) ...@@ -46,7 +46,11 @@ void kernel_syms_load(struct dump_data *dd)
} }
dd->sym_mapping = tmp; dd->sym_mapping = tmp;
sym = &dd->sym_mapping[dd->sym_count]; sym = &dd->sym_mapping[dd->sym_count];
if (sscanf(buff, "%p %*c %s", &address, sym->name) != 2)
/* module is optional */
sym->module[0] = '\0';
/* trim the square brackets around the module name */
if (sscanf(buff, "%p %*c %s [%[^]]s", &address, sym->name, sym->module) < 2)
continue; continue;
sym->address = (unsigned long)address; sym->address = (unsigned long)address;
if (!strcmp(sym->name, "__bpf_call_base")) { if (!strcmp(sym->name, "__bpf_call_base")) {
......
...@@ -5,12 +5,14 @@ ...@@ -5,12 +5,14 @@
#define __BPF_TOOL_XLATED_DUMPER_H #define __BPF_TOOL_XLATED_DUMPER_H
#define SYM_MAX_NAME 256 #define SYM_MAX_NAME 256
#define MODULE_MAX_NAME 64
struct bpf_prog_linfo; struct bpf_prog_linfo;
struct kernel_sym { struct kernel_sym {
unsigned long address; unsigned long address;
char name[SYM_MAX_NAME]; char name[SYM_MAX_NAME];
char module[MODULE_MAX_NAME];
}; };
struct dump_data { struct dump_data {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment