code wiki / (root) / _offc_probe_callchain.nx

_offc_probe_callchain.nx

buildroot/runtime/_offc_probe_callchain.nx

2556 B75 linesdepth 4pulls 5 transitivereach 0 importersview sourcekind probetopic offc
docsdependenciesstructsconstsfunctions

about

Bisects which IR-construction call clobbers `f` (the s-reg that holds the Function pointer returned by ir_function_new). After each call, print a marker character; if f is corrupted by an intermediate call, the run will SIGSEGV at the next f-dereference and we'll know the boundary from the last marker printed.

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_types.nx nx_ir.nx _offc_probe_callchain.nx

imports: nx_syscalls.nxnx_types.nxnx_ir.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap ir_function_new sys_mmap ↻ ir_type_i64 alloc_type sys_mmap ↻ probe_f sys_mmap ↻ sys_write ir_block_new nx_assert_ptr sys_write ↻ nx_puts_err sys_write ↻ nx_assert sys_write ↻ nx_puts_err ↻ nx_assert_lt sys_write ↻ nx_puti_err sys_mmap ↻ sys_write ↻ nx_puts_err ↻ ir_const_i64 nx_assert_ptr ↻ nx_assert ↻ alloc_value nx_assert_ptr ↻ nx_assert ↻ nx_assert_lt ↻ ir_type_i64 ↻ ir_emit_binop nx_assert_ptr ↻ nx_assert ↻ alloc_instr nx_assert_ptr ↻ nx_assert ↻ nx_assert_lt ↻ alloc_value ↻

structs

none

consts

none

functions

11func mark(c: i64) -> i64
19func probe_f(f: *Function, c: i64) -> i64
called by 1: main calls 2: sys_mmapsys_write
30func main() -> i64