Argus.Extractors.CallArgs (Panoptes v0.13.0)

Copy Markdown View Source

Call-site argument extractor.

Emits one fact per resolved argument position at every call site in the module, split by what the argument turned out to be:

  • call_arg(caller, callee, arg_pos, value) when the argument resolves to a literal atom string (e.g. ":my_pool"), or to "dynamic" when resolution fails entirely.
  • call_arg_forward(caller, callee, arg_pos, fwd_pos) when the argument IS the caller's own parameter, forwarded through. clientlib/interprocedural.dl walks these backwards to propagate literal values through wrapper call chains.

Only the first 4 arguments (positions 0–3) are resolved per call site. Module/table/server references sit in the first few positions in all OTP calling conventions; capping at 4 bounds fact volume to ~4× the number of call sites without losing useful data.

Both remote calls (call_ext, call_ext_only, call_ext_last) and local calls (call, call_only, call_last) are captured. apply and call_fun are skipped — their callees and argument shapes are runtime-determined.