[Lldb-commits] [lldb] [lldb-dap] Handle stack frames without a module (PR #136777)

Ely Ronnen via lldb-commits lldb-commits at lists.llvm.org
Wed Apr 23 23:58:33 PDT 2025


================
@@ -783,6 +783,16 @@ llvm::json::Value CreateStackFrame(lldb::SBFrame &frame,
     // Line numbers are 1-based.
     object.try_emplace("line", inst_line + 1);
     object.try_emplace("column", 1);
+  } else {
+    // No valid line entry or symbol
+    llvm::json::Object source;
+    EmplaceSafeString(source, "name", frame_name);
+    source.try_emplace("sourceReference", MakeDAPFrameID(frame));
+    EmplaceSafeString(source, "presentationHint", "deemphasize");
+    object.try_emplace("source", std::move(source));
+
+    object.try_emplace("line", 1);
+    object.try_emplace("column", 1);
----------------
eronnen wrote:

it still needs to be 1, this way it will be possible to debug the code in the IDE:

[Screencast From 2025-04-24 08-48-53.webm](https://github.com/user-attachments/assets/c05692c6-a966-4db2-874b-0815a6563427)

The only annoying thing is that each step removes the previous assembly lines, but I couldn't think of a straightforward way to tackle it because the frame changes too in every step

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


More information about the lldb-commits mailing list