33 lines
793 B
Markdown
33 lines
793 B
Markdown
Call Stack
|
|
==========
|
|
|
|
{{#include ../../links.md}}
|
|
|
|
```admonish info.side.wide "Call stack frames"
|
|
|
|
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.
|
|
|
|
```rust
|
|
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}");
|
|
}
|
|
```
|