Author: Pavel Labath Date: 2025-02-25T09:47:30+01:00 New Revision: 5088e1b435fd06de2bfccd3894dcc2f2c326630f
URL: https://github.com/llvm/llvm-project/commit/5088e1b435fd06de2bfccd3894dcc2f2c326630f DIFF: https://github.com/llvm/llvm-project/commit/5088e1b435fd06de2bfccd3894dcc2f2c326630f.diff LOG: [lldb] Avoid Function::GetAddressRange in ThreadPlanStepRange::InSymbol (#128515) The existing implementation would probably produce false positives for discontinuous functions. I haven't tried reproducing it because setting up discontinuous functions (and executing them, in particular) is pretty complex and there's nothing particularly interesting happening here. Added: Modified: lldb/source/Target/ThreadPlanStepRange.cpp Removed: ################################################################################ diff --git a/lldb/source/Target/ThreadPlanStepRange.cpp b/lldb/source/Target/ThreadPlanStepRange.cpp index de4cd5995f695..78e1270edcdab 100644 --- a/lldb/source/Target/ThreadPlanStepRange.cpp +++ b/lldb/source/Target/ThreadPlanStepRange.cpp @@ -197,9 +197,11 @@ bool ThreadPlanStepRange::InRange() { bool ThreadPlanStepRange::InSymbol() { lldb::addr_t cur_pc = GetThread().GetRegisterContext()->GetPC(); if (m_addr_context.function != nullptr) { - return m_addr_context.function->GetAddressRange().ContainsLoadAddress( - cur_pc, &GetTarget()); - } else if (m_addr_context.symbol && m_addr_context.symbol->ValueIsAddress()) { + AddressRange unused_range; + return m_addr_context.function->GetRangeContainingLoadAddress( + cur_pc, GetTarget(), unused_range); + } + if (m_addr_context.symbol && m_addr_context.symbol->ValueIsAddress()) { AddressRange range(m_addr_context.symbol->GetAddressRef(), m_addr_context.symbol->GetByteSize()); return range.ContainsLoadAddress(cur_pc, &GetTarget()); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits