[Lldb-commits] [lldb] b574e63 - [lldb] Pass execution context to CompilerType::GetByteSize - in CommandObjectMemoryRead (NFC) (#157750)
via lldb-commits
lldb-commits at lists.llvm.org
Wed Sep 10 09:53:59 PDT 2025
Author: Dave Lee
Date: 2025-09-10T09:53:54-07:00
New Revision: b574e63f9fd1adb52786f9dc03ec6f479229e1a7
URL: https://github.com/llvm/llvm-project/commit/b574e63f9fd1adb52786f9dc03ec6f479229e1a7
DIFF: https://github.com/llvm/llvm-project/commit/b574e63f9fd1adb52786f9dc03ec6f479229e1a7.diff
LOG: [lldb] Pass execution context to CompilerType::GetByteSize - in CommandObjectMemoryRead (NFC) (#157750)
Some type systems require an execution context be available when working with types
(ex: Swift). This fixes `memory read --type` to support such type systems, by passing in
an execution context to `GetByteSize()`, instead of passing null.
rdar://158968545
Added:
Modified:
lldb/source/Commands/CommandObjectMemory.cpp
Removed:
################################################################################
diff --git a/lldb/source/Commands/CommandObjectMemory.cpp b/lldb/source/Commands/CommandObjectMemory.cpp
index af1ff3e845109..5786e757ef7ea 100644
--- a/lldb/source/Commands/CommandObjectMemory.cpp
+++ b/lldb/source/Commands/CommandObjectMemory.cpp
@@ -365,6 +365,8 @@ class CommandObjectMemoryRead : public CommandObjectParsed {
return;
}
+ ExecutionContextScope *exe_scope = m_exe_ctx.GetBestExecutionContextScope();
+
CompilerType compiler_type;
Status error;
@@ -520,7 +522,7 @@ class CommandObjectMemoryRead : public CommandObjectParsed {
--pointer_count;
}
- auto size_or_err = compiler_type.GetByteSize(nullptr);
+ auto size_or_err = compiler_type.GetByteSize(exe_scope);
if (!size_or_err) {
result.AppendErrorWithFormat(
"unable to get the byte size of the type '%s'\n%s",
@@ -640,7 +642,7 @@ class CommandObjectMemoryRead : public CommandObjectParsed {
if (!m_format_options.GetFormatValue().OptionWasSet())
m_format_options.GetFormatValue().SetCurrentValue(eFormatDefault);
- auto size_or_err = compiler_type.GetByteSize(nullptr);
+ auto size_or_err = compiler_type.GetByteSize(exe_scope);
if (!size_or_err) {
result.AppendError(llvm::toString(size_or_err.takeError()));
return;
@@ -800,7 +802,6 @@ class CommandObjectMemoryRead : public CommandObjectParsed {
output_stream_p = &result.GetOutputStream();
}
- ExecutionContextScope *exe_scope = m_exe_ctx.GetBestExecutionContextScope();
if (compiler_type.GetOpaqueQualType()) {
for (uint32_t i = 0; i < item_count; ++i) {
addr_t item_addr = addr + (i * item_byte_size);
More information about the lldb-commits
mailing list