File tree Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Expand file tree Collapse file tree 1 file changed +6
-4
lines changed Original file line number Diff line number Diff line change 1919#include " lldb/API/SBFileSpec.h"
2020#include " lldb/API/SBFrame.h"
2121#include " lldb/API/SBFunction.h"
22+ #include " lldb/API/SBInstructionList.h"
2223#include " lldb/API/SBLineEntry.h"
2324#include " lldb/API/SBModule.h"
2425#include " lldb/API/SBQueue.h"
@@ -776,10 +777,11 @@ llvm::json::Value CreateStackFrame(lldb::SBFrame &frame,
776777
777778 // Calculate the line of the current PC from the start of the current
778779 // symbol.
779- lldb::addr_t inst_offset = frame.GetPCAddress ().GetOffset () -
780- frame.GetSymbol ().GetStartAddress ().GetOffset ();
781- lldb::addr_t inst_line =
782- inst_offset / (frame.GetThread ().GetProcess ().GetAddressByteSize () / 2 );
780+ lldb::SBTarget target = frame.GetThread ().GetProcess ().GetTarget ();
781+ lldb::SBInstructionList inst_list = target.ReadInstructions (
782+ frame.GetSymbol ().GetStartAddress (), frame.GetPCAddress (), nullptr );
783+ size_t inst_line = inst_list.GetSize ();
784+
783785 // Line numbers are 1-based.
784786 object.try_emplace (" line" , inst_line + 1 );
785787 object.try_emplace (" column" , 1 );
You can’t perform that action at this time.
0 commit comments