On Thu, Aug 14, 2014 at 12:29 PM, Brendan Gregg <brendan.d.gregg@xxxxxxxxx> wrote: > On Wed, Aug 13, 2014 at 12:57 AM, Alexei Starovoitov <ast@xxxxxxxxxxxx> wrote: > [...] >> +static int load_and_attach(const char *event, struct bpf_insn *prog, int size) >> +{ >> + int fd, event_fd, err; >> + char fmt[32]; >> + char path[256] = DEBUGFS; >> + >> + fd = bpf_prog_load(BPF_PROG_TYPE_TRACING_FILTER, prog, size, license); >> + >> + if (fd < 0) { >> + printf("err %d errno %d\n", fd, errno); >> + return fd; >> + } > > Minor suggestion: since this is sample code, I'd always print the bpf > log after this this printf() error message: > > printf("%s", bpf_log_buf); > > Which has helped me debug my eBPF programs, as will be the case for > anyone hacking on the examples. Good point. Will do in V5. > Or have a function for logdie(), if > the log buffer may be populated with useful messages from other error > paths as well. This log buffer is an optional buffer that eBPF verifier is using to store its messages. Mainly for humans to understand why verifier rejected the program. It's also used by verifier testsuite to check that reject reason actually matches the test intent. -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html