[Lldb-commits] [lldb] [lldb-dap] Emit declarations along with variables (PR #74865)
Walter Erquinigo via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 11 12:33:48 PST 2023
================
@@ -1165,6 +1188,24 @@ llvm::json::Value CreateVariable(lldb::SBValue v, int64_t variablesReference,
const char *evaluateName = evaluateStream.GetData();
if (evaluateName && evaluateName[0])
EmplaceSafeString(object, "evaluateName", std::string(evaluateName));
+
+ if (lldb::SBDeclaration decl = v.GetDeclaration(); decl.IsValid()) {
+ llvm::json::Object decl_obj;
+ if (lldb::SBFileSpec file = decl.GetFileSpec(); file.IsValid()) {
+ char path[PATH_MAX] = "";
+ if (file.GetPath(path, sizeof(path)) &&
+ lldb::SBFileSpec::ResolvePath(path, path, PATH_MAX)) {
+ decl_obj.try_emplace("path", std::string(path));
+ }
+ }
+
+ if (int line = decl.GetLine())
+ decl_obj.try_emplace("line", line);
+ if (int column = decl.GetColumn())
+ decl_obj.try_emplace("column", column);
+
+ object.try_emplace("declaration", std::move(decl_obj));
----------------
walter-erquinigo wrote:
This one makes sense. I'll make that fix.
https://github.com/llvm/llvm-project/pull/74865
More information about the lldb-commits
mailing list