On Thu, Nov 21, 2024 at 2:08 PM Ben Olson <matthew.olson@xxxxxxxxx> wrote: > > When running `bpftool` on a kernel module installed in `/lib/modules...`, > this error is encountered if the user does not specify `--base-btf` to > point to a valid base BTF (e.g. usually in `/sys/kernel/btf/vmlinux`). > However, looking at the debug output to determine the cause of the error > simply says `Invalid BTF string section`, which does not point to the > actual source of the error. This just improves that debug message to tell > users what happened. > > Signed-off-by: Ben Olson <matthew.olson@xxxxxxxxx> > --- > tools/lib/bpf/btf.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c > index 12468ae0d573..1a17de9d99e6 100644 > --- a/tools/lib/bpf/btf.c > +++ b/tools/lib/bpf/btf.c > @@ -283,7 +283,7 @@ static int btf_parse_str_sec(struct btf *btf) > return -EINVAL; > } > if (!btf->base_btf && start[0]) { > - pr_debug("Invalid BTF string section\n"); > + pr_debug("Cannot find base BTF\n"); Well, the check indeed checks the well-formedness of the BTF string section. It is specified that the first byte has to be zero ("empty string"), unless it's a split BTF. Base BTF being missing is just one possible reason for this condition, so I'm not sure if it's completely accurate to specialize this error message so much. Perhaps maybe emitting "Malformed BTF string section, did you forget to provide base BTF?" would be a bit better. pw-bot: cr > return -EINVAL; > } > return 0; > -- > 2.47.0