Trace named Lua function steps as one ordered replay panel.

callback step Named functions keep each transformation visible in replay while Lua stays in a single execution thread.

Callback Step Panel

base
callback_step_panel.lua
Replay: real traced execution (multi-file project)
local function add_step(value)
  return value + 4
end

local function double_step(value)
  return value * 2
end

local base = 6
local first = add_step(base)
local second = double_step(first)

print("base=" .. base)
print("first=" .. first)
print("second=" .. second)
local function add_step(value)
  return value + 4
end

local function double_step(value)
  return value * 2
end

local base = 3
local first = add_step(base)
local second = double_step(first)

print("base=" .. base)
print("first=" .. first)
print("second=" .. second)
local function add_step(value)
  return value + 4
end

local function double_step(value)
  return value * 2
end

local base = 9
local first = add_step(base)
local second = double_step(first)

print("base=" .. base)
print("first=" .. first)
print("second=" .. second)
  1. base ← 6

    9local base→ 6 = 6 --@base=3, 910local first = add_step(base6)11local second = double_step(first)
  2. first ← 10

    9local base = 6 --@base=3, 910local first→ 10 = add_step(base6)11local second = double_step(first10)
  3. second ← 20

    10local first = add_step(base)11local second→ 20 = double_step(first10)1213print("base=" .. base6)14print("first=" .. first10)15print("second=" .. second20)
    outputbase=6
    first=10
    second=20
  1. base ← 3

    9local base→ 3 = 310local first = add_step(base3)11local second = double_step(first)
  2. first ← 7

    9local base = 310local first→ 7 = add_step(base3)11local second = double_step(first7)
  3. second ← 14

    10local first = add_step(base)11local second→ 14 = double_step(first7)1213print("base=" .. base3)14print("first=" .. first7)15print("second=" .. second14)
    outputbase=3
    first=7
    second=14
  1. base ← 9

    9local base→ 9 = 910local first = add_step(base9)11local second = double_step(first)
  2. first ← 13

    9local base = 910local first→ 13 = add_step(base9)11local second = double_step(first13)
  3. second ← 26

    10local first = add_step(base)11local second→ 26 = double_step(first13)1213print("base=" .. base9)14print("first=" .. first13)15print("second=" .. second26)
    outputbase=9
    first=13
    second=26