Легко:
Вставьте это в код ядра:
// Nicer way to call bpf_trace_printk()
#define bpf_custom_printk(fmt, ...) \
({ \
char ____fmt[] = fmt; \
bpf_trace_printk(____fmt, sizeof(____fmt), \
##__VA_ARGS__); \
})
struct pair {
uint32_t lip; // local IP
uint32_t rip; // remote IP
};
и в код ядра вставьте распечатанный код. Этот вызов функции работает точно так же, как printf
со всеми форматами и местозаполнителями ...
bpf_custom_printk("This year is %d\n", 2020);
Вывод на печать:
sudo cat /sys/kernel/debug/tracing/trace_pipe