Advanced debugging tools for remote Elixir nodes.
Provides process inspection, state introspection, remote code evaluation, and memory analysis for dala Elixir cluster debugging.
Examples
# Inspect a process on a remote node
{:ok, info} = DalaDev.Debugger.inspect_process(
:"dala_qa@192.168.1.5",
MyApp.Worker
)
# Get supervision tree
{:ok, tree} = DalaDev.Debugger.get_supervision_tree(node)
# Evaluate code on remote node
{:ok, result} = DalaDev.Debugger.eval_remote(
node,
"MyApp.Config.get(:api_key)"
)
# Get memory report
{:ok, report} = DalaDev.Debugger.memory_report(node)
Summary
Functions
Evaluate Elixir code on a remote node.
Get the supervision tree of a node.
Inspect a process on a remote node.
Get a detailed memory report for a node.
Trace messages sent to/from a process.
Types
Functions
Evaluate Elixir code on a remote node.
The code string is evaluated using Code.eval_string/1 on the remote node.
Options:
:timeout- RPC timeout in ms (default: 30_000):bindings- Variables to bind in the evaluation context
Get the supervision tree of a node.
Returns a tree structure showing all supervisors and their children.
@spec inspect_process(node_ref(), process_ref(), keyword()) :: {:ok, map()} | {:error, term()}
Inspect a process on a remote node.
Returns detailed information including:
- Process dictionary
- Current state (if GenServer/GenStateMachine)
- Message queue
- Links and monitors
- Memory usage
Options:
:timeout- RPC timeout in ms (default: 10_000)
Get a detailed memory report for a node.
Returns memory breakdown including:
- Total memory
- Process memory
- Binary memory
- ETS memory
- Atom memory
@spec trace_messages(node_ref(), process_ref(), keyword()) :: {:ok, [map()]} | {:error, term()}
Trace messages sent to/from a process.
Options:
:duration- Tracing duration in ms (default: 5_000):timeout- RPC timeout in ms (default: duration + 1_000)