[v2,5/6] Catch KeyboardInterrupt in send_gdb_with_response
Checks
Commit Message
Cancellation will generally be seen by the DAP code as a
KeyboardInterrupt. However, this derives from BaseException and not
Exception, so a small change is needed to send_gdb_with_response, to
forward the exception to the DAP server thread.
---
gdb/python/lib/gdb/dap/startup.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
Tom Tromey <tromey@adacore.com> writes:
> Cancellation will generally be seen by the DAP code as a
> KeyboardInterrupt. However, this derives from BaseException and not
> Exception, so a small change is needed to send_gdb_with_response, to
> forward the exception to the DAP server thread.
> ---
> gdb/python/lib/gdb/dap/startup.py | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gdb/python/lib/gdb/dap/startup.py b/gdb/python/lib/gdb/dap/startup.py
> index a16b51f7cf5..1d3b94762a6 100644
> --- a/gdb/python/lib/gdb/dap/startup.py
> +++ b/gdb/python/lib/gdb/dap/startup.py
> @@ -172,11 +172,11 @@ def send_gdb_with_response(fn):
> try:
> val = fn()
> result_q.put(val)
> - except Exception as e:
> + except (Exception, KeyboardInterrupt) as e:
> result_q.put(e)
>
> send_gdb(message)
> val = result_q.get()
> - if isinstance(val, Exception):
> + if isinstance(val, (Exception, KeyboardInterrupt)):
> raise val
> return val
ACK!
Reviewed-By: Kévin Le Gouguec <legouguec@adacore.com>
@@ -172,11 +172,11 @@ def send_gdb_with_response(fn):
try:
val = fn()
result_q.put(val)
- except Exception as e:
+ except (Exception, KeyboardInterrupt) as e:
result_q.put(e)
send_gdb(message)
val = result_q.get()
- if isinstance(val, Exception):
+ if isinstance(val, (Exception, KeyboardInterrupt)):
raise val
return val