OxL Reference

III.5 Debugger

  • The protocol is DAP; the engine is LLDB with task support: a list of tasks with states, stacks of suspended tasks, a "who waits for whom" graph.
  • Breakpoints: line, condition, function, rpc (Users.get), actor message, pipeline or saga step, an error of a given type (break on PayError), panic.
  • Distributed stop: when stopped in a step called from another node, the debugger shows the whole call chain across nodes — the stacks and variables of every node connected to the session.
  • Time-travel in oxl dev: execution recording, step back, replay of a request from the journal (oxl replay).
  • Logpoints without restart; changing the value of a variable in a stopped task.

Implementation-defined. Debugger capabilities (D-8056; DIV-039; stage5-acceptance §4). This implementation: the non-stop mode is cooperative (a stop at the task's suspension points); remote frames have no variables, and in --all-stop remote frames are not shown; oxl prof heap shows the allocations of the measurement window; time-travel in oxl dev — after 1.0.

Source: docs/spec/oxl-standard.en.md