int entry1_len, exit1_len; int entry1_recur_len, exit1_recur_len; int entry2_len, exit2_len; int entry3_len, exit3_len; int entry4_len, exit4_len; int usdt_len;
#define SZ sizeof(usdt_stack)
SEC("uprobe//proc/self/exe:target_1") int BPF_UPROBE(uprobe_1)
{ /* target_1 is recursive with depth of 2, so we capture two separate * stack traces, depending on which occurrence it is
*/ staticbool recur = false;
SEC("uretprobe//proc/self/exe:target_1") int BPF_URETPROBE(uretprobe_1)
{ /* see above, target_1 is recursive */ staticbool recur = false;
/* NOTE: order of returns is reversed to order of entries */ if (!recur)
exit1_recur_len = bpf_get_stack(ctx, &exit_stack1_recur, SZ, BPF_F_USER_STACK); else
exit1_len = bpf_get_stack(ctx, &exit_stack1, SZ, BPF_F_USER_STACK);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.