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

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.com


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 7ac8d0d2
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -46,7 +46,11 @@ void kernel_syms_load(struct dump_data *dd)
		}
		dd->sym_mapping = tmp;
		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;
		sym->address = (unsigned long)address;
		if (!strcmp(sym->name, "__bpf_call_base")) {
+2 −0
Original line number Diff line number Diff line
@@ -5,12 +5,14 @@
#define __BPF_TOOL_XLATED_DUMPER_H

#define SYM_MAX_NAME	256
#define MODULE_MAX_NAME	64

struct bpf_prog_linfo;

struct kernel_sym {
	unsigned long address;
	char name[SYM_MAX_NAME];
	char module[MODULE_MAX_NAME];
};

struct dump_data {