This repository has been archived on 2025-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
rhaj/rhai_engine/rhaibook/engine/debugging/call-stack.md
2025-04-19 08:10:30 +02:00

793 B

Call Stack

{{#include ../../links.md}}


Each "frame" in the call stack corresponds to one layer of [function] call (script-defined
or native Rust).

A call stack frame has the type `debugger::CallStackFrame`.

The [debugger] keeps a call stack of [function] calls with argument values.

This call stack can be examined to determine the control flow at any particular point.

The Debugger::call_stack method returns a slice of all call stack frames.

use rhai::debugger::*;

let debugger = &mut context.global_runtime_state().debugger();

// Get depth of the call stack.
let depth = debugger.call_stack().len();

// Display all function calls
for frame in debugger.call_stack().iter() {
    println!("{frame}");
}