How user-visible parameters reach BPF programs. REPL syntax: command-spec.md.
SEC("…") in C is the ELF section libbpf-style loaders use to classify programs (kprobe/…, tracepoint/…, uprobe, etc.).
- Template
break: the agent generates C for a catalogprobe_id; you do not authorSECfor breaks. - User hook: you set
SEC("…")in full C loaded viahook attachor gRPCCompileAndAttach. The loader derives the probe point from section names; there is no separate--attachstring.
There is no REPL “filter DSL” for hooks; express conditions in C. Template breaks support a small kernel predicate DSL via break … --filter.
- You write
SEC("…"), maps, CO-RE reads, and constants in C. - REPL:
hook attach --file /abs/path.c [--program name] [--limit N]or--source '…'. - gRPC:
CompileAndAttachwithsource, optionalprogram_name, optionallimit. - MCP:
compile_and_attach— same pipeline as gRPC (mcp.md).add_c_hookrunshook attach --source ….
The loader accepts programs in sections such as:
kprobe/symbol→ kernel kprobetracepoint/subsystem/event→ tracepointuprobe/…/uretprobe/…→ user probes (when enabled)
Subsystem and event names follow libbpf naming rules (letters, digits, underscore).
A BPF map (e.g. config) filled by the agent before attach could allow changing behavior per session without recompiling. This is not implemented in the agent today; the extension point would be new CLI/proto fields plus Map.Update after NewCollection.