Workflow and Source Panels
Callback Step Panel
Trace named Swift function steps as one ordered replay panel.
Callback Step Panel
callback_step_panel.swift
Replay: real traced execution (multi-file project)
func addStep(_ value: Int) -> Int {
return value + 4
}
func doubleStep(_ value: Int) -> Int {
return value * 2
}
let base = 6
let first = addStep(base)
let second = doubleStep(first)
print("base=\(base)")
print("first=\(first)")
print("second=\(second)")
func addStep(_ value: Int) -> Int {
return value + 4
}
func doubleStep(_ value: Int) -> Int {
return value * 2
}
let base = 3
let first = addStep(base)
let second = doubleStep(first)
print("base=\(base)")
print("first=\(first)")
print("second=\(second)")
func addStep(_ value: Int) -> Int {
return value + 4
}
func doubleStep(_ value: Int) -> Int {
return value * 2
}
let base = 9
let first = addStep(base)
let second = doubleStep(first)
print("base=\(base)")
print("first=\(first)")
print("second=\(second)")
base ← 6
9let base→ 6 = 6 //@base=3, 910let first = addStep(base6)11let second = doubleStep(first)func addStep(_ value: Int) -> Int
1func addStep(_ value6: Int) -> Int {2 return value6 + 43}first ← 10
9let base = 6 //@base=3, 910let first→ 10 = addStep(base6)11let second = doubleStep(first10)func doubleStep(_ value: Int) -> Int
5func doubleStep(_ value10: Int) -> Int {6 return value10 * 27}second ← 20
10let first = addStep(base)11let second→ 20 = doubleStep(first10)1213print("base=\(base6)")14print("first=\(first10)")15print("second=\(second20)")outputbase=6 first=10 second=20
base ← 3
9let base→ 3 = 310let first = addStep(base3)11let second = doubleStep(first)func addStep(_ value: Int) -> Int
1func addStep(_ value3: Int) -> Int {2 return value3 + 43}first ← 7
9let base = 310let first→ 7 = addStep(base3)11let second = doubleStep(first7)func doubleStep(_ value: Int) -> Int
5func doubleStep(_ value7: Int) -> Int {6 return value7 * 27}second ← 14
10let first = addStep(base)11let second→ 14 = doubleStep(first7)1213print("base=\(base3)")14print("first=\(first7)")15print("second=\(second14)")outputbase=3 first=7 second=14
base ← 9
9let base→ 9 = 910let first = addStep(base9)11let second = doubleStep(first)func addStep(_ value: Int) -> Int
1func addStep(_ value9: Int) -> Int {2 return value9 + 43}first ← 13
9let base = 910let first→ 13 = addStep(base9)11let second = doubleStep(first13)func doubleStep(_ value: Int) -> Int
5func doubleStep(_ value13: Int) -> Int {6 return value13 * 27}second ← 26
10let first = addStep(base)11let second→ 26 = doubleStep(first13)1213print("base=\(base9)")14print("first=\(first13)")15print("second=\(second26)")outputbase=9 first=13 second=26
callback step
Small named functions keep each transformation visible in replay while this example stays in a single source panel.