}
-# FIXME supportsVariableType handling
@request("evaluate")
def eval_request(
*,
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
import gdb
from .startup import in_gdb_thread
+from .server import client_bool_capability
from abc import abstractmethod
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
set obj [dap_check_request_and_response "set global in main" \
setExpression {o expression [s global_variable] value [s 23]}]
dap_match_values "global value in main after set" [lindex $obj 0] \
- "body result" 23
+ "body result" 23 \
+ "body type" int
set obj [dap_request_and_response \
evaluate {o expression [s nosuchvariable]}]
if {[dap_gdb_start]} {
return ""
}
- return [dap_check_request_and_response $name initialize]
+ return [dap_check_request_and_response $name initialize \
+ {o clientID [s "gdb testsuite"] \
+ supportsVariableType [l true]}]
}
# Start gdb, send a DAP initialize request, and then a launch request