mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 08:31:13 +00:00
tools: bpftool: add -d option to get debug output from libbpf
libbpf has three levels of priority for output messages: warn, info, debug. By default, debug output is not printed to the console. Add a new "--debug" (short name: "-d") option to bpftool to print libbpf logs for all three levels. Internally, we simply use the function provided by libbpf to replace the default printing function by one that prints logs regardless of their level. v2: - Remove the possibility to select the log-levels to use (v1 offered a combination of "warn", "info" and "debug"). - Rename option and offer a short name: -d|--debug. - Add option description to all bpftool manual pages (instead of bpftool-prog.rst only), as all commands use libbpf. Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
d98363b510
commit
775bc8ada8
10 changed files with 45 additions and 2 deletions
|
@ -10,6 +10,7 @@
|
|||
#include <string.h>
|
||||
|
||||
#include <bpf.h>
|
||||
#include <libbpf.h>
|
||||
|
||||
#include "main.h"
|
||||
|
||||
|
@ -77,6 +78,13 @@ static int do_version(int argc, char **argv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int __printf(2, 0)
|
||||
print_all_levels(__maybe_unused enum libbpf_print_level level,
|
||||
const char *format, va_list args)
|
||||
{
|
||||
return vfprintf(stderr, format, args);
|
||||
}
|
||||
|
||||
int cmd_select(const struct cmd *cmds, int argc, char **argv,
|
||||
int (*help)(int argc, char **argv))
|
||||
{
|
||||
|
@ -317,6 +325,7 @@ int main(int argc, char **argv)
|
|||
{ "bpffs", no_argument, NULL, 'f' },
|
||||
{ "mapcompat", no_argument, NULL, 'm' },
|
||||
{ "nomount", no_argument, NULL, 'n' },
|
||||
{ "debug", no_argument, NULL, 'd' },
|
||||
{ 0 }
|
||||
};
|
||||
int opt, ret;
|
||||
|
@ -332,7 +341,7 @@ int main(int argc, char **argv)
|
|||
hash_init(map_table.table);
|
||||
|
||||
opterr = 0;
|
||||
while ((opt = getopt_long(argc, argv, "Vhpjfmn",
|
||||
while ((opt = getopt_long(argc, argv, "Vhpjfmnd",
|
||||
options, NULL)) >= 0) {
|
||||
switch (opt) {
|
||||
case 'V':
|
||||
|
@ -362,6 +371,9 @@ int main(int argc, char **argv)
|
|||
case 'n':
|
||||
block_mount = true;
|
||||
break;
|
||||
case 'd':
|
||||
libbpf_set_print(print_all_levels);
|
||||
break;
|
||||
default:
|
||||
p_err("unrecognized option '%s'", argv[optind - 1]);
|
||||
if (json_output)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue