aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/lib/gdb/dap/evaluate.py1
-rw-r--r--gdb/python/lib/gdb/dap/server.py11
-rw-r--r--gdb/python/lib/gdb/dap/varref.py3
3 files changed, 14 insertions, 1 deletions
diff --git a/gdb/python/lib/gdb/dap/evaluate.py b/gdb/python/lib/gdb/dap/evaluate.py
index 1db6962..2b40065 100644
--- a/gdb/python/lib/gdb/dap/evaluate.py
+++ b/gdb/python/lib/gdb/dap/evaluate.py
@@ -70,7 +70,6 @@ def _repl(command, frame_id):
}
-# FIXME supportsVariableType handling
@request("evaluate")
def eval_request(
*,
diff --git a/gdb/python/lib/gdb/dap/server.py b/gdb/python/lib/gdb/dap/server.py
index be66676..b1c75ab 100644
--- a/gdb/python/lib/gdb/dap/server.py
+++ b/gdb/python/lib/gdb/dap/server.py
@@ -186,6 +186,17 @@ def capability(name, value=True):
return wrap
+def client_bool_capability(name):
+ """Return the value of a boolean client capability.
+
+ If the capability was not specified, or did not have boolean type,
+ False is returned."""
+ global _server
+ if name in _server.config and isinstance(_server.config[name], bool):
+ return _server.config[name]
+ return False
+
+
@request("initialize")
def initialize(**args):
global _server, _capabilities
diff --git a/gdb/python/lib/gdb/dap/varref.py b/gdb/python/lib/gdb/dap/varref.py
index 88c34c2..23f18d6 100644
--- a/gdb/python/lib/gdb/dap/varref.py
+++ b/gdb/python/lib/gdb/dap/varref.py
@@ -15,6 +15,7 @@
import gdb
from .startup import in_gdb_thread
+from .server import client_bool_capability
from abc import abstractmethod
@@ -165,6 +166,8 @@ class VariableReference(BaseReference):
result["memoryReference"] = hex(int(self.value))
elif self.value.address is not None:
result["memoryReference"] = hex(int(self.value.address))
+ if client_bool_capability("supportsVariableType"):
+ result["type"] = str(self.value.type)
return result
@in_gdb_thread