================ @@ -235,18 +234,13 @@ Breakpoint *ReportRetriever::SetupBreakpoint(ModuleSP module_sp, if (!symbol->ValueIsAddress() || !symbol->GetAddressRef().IsValid()) return nullptr; - Target &target = process_sp->GetTarget(); - addr_t symbol_address = symbol->GetAddressRef().GetOpcodeLoadAddress(&target); - - if (symbol_address == LLDB_INVALID_ADDRESS) - return nullptr; - + const Address &address = symbol->GetAddressRef(); const bool internal = true; const bool hardware = false; Breakpoint *breakpoint = process_sp->GetTarget() - .CreateBreakpoint(symbol_address, internal, hardware) + .CreateBreakpoint(address, internal, hardware) ---------------- yln wrote:
Cleanup suggested by @jimingham here: https://github.com/llvm/llvm-project/pull/84583#issuecomment-1986590436 > you could set it by Address, in which case it would survive re-running, but > instead it converts the Address to an addr_t - the most fragile way to set a > breakpoint So we are using the `CreateBreakpoint` overload that takes `Address` instead of `addr_t` now and Jim mentioned that this survives re-running. Are we concerned at all about this change in behavior? For example, could we get into a situation where we keep adding superfluous breakpoints because the old ones survive? @jimingham @usama54321 https://github.com/llvm/llvm-project/pull/94794 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits