================ @@ -368,3 +373,37 @@ bool lldb_private::formatters::NSTaggedString_SummaryProvider( stream << suffix; return true; } + +bool lldb_private::formatters::NSIndirectTaggedString_SummaryProvider( + ValueObject &valobj, ObjCLanguageRuntime::ClassDescriptorSP descriptor, + Stream &stream, const TypeSummaryOptions &summary_options) { + if (!descriptor) + return false; + + uint64_t payload = 0; + if (!descriptor->GetTaggedPointerInfo(nullptr, nullptr, &payload)) + return false; + + // First 47 bits are the address of the contents. + addr_t ptr = payload & 0x7fffffffffffULL; + // Next 13 bits are the string's length. + size_t size = (payload >> 47) & 0x1fff; + + Status status; + char buf[8192]; ---------------- adrian-prantl wrote:
and then you can `reserve()` exactly `size` https://github.com/llvm/llvm-project/pull/136025 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits