[Lldb-commits] [lldb] [lldb-dap] Add 'source' references to stack frames without source files. (PR #128268)
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Sat Feb 22 12:25:17 PST 2025
================
@@ -799,21 +806,22 @@ llvm::json::Value CreateStackFrame(lldb::SBFrame &frame,
EmplaceSafeString(object, "name", frame_name);
- auto source = CreateSource(frame);
-
- if (source) {
- object.try_emplace("source", *source);
- auto line_entry = frame.GetLineEntry();
- auto line = line_entry.GetLine();
- if (line && line != LLDB_INVALID_LINE_NUMBER)
- object.try_emplace("line", line);
- else
- object.try_emplace("line", 0);
+ object.try_emplace("source", CreateSource(frame, frame_name));
+ auto line_entry = frame.GetLineEntry();
+ if (line_entry.IsValid() &&
+ (line_entry.GetLine() != 0 ||
+ line_entry.GetLine() != LLDB_INVALID_LINE_NUMBER)) {
+ object.try_emplace("line", line_entry.GetLine());
auto column = line_entry.GetColumn();
object.try_emplace("column", column);
} else {
- object.try_emplace("line", 0);
- object.try_emplace("column", 0);
+ lldb::addr_t inst_offset = frame.GetPCAddress().GetOffset() -
+ frame.GetSymbol().GetStartAddress().GetOffset();
+ lldb::addr_t inst_line =
+ inst_offset / (frame.GetThread().GetProcess().GetAddressByteSize() / 2);
+ // lines are base-1 indexed
----------------
JDevlieghere wrote:
```suggestion
// Line numbers are 1-based.
```
https://github.com/llvm/llvm-project/pull/128268
More information about the lldb-commits
mailing list