[llvm-branch-commits] [lldb] release/23.x: [lldb] Fix crash on creating string error (#212503) (PR #212747)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Jul 29 04:39:48 PDT 2026
https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/212747
Backport 29bc0749034c4f2bda0752360ecacd4e89d7439c
Requested by: @da-viper
>From da9fd5668dc70a9aed4191b45a81a0b2daf1e3eb Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <e_ezike at apple.com>
Date: Wed, 29 Jul 2026 12:30:37 +0100
Subject: [PATCH] [lldb] Fix crash on creating string error (#212503)
It crashes because the `default` error string may not be a format string
compared to the `fallback` error string
(cherry picked from commit 29bc0749034c4f2bda0752360ecacd4e89d7439c)
---
lldb/source/API/SBTarget.cpp | 2 ++
lldb/source/Target/Target.cpp | 12 +++++++-----
2 files changed, 9 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 e851495a81f38..0638f29969d31 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -3120,11 +3120,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())
- return llvm::createStringErrorV(
- error.AsCString(
- "Target::ReadInstructions failed to read memory at {:x}"),
- start_addr.GetLoadAddress(this));
+ if (error.Fail()) {
+ 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;
if (!flavor_string || flavor_string[0] == '\0') {
More information about the llvm-branch-commits
mailing list