[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #65056] Changing and saving a file in debug mo
From: |
Petter |
Subject: |
[Octave-bug-tracker] [bug #65056] Changing and saving a file in debug mode with the byte-code interpreter active causes Octave to crash |
Date: |
Fri, 22 Dec 2023 20:15:18 -0500 (EST) |
Follow-up Comment #2, bug#65056 (group octave):
It seems like the gui uses a 'quit_debug_exception' to signal that debugging
should be canceled, which the bytecode interpreter didn't handle properly.
I've attached a patch.
Handle quit_debug_exception in bytecode interpreter (bug #65056)
To allow for escaping debugging in gui properly.
* pt-bytecode-vm.cc: Catch quit_debug_exception, handle in unwind
* pt-bytecode-vm.h: New field 'm_debug_quit_all'
* pt-bytecode.h: New 'DEBUG_QUIT' error type
* pt-eval.cc: Move quit_debug_exception def to header
* pt-eval.h
> On Windows 10 with dev Octave (GUI) from Dec. 14, I get no crash with the
example in comment #0. But closing the test2.m file in the editor and then
reopening it, and then entering '__vm_enable__' I get an infinite loop with
messages:
I think the exception escaped the VM, which probably leads to quite arbitrary
execution afterwards. There would e.g. be unpopped Octave stack frames etc.
Maybe the try catch in vm::call() should have a 'catch (...)' to catch these
kind of bugs easier.
(file #55480)
_______________________________________________________
Additional Item Attachment:
File name: 32996.patch Size:5 KB
<https://file.savannah.gnu.org/file/32996.patch?file_id=55480>
AGPL NOTICE
These attachments are served by Savane. You can download the corresponding
source code of Savane at
https://git.savannah.nongnu.org/cgit/administration/savane.git/snapshot/savane-710f4bb10c72bf6a201930fdbcb2a73bdde1a5d2.tar.gz
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?65056>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/