[Lldb-commits] [lldb] [lldb-dap] Use protocol types for exceptioninfo (PR #165858)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Wed Nov 5 05:59:12 PST 2025


DavidSpickett wrote:

Looks fine up to the point it's inserted. Added some logging:
```
diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
index e207aad2167d..ee1bfc503cb0 100644
--- a/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
+++ b/lldb/tools/lldb-dap/Protocol/ProtocolRequests.cpp
@@ -16,6 +16,9 @@
 #include "llvm/Support/JSON.h"
 #include <utility>
 
+#include <iostream>
+#include <fstream>
+
 using namespace llvm;
 
 // The 'env' field is either an object as a map of strings or as an array of
@@ -635,8 +638,18 @@ json::Value toJSON(const ExceptionInfoResponseBody &ERB) {
   json::Object result{{"exceptionId", ERB.exceptionId},
                       {"breakMode", ERB.breakMode}};
 
-  if (!ERB.description.empty())
+  if (!ERB.description.empty()) {
+    std::ofstream outFile("/tmp/daplog");
+
+    outFile << "description: \"" << ERB.description << "\"\n";
+    outFile << "length: " << ERB.description.size() << "\n";
+    outFile << "description via c_str: \"" << ERB.description.c_str() << "\"\n";
+    outFile << "length via c_str: " << strlen(ERB.description.c_str()) << "\n";
+
+    outFile.close();
+
     result.insert({"description", ERB.description.c_str()});
+  }
   if (ERB.details.has_value())
     result.insert({"details", *ERB.details});
 
```
And got:
```
description: "signal SIGABRT"
length: 14
description via c_str: "signal SIGABRT"
length via c_str: 14
```

https://github.com/llvm/llvm-project/pull/165858


More information about the lldb-commits mailing list