diff options
author | Yuan Fu <casouri@gmail.com> | 2019-10-07 18:47:54 -0400 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2020-01-31 11:39:12 +0200 |
commit | 2b1e18ae852c1490dfa22adc71f7582a1258da60 (patch) | |
tree | a32d5a5e57cebf8f7c86828a99db7423a15e2bf8 /lisp/progmodes/gdb-mi.el | |
parent | baceb8e84d350bd8f981ff8289381ec55887c970 (diff) | |
download | emacs-2b1e18ae852c1490dfa22adc71f7582a1258da60.tar.gz |
Protect against errors in gdb-mi.el handlers
* lisp/progmodes/gdb-mi.el (gdb-handle-reply): Handle errors
in 'handler-function' so the cleanup code after it runs
safely. (Bug#39178)
Diffstat (limited to 'lisp/progmodes/gdb-mi.el')
-rw-r--r-- | lisp/progmodes/gdb-mi.el | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 2978d4a7672..4b0fd66c7ed 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el @@ -324,7 +324,10 @@ in `gdb-handler-list' and clears all pending handlers invalidated by the reception of this reply." (let ((handler-function (gdb-get-handler-function token-number))) (when handler-function - (funcall handler-function) + (condition-case err + ;; protect against errors in handler-function + (funcall handler-function) + (error (message (error-message-string err)))) (gdb-delete-handler token-number)))) (defun gdb-remove-all-pending-triggers () |