From 4f083f683252f2cb79c8dcbaa43bbefcef24b0a8 Mon Sep 17 00:00:00 2001 From: Felipe de Azevedo Piovezan Date: Thu, 24 Jul 2025 12:48:18 -0700 Subject: [PATCH] [lldb][swift] Call FixDataAddress on task pointers before printing them These are pointers to heap addresses that may sometimes be tagged. --- lldb/source/Plugins/Language/Swift/SwiftFormatters.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Language/Swift/SwiftFormatters.cpp b/lldb/source/Plugins/Language/Swift/SwiftFormatters.cpp index 2eaf88d0c7738..3df44448646c4 100644 --- a/lldb/source/Plugins/Language/Swift/SwiftFormatters.cpp +++ b/lldb/source/Plugins/Language/Swift/SwiftFormatters.cpp @@ -859,6 +859,8 @@ class TaskSyntheticFrontEnd : public SyntheticChildrenFrontEnd { m_ts->GetTypeFromMangledTypename(ConstString("$sSVD")); addr_t value = m_task_ptr; + if (auto process_sp = m_backend.GetProcessSP()) + value = process_sp->FixDataAddress(value); DataExtractor data{reinterpret_cast(&value), sizeof(value), endian::InlHostByteOrder(), sizeof(void *)}; @@ -899,7 +901,7 @@ class TaskSyntheticFrontEnd : public SyntheticChildrenFrontEnd { parent_addr = 0; } - addr_t value = parent_addr; + addr_t value = process_sp->FixDataAddress(parent_addr); DataExtractor data{reinterpret_cast(&value), sizeof(value), endian::InlHostByteOrder(), sizeof(void *)};