diff --git a/src/mudlib/zmachine/zcpu.py b/src/mudlib/zmachine/zcpu.py index 596c1d0..0fc6e3f 100644 --- a/src/mudlib/zmachine/zcpu.py +++ b/src/mudlib/zmachine/zcpu.py @@ -216,7 +216,15 @@ class ZCpu: # The returned function is unbound, so we must pass # self to it ourselves. - func(self, *operands) + try: + func(self, *operands) + except (ZCpuQuit, ZCpuRestart): + # Normal control flow - don't dump trace + raise + except ZCpuError: + # All other ZCpu errors - dump trace for debugging + self._dump_trace() + raise return True def run(self):