summaryrefslogtreecommitdiff
path: root/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp')
-rw-r--r--lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
index b9393356b4e0..44ae79f8b9f4 100644
--- a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
+++ b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
@@ -625,4 +625,22 @@ llvm::json::Value toJSON(const ModuleSymbolsResponseBody &DGMSR) {
return result;
}
+bool fromJSON(const json::Value &Params, ExceptionInfoArguments &Args,
+ json::Path Path) {
+ json::ObjectMapper O(Params, Path);
+ return O && O.map("threadId", Args.threadId);
+}
+
+json::Value toJSON(const ExceptionInfoResponseBody &ERB) {
+ json::Object result{{"exceptionId", ERB.exceptionId},
+ {"breakMode", ERB.breakMode}};
+
+ if (!ERB.description.empty())
+ result.insert({"description", ERB.description});
+ if (ERB.details.has_value())
+ result.insert({"details", *ERB.details});
+
+ return result;
+}
+
} // namespace lldb_dap::protocol