https://github.com/da-viper updated https://github.com/llvm/llvm-project/pull/212503
>From 40d9750cfb88e97526925b7394e2baa2b92f578c Mon Sep 17 00:00:00 2001 From: Ebuka Ezike <[email protected]> Date: Tue, 28 Jul 2026 14:59:55 +0100 Subject: [PATCH 1/2] [lldb] Fix crash on creating string error It crashes because the `default` error string may not be a format string compared to the `fallback` error string --- lldb/source/Target/Target.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index 148d7e0b30dbb..bb0c02e0f7930 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -3119,11 +3119,13 @@ Target::ReadInstructions(const Address &start_addr, uint32_t count, ReadMemory(start_addr, data.GetBytes(), data.GetByteSize(), error, force_live_memory, &load_addr); - if (error.Fail()) + if (error.Fail()) { + if (error.AsCString(/*default_error_str=*/nullptr)) + return error.takeError(); return llvm::createStringErrorV( - error.AsCString( - "Target::ReadInstructions failed to read memory at {:x}"), + "Target::ReadInstructions failed to read memory at {:x}", start_addr.GetLoadAddress(this)); + } const bool data_from_file = load_addr == LLDB_INVALID_ADDRESS; if (!flavor_string || flavor_string[0] == '\0') { >From fec52d62c917dff714e7b9d4ac6b62678d51c769 Mon Sep 17 00:00:00 2001 From: Ebuka Ezike <[email protected]> Date: Wed, 29 Jul 2026 10:40:42 +0100 Subject: [PATCH 2/2] add review changes --- lldb/source/API/SBTarget.cpp | 2 ++ lldb/source/Target/Target.cpp | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp index cf2b1dc611df3..9eca813d8584b 100644 --- a/lldb/source/API/SBTarget.cpp +++ b/lldb/source/API/SBTarget.cpp @@ -2159,6 +2159,8 @@ lldb::SBInstructionList SBTarget::ReadInstructions(lldb::SBAddress base_addr, if (llvm::Expected<DisassemblerSP> disassembler = target_sp->ReadInstructions(*addr_ptr, count, flavor_string)) { sb_instructions.SetDisassembler(*disassembler); + } else { + LLDB_LOG_ERROR(GetLog(LLDBLog::API), disassembler.takeError(), "{0}"); } } } diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index bb0c02e0f7930..239c82e02348d 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -3120,11 +3120,11 @@ Target::ReadInstructions(const Address &start_addr, uint32_t count, force_live_memory, &load_addr); if (error.Fail()) { - if (error.AsCString(/*default_error_str=*/nullptr)) - return error.takeError(); - return llvm::createStringErrorV( - "Target::ReadInstructions failed to read memory at {:x}", - start_addr.GetLoadAddress(this)); + return llvm::joinErrors( + llvm::createStringErrorV( + "Target::ReadInstructions failed to read memory at {:x}: ", + start_addr.GetLoadAddress(this)), + error.takeError()); } const bool data_from_file = load_addr == LLDB_INVALID_ADDRESS; _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
