Fix backtrace
This commit is contained in:
@@ -57,6 +57,7 @@ class VMSlot
|
|||||||
int bp;
|
int bp;
|
||||||
otya.smilebasic.type.Data currentData;
|
otya.smilebasic.type.Data currentData;
|
||||||
Function currentFunction;
|
Function currentFunction;
|
||||||
|
int backtrace;
|
||||||
}
|
}
|
||||||
ExecData execData;
|
ExecData execData;
|
||||||
}
|
}
|
||||||
@@ -280,6 +281,7 @@ class VM
|
|||||||
bp = currentSlot.execData.bp;
|
bp = currentSlot.execData.bp;
|
||||||
currentFunction = currentSlot.execData.currentFunction;
|
currentFunction = currentSlot.execData.currentFunction;
|
||||||
currentData = currentSlot.execData.currentData;
|
currentData = currentSlot.execData.currentData;
|
||||||
|
traceI = currentSlot.execData.backtrace;
|
||||||
setCurrentSlot(currentSlot.execReturnAddress.slot);
|
setCurrentSlot(currentSlot.execReturnAddress.slot);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2499,6 +2501,7 @@ class Exec : Code
|
|||||||
vm.slots[slot].execData.bp = vm.bp;
|
vm.slots[slot].execData.bp = vm.bp;
|
||||||
vm.slots[slot].execData.currentFunction = vm.currentFunction;
|
vm.slots[slot].execData.currentFunction = vm.currentFunction;
|
||||||
vm.slots[slot].execData.currentData = vm.currentData;
|
vm.slots[slot].execData.currentData = vm.currentData;
|
||||||
|
vm.slots[slot].execData.backtrace = vm.traceI;
|
||||||
}
|
}
|
||||||
vm.setCurrentSlot(slot);
|
vm.setCurrentSlot(slot);
|
||||||
vm.pc = 0 - 1;
|
vm.pc = 0 - 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user