[1/6] Clean up handling of DAP not-stopped response
Checks
Context |
Check |
Description |
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_build--master-arm |
success
|
Testing passed
|
linaro-tcwg-bot/tcwg_gdb_check--master-aarch64 |
success
|
Testing passed
|
Commit Message
This patch introduces a new NotStoppedException type and changes the
DAP implementation of "not stopped" to use it. I was already touching
some code in this area and I thought this looked a little cleaner.
This also has the advantage that we can now choose not to log the
exception -- previously I was sometimes a bit alarmed when seeing this
in the logs, even though it is harmless.
---
gdb/python/lib/gdb/dap/server.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
@@ -42,6 +42,12 @@ _commands = {}
_server = None
+# A subclass of Exception that is used solely for reporting that a
+# request needs the inferior to be stopped, but it is not stopped.
+class NotStoppedException(Exception):
+ pass
+
+
class Server:
"""The DAP server class."""
@@ -78,6 +84,9 @@ class Server:
if body is not None:
result["body"] = body
result["success"] = True
+ except NotStoppedException:
+ result["success"] = False
+ result["message"] = "notStopped"
except BaseException as e:
log_stack()
result["success"] = False
@@ -169,7 +178,7 @@ def _check_not_running(func):
from .events import inferior_running
if inferior_running:
- raise Exception("notStopped")
+ raise NotStoppedException()
return func(*args, **kwargs)
return check